sorcery-argon2 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +0 -2
- data/.rubocop.yml +34 -2
- data/CHANGELOG.md +4 -0
- data/MAINTAINING.md +8 -3
- data/bin/setup +3 -0
- data/ext/phc-winner-argon2/.gitattributes +10 -0
- data/ext/phc-winner-argon2/.gitignore +22 -0
- data/ext/phc-winner-argon2/.travis.yml +25 -0
- data/ext/phc-winner-argon2/Argon2.sln +158 -0
- data/ext/phc-winner-argon2/CHANGELOG.md +32 -0
- data/ext/phc-winner-argon2/LICENSE +314 -0
- data/ext/phc-winner-argon2/Makefile +255 -0
- data/ext/phc-winner-argon2/Package.swift +46 -0
- data/ext/phc-winner-argon2/README.md +303 -0
- data/ext/phc-winner-argon2/appveyor.yml +25 -0
- data/ext/phc-winner-argon2/argon2-specs.pdf +0 -0
- data/ext/phc-winner-argon2/export.sh +7 -0
- data/ext/phc-winner-argon2/include/argon2.h +437 -0
- data/ext/phc-winner-argon2/kats/argon2d +12304 -0
- data/ext/phc-winner-argon2/kats/argon2d.shasum +1 -0
- data/ext/phc-winner-argon2/kats/argon2d_v16 +12304 -0
- data/ext/phc-winner-argon2/kats/argon2d_v16.shasum +1 -0
- data/ext/phc-winner-argon2/kats/argon2i +12304 -0
- data/ext/phc-winner-argon2/kats/argon2i.shasum +1 -0
- data/ext/phc-winner-argon2/kats/argon2i_v16 +12304 -0
- data/ext/phc-winner-argon2/kats/argon2i_v16.shasum +1 -0
- data/ext/phc-winner-argon2/kats/argon2id +12304 -0
- data/ext/phc-winner-argon2/kats/argon2id.shasum +1 -0
- data/ext/phc-winner-argon2/kats/argon2id_v16 +12304 -0
- data/ext/phc-winner-argon2/kats/argon2id_v16.shasum +1 -0
- data/ext/phc-winner-argon2/kats/check-sums.ps1 +42 -0
- data/ext/phc-winner-argon2/kats/check-sums.sh +13 -0
- data/ext/phc-winner-argon2/kats/test.ps1 +50 -0
- data/ext/phc-winner-argon2/kats/test.sh +49 -0
- data/ext/phc-winner-argon2/latex/IEEEtran.cls +6347 -0
- data/ext/phc-winner-argon2/latex/Makefile +18 -0
- data/ext/phc-winner-argon2/latex/argon2-specs.tex +920 -0
- data/ext/phc-winner-argon2/latex/pics/argon2-par.pdf +0 -0
- data/ext/phc-winner-argon2/latex/pics/compression.pdf +0 -0
- data/ext/phc-winner-argon2/latex/pics/generic.pdf +0 -0
- data/ext/phc-winner-argon2/latex/pics/power-distribution.jpg +0 -0
- data/ext/phc-winner-argon2/latex/tradeoff.bib +822 -0
- data/ext/phc-winner-argon2/libargon2.pc.in +18 -0
- data/ext/phc-winner-argon2/man/argon2.1 +57 -0
- data/ext/phc-winner-argon2/src/argon2.c +452 -0
- data/ext/phc-winner-argon2/src/bench.c +111 -0
- data/ext/phc-winner-argon2/src/blake2/blake2-impl.h +156 -0
- data/ext/phc-winner-argon2/src/blake2/blake2.h +89 -0
- data/ext/phc-winner-argon2/src/blake2/blake2b.c +390 -0
- data/ext/phc-winner-argon2/src/blake2/blamka-round-opt.h +471 -0
- data/ext/phc-winner-argon2/src/blake2/blamka-round-ref.h +56 -0
- data/ext/phc-winner-argon2/src/core.c +648 -0
- data/ext/phc-winner-argon2/src/core.h +228 -0
- data/ext/phc-winner-argon2/src/encoding.c +463 -0
- data/ext/phc-winner-argon2/src/encoding.h +57 -0
- data/ext/phc-winner-argon2/src/genkat.c +213 -0
- data/ext/phc-winner-argon2/src/genkat.h +51 -0
- data/ext/phc-winner-argon2/src/opt.c +283 -0
- data/ext/phc-winner-argon2/src/ref.c +194 -0
- data/ext/phc-winner-argon2/src/run.c +337 -0
- data/ext/phc-winner-argon2/src/test.c +289 -0
- data/ext/phc-winner-argon2/src/thread.c +57 -0
- data/ext/phc-winner-argon2/src/thread.h +67 -0
- data/ext/phc-winner-argon2/vs2015/Argon2Opt/Argon2Opt.vcxproj +231 -0
- data/ext/phc-winner-argon2/vs2015/Argon2Opt/Argon2Opt.vcxproj.filters +69 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptBench/Argon2OptBench.vcxproj +231 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptBench/Argon2OptBench.vcxproj.filters +69 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptDll/Argon2OptDll.vcxproj +230 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptDll/Argon2OptDll.vcxproj.filters +66 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptGenKAT/Argon2OptGenKAT.vcxproj +244 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptGenKAT/Argon2OptGenKAT.vcxproj.filters +72 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptTestCI/Argon2OptTestCI.vcxproj +235 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptTestCI/Argon2OptTestCI.vcxproj.filters +69 -0
- data/ext/phc-winner-argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj +243 -0
- data/ext/phc-winner-argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj.filters +69 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefBench/Argon2RefBench.vcxproj +231 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefBench/Argon2RefBench.vcxproj.filters +69 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefDll/Argon2RefDll.vcxproj +230 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefDll/Argon2RefDll.vcxproj.filters +66 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefGenKAT/Argon2RefGenKAT.vcxproj +232 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefGenKAT/Argon2RefGenKAT.vcxproj.filters +72 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefTestCI/Argon2RefTestCI.vcxproj +231 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefTestCI/Argon2RefTestCI.vcxproj.filters +69 -0
- data/lib/argon2/ffi_engine.rb +4 -4
- data/lib/argon2/password.rb +11 -3
- data/lib/argon2/version.rb +1 -1
- metadata +84 -3
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
3
|
+
<ItemGroup>
|
|
4
|
+
<Filter Include="Source Files">
|
|
5
|
+
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
6
|
+
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
7
|
+
</Filter>
|
|
8
|
+
<Filter Include="Header Files">
|
|
9
|
+
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
10
|
+
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
|
11
|
+
</Filter>
|
|
12
|
+
<Filter Include="Resource Files">
|
|
13
|
+
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
|
14
|
+
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
|
15
|
+
</Filter>
|
|
16
|
+
</ItemGroup>
|
|
17
|
+
<ItemGroup>
|
|
18
|
+
<ClInclude Include="..\..\include\argon2.h">
|
|
19
|
+
<Filter>Header Files</Filter>
|
|
20
|
+
</ClInclude>
|
|
21
|
+
<ClInclude Include="..\..\src\core.h">
|
|
22
|
+
<Filter>Header Files</Filter>
|
|
23
|
+
</ClInclude>
|
|
24
|
+
<ClInclude Include="..\..\src\encoding.h">
|
|
25
|
+
<Filter>Header Files</Filter>
|
|
26
|
+
</ClInclude>
|
|
27
|
+
<ClInclude Include="..\..\src\genkat.h">
|
|
28
|
+
<Filter>Header Files</Filter>
|
|
29
|
+
</ClInclude>
|
|
30
|
+
<ClInclude Include="..\..\src\ref.h">
|
|
31
|
+
<Filter>Header Files</Filter>
|
|
32
|
+
</ClInclude>
|
|
33
|
+
<ClInclude Include="..\..\src\thread.h">
|
|
34
|
+
<Filter>Header Files</Filter>
|
|
35
|
+
</ClInclude>
|
|
36
|
+
<ClInclude Include="..\..\src\blake2\blake2.h">
|
|
37
|
+
<Filter>Header Files</Filter>
|
|
38
|
+
</ClInclude>
|
|
39
|
+
<ClInclude Include="..\..\src\blake2\blake2-impl.h">
|
|
40
|
+
<Filter>Header Files</Filter>
|
|
41
|
+
</ClInclude>
|
|
42
|
+
<ClInclude Include="..\..\src\blake2\blamka-round-opt.h">
|
|
43
|
+
<Filter>Header Files</Filter>
|
|
44
|
+
</ClInclude>
|
|
45
|
+
<ClInclude Include="..\..\src\blake2\blamka-round-ref.h">
|
|
46
|
+
<Filter>Header Files</Filter>
|
|
47
|
+
</ClInclude>
|
|
48
|
+
</ItemGroup>
|
|
49
|
+
<ItemGroup>
|
|
50
|
+
<ClCompile Include="..\..\src\blake2\blake2b.c">
|
|
51
|
+
<Filter>Source Files</Filter>
|
|
52
|
+
</ClCompile>
|
|
53
|
+
<ClCompile Include="..\..\src\argon2.c">
|
|
54
|
+
<Filter>Source Files</Filter>
|
|
55
|
+
</ClCompile>
|
|
56
|
+
<ClCompile Include="..\..\src\core.c">
|
|
57
|
+
<Filter>Source Files</Filter>
|
|
58
|
+
</ClCompile>
|
|
59
|
+
<ClCompile Include="..\..\src\encoding.c">
|
|
60
|
+
<Filter>Source Files</Filter>
|
|
61
|
+
</ClCompile>
|
|
62
|
+
<ClCompile Include="..\..\src\genkat.c">
|
|
63
|
+
<Filter>Source Files</Filter>
|
|
64
|
+
</ClCompile>
|
|
65
|
+
<ClCompile Include="..\..\src\ref.c">
|
|
66
|
+
<Filter>Source Files</Filter>
|
|
67
|
+
</ClCompile>
|
|
68
|
+
<ClCompile Include="..\..\src\thread.c">
|
|
69
|
+
<Filter>Source Files</Filter>
|
|
70
|
+
</ClCompile>
|
|
71
|
+
</ItemGroup>
|
|
72
|
+
</Project>
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
3
|
+
<ItemGroup Label="ProjectConfigurations">
|
|
4
|
+
<ProjectConfiguration Include="Debug|Win32">
|
|
5
|
+
<Configuration>Debug</Configuration>
|
|
6
|
+
<Platform>Win32</Platform>
|
|
7
|
+
</ProjectConfiguration>
|
|
8
|
+
<ProjectConfiguration Include="ReleaseStatic|Win32">
|
|
9
|
+
<Configuration>ReleaseStatic</Configuration>
|
|
10
|
+
<Platform>Win32</Platform>
|
|
11
|
+
</ProjectConfiguration>
|
|
12
|
+
<ProjectConfiguration Include="ReleaseStatic|x64">
|
|
13
|
+
<Configuration>ReleaseStatic</Configuration>
|
|
14
|
+
<Platform>x64</Platform>
|
|
15
|
+
</ProjectConfiguration>
|
|
16
|
+
<ProjectConfiguration Include="Release|Win32">
|
|
17
|
+
<Configuration>Release</Configuration>
|
|
18
|
+
<Platform>Win32</Platform>
|
|
19
|
+
</ProjectConfiguration>
|
|
20
|
+
<ProjectConfiguration Include="Debug|x64">
|
|
21
|
+
<Configuration>Debug</Configuration>
|
|
22
|
+
<Platform>x64</Platform>
|
|
23
|
+
</ProjectConfiguration>
|
|
24
|
+
<ProjectConfiguration Include="Release|x64">
|
|
25
|
+
<Configuration>Release</Configuration>
|
|
26
|
+
<Platform>x64</Platform>
|
|
27
|
+
</ProjectConfiguration>
|
|
28
|
+
</ItemGroup>
|
|
29
|
+
<PropertyGroup Label="Globals">
|
|
30
|
+
<ProjectGuid>{8A1F7F84-34AF-4DB2-9D58-D4823DFE79E9}</ProjectGuid>
|
|
31
|
+
<RootNamespace>Argon2RefTestCI</RootNamespace>
|
|
32
|
+
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
|
33
|
+
</PropertyGroup>
|
|
34
|
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
35
|
+
<!-- Set DefaultPlatformToolset to v100 (VS2010) if not defined -->
|
|
36
|
+
<PropertyGroup Label="EmptyDefaultPlatformToolset">
|
|
37
|
+
<DefaultPlatformToolset Condition=" '$(DefaultPlatformToolset)' == '' ">v100</DefaultPlatformToolset>
|
|
38
|
+
</PropertyGroup>
|
|
39
|
+
<PropertyGroup Label="PlatformToolset">
|
|
40
|
+
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
|
41
|
+
</PropertyGroup>
|
|
42
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
43
|
+
<ConfigurationType>Application</ConfigurationType>
|
|
44
|
+
<UseDebugLibraries>true</UseDebugLibraries>
|
|
45
|
+
<CharacterSet>MultiByte</CharacterSet>
|
|
46
|
+
</PropertyGroup>
|
|
47
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
48
|
+
<ConfigurationType>Application</ConfigurationType>
|
|
49
|
+
<UseDebugLibraries>false</UseDebugLibraries>
|
|
50
|
+
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
51
|
+
<CharacterSet>MultiByte</CharacterSet>
|
|
52
|
+
</PropertyGroup>
|
|
53
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|Win32'" Label="Configuration">
|
|
54
|
+
<ConfigurationType>Application</ConfigurationType>
|
|
55
|
+
<UseDebugLibraries>false</UseDebugLibraries>
|
|
56
|
+
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
57
|
+
<CharacterSet>MultiByte</CharacterSet>
|
|
58
|
+
</PropertyGroup>
|
|
59
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
|
60
|
+
<ConfigurationType>Application</ConfigurationType>
|
|
61
|
+
<UseDebugLibraries>true</UseDebugLibraries>
|
|
62
|
+
<CharacterSet>MultiByte</CharacterSet>
|
|
63
|
+
</PropertyGroup>
|
|
64
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
|
65
|
+
<ConfigurationType>Application</ConfigurationType>
|
|
66
|
+
<UseDebugLibraries>false</UseDebugLibraries>
|
|
67
|
+
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
68
|
+
<CharacterSet>MultiByte</CharacterSet>
|
|
69
|
+
</PropertyGroup>
|
|
70
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|x64'" Label="Configuration">
|
|
71
|
+
<ConfigurationType>Application</ConfigurationType>
|
|
72
|
+
<UseDebugLibraries>false</UseDebugLibraries>
|
|
73
|
+
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
74
|
+
<CharacterSet>MultiByte</CharacterSet>
|
|
75
|
+
</PropertyGroup>
|
|
76
|
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
77
|
+
<ImportGroup Label="ExtensionSettings">
|
|
78
|
+
</ImportGroup>
|
|
79
|
+
<ImportGroup Label="Shared">
|
|
80
|
+
</ImportGroup>
|
|
81
|
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
82
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
83
|
+
</ImportGroup>
|
|
84
|
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
85
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
86
|
+
</ImportGroup>
|
|
87
|
+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|Win32'" Label="PropertySheets">
|
|
88
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
89
|
+
</ImportGroup>
|
|
90
|
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
91
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
92
|
+
</ImportGroup>
|
|
93
|
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
94
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
95
|
+
</ImportGroup>
|
|
96
|
+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|x64'" Label="PropertySheets">
|
|
97
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
98
|
+
</ImportGroup>
|
|
99
|
+
<PropertyGroup Label="UserMacros" />
|
|
100
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
101
|
+
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
|
|
102
|
+
<OutDir>$(SolutionDir)vs2015\build\</OutDir>
|
|
103
|
+
<IntDir>$(SolutionDir)vs2015\build\$(ProjectName)\</IntDir>
|
|
104
|
+
</PropertyGroup>
|
|
105
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
106
|
+
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
|
|
107
|
+
<OutDir>$(SolutionDir)vs2015\build\</OutDir>
|
|
108
|
+
<IntDir>$(SolutionDir)vs2015\build\$(ProjectName)\</IntDir>
|
|
109
|
+
</PropertyGroup>
|
|
110
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|Win32'">
|
|
111
|
+
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
|
|
112
|
+
<OutDir>$(SolutionDir)vs2015\build\</OutDir>
|
|
113
|
+
<IntDir>$(SolutionDir)vs2015\build\$(ProjectName)\</IntDir>
|
|
114
|
+
</PropertyGroup>
|
|
115
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
116
|
+
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
|
|
117
|
+
<OutDir>$(SolutionDir)vs2015\build\</OutDir>
|
|
118
|
+
<IntDir>$(SolutionDir)vs2015\build\$(ProjectName)\</IntDir>
|
|
119
|
+
</PropertyGroup>
|
|
120
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
121
|
+
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
|
|
122
|
+
<OutDir>$(SolutionDir)vs2015\build\</OutDir>
|
|
123
|
+
<IntDir>$(SolutionDir)vs2015\build\$(ProjectName)\</IntDir>
|
|
124
|
+
</PropertyGroup>
|
|
125
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|x64'">
|
|
126
|
+
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
|
|
127
|
+
<OutDir>$(SolutionDir)vs2015\build\</OutDir>
|
|
128
|
+
<IntDir>$(SolutionDir)vs2015\build\$(ProjectName)\</IntDir>
|
|
129
|
+
</PropertyGroup>
|
|
130
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
131
|
+
<ClCompile>
|
|
132
|
+
<WarningLevel>Level3</WarningLevel>
|
|
133
|
+
<Optimization>Disabled</Optimization>
|
|
134
|
+
<SDLCheck>true</SDLCheck>
|
|
135
|
+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
136
|
+
</ClCompile>
|
|
137
|
+
</ItemDefinitionGroup>
|
|
138
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
139
|
+
<ClCompile>
|
|
140
|
+
<WarningLevel>Level3</WarningLevel>
|
|
141
|
+
<Optimization>Disabled</Optimization>
|
|
142
|
+
<SDLCheck>true</SDLCheck>
|
|
143
|
+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
144
|
+
</ClCompile>
|
|
145
|
+
</ItemDefinitionGroup>
|
|
146
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
147
|
+
<ClCompile>
|
|
148
|
+
<WarningLevel>Level3</WarningLevel>
|
|
149
|
+
<Optimization>MaxSpeed</Optimization>
|
|
150
|
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
151
|
+
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
152
|
+
<SDLCheck>true</SDLCheck>
|
|
153
|
+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
154
|
+
</ClCompile>
|
|
155
|
+
<Link>
|
|
156
|
+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
157
|
+
<OptimizeReferences>true</OptimizeReferences>
|
|
158
|
+
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
159
|
+
</Link>
|
|
160
|
+
</ItemDefinitionGroup>
|
|
161
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|Win32'">
|
|
162
|
+
<ClCompile>
|
|
163
|
+
<WarningLevel>Level3</WarningLevel>
|
|
164
|
+
<Optimization>MaxSpeed</Optimization>
|
|
165
|
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
166
|
+
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
167
|
+
<SDLCheck>true</SDLCheck>
|
|
168
|
+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
169
|
+
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
170
|
+
</ClCompile>
|
|
171
|
+
<Link>
|
|
172
|
+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
173
|
+
<OptimizeReferences>true</OptimizeReferences>
|
|
174
|
+
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
175
|
+
</Link>
|
|
176
|
+
</ItemDefinitionGroup>
|
|
177
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
178
|
+
<ClCompile>
|
|
179
|
+
<WarningLevel>Level3</WarningLevel>
|
|
180
|
+
<Optimization>MaxSpeed</Optimization>
|
|
181
|
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
182
|
+
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
183
|
+
<SDLCheck>true</SDLCheck>
|
|
184
|
+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
185
|
+
</ClCompile>
|
|
186
|
+
<Link>
|
|
187
|
+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
188
|
+
<OptimizeReferences>true</OptimizeReferences>
|
|
189
|
+
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
190
|
+
</Link>
|
|
191
|
+
</ItemDefinitionGroup>
|
|
192
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStatic|x64'">
|
|
193
|
+
<ClCompile>
|
|
194
|
+
<WarningLevel>Level3</WarningLevel>
|
|
195
|
+
<Optimization>MaxSpeed</Optimization>
|
|
196
|
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
197
|
+
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
198
|
+
<SDLCheck>true</SDLCheck>
|
|
199
|
+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
200
|
+
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
201
|
+
</ClCompile>
|
|
202
|
+
<Link>
|
|
203
|
+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
204
|
+
<OptimizeReferences>true</OptimizeReferences>
|
|
205
|
+
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
206
|
+
</Link>
|
|
207
|
+
</ItemDefinitionGroup>
|
|
208
|
+
<ItemGroup>
|
|
209
|
+
<ClCompile Include="..\..\src\argon2.c" />
|
|
210
|
+
<ClCompile Include="..\..\src\blake2\blake2b.c" />
|
|
211
|
+
<ClCompile Include="..\..\src\core.c" />
|
|
212
|
+
<ClCompile Include="..\..\src\encoding.c" />
|
|
213
|
+
<ClCompile Include="..\..\src\ref.c" />
|
|
214
|
+
<ClCompile Include="..\..\src\test.c" />
|
|
215
|
+
<ClCompile Include="..\..\src\thread.c" />
|
|
216
|
+
</ItemGroup>
|
|
217
|
+
<ItemGroup>
|
|
218
|
+
<ClInclude Include="..\..\include\argon2.h" />
|
|
219
|
+
<ClInclude Include="..\..\src\blake2\blake2-impl.h" />
|
|
220
|
+
<ClInclude Include="..\..\src\blake2\blake2.h" />
|
|
221
|
+
<ClInclude Include="..\..\src\blake2\blamka-round-opt.h" />
|
|
222
|
+
<ClInclude Include="..\..\src\blake2\blamka-round-ref.h" />
|
|
223
|
+
<ClInclude Include="..\..\src\core.h" />
|
|
224
|
+
<ClInclude Include="..\..\src\encoding.h" />
|
|
225
|
+
<ClInclude Include="..\..\src\ref.h" />
|
|
226
|
+
<ClInclude Include="..\..\src\thread.h" />
|
|
227
|
+
</ItemGroup>
|
|
228
|
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
229
|
+
<ImportGroup Label="ExtensionTargets">
|
|
230
|
+
</ImportGroup>
|
|
231
|
+
</Project>
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
3
|
+
<ItemGroup>
|
|
4
|
+
<Filter Include="Source Files">
|
|
5
|
+
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
6
|
+
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
|
7
|
+
</Filter>
|
|
8
|
+
<Filter Include="Header Files">
|
|
9
|
+
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
10
|
+
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
|
11
|
+
</Filter>
|
|
12
|
+
<Filter Include="Resource Files">
|
|
13
|
+
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
|
14
|
+
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
|
15
|
+
</Filter>
|
|
16
|
+
</ItemGroup>
|
|
17
|
+
<ItemGroup>
|
|
18
|
+
<ClCompile Include="..\..\src\argon2.c">
|
|
19
|
+
<Filter>Source Files</Filter>
|
|
20
|
+
</ClCompile>
|
|
21
|
+
<ClCompile Include="..\..\src\core.c">
|
|
22
|
+
<Filter>Source Files</Filter>
|
|
23
|
+
</ClCompile>
|
|
24
|
+
<ClCompile Include="..\..\src\encoding.c">
|
|
25
|
+
<Filter>Source Files</Filter>
|
|
26
|
+
</ClCompile>
|
|
27
|
+
<ClCompile Include="..\..\src\ref.c">
|
|
28
|
+
<Filter>Source Files</Filter>
|
|
29
|
+
</ClCompile>
|
|
30
|
+
<ClCompile Include="..\..\src\test.c">
|
|
31
|
+
<Filter>Source Files</Filter>
|
|
32
|
+
</ClCompile>
|
|
33
|
+
<ClCompile Include="..\..\src\thread.c">
|
|
34
|
+
<Filter>Source Files</Filter>
|
|
35
|
+
</ClCompile>
|
|
36
|
+
<ClCompile Include="..\..\src\blake2\blake2b.c">
|
|
37
|
+
<Filter>Source Files</Filter>
|
|
38
|
+
</ClCompile>
|
|
39
|
+
</ItemGroup>
|
|
40
|
+
<ItemGroup>
|
|
41
|
+
<ClInclude Include="..\..\include\argon2.h">
|
|
42
|
+
<Filter>Header Files</Filter>
|
|
43
|
+
</ClInclude>
|
|
44
|
+
<ClInclude Include="..\..\src\blake2\blake2.h">
|
|
45
|
+
<Filter>Header Files</Filter>
|
|
46
|
+
</ClInclude>
|
|
47
|
+
<ClInclude Include="..\..\src\blake2\blake2-impl.h">
|
|
48
|
+
<Filter>Header Files</Filter>
|
|
49
|
+
</ClInclude>
|
|
50
|
+
<ClInclude Include="..\..\src\core.h">
|
|
51
|
+
<Filter>Header Files</Filter>
|
|
52
|
+
</ClInclude>
|
|
53
|
+
<ClInclude Include="..\..\src\encoding.h">
|
|
54
|
+
<Filter>Header Files</Filter>
|
|
55
|
+
</ClInclude>
|
|
56
|
+
<ClInclude Include="..\..\src\ref.h">
|
|
57
|
+
<Filter>Header Files</Filter>
|
|
58
|
+
</ClInclude>
|
|
59
|
+
<ClInclude Include="..\..\src\thread.h">
|
|
60
|
+
<Filter>Header Files</Filter>
|
|
61
|
+
</ClInclude>
|
|
62
|
+
<ClInclude Include="..\..\src\blake2\blamka-round-opt.h">
|
|
63
|
+
<Filter>Header Files</Filter>
|
|
64
|
+
</ClInclude>
|
|
65
|
+
<ClInclude Include="..\..\src\blake2\blamka-round-ref.h">
|
|
66
|
+
<Filter>Header Files</Filter>
|
|
67
|
+
</ClInclude>
|
|
68
|
+
</ItemGroup>
|
|
69
|
+
</Project>
|
data/lib/argon2/ffi_engine.rb
CHANGED
|
@@ -67,13 +67,13 @@ module Argon2
|
|
|
67
67
|
result.unpack('H*').join
|
|
68
68
|
end
|
|
69
69
|
|
|
70
|
-
def self.hash_argon2id(password, salt, t_cost, m_cost, out_len = nil)
|
|
70
|
+
def self.hash_argon2id(password, salt, t_cost, m_cost, p_cost, out_len = nil)
|
|
71
71
|
out_len = (out_len || Constants::OUT_LEN).to_i
|
|
72
72
|
raise ::Argon2::Errors::InvalidOutputLength if out_len < 1
|
|
73
73
|
|
|
74
74
|
result = ''
|
|
75
75
|
FFI::MemoryPointer.new(:char, out_len) do |buffer|
|
|
76
|
-
ret = Ext.argon2id_hash_raw(t_cost, 1 << m_cost,
|
|
76
|
+
ret = Ext.argon2id_hash_raw(t_cost, 1 << m_cost, p_cost, password,
|
|
77
77
|
password.length, salt, salt.length,
|
|
78
78
|
buffer, out_len)
|
|
79
79
|
raise ::Argon2::Errors::ExtError, ERRORS[ret.abs] unless ret.zero?
|
|
@@ -83,7 +83,7 @@ module Argon2
|
|
|
83
83
|
result.unpack('H*').join
|
|
84
84
|
end
|
|
85
85
|
|
|
86
|
-
def self.hash_argon2id_encode(password, salt, t_cost, m_cost, secret)
|
|
86
|
+
def self.hash_argon2id_encode(password, salt, t_cost, m_cost, p_cost, secret)
|
|
87
87
|
result = ''
|
|
88
88
|
secretlen = secret.nil? ? 0 : secret.bytesize
|
|
89
89
|
passwordlen = password.nil? ? 0 : password.bytesize
|
|
@@ -92,7 +92,7 @@ module Argon2
|
|
|
92
92
|
FFI::MemoryPointer.new(:char, Constants::ENCODE_LEN) do |buffer|
|
|
93
93
|
ret = Ext.argon2_wrap(buffer, password, passwordlen,
|
|
94
94
|
salt, salt.length, t_cost, (1 << m_cost),
|
|
95
|
-
|
|
95
|
+
p_cost, secret, secretlen)
|
|
96
96
|
raise ::Argon2::Errors::ExtError, ERRORS[ret.abs] unless ret.zero?
|
|
97
97
|
|
|
98
98
|
result = buffer.read_string(Constants::ENCODE_LEN)
|
data/lib/argon2/password.rb
CHANGED
|
@@ -19,6 +19,13 @@ module Argon2
|
|
|
19
19
|
MIN_M_COST = 3
|
|
20
20
|
# Used to validate the maximum acceptable memory cost
|
|
21
21
|
MAX_M_COST = 31
|
|
22
|
+
# Used as the default parallelism cost if one isn't provided when calling
|
|
23
|
+
# Argon2::Password.create
|
|
24
|
+
DEFAULT_P_COST = 1
|
|
25
|
+
# Used to validate the minimum acceptable parallelism cost
|
|
26
|
+
MIN_P_COST = 1
|
|
27
|
+
# Used to validate the maximum acceptable parallelism cost
|
|
28
|
+
MAX_P_COST = 8
|
|
22
29
|
# The complete Argon2 digest string (not to be confused with the checksum).
|
|
23
30
|
attr_reader :digest
|
|
24
31
|
# The hash portion of the stored password hash.
|
|
@@ -55,6 +62,7 @@ module Argon2
|
|
|
55
62
|
#
|
|
56
63
|
# * :t_cost
|
|
57
64
|
# * :m_cost
|
|
65
|
+
# * :p_cost
|
|
58
66
|
# * :secret
|
|
59
67
|
#
|
|
60
68
|
def create(password, options = {})
|
|
@@ -62,18 +70,18 @@ module Argon2
|
|
|
62
70
|
|
|
63
71
|
t_cost = options[:t_cost] || DEFAULT_T_COST
|
|
64
72
|
m_cost = options[:m_cost] || DEFAULT_M_COST
|
|
73
|
+
p_cost = options[:p_cost] || DEFAULT_P_COST
|
|
65
74
|
|
|
66
75
|
raise Argon2::Errors::InvalidTCost if t_cost < MIN_T_COST || t_cost > MAX_T_COST
|
|
67
76
|
raise Argon2::Errors::InvalidMCost if m_cost < MIN_M_COST || m_cost > MAX_M_COST
|
|
68
|
-
|
|
69
|
-
# TODO: Add support for changing the p_cost
|
|
77
|
+
raise Argon2::Errors::InvalidPCost if p_cost < MIN_P_COST || p_cost > MAX_P_COST
|
|
70
78
|
|
|
71
79
|
salt = Engine.saltgen
|
|
72
80
|
secret = options[:secret]
|
|
73
81
|
|
|
74
82
|
Argon2::Password.new(
|
|
75
83
|
Argon2::Engine.hash_argon2id_encode(
|
|
76
|
-
password, salt, t_cost, m_cost, secret
|
|
84
|
+
password, salt, t_cost, m_cost, p_cost, secret
|
|
77
85
|
)
|
|
78
86
|
)
|
|
79
87
|
end
|