Added Kyber to Windows build. (#453)

* Added Kyber to the liboqs Master branch

* Added OQS_MEM_cleanse calls to Kyber

* Updated file formatting with make prettyprint

* Added algorithm datasheet for Kyber

* Added Kyber KAT files

* Copied kyber header file to Visual Studio dir.

* Added kyber to Visual Studio
This commit is contained in:
Christian Paquin 2018-12-21 13:07:51 -05:00 committed by Douglas Stebila
parent d6e311fe94
commit 01be6694ed
5 changed files with 39 additions and 4 deletions

View File

@ -19,6 +19,15 @@ EXPORTS
OQS_KEM_frodokem_976_cshake_decaps
OQS_KEM_frodokem_976_cshake_encaps
OQS_KEM_frodokem_976_cshake_keypair
OQS_KEM_kyber_512_cca_kem_keypair
OQS_KEM_kyber_512_cca_kem_encaps
OQS_KEM_kyber_512_cca_kem_decaps
OQS_KEM_kyber_768_cca_kem_keypair
OQS_KEM_kyber_768_cca_kem_encaps
OQS_KEM_kyber_768_cca_kem_decaps
OQS_KEM_kyber_1024_cca_kem_keypair
OQS_KEM_kyber_1024_cca_kem_encaps
OQS_KEM_kyber_1024_cca_kem_decaps
OQS_KEM_newhope_1024_cca_kem_decaps
OQS_KEM_newhope_1024_cca_kem_encaps
OQS_KEM_newhope_1024_cca_kem_keypair

View File

@ -36,6 +36,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\kem\frodokem\kem_frodokem.h" />
<ClInclude Include="..\..\src\kem\kyber\kem_kyber.h" />
<ClInclude Include="..\..\src\kem\newhopenist\kem_newhopenist.h" />
<ClInclude Include="..\..\src\kem\kem.h" />
<ClInclude Include="..\..\src\kem\sike\kem_sike.h" />
@ -87,6 +88,10 @@
<ClCompile Include="..\..\src\kem\frodokem\frodo976_cshake.c" />
<ClCompile Include="..\..\src\kem\frodokem\kem_frodokem.c" />
<ClCompile Include="..\..\src\kem\frodokem\util.c" />
<ClCompile Include="..\..\src\kem\kyber\kem_kyber.c" />
<ClCompile Include="..\..\src\kem\kyber\win_kyber1024.c" />
<ClCompile Include="..\..\src\kem\kyber\win_kyber512.c" />
<ClCompile Include="..\..\src\kem\kyber\win_kyber768.c" />
<ClCompile Include="..\..\src\kem\newhopenist\kem_newhopenist.c" />
<ClCompile Include="..\..\src\kem\kem.c" />
<ClCompile Include="..\..\src\kem\newhopenist\win_newhope1024cca.c" />

View File

@ -121,6 +121,18 @@
<ClCompile Include="..\..\src\kem\newhopenist\win_newhope1024cca.c">
<Filter>newhopenist</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kem\kyber\kem_kyber.c">
<Filter>kyber</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kem\kyber\win_kyber512.c">
<Filter>kyber</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kem\kyber\win_kyber768.c">
<Filter>kyber</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kem\kyber\win_kyber1024.c">
<Filter>kyber</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\oqs.h" />
@ -230,6 +242,9 @@
<ClInclude Include="..\..\src\kem\newhopenist\kem_newhopenist.h">
<Filter>newhopenist</Filter>
</ClInclude>
<ClInclude Include="..\..\src\kem\kyber\kem_kyber.h">
<Filter>kyber</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="dll.def" />
@ -259,5 +274,8 @@
<Filter Include="newhopenist">
<UniqueIdentifier>{cb72ff2d-77c6-4e60-a04e-6aad5fc6c328}</UniqueIdentifier>
</Filter>
<Filter Include="kyber">
<UniqueIdentifier>{17171b11-2a2c-4084-a710-c555295e2484}</UniqueIdentifier>
</Filter>
</ItemGroup>
</Project>
</Project>

View File

@ -6,12 +6,15 @@
#define OQS_ENABLE_KEM_frodokem_976_aes
#define OQS_ENABLE_KEM_frodokem_640_cshake
#define OQS_ENABLE_KEM_frodokem_976_cshake
#define OQS_ENABLE_KEM_kyber_512_cca_kem
#define OQS_ENABLE_KEM_kyber_768_cca_kem
#define OQS_ENABLE_KEM_kyber_1024_cca_kem
#define OQS_ENABLE_KEM_newhope_1024_cca_kem
#define OQS_ENABLE_KEM_newhope_512_cca_kem
#define OQS_ENABLE_KEM_sike_p503
#define OQS_ENABLE_KEM_sike_p751
#define OQS_ENABLE_KEM_sidh_p503
#define OQS_ENABLE_KEM_sidh_p751
#define OQS_ENABLE_KEM_newhope_1024_cca_kem
#define OQS_ENABLE_KEM_newhope_512_cca_kem
#define OQS_ENABLE_SIG_picnic_L1_FS
#define OQS_ENABLE_SIG_picnic_L1_UR
#define OQS_ENABLE_SIG_picnic_L3_FS

View File

@ -119,7 +119,7 @@ static void gen_matrix(polyvec *a, const unsigned char *seed, int transposed) //
uint16_t val;
unsigned int nblocks;
const unsigned int maxnblocks = 4;
uint8_t buf[OQS_SHA3_SHAKE128_RATE * maxnblocks];
uint8_t buf[OQS_SHA3_SHAKE128_RATE * 4]; /* was '* maxnblocks' but this is not a contant expr on WIN32 */
int i, j, k;
uint64_t state[25]; // SHAKE state
unsigned char extseed[KYBER_SYMBYTES + 2];