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_decaps
OQS_KEM_frodokem_976_cshake_encaps OQS_KEM_frodokem_976_cshake_encaps
OQS_KEM_frodokem_976_cshake_keypair 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_decaps
OQS_KEM_newhope_1024_cca_kem_encaps OQS_KEM_newhope_1024_cca_kem_encaps
OQS_KEM_newhope_1024_cca_kem_keypair OQS_KEM_newhope_1024_cca_kem_keypair

View File

@ -36,6 +36,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\src\kem\frodokem\kem_frodokem.h" /> <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\newhopenist\kem_newhopenist.h" />
<ClInclude Include="..\..\src\kem\kem.h" /> <ClInclude Include="..\..\src\kem\kem.h" />
<ClInclude Include="..\..\src\kem\sike\kem_sike.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\frodo976_cshake.c" />
<ClCompile Include="..\..\src\kem\frodokem\kem_frodokem.c" /> <ClCompile Include="..\..\src\kem\frodokem\kem_frodokem.c" />
<ClCompile Include="..\..\src\kem\frodokem\util.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\newhopenist\kem_newhopenist.c" />
<ClCompile Include="..\..\src\kem\kem.c" /> <ClCompile Include="..\..\src\kem\kem.c" />
<ClCompile Include="..\..\src\kem\newhopenist\win_newhope1024cca.c" /> <ClCompile Include="..\..\src\kem\newhopenist\win_newhope1024cca.c" />

View File

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

View File

@ -6,12 +6,15 @@
#define OQS_ENABLE_KEM_frodokem_976_aes #define OQS_ENABLE_KEM_frodokem_976_aes
#define OQS_ENABLE_KEM_frodokem_640_cshake #define OQS_ENABLE_KEM_frodokem_640_cshake
#define OQS_ENABLE_KEM_frodokem_976_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_p503
#define OQS_ENABLE_KEM_sike_p751 #define OQS_ENABLE_KEM_sike_p751
#define OQS_ENABLE_KEM_sidh_p503 #define OQS_ENABLE_KEM_sidh_p503
#define OQS_ENABLE_KEM_sidh_p751 #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_FS
#define OQS_ENABLE_SIG_picnic_L1_UR #define OQS_ENABLE_SIG_picnic_L1_UR
#define OQS_ENABLE_SIG_picnic_L3_FS #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; uint16_t val;
unsigned int nblocks; unsigned int nblocks;
const unsigned int maxnblocks = 4; 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; int i, j, k;
uint64_t state[25]; // SHAKE state uint64_t state[25]; // SHAKE state
unsigned char extseed[KYBER_SYMBYTES + 2]; unsigned char extseed[KYBER_SYMBYTES + 2];