Skip to content

Commit

Permalink
Integrates MSR's RLWE Latticecrypto library into OQS. (#58)
Browse files Browse the repository at this point in the history
  • Loading branch information
christianpaquin authored and dstebila committed Nov 23, 2016
1 parent 04b841c commit 7fcf29d
Show file tree
Hide file tree
Showing 22 changed files with 3,258 additions and 117 deletions.
9 changes: 8 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ links:
$(LN) ../../src/kex/kex.h include/oqs
$(LN) ../../src/kex_rlwe_bcns15/kex_rlwe_bcns15.h include/oqs
$(LN) ../../src/kex_rlwe_newhope/kex_rlwe_newhope.h include/oqs
$(LN) ../../src/kex_rlwe_msrln16/kex_rlwe_msrln16.h include/oqs
$(LN) ../../src/kex_lwe_frodo/kex_lwe_frodo.h include/oqs
$(LN) ../../src/rand/rand.h include/oqs
$(LN) ../../src/rand_urandom_chacha20/rand_urandom_chacha20.h include/oqs
Expand Down Expand Up @@ -85,6 +86,11 @@ KEX_RLWE_NEWHOPE_OBJS := $(addprefix objs/kex_rlwe_newhope/, kex_rlwe_newhope.o)
KEX_RLWE_NEWHOPE_HEADERS := $(addprefix src/kex_rlwe_newhope/, kex_rlwe_newhope.h fips202.c newhope.c params.h poly.c precomp.c)
$(KEX_RLWE_NEWHOPE_OBJS): $(KEX_RLWE_NEWHOPE_HEADERS)

# KEX_RLWE_MSRLN16
KEX_RLWE_MSRLN16_OBJS := $(addprefix objs/kex_rlwe_msrln16/, kex_rlwe_msrln16.o LatticeCrypto_kex.o ntt_constants.o)
KEX_RLWE_MSRLN16_HEADERS := $(addprefix src/kex_rlwe_msrln16/, LatticeCrypto.h LatticeCrypto_priv.h kex_rlwe_msrln16.h )
$(KEX_RLWE_MSRLN16_OBJS): $(KEX_RLWE_MSRLN16_HEADERS)

# KEX_LWE_FRODO
KEX_LWE_FRODO_OBJS := $(addprefix objs/kex_lwe_frodo/, lwe.o kex_lwe_frodo.o lwe_noise.o)
KEX_LWE_FRODO_HEADERS := $(addprefix src/kex_lwe_frodo/, kex_lwe_frodo.h local.h)
Expand All @@ -106,9 +112,10 @@ objs/kex/kex.o: src/kex/kex.h

# LIB


RAND_OBJS := $(RAND_URANDOM_AESCTR_OBJS) $(RAND_URANDOM_CHACHA_OBJS)

lib: $(RAND_OBJS) $(KEX_RLWE_BCNS15_OBJS) $(KEX_RLWE_NEWHOPE_OBJS) $(KEX_LWE_FRODO_OBJS) objs/rand/rand.o objs/kex/kex.o $(AES_OBJS) $(COMMON_OBJS)
lib: $(RAND_OBJS) $(KEX_RLWE_BCNS15_OBJS) $(KEX_RLWE_NEWHOPE_OBJS) $(KEX_LWE_FRODO_OBJS) $(KEX_RLWE_MSRLN16_OBJS) objs/rand/rand.o objs/kex/kex.o $(AES_OBJS) $(COMMON_OBJS)
rm -f liboqs.a
$(AR) liboqs.a $^
$(RANLIB) liboqs.a
Expand Down
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ liboqs currently contains:
- `rand_urandom_chacha20`: pseudorandom number generator seeded from /dev/urandom and expanded using the ChaCha20 stream cipher
- `kex_rlwe_bcns15`: key exchange from the ring learning with errors problem (Bos, Costello, Naehrig, Stebila, *IEEE Symposium on Security & Privacy 2015*, [https://eprint.iacr.org/2014/599](https://eprint.iacr.org/2014/599))
- `kex_rlwe_newhope`: "NewHope": key exchange from the ring learning with errors problem (Alkim, Ducas, Pöppelmann, Schwabe, *USENIX Security 2016*, [https://eprint.iacr.org/2015/1092](https://eprint.iacr.org/2015/1092)) (using the reference C implementation of NewHope from [https://github.com/tpoeppelmann/newhope](https://github.com/tpoeppelmann/newhope))
- `kex_rlwe_msrln16`: MSR implementation of Peikert's RLWE key exchange, based on the implementation of Alkim, Ducas, Pöppelmann, and Schwabe, with improvements from Longa and Naehrig [https://www.microsoft.com/en-us/research/project/lattice-cryptography-library/](https://www.microsoft.com/en-us/research/project/lattice-cryptography-library/)
- `kex_lwe_frodo`: key exchange from the learning with errors problem (Bos, Costello, Ducas, Mironov, Naehrig, Nikolaenko, Raghunathan, Stebila, *ACM Conference on Computer and Communications Security 2016*, [http://eprint.iacr.org/2016/659](http://eprint.iacr.org/2016/659))

Building and Running
Expand Down Expand Up @@ -114,11 +115,12 @@ In the long term, we are also interested in including post-quantum signature sch
License
-------

liboqs is licensed under the MIT License; see [https://github.com/open-quantum-safe/liboqs/blob/master/LICENSE.txt](LICENSE.txt) for details. liboqs includes some third party libraries or modules that are licensed differently; the corresponding subfolder contains the license that applies in that case. In particular:
liboqs is licensed under the MIT License; see [LICENSE.txt](https://github.com/open-quantum-safe/liboqs/blob/master/LICENSE.txt) for details. liboqs includes some third party libraries or modules that are licensed differently; the corresponding subfolder contains the license that applies in that case. In particular:

- `src/kex_rlwe_bcns15`: public domain ([http://unlicense.org](http://unlicense.org))
- `src/rand_urandom_chacha20/external`: public domain
- `src/kex_rlwe_bcns15`: public domain ([Unlicense](http://unlicense.org))
- `src/kex_rlwe_msrln16/external`: public domain ([CC0](http://creativecommons.org/publicdomain/zero/1.0/))
- `src/kex_rlwe_newhope`: public domain
- `src/rand_urandom_chacha20/external`: public domain

Team
----
Expand Down
10 changes: 10 additions & 0 deletions VisualStudio/oqs/oqs.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
<ClInclude Include="..\..\src\kex_rlwe_bcns15\rlwe_table.h" />
<ClInclude Include="..\..\src\kex_rlwe_newhope\kex_rlwe_newhope.h" />
<ClInclude Include="..\..\src\kex_rlwe_newhope\params.h" />
<ClInclude Include="..\..\src\kex_rlwe_msrln16\kex_rlwe_msrln16.h" />
<ClInclude Include="..\..\src\kex_rlwe_msrln16\LatticeCrypto.h" />
<ClInclude Include="..\..\src\kex_rlwe_msrln16\LatticeCrypto_priv.h" />
<ClInclude Include="..\..\src\rand\rand.h" />
<ClInclude Include="..\..\src\rand_urandom_aesctr\rand_urandom_aesctr.h" />
<ClInclude Include="..\..\src\rand_urandom_chacha20\rand_urandom_chacha20.h" />
Expand All @@ -47,6 +50,9 @@
<ClCompile Include="..\..\src\kex_rlwe_bcns15\rlwe_kex.c" />
<ClCompile Include="..\..\src\kex_rlwe_newhope\kex_rlwe_newhope.c" />
<ClCompile Include="..\..\src\kex_rlwe_newhope\newhope.c" />
<ClCompile Include="..\..\src\kex_rlwe_msrln16\kex_rlwe_msrln16.c" />
<ClCompile Include="..\..\src\kex_rlwe_msrln16\LatticeCrypto_kex.c" />
<ClCompile Include="..\..\src\kex_rlwe_msrln16\ntt_constants.c" />
<ClCompile Include="..\..\src\rand\rand.c" />
<ClCompile Include="..\..\src\rand_urandom_aesctr\rand_urandom_aesctr.c" />
<ClCompile Include="..\..\src\rand_urandom_chacha20\rand_urandom_chacha20.c" />
Expand Down Expand Up @@ -134,6 +140,7 @@ copy "$(SolutionDir)..\src\kex\kex.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\aes\aes.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_rlwe_bcns15\kex_rlwe_bcns15.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_rlwe_newhope\kex_rlwe_newhope.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_rlwe_msrln16\kex_rlwe_msrln16.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_lwe_frodo\kex_lwe_frodo.h" "$(SolutionDir)include\oqs\"</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
Expand Down Expand Up @@ -161,6 +168,7 @@ copy "$(SolutionDir)..\src\kex\kex.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\aes\aes.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_rlwe_bcns15\kex_rlwe_bcns15.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_rlwe_newhope\kex_rlwe_newhope.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_rlwe_msrln16\kex_rlwe_msrln16.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_lwe_frodo\kex_lwe_frodo.h" "$(SolutionDir)include\oqs\"</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
Expand Down Expand Up @@ -192,6 +200,7 @@ copy "$(SolutionDir)..\src\kex\kex.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\aes\aes.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_rlwe_bcns15\kex_rlwe_bcns15.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_rlwe_newhope\kex_rlwe_newhope.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_rlwe_msrln16\kex_rlwe_msrln16.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_lwe_frodo\kex_lwe_frodo.h" "$(SolutionDir)include\oqs\"</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
Expand Down Expand Up @@ -223,6 +232,7 @@ copy "$(SolutionDir)..\src\kex\kex.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\aes\aes.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_rlwe_bcns15\kex_rlwe_bcns15.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_rlwe_newhope\kex_rlwe_newhope.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_rlwe_msrln16\kex_rlwe_msrln16.h" "$(SolutionDir)include\oqs\"
copy "$(SolutionDir)..\src\kex_lwe_frodo\kex_lwe_frodo.h" "$(SolutionDir)include\oqs\"</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
Expand Down
216 changes: 103 additions & 113 deletions VisualStudio/oqs/oqs.vcxproj.filters
Original file line number Diff line number Diff line change
@@ -1,138 +1,128 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Source Files\BCNS15">
<UniqueIdentifier>{178cf83e-52eb-4ead-a1ca-33558ffd988e}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\rand">
<UniqueIdentifier>{15505124-034e-4100-a6cb-a32309738b25}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\BCNS15">
<UniqueIdentifier>{768db348-be19-4ce5-a6bc-22d81c2c59d3}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\rand">
<UniqueIdentifier>{65721ee8-a809-4e67-88a8-ad33d6a6a800}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\Newhope">
<UniqueIdentifier>{d26b84bb-a12a-4229-b619-8ddfdaca9928}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Newhope">
<UniqueIdentifier>{9445c3c6-bd2e-4448-8cba-a986ef929d45}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\Frodo">
<UniqueIdentifier>{9e41843f-5671-4bbf-916a-2688ac3ceaff}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Frodo">
<UniqueIdentifier>{fb1ab057-5f38-445f-9bfa-2486aa8200e5}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\AES">
<UniqueIdentifier>{a6bb776b-ac51-4243-aec8-396a52ed9560}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\AES">
<UniqueIdentifier>{379cec65-7e0e-4eb2-9be1-414b154a911f}</UniqueIdentifier>
</Filter>
<ClCompile Include="..\..\src\kex\kex.c" />
<ClCompile Include="..\..\src\aes\aes.c">
<Filter>AES</Filter>
</ClCompile>
<ClCompile Include="..\..\src\aes\aes_c.c">
<Filter>AES</Filter>
</ClCompile>
<ClCompile Include="..\..\src\aes\aes_ni.c">
<Filter>AES</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_bcns15\fft.c">
<Filter>BCNS15</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_lwe_frodo\kex_lwe_frodo.c">
<Filter>Frodo</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_bcns15\kex_rlwe_bcns15.c">
<Filter>BCNS15</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_msrln16\kex_rlwe_msrln16.c">
<Filter>MSR LN16</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_newhope\kex_rlwe_newhope.c">
<Filter>NewHope</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_msrln16\LatticeCrypto_kex.c">
<Filter>MSR LN16</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_lwe_frodo\lwe.c">
<Filter>Frodo</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_lwe_frodo\lwe_noise.c">
<Filter>Frodo</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_newhope\newhope.c">
<Filter>NewHope</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_msrln16\ntt_constants.c">
<Filter>MSR LN16</Filter>
</ClCompile>
<ClCompile Include="..\..\src\rand\rand.c">
<Filter>Rand</Filter>
</ClCompile>
<ClCompile Include="..\..\src\rand_urandom_aesctr\rand_urandom_aesctr.c">
<Filter>Rand</Filter>
</ClCompile>
<ClCompile Include="..\..\src\rand_urandom_chacha20\rand_urandom_chacha20.c">
<Filter>Rand</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_bcns15\rlwe.c">
<Filter>BCNS15</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_bcns15\rlwe_kex.c">
<Filter>BCNS15</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\kex\kex.h">
<Filter>Header Files</Filter>
<ClInclude Include="..\..\src\kex\kex.h" />
<ClInclude Include="..\..\src\aes\aes.h">
<Filter>AES</Filter>
</ClInclude>
<ClInclude Include="..\..\src\kex_lwe_frodo\kex_lwe_frodo.h">
<Filter>Frodo</Filter>
</ClInclude>
<ClInclude Include="..\..\src\kex_rlwe_bcns15\kex_rlwe_bcns15.h">
<Filter>Header Files\BCNS15</Filter>
<Filter>BCNS15</Filter>
</ClInclude>
<ClInclude Include="..\..\src\rand\rand.h">
<Filter>Header Files\rand</Filter>
<ClInclude Include="..\..\src\kex_rlwe_msrln16\kex_rlwe_msrln16.h">
<Filter>MSR LN16</Filter>
</ClInclude>
<ClInclude Include="..\..\src\rand_urandom_chacha20\rand_urandom_chacha20.h">
<Filter>Header Files\rand</Filter>
<ClInclude Include="..\..\src\kex_rlwe_newhope\kex_rlwe_newhope.h">
<Filter>NewHope</Filter>
</ClInclude>
<ClInclude Include="..\..\src\kex_rlwe_bcns15\rlwe_a.h">
<Filter>Header Files\BCNS15</Filter>
<ClInclude Include="..\..\src\kex_rlwe_msrln16\LatticeCrypto.h">
<Filter>MSR LN16</Filter>
</ClInclude>
<ClInclude Include="..\..\src\kex_rlwe_bcns15\rlwe_table.h">
<Filter>Header Files\BCNS15</Filter>
<ClInclude Include="..\..\src\kex_rlwe_msrln16\LatticeCrypto_priv.h">
<Filter>MSR LN16</Filter>
</ClInclude>
<ClInclude Include="..\..\src\kex_rlwe_bcns15\local.h">
<Filter>Header Files\BCNS15</Filter>
<Filter>BCNS15</Filter>
</ClInclude>
<ClInclude Include="..\..\src\kex_rlwe_newhope\kex_rlwe_newhope.h">
<Filter>Header Files\Newhope</Filter>
<ClInclude Include="..\..\src\kex_lwe_frodo\local.h">
<Filter>Frodo</Filter>
</ClInclude>
<ClInclude Include="..\..\src\kex_rlwe_newhope\params.h">
<Filter>Header Files\Newhope</Filter>
<Filter>NewHope</Filter>
</ClInclude>
<ClInclude Include="..\..\src\kex_lwe_frodo\kex_lwe_frodo.h">
<Filter>Header Files\Frodo</Filter>
<ClInclude Include="..\..\src\rand\rand.h">
<Filter>Rand</Filter>
</ClInclude>
<ClInclude Include="..\..\src\kex_lwe_frodo\local.h">
<Filter>Header Files\Frodo</Filter>
<ClInclude Include="..\..\src\rand_urandom_aesctr\rand_urandom_aesctr.h">
<Filter>Rand</Filter>
</ClInclude>
<ClInclude Include="..\..\src\aes\aes.h">
<Filter>Header Files\AES</Filter>
<ClInclude Include="..\..\src\rand_urandom_chacha20\rand_urandom_chacha20.h">
<Filter>Rand</Filter>
</ClInclude>
<ClInclude Include="..\..\src\rand_urandom_aesctr\rand_urandom_aesctr.h">
<Filter>Header Files\rand</Filter>
<ClInclude Include="..\..\src\kex_rlwe_bcns15\rlwe_table.h">
<Filter>BCNS15</Filter>
</ClInclude>
<ClInclude Include="..\..\src\kex_rlwe_bcns15\rlwe_a.h">
<Filter>BCNS15</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\kex\kex.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_bcns15\fft.c">
<Filter>Source Files\BCNS15</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_bcns15\kex_rlwe_bcns15.c">
<Filter>Source Files\BCNS15</Filter>
</ClCompile>
<ClCompile Include="..\..\src\rand\rand.c">
<Filter>Source Files\rand</Filter>
</ClCompile>
<ClCompile Include="..\..\src\rand_urandom_chacha20\rand_urandom_chacha20.c">
<Filter>Source Files\rand</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_bcns15\rlwe_kex.c">
<Filter>Source Files\BCNS15</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_bcns15\rlwe.c">
<Filter>Source Files\BCNS15</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_newhope\kex_rlwe_newhope.c">
<Filter>Source Files\Newhope</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_rlwe_newhope\newhope.c">
<Filter>Source Files\Newhope</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_lwe_frodo\kex_lwe_frodo.c">
<Filter>Source Files\Frodo</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_lwe_frodo\lwe.c">
<Filter>Source Files\Frodo</Filter>
</ClCompile>
<ClCompile Include="..\..\src\kex_lwe_frodo\lwe_noise.c">
<Filter>Source Files\Frodo</Filter>
</ClCompile>
<ClCompile Include="..\..\src\aes\aes.c">
<Filter>Source Files\AES</Filter>
</ClCompile>
<ClCompile Include="..\..\src\aes\aes_c.c">
<Filter>Source Files\AES</Filter>
</ClCompile>
<ClCompile Include="..\..\src\aes\aes_ni.c">
<Filter>Source Files\AES</Filter>
</ClCompile>
<ClCompile Include="..\..\src\rand_urandom_aesctr\rand_urandom_aesctr.c">
<Filter>Source Files\rand</Filter>
</ClCompile>
<Filter Include="AES">
<UniqueIdentifier>{71c917ec-9181-4b88-bdfc-9611ee1abe9a}</UniqueIdentifier>
</Filter>
<Filter Include="Frodo">
<UniqueIdentifier>{6bfff158-3e78-402f-ba16-e8d315089de8}</UniqueIdentifier>
</Filter>
<Filter Include="NewHope">
<UniqueIdentifier>{d0291785-4232-4264-b1bd-08b7e3f8df5e}</UniqueIdentifier>
</Filter>
<Filter Include="BCNS15">
<UniqueIdentifier>{ab581356-2a96-4211-99e3-f5cecd92eda3}</UniqueIdentifier>
</Filter>
<Filter Include="Rand">
<UniqueIdentifier>{fd44eb34-2f81-411e-a55f-f279c4b101de}</UniqueIdentifier>
</Filter>
<Filter Include="MSR LN16">
<UniqueIdentifier>{9f5ed87f-ed1e-47b4-b7e7-1d6648cb88fd}</UniqueIdentifier>
</Filter>
</ItemGroup>
</Project>
3 changes: 3 additions & 0 deletions src/kex/kex.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include <oqs/kex.h>
#include <oqs/kex_rlwe_bcns15.h>
#include <oqs/kex_rlwe_newhope.h>
#include <oqs/kex_rlwe_msrln16.h>
#include <oqs/kex_lwe_frodo.h>

OQS_KEX *OQS_KEX_new(OQS_RAND *rand, enum OQS_KEX_alg_name alg_name, const uint8_t *seed, const size_t seed_len, const char *named_parameters) {
Expand All @@ -11,6 +12,8 @@ OQS_KEX *OQS_KEX_new(OQS_RAND *rand, enum OQS_KEX_alg_name alg_name, const uint8
return OQS_KEX_rlwe_bcns15_new(rand);
case OQS_KEX_alg_rlwe_bcns15:
return OQS_KEX_rlwe_bcns15_new(rand);
case OQS_KEX_alg_rlwe_msrln16:
return OQS_KEX_rlwe_msrln16_new(rand);
case OQS_KEX_alg_rlwe_newhope:
return OQS_KEX_rlwe_newhope_new(rand);
case OQS_KEX_alg_lwe_frodo:
Expand Down
1 change: 1 addition & 0 deletions src/kex/kex.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ enum OQS_KEX_alg_name {
OQS_KEX_alg_default,
OQS_KEX_alg_rlwe_bcns15,
OQS_KEX_alg_rlwe_newhope,
OQS_KEX_alg_rlwe_msrln16,
OQS_KEX_alg_lwe_frodo,
};

Expand Down
1 change: 1 addition & 0 deletions src/kex/test_kex.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ struct kex_testcase {
struct kex_testcase kex_testcases[] = {
{ OQS_KEX_alg_rlwe_bcns15, NULL, 0, NULL, "rlwe_bcns15", 0 },
{ OQS_KEX_alg_rlwe_newhope, NULL, 0, NULL, "rlwe_newhope", 0 },
{ OQS_KEX_alg_rlwe_msrln16, NULL, 0, NULL, "rlwe_msrln16", 0 },
{ OQS_KEX_alg_lwe_frodo, (unsigned char *) "01234567890123456", 16, "recommended", "lwe_frodo_recommended", 0 },
};

Expand Down
Loading

0 comments on commit 7fcf29d

Please sign in to comment.