mirror of
https://github.com/open-quantum-safe/liboqs.git
synced 2025-12-15 00:03:27 -05:00
Updated Windows build (added sig, fixed warnings, 2017 update) (#169)
* Updated Visual Studio solution to 2017 version, fixed build warnings (issue #159), added signature and Picnic support. * commit treat warnings as errors * Fix ENABLED_PICNIC macro in sig_picnic. * Prettyprint * Try to fix Travis error or macOS.
This commit is contained in:
parent
a329060696
commit
40ffb4eb38
@ -63,6 +63,7 @@ matrix:
|
||||
- CC_OQS=clang
|
||||
- AES_NI=0
|
||||
before_install:
|
||||
- brew update
|
||||
- brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/0c4314c499576b28e4c082b591228a8f940954c0/Formula/clang-format.rb
|
||||
- os: osx
|
||||
compiler: clang
|
||||
@ -76,6 +77,7 @@ matrix:
|
||||
- USE_PICNIC=1
|
||||
- M4RI_DIR=/usr/local/
|
||||
before_install:
|
||||
- brew update
|
||||
- brew install libsodium
|
||||
- brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/0c4314c499576b28e4c082b591228a8f940954c0/Formula/clang-format.rb
|
||||
- brew install homebrew/science/m4ri
|
||||
|
||||
11
README.md
11
README.md
@ -202,6 +202,16 @@ McBits is disabled by default in the Visual Studio build; follow these steps to
|
||||
- Add the sodium "src/include" location to the "Additional Include Directories" in the oqs project C properties.
|
||||
- Add the libsodium library to the "Additional Dependencies" in the `test_kex` project Linker properties.
|
||||
|
||||
Picnic is disabled by default in the Visual Studio build; follow these steps to enable it:
|
||||
- Download the [Picnic library](https://github.com/Microsoft/Picnic/archive/master.zip), unzip it into src\sig\sig_picnic\external.
|
||||
- Open src\sig_picnic\external\Picnic-master\VisualStudio\picnic.sln, build the library for the desired target.
|
||||
- Add "ENABLE_PICNIC" the oqs and test_picnic projects' C/C++ Preprocessor Definitions.
|
||||
- Add "libeay32.lib" and "picnic.lib" to the test_picnic project's Linker Input.
|
||||
Picnic requires pre-generated parameters to run. They cannot be generated on Windows due to some lib dependencies. They must therefore
|
||||
be generated externally and imported on the Windows machine; see the Picnic library documentation. Once this is done, before running
|
||||
the OQS unit tests or other programs using OQS with Picnic enabled, follow this step:
|
||||
- Add an environment variable PICNIC_PARAMS_PATH containing the path of the pregenerated parameters.
|
||||
|
||||
Building for Android
|
||||
--------------------
|
||||
|
||||
@ -223,7 +233,6 @@ Run it from your Android device:
|
||||
|
||||
Tested on SM-930F
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.25420.1
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26430.4
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_rand", "test_rand\test_rand.vcxproj", "{6BB96591-0BCD-42E6-8863-4B9BFE75530C}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
@ -15,6 +15,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_kex", "test_kex\test_k
|
||||
{DCFEFB81-4696-45D2-9FCA-351CCFC13C74} = {DCFEFB81-4696-45D2-9FCA-351CCFC13C74}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_sig", "test_sig\test_sig.vcxproj", "{990D1E9C-75E0-4E17-8514-6DA0858BC17C}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{DCFEFB81-4696-45D2-9FCA-351CCFC13C74} = {DCFEFB81-4696-45D2-9FCA-351CCFC13C74}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
@ -47,6 +52,14 @@ Global
|
||||
{820B79FE-57D7-4539-A0CA-B668A0723B9B}.Release|x64.Build.0 = Release|x64
|
||||
{820B79FE-57D7-4539-A0CA-B668A0723B9B}.Release|x86.ActiveCfg = Release|Win32
|
||||
{820B79FE-57D7-4539-A0CA-B668A0723B9B}.Release|x86.Build.0 = Release|Win32
|
||||
{990D1E9C-75E0-4E17-8514-6DA0858BC17C}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{990D1E9C-75E0-4E17-8514-6DA0858BC17C}.Debug|x64.Build.0 = Debug|x64
|
||||
{990D1E9C-75E0-4E17-8514-6DA0858BC17C}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{990D1E9C-75E0-4E17-8514-6DA0858BC17C}.Debug|x86.Build.0 = Debug|Win32
|
||||
{990D1E9C-75E0-4E17-8514-6DA0858BC17C}.Release|x64.ActiveCfg = Release|x64
|
||||
{990D1E9C-75E0-4E17-8514-6DA0858BC17C}.Release|x64.Build.0 = Release|x64
|
||||
{990D1E9C-75E0-4E17-8514-6DA0858BC17C}.Release|x86.ActiveCfg = Release|Win32
|
||||
{990D1E9C-75E0-4E17-8514-6DA0858BC17C}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@ -45,6 +45,8 @@
|
||||
<ClInclude Include="..\..\src\kex_sidh_cln16\kex_sidh_cln16.h" />
|
||||
<ClInclude Include="..\..\src\kex_sidh_cln16\SIDH.h" />
|
||||
<ClInclude Include="..\..\src\kex_sidh_cln16\SIDH_internal.h" />
|
||||
<ClInclude Include="..\..\src\sig\sig.h" />
|
||||
<ClInclude Include="..\..\src\sig_picnic\sig_picnic.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\common\common.c" />
|
||||
@ -79,6 +81,8 @@
|
||||
<ClCompile Include="..\..\src\kex_sidh_cln16\SIDH.c" />
|
||||
<ClCompile Include="..\..\src\kex_sidh_cln16\sidh_kex.c" />
|
||||
<ClCompile Include="..\..\src\kex_sidh_cln16\SIDH_setup.c" />
|
||||
<ClCompile Include="..\..\src\sig\sig.c" />
|
||||
<ClCompile Include="..\..\src\sig_picnic\sig_picnic.c" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{DCFEFB81-4696-45D2-9FCA-351CCFC13C74}</ProjectGuid>
|
||||
@ -171,6 +175,8 @@ copy "$(SolutionDir)..\src\kex_sidh_cln16\kex_sidh_cln16.h" "$(SolutionDir)inclu
|
||||
copy "$(SolutionDir)..\src\kex_code_mcbits\kex_code_mcbits.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\kex_ntru\kex_ntru.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\kex_mlwe_kyber\kex_mlwe_kyber.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\sig\sig.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\sig_picnic\sig_picnic.h" "$(SolutionDir)include\oqs\"
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
@ -180,10 +186,11 @@ copy "$(SolutionDir)..\src\kex_mlwe_kyber\kex_mlwe_kyber.h" "$(SolutionDir)inclu
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>DISABLE_NTRU_ON_WINDOWS_BY_DEFAULT;OQS_RAND_DEFAULT_URANDOM_CHACHA20;OQS_KEX_DEFAULT_BCNS15;CONSTANT_TIME;WINDOWS;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;DISABLE_NTRU_ON_WINDOWS_BY_DEFAULT;OQS_RAND_DEFAULT_URANDOM_CHACHA20;OQS_KEX_DEFAULT_BCNS15;CONSTANT_TIME;WINDOWS;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -206,8 +213,13 @@ copy "$(SolutionDir)..\src\kex_sidh_cln16\kex_sidh_cln16.h" "$(SolutionDir)inclu
|
||||
copy "$(SolutionDir)..\src\kex_code_mcbits\kex_code_mcbits.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\kex_ntru\kex_ntru.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\kex_mlwe_kyber\kex_mlwe_kyber.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\sig\sig.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\sig_picnic\sig_picnic.h" "$(SolutionDir)include\oqs\"
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<Lib>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
@ -245,6 +257,8 @@ copy "$(SolutionDir)..\src\kex_sidh_cln16\kex_sidh_cln16.h" "$(SolutionDir)inclu
|
||||
copy "$(SolutionDir)..\src\kex_code_mcbits\kex_code_mcbits.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\kex_ntru\kex_ntru.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\kex_mlwe_kyber\kex_mlwe_kyber.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\sig\sig.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\sig_picnic\sig_picnic.h" "$(SolutionDir)include\oqs\"
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
@ -256,10 +270,11 @@ copy "$(SolutionDir)..\src\kex_mlwe_kyber\kex_mlwe_kyber.h" "$(SolutionDir)inclu
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>DISABLE_NTRU_ON_WINDOWS_BY_DEFAULT;OQS_RAND_DEFAULT_URANDOM_CHACHA20;OQS_KEX_DEFAULT_BCNS15;CONSTANT_TIME;WINDOWS;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;DISABLE_NTRU_ON_WINDOWS_BY_DEFAULT;OQS_RAND_DEFAULT_URANDOM_CHACHA20;OQS_KEX_DEFAULT_BCNS15;CONSTANT_TIME;WINDOWS;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
@ -284,8 +299,13 @@ copy "$(SolutionDir)..\src\kex_sidh_cln16\kex_sidh_cln16.h" "$(SolutionDir)inclu
|
||||
copy "$(SolutionDir)..\src\kex_code_mcbits\kex_code_mcbits.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\kex_ntru\kex_ntru.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\kex_mlwe_kyber\kex_mlwe_kyber.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\sig\sig.h" "$(SolutionDir)include\oqs\"
|
||||
copy "$(SolutionDir)..\src\sig_picnic\sig_picnic.h" "$(SolutionDir)include\oqs\"
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<Lib>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
|
||||
@ -97,6 +97,12 @@
|
||||
<ClCompile Include="..\..\src\kex_mlwe_kyber\kex_mlwe_kyber.c">
|
||||
<Filter>KEX_Kyber</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\sig\sig.c">
|
||||
<Filter>Sig</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\sig_picnic\sig_picnic.c">
|
||||
<Filter>Sig_Picnic</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\src\kex_lwe_frodo\kex_lwe_frodo.h">
|
||||
@ -177,6 +183,12 @@
|
||||
<ClInclude Include="..\..\src\kex_mlwe_kyber\kex_mlwe_kyber.h">
|
||||
<Filter>KEX_Kyber</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\sig\sig.h">
|
||||
<Filter>Sig</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\sig_picnic\sig_picnic.h">
|
||||
<Filter>Sig_Picnic</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Common">
|
||||
@ -221,5 +233,11 @@
|
||||
<Filter Include="KEX_Kyber">
|
||||
<UniqueIdentifier>{c95ab174-03e5-4e85-a903-ccef78182c4f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Sig">
|
||||
<UniqueIdentifier>{d8958465-5fd0-4d0f-8acf-f20d79c4a490}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Sig_Picnic">
|
||||
<UniqueIdentifier>{18dd9adb-41b8-4058-a714-0a0d49db26ad}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -101,6 +101,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;oqs.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
@ -109,16 +110,18 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WINDOWS;DISABLE_NTRU_ON_WINDOWS_BY_DEFAULT;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;WINDOWS;DISABLE_NTRU_ON_WINDOWS_BY_DEFAULT;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;oqs.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
@ -141,6 +144,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;oqs.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
@ -151,10 +155,11 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WINDOWS;DISABLE_NTRU_ON_WINDOWS_BY_DEFAULT;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;WINDOWS;DISABLE_NTRU_ON_WINDOWS_BY_DEFAULT;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
@ -163,6 +168,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;oqs.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@ -104,6 +104,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;oqs.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
@ -112,16 +113,18 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;oqs.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
@ -144,6 +147,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;oqs.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
@ -154,10 +158,11 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
@ -166,6 +171,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;oqs.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
|
||||
169
VisualStudio/test_sig/test_sig.vcxproj
Normal file
169
VisualStudio/test_sig/test_sig.vcxproj
Normal file
@ -0,0 +1,169 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>15.0</VCProjectVersion>
|
||||
<ProjectGuid>{990D1E9C-75E0-4E17-8514-6DA0858BC17C}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>test_sig</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;WINDOWS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include</AdditionalIncludeDirectories>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;oqs.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)..\src\sig_picnic\external\Picnic-master\VisualStudio\openssl\lib\;$(SolutionDir)..\src\sig_picnic\external\Picnic-master\VisualStudio\$(Platform)\$(Configuration)\;$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WINDOWS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include</AdditionalIncludeDirectories>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;oqs.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)..\src\sig_picnic\external\Picnic-master\VisualStudio\openssl\lib\;$(SolutionDir)..\src\sig_picnic\external\Picnic-master\VisualStudio\$(Platform)\$(Configuration)\;$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;WINDOWS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include</AdditionalIncludeDirectories>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;oqs.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)..\src\sig_picnic\external\Picnic-master\VisualStudio\openssl\lib\;$(SolutionDir)..\src\sig_picnic\external\Picnic-master\VisualStudio\$(Platform)\$(Configuration)\;$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WINDOWS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)include</AdditionalIncludeDirectories>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;oqs.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)..\src\sig_picnic\external\Picnic-master\VisualStudio\openssl\lib\;$(SolutionDir)..\src\sig_picnic\external\Picnic-master\VisualStudio\$(Platform)\$(Configuration)\;$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>/ignore:4006 %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\sig\test_sig.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
22
VisualStudio/test_sig/test_sig.vcxproj.filters
Normal file
22
VisualStudio/test_sig/test_sig.vcxproj.filters
Normal file
@ -0,0 +1,22 @@
|
||||
<?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>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\sig\test_sig.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -157,7 +157,7 @@ int OQS_RAND_get_system_entropy(uint8_t *buf, size_t n) {
|
||||
#if defined(WINDOWS)
|
||||
HCRYPTPROV hCryptProv;
|
||||
if (!CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT) ||
|
||||
!CryptGenRandom(hCryptProv, n, buf)) {
|
||||
!CryptGenRandom(hCryptProv, (DWORD) n, buf)) {
|
||||
goto err;
|
||||
}
|
||||
#else
|
||||
|
||||
@ -17,6 +17,10 @@
|
||||
#include <oqs/rand.h>
|
||||
#include <oqs/rand_urandom_aesctr.h>
|
||||
|
||||
#if defined(WINDOWS)
|
||||
#define strdup _strdup // for strdup deprecation warning
|
||||
#endif
|
||||
|
||||
typedef struct oqs_rand_urandom_aesctr_ctx {
|
||||
uint64_t ctr;
|
||||
void *schedule;
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
#if defined(WINDOWS)
|
||||
#pragma warning(disable : 4267)
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#if defined(WINDOWS)
|
||||
#include <windows.h>
|
||||
@ -17,6 +21,10 @@
|
||||
|
||||
#include "external/chacha20.c"
|
||||
|
||||
#if defined(WINDOWS)
|
||||
#define strdup _strdup // for strdup deprecation warning
|
||||
#endif
|
||||
|
||||
typedef struct OQS_RAND_urandom_chacha20_ctx {
|
||||
uint8_t key[32];
|
||||
uint32_t nonce[2];
|
||||
|
||||
@ -5,6 +5,10 @@
|
||||
* from https://twitter.com/tweetfips202
|
||||
* by Gilles Van Assche, Daniel J. Bernstein, and Peter Schwabe */
|
||||
|
||||
#if defined(WINDOWS)
|
||||
#pragma warning(disable : 4244)
|
||||
#endif
|
||||
|
||||
#include <assert.h>
|
||||
#include <oqs/sha3.h>
|
||||
#include <stdint.h>
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
#if defined(WINDOWS)
|
||||
#pragma warning(disable : 4244 4293)
|
||||
#endif
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@ -222,7 +226,7 @@ static void cleanup_bob(uint8_t *bob_msg, uint8_t *bob_key) {
|
||||
free(bob_key);
|
||||
}
|
||||
|
||||
static int kex_bench_wrapper(OQS_RAND *rand, enum OQS_KEX_alg_name alg_name, const uint8_t *seed, const size_t seed_len, const char *named_parameters, const int seconds) {
|
||||
static int kex_bench_wrapper(OQS_RAND *rand, enum OQS_KEX_alg_name alg_name, const uint8_t *seed, const size_t seed_len, const char *named_parameters, const size_t seconds) {
|
||||
|
||||
OQS_KEX *kex = NULL;
|
||||
int rc;
|
||||
|
||||
@ -18,6 +18,10 @@
|
||||
#include "kex_code_mcbits.h"
|
||||
#include "mcbits.h"
|
||||
|
||||
#if defined(WINDOWS)
|
||||
#define strdup _strdup // for strdup deprecation warning
|
||||
#endif
|
||||
|
||||
OQS_KEX *OQS_KEX_code_mcbits_new(OQS_RAND *rand) {
|
||||
OQS_KEX *k = malloc(sizeof(OQS_KEX));
|
||||
if (k == NULL) {
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
#if defined(WINDOWS)
|
||||
#define strdup _strdup // for strdup deprecation warning
|
||||
#endif
|
||||
|
||||
OQS_KEX *MACRIFY(OQS_KEX_lwe_frodo_new)(OQS_RAND *rand, const uint8_t *seed, const size_t seed_len, const char *named_parameters) {
|
||||
|
||||
OQS_KEX *k;
|
||||
|
||||
@ -19,6 +19,10 @@
|
||||
#include "kyber.c"
|
||||
#include "params.h"
|
||||
|
||||
#if defined(WINDOWS)
|
||||
#define strdup _strdup // for strdup deprecation warning
|
||||
#endif
|
||||
|
||||
OQS_KEX *OQS_KEX_mlwe_kyber_new(OQS_RAND *rand) {
|
||||
OQS_KEX *k = malloc(sizeof(OQS_KEX));
|
||||
if (k == NULL) {
|
||||
|
||||
@ -1,6 +1,10 @@
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#if defined(WINDOWS)
|
||||
#pragma warning(disable : 4146 4244)
|
||||
#endif
|
||||
|
||||
/* returns 0 for equal strings, 1 for non-equal strings */
|
||||
static int verify(const unsigned char *a, const unsigned char *b, size_t len) {
|
||||
uint64_t r;
|
||||
|
||||
@ -21,6 +21,10 @@
|
||||
|
||||
#include <ntru_crypto.h>
|
||||
|
||||
#if defined(WINDOWS)
|
||||
#define strdup _strdup // for strdup deprecation warning
|
||||
#endif
|
||||
|
||||
#define NTRU_PARAMETER_SELECTION NTRU_EES743EP1
|
||||
#define NTRU_PARAMETER_SELECTION_NAME "EES743EP1"
|
||||
|
||||
|
||||
@ -21,6 +21,10 @@
|
||||
|
||||
#include "rlwe_a.h"
|
||||
|
||||
#if defined(WINDOWS)
|
||||
#define strdup _strdup // for strdup deprecation warning
|
||||
#endif
|
||||
|
||||
OQS_KEX *OQS_KEX_rlwe_bcns15_new(OQS_RAND *rand) {
|
||||
|
||||
OQS_KEX *k = malloc(sizeof(OQS_KEX));
|
||||
|
||||
@ -9,8 +9,7 @@
|
||||
*/
|
||||
|
||||
#if defined(WINDOWS)
|
||||
/* Disable error/warning for unary minus operator used in this file */
|
||||
#pragma warning(disable : 4146)
|
||||
#pragma warning(disable : 4146 4244 4267)
|
||||
#endif
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
@ -18,6 +18,10 @@
|
||||
#include "LatticeCrypto_priv.h"
|
||||
#include "kex_rlwe_msrln16.h"
|
||||
|
||||
#if defined(WINDOWS)
|
||||
#define strdup _strdup // for strdup deprecation warning
|
||||
#endif
|
||||
|
||||
OQS_KEX *OQS_KEX_rlwe_msrln16_new(OQS_RAND *rand) {
|
||||
|
||||
OQS_KEX *k = malloc(sizeof(OQS_KEX));
|
||||
|
||||
@ -19,6 +19,10 @@
|
||||
#include "newhope.c"
|
||||
#include "params.h"
|
||||
|
||||
#if defined(WINDOWS)
|
||||
#define strdup _strdup // for strdup deprecation warning
|
||||
#endif
|
||||
|
||||
OQS_KEX *OQS_KEX_rlwe_newhope_new(OQS_RAND *rand) {
|
||||
OQS_KEX *k = malloc(sizeof(OQS_KEX));
|
||||
if (k == NULL) {
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
#if defined(WINDOWS)
|
||||
#pragma warning(disable : 4047)
|
||||
#endif
|
||||
|
||||
#if defined(WINDOWS)
|
||||
#define UNUSED
|
||||
#else
|
||||
@ -17,6 +21,10 @@
|
||||
#include "SIDH.h"
|
||||
#include "kex_sidh_cln16.h"
|
||||
|
||||
#if defined(WINDOWS)
|
||||
#define strdup _strdup // for strdup deprecation warning
|
||||
#endif
|
||||
|
||||
static char *P751 = "p751";
|
||||
static char *CompressedP751 = "compressedp751";
|
||||
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
#if defined(WINDOWS)
|
||||
#pragma warning(disable : 4244 4293)
|
||||
#endif
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@ -4,6 +4,6 @@ noinst_LTLIBRARIES = libpicnic.la
|
||||
|
||||
libpicnic_la_SOURCES = sig_picnic.c external/Picnic-master/picnic.c external/Picnic-master/LowMCEnc.c external/Picnic-master/LowMC.c
|
||||
libpicnic_la_CPPFLAGS = -march=native -I$(OPENSSL_DIR)/include -I../../include -Iexternal/Picnic-master
|
||||
#libpicnic_la_CPPFLAGS += $(AM_CPPFLAGS)
|
||||
libpicnic_la_CPPFLAGS += $(AM_CPPFLAGS)
|
||||
libpicnic_la_CPPFLAGS += -std=c99
|
||||
|
||||
|
||||
@ -1,172 +1,174 @@
|
||||
#if defined(WINDOWS)
|
||||
#define UNUSED
|
||||
#else
|
||||
#define UNUSED __attribute__((unused))
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include <oqs/common.h>
|
||||
#include <oqs/sig.h>
|
||||
#include <oqs/rand.h>
|
||||
#include "sig_picnic.h"
|
||||
#include "picnic.h"
|
||||
|
||||
#define SERIALIZED_PUB_KEY_LEN (PICNIC_MAX_PUBLICKEY_SIZE + 1)
|
||||
#define SERIALIZED_PRIV_KEY_LEN (PICNIC_MAX_PRIVATEKEY_SIZE + 1 + SERIALIZED_PUB_KEY_LEN)
|
||||
|
||||
static char *Picnic_42_14_FS = "Picnic_42_14_FS";
|
||||
static char *Picnic_42_14_UR = "Picnic_42_14_UR";
|
||||
static char *Picnic_1_316_FS = "Picnic_1_316_FS";
|
||||
static char *Picnic_1_316_UR = "Picnic_1_316_UR";
|
||||
static char *Picnic_10_38_FS = "Picnic_10_38_FS";
|
||||
static char *Picnic_10_38_UR = "Picnic_10_38_UR";
|
||||
|
||||
// This flag indicates if OpenSSL is used by OQS (or an app including OQS, such
|
||||
// as OpenSSL itself). If so, then Picnic skips the initialization and shutdown
|
||||
// of OpenSSL, not to interfere with the containing app.
|
||||
static int USES_OPENSSL =
|
||||
#if USE_OPENSSL
|
||||
1;
|
||||
#else
|
||||
0;
|
||||
#endif
|
||||
|
||||
typedef struct PICNIC_CTX {
|
||||
picnic_params_t params;
|
||||
} PICNIC_CTX;
|
||||
|
||||
int OQS_SIG_picnic_get(OQS_SIG *s, enum OQS_SIG_algid algid) {
|
||||
if (s == NULL) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
// init the alg
|
||||
picnic_params_t params;
|
||||
char *name;
|
||||
switch (algid) {
|
||||
case OQS_SIG_picnic_42_14_FS:
|
||||
params = LowMC_256_256_42_14_FS;
|
||||
name = Picnic_42_14_FS;
|
||||
break;
|
||||
case OQS_SIG_picnic_42_14_UR:
|
||||
params = LowMC_256_256_42_14_UR;
|
||||
name = Picnic_42_14_UR;
|
||||
break;
|
||||
case OQS_SIG_picnic_1_316_FS:
|
||||
params = LowMC_256_256_1_316_FS;
|
||||
name = Picnic_1_316_FS;
|
||||
break;
|
||||
case OQS_SIG_picnic_1_316_UR:
|
||||
params = LowMC_256_256_1_316_UR;
|
||||
name = Picnic_1_316_UR;
|
||||
break;
|
||||
case OQS_SIG_picnic_default:
|
||||
case OQS_SIG_picnic_10_38_FS:
|
||||
params = LowMC_256_256_10_38_FS;
|
||||
name = Picnic_10_38_FS;
|
||||
break;
|
||||
case OQS_SIG_picnic_10_38_UR:
|
||||
params = LowMC_256_256_10_38_UR;
|
||||
name = Picnic_10_38_UR;
|
||||
break;
|
||||
default:
|
||||
return OQS_ERROR;
|
||||
}
|
||||
PICNIC_CTX *pctx = malloc(sizeof(PICNIC_CTX));
|
||||
if (pctx == NULL) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
pctx->params = params;
|
||||
// read the path to the picnic params (if undefined, NULL is
|
||||
// returned and passed to picnic_init, and the default is used).
|
||||
const char *params_path = getenv("PICNIC_PARAMS_PATH");
|
||||
if (picnic_init(params, params_path, USES_OPENSSL) != 0) {
|
||||
free(pctx);
|
||||
return OQS_ERROR;
|
||||
}
|
||||
|
||||
// set the scheme values
|
||||
s->method_name = name;
|
||||
s->estimated_classical_security = 256;
|
||||
s->estimated_quantum_security = 128;
|
||||
s->priv_key_len = SERIALIZED_PRIV_KEY_LEN;
|
||||
s->pub_key_len = SERIALIZED_PUB_KEY_LEN;
|
||||
s->max_sig_len = PICNIC_MAX_SIGNATURE_SIZE;
|
||||
s->keygen = &OQS_SIG_picnic_keygen;
|
||||
s->sign = &OQS_SIG_picnic_sign;
|
||||
s->verify = &OQS_SIG_picnic_verify;
|
||||
s->shutdown = &OQS_SIG_picnic_shutdown;
|
||||
s->ctx = pctx;
|
||||
return OQS_SUCCESS;
|
||||
}
|
||||
|
||||
int OQS_SIG_picnic_keygen(const OQS_SIG *s, uint8_t *priv, uint8_t *pub) {
|
||||
if (s == NULL || priv == NULL || pub == NULL) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
picnic_publickey_t pk;
|
||||
picnic_privatekey_t sk;
|
||||
picnic_params_t parameters = ((PICNIC_CTX *) s->ctx)->params;
|
||||
int ret = picnic_keygen(parameters, &pk, &sk);
|
||||
if (ret != 0) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
// serialize the public key
|
||||
if (picnic_write_public_key(&pk, pub, SERIALIZED_PUB_KEY_LEN) != SERIALIZED_PUB_KEY_LEN) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
// serialize the private key
|
||||
// 1. prepend the public key
|
||||
memcpy(priv, pub, SERIALIZED_PUB_KEY_LEN);
|
||||
// 2. write the private key
|
||||
if (picnic_write_private_key(&sk, priv + SERIALIZED_PUB_KEY_LEN, SERIALIZED_PRIV_KEY_LEN) != (PICNIC_MAX_PRIVATEKEY_SIZE + 1)) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
// wipe the private key
|
||||
OQS_MEM_cleanse(&sk, sizeof(picnic_privatekey_t));
|
||||
return OQS_SUCCESS;
|
||||
}
|
||||
|
||||
int OQS_SIG_picnic_sign(const OQS_SIG *s, const uint8_t *priv, const uint8_t *msg, const size_t msg_len, uint8_t *sig, size_t *sig_len) {
|
||||
if (s == NULL || priv == NULL || msg == NULL || sig == NULL || sig_len == NULL) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
picnic_privatekey_t sk;
|
||||
picnic_publickey_t pk;
|
||||
// deserialize the private key
|
||||
// 1. read the prepended public key
|
||||
if (picnic_read_public_key(&pk, priv, SERIALIZED_PUB_KEY_LEN) != 0) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
// 2. read the private key
|
||||
if (picnic_read_private_key(&sk, priv + SERIALIZED_PUB_KEY_LEN, SERIALIZED_PRIV_KEY_LEN, &pk) != 0) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
if (picnic_sign(&sk, msg, msg_len, sig, sig_len) != 0) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
return OQS_SUCCESS;
|
||||
}
|
||||
|
||||
int OQS_SIG_picnic_verify(UNUSED const OQS_SIG *s, const uint8_t *pub, const uint8_t *msg, const size_t msg_len, const uint8_t *sig, const size_t sig_len) {
|
||||
if (pub == NULL || msg == NULL || sig == NULL) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
picnic_publickey_t pk;
|
||||
// deserialize the private key
|
||||
if (picnic_read_public_key(&pk, pub, SERIALIZED_PUB_KEY_LEN) != 0) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
if (picnic_verify(&pk, msg, msg_len, sig, sig_len) != 0) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
return OQS_SUCCESS;
|
||||
}
|
||||
|
||||
int OQS_SIG_picnic_shutdown(OQS_SIG *s) {
|
||||
if (s == NULL) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
picnic_shutdown(USES_OPENSSL);
|
||||
free(s->ctx);
|
||||
return OQS_SUCCESS;
|
||||
}
|
||||
#if defined(ENABLE_PICNIC)
|
||||
#if defined(WINDOWS)
|
||||
#define UNUSED
|
||||
#else
|
||||
#define UNUSED __attribute__((unused))
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include <oqs/common.h>
|
||||
#include <oqs/sig.h>
|
||||
#include <oqs/rand.h>
|
||||
#include "sig_picnic.h"
|
||||
#include "picnic.h"
|
||||
|
||||
#define SERIALIZED_PUB_KEY_LEN (PICNIC_MAX_PUBLICKEY_SIZE + 1)
|
||||
#define SERIALIZED_PRIV_KEY_LEN (PICNIC_MAX_PRIVATEKEY_SIZE + 1 + SERIALIZED_PUB_KEY_LEN)
|
||||
|
||||
static char *Picnic_42_14_FS = "Picnic_42_14_FS";
|
||||
static char *Picnic_42_14_UR = "Picnic_42_14_UR";
|
||||
static char *Picnic_1_316_FS = "Picnic_1_316_FS";
|
||||
static char *Picnic_1_316_UR = "Picnic_1_316_UR";
|
||||
static char *Picnic_10_38_FS = "Picnic_10_38_FS";
|
||||
static char *Picnic_10_38_UR = "Picnic_10_38_UR";
|
||||
|
||||
// This flag indicates if OpenSSL is used by OQS (or an app including OQS, such
|
||||
// as OpenSSL itself). If so, then Picnic skips the initialization and shutdown
|
||||
// of OpenSSL, not to interfere with the containing app.
|
||||
static int USES_OPENSSL =
|
||||
#if USE_OPENSSL
|
||||
1;
|
||||
#else
|
||||
0;
|
||||
#endif
|
||||
|
||||
typedef struct PICNIC_CTX {
|
||||
picnic_params_t params;
|
||||
} PICNIC_CTX;
|
||||
|
||||
int OQS_SIG_picnic_get(OQS_SIG *s, enum OQS_SIG_algid algid) {
|
||||
if (s == NULL) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
// init the alg
|
||||
picnic_params_t params;
|
||||
char *name;
|
||||
switch (algid) {
|
||||
case OQS_SIG_picnic_42_14_FS:
|
||||
params = LowMC_256_256_42_14_FS;
|
||||
name = Picnic_42_14_FS;
|
||||
break;
|
||||
case OQS_SIG_picnic_42_14_UR:
|
||||
params = LowMC_256_256_42_14_UR;
|
||||
name = Picnic_42_14_UR;
|
||||
break;
|
||||
case OQS_SIG_picnic_1_316_FS:
|
||||
params = LowMC_256_256_1_316_FS;
|
||||
name = Picnic_1_316_FS;
|
||||
break;
|
||||
case OQS_SIG_picnic_1_316_UR:
|
||||
params = LowMC_256_256_1_316_UR;
|
||||
name = Picnic_1_316_UR;
|
||||
break;
|
||||
case OQS_SIG_picnic_default:
|
||||
case OQS_SIG_picnic_10_38_FS:
|
||||
params = LowMC_256_256_10_38_FS;
|
||||
name = Picnic_10_38_FS;
|
||||
break;
|
||||
case OQS_SIG_picnic_10_38_UR:
|
||||
params = LowMC_256_256_10_38_UR;
|
||||
name = Picnic_10_38_UR;
|
||||
break;
|
||||
default:
|
||||
return OQS_ERROR;
|
||||
}
|
||||
PICNIC_CTX *pctx = malloc(sizeof(PICNIC_CTX));
|
||||
if (pctx == NULL) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
pctx->params = params;
|
||||
// read the path to the picnic params (if undefined, NULL is
|
||||
// returned and passed to picnic_init, and the default is used).
|
||||
const char *params_path = getenv("PICNIC_PARAMS_PATH");
|
||||
if (picnic_init(params, params_path, USES_OPENSSL) != 0) {
|
||||
free(pctx);
|
||||
return OQS_ERROR;
|
||||
}
|
||||
|
||||
// set the scheme values
|
||||
s->method_name = name;
|
||||
s->estimated_classical_security = 256;
|
||||
s->estimated_quantum_security = 128;
|
||||
s->priv_key_len = SERIALIZED_PRIV_KEY_LEN;
|
||||
s->pub_key_len = SERIALIZED_PUB_KEY_LEN;
|
||||
s->max_sig_len = PICNIC_MAX_SIGNATURE_SIZE;
|
||||
s->keygen = &OQS_SIG_picnic_keygen;
|
||||
s->sign = &OQS_SIG_picnic_sign;
|
||||
s->verify = &OQS_SIG_picnic_verify;
|
||||
s->shutdown = &OQS_SIG_picnic_shutdown;
|
||||
s->ctx = pctx;
|
||||
return OQS_SUCCESS;
|
||||
}
|
||||
|
||||
int OQS_SIG_picnic_keygen(const OQS_SIG *s, uint8_t *priv, uint8_t *pub) {
|
||||
if (s == NULL || priv == NULL || pub == NULL) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
picnic_publickey_t pk;
|
||||
picnic_privatekey_t sk;
|
||||
picnic_params_t parameters = ((PICNIC_CTX *) s->ctx)->params;
|
||||
int ret = picnic_keygen(parameters, &pk, &sk);
|
||||
if (ret != 0) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
// serialize the public key
|
||||
if (picnic_write_public_key(&pk, pub, SERIALIZED_PUB_KEY_LEN) != SERIALIZED_PUB_KEY_LEN) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
// serialize the private key
|
||||
// 1. prepend the public key
|
||||
memcpy(priv, pub, SERIALIZED_PUB_KEY_LEN);
|
||||
// 2. write the private key
|
||||
if (picnic_write_private_key(&sk, priv + SERIALIZED_PUB_KEY_LEN, SERIALIZED_PRIV_KEY_LEN) != (PICNIC_MAX_PRIVATEKEY_SIZE + 1)) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
// wipe the private key
|
||||
OQS_MEM_cleanse(&sk, sizeof(picnic_privatekey_t));
|
||||
return OQS_SUCCESS;
|
||||
}
|
||||
|
||||
int OQS_SIG_picnic_sign(const OQS_SIG *s, const uint8_t *priv, const uint8_t *msg, const size_t msg_len, uint8_t *sig, size_t *sig_len) {
|
||||
if (s == NULL || priv == NULL || msg == NULL || sig == NULL || sig_len == NULL) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
picnic_privatekey_t sk;
|
||||
picnic_publickey_t pk;
|
||||
// deserialize the private key
|
||||
// 1. read the prepended public key
|
||||
if (picnic_read_public_key(&pk, priv, SERIALIZED_PUB_KEY_LEN) != 0) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
// 2. read the private key
|
||||
if (picnic_read_private_key(&sk, priv + SERIALIZED_PUB_KEY_LEN, SERIALIZED_PRIV_KEY_LEN, &pk) != 0) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
if (picnic_sign(&sk, msg, msg_len, sig, sig_len) != 0) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
return OQS_SUCCESS;
|
||||
}
|
||||
|
||||
int OQS_SIG_picnic_verify(UNUSED const OQS_SIG *s, const uint8_t *pub, const uint8_t *msg, const size_t msg_len, const uint8_t *sig, const size_t sig_len) {
|
||||
if (pub == NULL || msg == NULL || sig == NULL) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
picnic_publickey_t pk;
|
||||
// deserialize the private key
|
||||
if (picnic_read_public_key(&pk, pub, SERIALIZED_PUB_KEY_LEN) != 0) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
if (picnic_verify(&pk, msg, msg_len, sig, sig_len) != 0) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
return OQS_SUCCESS;
|
||||
}
|
||||
|
||||
int OQS_SIG_picnic_shutdown(OQS_SIG *s) {
|
||||
if (s == NULL) {
|
||||
return OQS_ERROR;
|
||||
}
|
||||
picnic_shutdown(USES_OPENSSL);
|
||||
free(s->ctx);
|
||||
return OQS_SUCCESS;
|
||||
}
|
||||
#endif // ENABLE_PICNIC
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user