argon2 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/README.md +6 -5
- data/ext/argon2_wrap/argon_wrap.c +2 -1
- data/ext/argon2_wrap/test.c +5 -5
- data/ext/phc-winner-argon2/.gitattributes +5 -0
- data/ext/phc-winner-argon2/.gitignore +5 -0
- data/ext/phc-winner-argon2/Argon2.sln +98 -0
- data/ext/phc-winner-argon2/CHANGELOG.md +11 -0
- data/ext/phc-winner-argon2/Makefile +7 -2
- data/ext/phc-winner-argon2/README.md +27 -15
- data/ext/phc-winner-argon2/appveyor.yml +25 -0
- data/ext/phc-winner-argon2/export.sh +7 -0
- data/ext/phc-winner-argon2/include/argon2.h +24 -1
- data/ext/phc-winner-argon2/kats/argon2d +3 -1
- data/ext/phc-winner-argon2/kats/argon2d.shasum +1 -1
- 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 +3 -1
- data/ext/phc-winner-argon2/kats/argon2i.shasum +1 -1
- 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/check-sums.ps1 +42 -0
- data/ext/phc-winner-argon2/kats/check-sums.sh +1 -1
- data/ext/phc-winner-argon2/kats/test.ps1 +50 -0
- data/ext/phc-winner-argon2/kats/test.sh +45 -43
- data/ext/phc-winner-argon2/man/argon2.1 +47 -0
- data/ext/phc-winner-argon2/src/argon2.c +29 -15
- data/ext/phc-winner-argon2/src/bench.c +5 -22
- data/ext/phc-winner-argon2/src/core.c +3 -3
- data/ext/phc-winner-argon2/src/core.h +1 -3
- data/ext/phc-winner-argon2/src/encoding.c +22 -3
- data/ext/phc-winner-argon2/src/encoding.h +6 -0
- data/ext/phc-winner-argon2/src/genkat.c +23 -5
- data/ext/phc-winner-argon2/src/opt.c +42 -2
- data/ext/phc-winner-argon2/src/opt.h +10 -0
- data/ext/phc-winner-argon2/src/ref.c +51 -1
- data/ext/phc-winner-argon2/src/ref.h +10 -0
- data/ext/phc-winner-argon2/src/run.c +67 -42
- data/ext/phc-winner-argon2/src/test.c +160 -68
- data/ext/phc-winner-argon2/src/thread.c +1 -1
- data/ext/phc-winner-argon2/vs2015/Argon2Opt/Argon2Opt.vcxproj +158 -0
- data/ext/phc-winner-argon2/vs2015/Argon2Opt/Argon2Opt.vcxproj.filters +69 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptBench/Argon2OptBench.vcxproj +158 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptBench/Argon2OptBench.vcxproj.filters +69 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptGenKAT/Argon2OptGenKAT.vcxproj +167 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptGenKAT/Argon2OptGenKAT.vcxproj.filters +72 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptTestCI/Argon2OptTestCI.vcxproj +159 -0
- data/ext/phc-winner-argon2/vs2015/Argon2OptTestCI/Argon2OptTestCI.vcxproj.filters +69 -0
- data/ext/phc-winner-argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj +158 -0
- data/ext/phc-winner-argon2/vs2015/Argon2Ref/Argon2Ref.vcxproj.filters +69 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefBench/Argon2RefBench.vcxproj +158 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefBench/Argon2RefBench.vcxproj.filters +69 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefGenKAT/Argon2RefGenKAT.vcxproj +159 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefGenKAT/Argon2RefGenKAT.vcxproj.filters +72 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefTestCI/Argon2RefTestCI.vcxproj +158 -0
- data/ext/phc-winner-argon2/vs2015/Argon2RefTestCI/Argon2RefTestCI.vcxproj.filters +69 -0
- data/lib/argon2.rb +5 -1
- data/lib/argon2/version.rb +1 -1
- metadata +29 -3
@@ -9,38 +9,43 @@
|
|
9
9
|
#include "argon2.h"
|
10
10
|
|
11
11
|
#define OUT_LEN 32
|
12
|
-
#define SALT_LEN 16
|
13
12
|
#define ENCODED_LEN 108
|
14
13
|
|
15
|
-
uint8_t salt[SALT_LEN];
|
16
|
-
|
17
14
|
/* Test harness will assert:
|
18
|
-
*
|
15
|
+
* argon2_hash() returns ARGON2_OK
|
19
16
|
* HEX output matches expected
|
20
17
|
* encoded output matches expected
|
21
18
|
* argon2_verify() correctly verifies value
|
22
19
|
*/
|
23
20
|
|
24
|
-
void hashtest(uint32_t t, uint32_t m, uint32_t p, char *pwd,
|
25
|
-
char *mcfref) {
|
21
|
+
void hashtest(uint32_t version, uint32_t t, uint32_t m, uint32_t p, char *pwd,
|
22
|
+
char *salt, char *hexref, char *mcfref) {
|
26
23
|
unsigned char out[OUT_LEN];
|
27
24
|
unsigned char hex_out[OUT_LEN * 2 + 4];
|
28
25
|
char encoded[ENCODED_LEN];
|
29
26
|
int ret, i;
|
30
27
|
|
31
|
-
printf("Hash test: t=%d, m=%d, p=%d, pass=%s, salt=%s: ",
|
32
|
-
salt);
|
33
|
-
|
34
|
-
|
28
|
+
printf("Hash test: $v=%d t=%d, m=%d, p=%d, pass=%s, salt=%s: ", version,
|
29
|
+
t, m, p, pwd, salt);
|
30
|
+
|
31
|
+
ret = argon2_hash(t, 1 << m, p, pwd, strlen(pwd), salt, strlen(salt), out,
|
32
|
+
OUT_LEN, encoded, ENCODED_LEN, Argon2_i, version);
|
35
33
|
assert(ret == ARGON2_OK);
|
36
34
|
|
37
35
|
for (i = 0; i < OUT_LEN; ++i)
|
38
36
|
sprintf((char *)(hex_out + i * 2), "%02x", out[i]);
|
39
37
|
|
40
38
|
assert(memcmp(hex_out, hexref, OUT_LEN * 2) == 0);
|
41
|
-
|
39
|
+
|
40
|
+
if (ARGON2_VERSION_NUMBER == version) {
|
41
|
+
assert(memcmp(encoded, mcfref, strlen(mcfref)) == 0);
|
42
|
+
}
|
43
|
+
|
42
44
|
ret = argon2_verify(encoded, pwd, strlen(pwd), Argon2_i);
|
43
45
|
assert(ret == ARGON2_OK);
|
46
|
+
ret = argon2_verify(mcfref, pwd, strlen(pwd), Argon2_i);
|
47
|
+
assert(ret == ARGON2_OK);
|
48
|
+
|
44
49
|
printf("PASS\n");
|
45
50
|
}
|
46
51
|
|
@@ -48,84 +53,171 @@ int main() {
|
|
48
53
|
int ret;
|
49
54
|
unsigned char out[OUT_LEN];
|
50
55
|
char const *msg;
|
56
|
+
int version;
|
51
57
|
|
52
|
-
|
53
|
-
|
58
|
+
version = ARGON2_VERSION_10;
|
59
|
+
printf("Test Argon2i version number: %02x\n", version);
|
54
60
|
|
55
61
|
/* Multiple test cases for various input values */
|
56
|
-
hashtest(2, 16, 1, "password",
|
57
|
-
"
|
58
|
-
"$argon2i$m=65536,t=2,p=1$
|
59
|
-
"$
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
"
|
68
|
-
|
69
|
-
"
|
70
|
-
|
71
|
-
"
|
72
|
-
|
73
|
-
"
|
74
|
-
|
75
|
-
"
|
76
|
-
|
77
|
-
"
|
78
|
-
|
79
|
-
"
|
80
|
-
|
81
|
-
"
|
82
|
-
|
83
|
-
"
|
84
|
-
|
85
|
-
"
|
86
|
-
|
87
|
-
"
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
"
|
92
|
-
"$
|
62
|
+
hashtest(version, 2, 16, 1, "password", "somesalt",
|
63
|
+
"f6c4db4a54e2a370627aff3db6176b94a2a209a62c8e36152711802f7b30c694",
|
64
|
+
"$argon2i$m=65536,t=2,p=1$c29tZXNhbHQ"
|
65
|
+
"$9sTbSlTio3Biev89thdrlKKiCaYsjjYVJxGAL3swxpQ");
|
66
|
+
#ifdef TEST_LARGE_RAM
|
67
|
+
hashtest(version, 2, 20, 1, "password", "somesalt",
|
68
|
+
"9690ec55d28d3ed32562f2e73ea62b02b018757643a2ae6e79528459de8106e9",
|
69
|
+
"$argon2i$m=1048576,t=2,p=1$c29tZXNhbHQ"
|
70
|
+
"$lpDsVdKNPtMlYvLnPqYrArAYdXZDoq5ueVKEWd6BBuk");
|
71
|
+
#endif
|
72
|
+
hashtest(version, 2, 18, 1, "password", "somesalt",
|
73
|
+
"3e689aaa3d28a77cf2bc72a51ac53166761751182f1ee292e3f677a7da4c2467",
|
74
|
+
"$argon2i$m=262144,t=2,p=1$c29tZXNhbHQ"
|
75
|
+
"$Pmiaqj0op3zyvHKlGsUxZnYXURgvHuKS4/Z3p9pMJGc");
|
76
|
+
hashtest(version, 2, 8, 1, "password", "somesalt",
|
77
|
+
"fd4dd83d762c49bdeaf57c47bdcd0c2f1babf863fdeb490df63ede9975fccf06",
|
78
|
+
"$argon2i$m=256,t=2,p=1$c29tZXNhbHQ"
|
79
|
+
"$/U3YPXYsSb3q9XxHvc0MLxur+GP960kN9j7emXX8zwY");
|
80
|
+
hashtest(version, 2, 8, 2, "password", "somesalt",
|
81
|
+
"b6c11560a6a9d61eac706b79a2f97d68b4463aa3ad87e00c07e2b01e90c564fb",
|
82
|
+
"$argon2i$m=256,t=2,p=2$c29tZXNhbHQ"
|
83
|
+
"$tsEVYKap1h6scGt5ovl9aLRGOqOth+AMB+KwHpDFZPs");
|
84
|
+
hashtest(version, 1, 16, 1, "password", "somesalt",
|
85
|
+
"81630552b8f3b1f48cdb1992c4c678643d490b2b5eb4ff6c4b3438b5621724b2",
|
86
|
+
"$argon2i$m=65536,t=1,p=1$c29tZXNhbHQ"
|
87
|
+
"$gWMFUrjzsfSM2xmSxMZ4ZD1JCytetP9sSzQ4tWIXJLI");
|
88
|
+
hashtest(version, 4, 16, 1, "password", "somesalt",
|
89
|
+
"f212f01615e6eb5d74734dc3ef40ade2d51d052468d8c69440a3a1f2c1c2847b",
|
90
|
+
"$argon2i$m=65536,t=4,p=1$c29tZXNhbHQ"
|
91
|
+
"$8hLwFhXm6110c03D70Ct4tUdBSRo2MaUQKOh8sHChHs");
|
92
|
+
hashtest(version, 2, 16, 1, "differentpassword", "somesalt",
|
93
|
+
"e9c902074b6754531a3a0be519e5baf404b30ce69b3f01ac3bf21229960109a3",
|
94
|
+
"$argon2i$m=65536,t=2,p=1$c29tZXNhbHQ"
|
95
|
+
"$6ckCB0tnVFMaOgvlGeW69ASzDOabPwGsO/ISKZYBCaM");
|
96
|
+
hashtest(version, 2, 16, 1, "password", "diffsalt",
|
97
|
+
"79a103b90fe8aef8570cb31fc8b22259778916f8336b7bdac3892569d4f1c497",
|
98
|
+
"$argon2i$m=65536,t=2,p=1$ZGlmZnNhbHQ"
|
99
|
+
"$eaEDuQ/orvhXDLMfyLIiWXeJFvgza3vaw4kladTxxJc");
|
93
100
|
|
94
101
|
/* Error state tests */
|
95
102
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
103
|
+
/* Handle an invalid encoding correctly (it is missing a $) */
|
104
|
+
ret = argon2_verify("$argon2i$m=65536,t=2,p=1c29tZXNhbHQ"
|
105
|
+
"$9sTbSlTio3Biev89thdrlKKiCaYsjjYVJxGAL3swxpQ",
|
106
|
+
"password", strlen("password"), Argon2_i);
|
107
|
+
assert(ret == ARGON2_DECODING_FAIL);
|
108
|
+
printf("Recognise an invalid encoding: PASS\n");
|
100
109
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
110
|
+
/* Handle an invalid encoding correctly (it is missing a $) */
|
111
|
+
ret = argon2_verify("$argon2i$m=65536,t=2,p=1$c29tZXNhbHQ"
|
112
|
+
"9sTbSlTio3Biev89thdrlKKiCaYsjjYVJxGAL3swxpQ",
|
113
|
+
"password", strlen("password"), Argon2_i);
|
114
|
+
assert(ret == ARGON2_OUTPUT_TOO_SHORT);
|
115
|
+
printf("Recognise an invalid encoding: PASS\n");
|
105
116
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
117
|
+
/* Handle an mismatching hash (the encoded password is "passwore") */
|
118
|
+
ret = argon2_verify("$argon2i$m=65536,t=2,p=1$c29tZXNhbHQ"
|
119
|
+
"$b2G3seW+uPzerwQQC+/E1K50CLLO7YXy0JRcaTuswRo",
|
120
|
+
"password", strlen("password"), Argon2_i);
|
121
|
+
assert(ret == ARGON2_VERIFY_MISMATCH);
|
122
|
+
printf("Verify with mismatched password: PASS\n");
|
123
|
+
|
124
|
+
msg = argon2_error_message(ARGON2_DECODING_FAIL);
|
125
|
+
assert(strcmp(msg, "Decoding failed") == 0);
|
126
|
+
printf("Decode an error message: PASS\n");
|
127
|
+
|
128
|
+
printf("\n");
|
129
|
+
|
130
|
+
version = ARGON2_VERSION_NUMBER;
|
131
|
+
printf("Test Argon2i version number: %02x\n", version);
|
132
|
+
|
133
|
+
/* Multiple test cases for various input values */
|
134
|
+
hashtest(version, 2, 16, 1, "password", "somesalt",
|
135
|
+
"c1628832147d9720c5bd1cfd61367078729f6dfb6f8fea9ff98158e0d7816ed0",
|
136
|
+
"$argon2i$v=19$m=65536,t=2,p=1$c29tZXNhbHQ"
|
137
|
+
"$wWKIMhR9lyDFvRz9YTZweHKfbftvj+qf+YFY4NeBbtA");
|
138
|
+
#ifdef TEST_LARGE_RAM
|
139
|
+
hashtest(version, 2, 20, 1, "password", "somesalt",
|
140
|
+
"d1587aca0922c3b5d6a83edab31bee3c4ebaef342ed6127a55d19b2351ad1f41",
|
141
|
+
"$argon2i$v=19$m=1048576,t=2,p=1$c29tZXNhbHQ"
|
142
|
+
"$0Vh6ygkiw7XWqD7asxvuPE667zQu1hJ6VdGbI1GtH0E");
|
143
|
+
#endif
|
144
|
+
hashtest(version, 2, 18, 1, "password", "somesalt",
|
145
|
+
"296dbae80b807cdceaad44ae741b506f14db0959267b183b118f9b24229bc7cb",
|
146
|
+
"$argon2i$v=19$m=262144,t=2,p=1$c29tZXNhbHQ"
|
147
|
+
"$KW266AuAfNzqrUSudBtQbxTbCVkmexg7EY+bJCKbx8s");
|
148
|
+
hashtest(version, 2, 8, 1, "password", "somesalt",
|
149
|
+
"89e9029f4637b295beb027056a7336c414fadd43f6b208645281cb214a56452f",
|
150
|
+
"$argon2i$v=19$m=256,t=2,p=1$c29tZXNhbHQ"
|
151
|
+
"$iekCn0Y3spW+sCcFanM2xBT63UP2sghkUoHLIUpWRS8");
|
152
|
+
hashtest(version, 2, 8, 2, "password", "somesalt",
|
153
|
+
"4ff5ce2769a1d7f4c8a491df09d41a9fbe90e5eb02155a13e4c01e20cd4eab61",
|
154
|
+
"$argon2i$v=19$m=256,t=2,p=2$c29tZXNhbHQ"
|
155
|
+
"$T/XOJ2mh1/TIpJHfCdQan76Q5esCFVoT5MAeIM1Oq2E");
|
156
|
+
hashtest(version, 1, 16, 1, "password", "somesalt",
|
157
|
+
"d168075c4d985e13ebeae560cf8b94c3b5d8a16c51916b6f4ac2da3ac11bbecf",
|
158
|
+
"$argon2i$v=19$m=65536,t=1,p=1$c29tZXNhbHQ"
|
159
|
+
"$0WgHXE2YXhPr6uVgz4uUw7XYoWxRkWtvSsLaOsEbvs8");
|
160
|
+
hashtest(version, 4, 16, 1, "password", "somesalt",
|
161
|
+
"aaa953d58af3706ce3df1aefd4a64a84e31d7f54175231f1285259f88174ce5b",
|
162
|
+
"$argon2i$v=19$m=65536,t=4,p=1$c29tZXNhbHQ"
|
163
|
+
"$qqlT1YrzcGzj3xrv1KZKhOMdf1QXUjHxKFJZ+IF0zls");
|
164
|
+
hashtest(version, 2, 16, 1, "differentpassword", "somesalt",
|
165
|
+
"14ae8da01afea8700c2358dcef7c5358d9021282bd88663a4562f59fb74d22ee",
|
166
|
+
"$argon2i$v=19$m=65536,t=2,p=1$c29tZXNhbHQ"
|
167
|
+
"$FK6NoBr+qHAMI1jc73xTWNkCEoK9iGY6RWL1n7dNIu4");
|
168
|
+
hashtest(version, 2, 16, 1, "password", "diffsalt",
|
169
|
+
"b0357cccfbef91f3860b0dba447b2348cbefecadaf990abfe9cc40726c521271",
|
170
|
+
"$argon2i$v=19$m=65536,t=2,p=1$ZGlmZnNhbHQ"
|
171
|
+
"$sDV8zPvvkfOGCw26RHsjSMvv7K2vmQq/6cxAcmxSEnE");
|
172
|
+
|
173
|
+
/* Error state tests */
|
110
174
|
|
111
175
|
/* Handle an invalid encoding correctly (it is missing a $) */
|
112
|
-
ret = argon2_verify("$argon2i$m=65536,t=2,p=
|
113
|
-
"
|
114
|
-
"HH7u+eDpabMCRyL8hkocqfbKINpz+b8/FzGIG+riA54",
|
176
|
+
ret = argon2_verify("$argon2i$v=19$m=65536,t=2,p=1c29tZXNhbHQ"
|
177
|
+
"$wWKIMhR9lyDFvRz9YTZweHKfbftvj+qf+YFY4NeBbtA",
|
115
178
|
"password", strlen("password"), Argon2_i);
|
116
179
|
assert(ret == ARGON2_DECODING_FAIL);
|
117
180
|
printf("Recognise an invalid encoding: PASS\n");
|
118
181
|
|
182
|
+
/* Handle an invalid encoding correctly (it is missing a $) */
|
183
|
+
ret = argon2_verify("$argon2i$v=19$m=65536,t=2,p=1$c29tZXNhbHQ"
|
184
|
+
"wWKIMhR9lyDFvRz9YTZweHKfbftvj+qf+YFY4NeBbtA",
|
185
|
+
"password", strlen("password"), Argon2_i);
|
186
|
+
assert(ret == ARGON2_OUTPUT_TOO_SHORT);
|
187
|
+
printf("Recognise an invalid encoding: PASS\n");
|
188
|
+
|
119
189
|
/* Handle an mismatching hash (the encoded password is "passwore") */
|
120
|
-
ret = argon2_verify("$argon2i$m=65536,t=2,p=1$
|
121
|
-
"$
|
190
|
+
ret = argon2_verify("$argon2i$v=19$m=65536,t=2,p=1$c29tZXNhbHQ"
|
191
|
+
"$8iIuixkI73Js3G1uMbezQXD0b8LG4SXGsOwoQkdAQIM",
|
122
192
|
"password", strlen("password"), Argon2_i);
|
123
193
|
assert(ret == ARGON2_VERIFY_MISMATCH);
|
124
194
|
printf("Verify with mismatched password: PASS\n");
|
125
195
|
|
126
196
|
msg = argon2_error_message(ARGON2_DECODING_FAIL);
|
127
|
-
assert(strcmp(msg, "Decoding failed")==0);
|
197
|
+
assert(strcmp(msg, "Decoding failed") == 0);
|
128
198
|
printf("Decode an error message: PASS\n");
|
129
199
|
|
200
|
+
/* Common error state tests */
|
201
|
+
|
202
|
+
printf("\n");
|
203
|
+
printf("Common error state tests\n");
|
204
|
+
|
205
|
+
ret = argon2_hash(2, 1, 1, "password", strlen("password"),
|
206
|
+
"diffsalt", strlen("diffsalt"),
|
207
|
+
out, OUT_LEN, NULL, 0, Argon2_i, version);
|
208
|
+
assert(ret == ARGON2_MEMORY_TOO_LITTLE);
|
209
|
+
printf("Fail on invalid memory: PASS\n");
|
210
|
+
|
211
|
+
ret = argon2_hash(2, 1 << 12, 1, NULL, strlen("password"),
|
212
|
+
"diffsalt", strlen("diffsalt"),
|
213
|
+
out, OUT_LEN, NULL, 0, Argon2_i, version);
|
214
|
+
assert(ret == ARGON2_PWD_PTR_MISMATCH);
|
215
|
+
printf("Fail on invalid null pointer: PASS\n");
|
216
|
+
|
217
|
+
ret = argon2_hash(2, 1 << 12, 1, "password", strlen("password"), "s", 1,
|
218
|
+
out, OUT_LEN, NULL, 0, Argon2_i, version);
|
219
|
+
assert(ret == ARGON2_SALT_TOO_SHORT);
|
220
|
+
printf("Fail on salt too short: PASS\n");
|
221
|
+
|
130
222
|
return 0;
|
131
223
|
}
|
@@ -0,0 +1,158 @@
|
|
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="Release|Win32">
|
9
|
+
<Configuration>Release</Configuration>
|
10
|
+
<Platform>Win32</Platform>
|
11
|
+
</ProjectConfiguration>
|
12
|
+
<ProjectConfiguration Include="Debug|x64">
|
13
|
+
<Configuration>Debug</Configuration>
|
14
|
+
<Platform>x64</Platform>
|
15
|
+
</ProjectConfiguration>
|
16
|
+
<ProjectConfiguration Include="Release|x64">
|
17
|
+
<Configuration>Release</Configuration>
|
18
|
+
<Platform>x64</Platform>
|
19
|
+
</ProjectConfiguration>
|
20
|
+
</ItemGroup>
|
21
|
+
<PropertyGroup Label="Globals">
|
22
|
+
<ProjectGuid>{CAA75C57-998C-494E-B8A5-5894EF0FC528}</ProjectGuid>
|
23
|
+
<RootNamespace>Argon2Opt</RootNamespace>
|
24
|
+
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
25
|
+
</PropertyGroup>
|
26
|
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
27
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
28
|
+
<ConfigurationType>Application</ConfigurationType>
|
29
|
+
<UseDebugLibraries>true</UseDebugLibraries>
|
30
|
+
<PlatformToolset>v140</PlatformToolset>
|
31
|
+
<CharacterSet>MultiByte</CharacterSet>
|
32
|
+
</PropertyGroup>
|
33
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
34
|
+
<ConfigurationType>Application</ConfigurationType>
|
35
|
+
<UseDebugLibraries>false</UseDebugLibraries>
|
36
|
+
<PlatformToolset>v140</PlatformToolset>
|
37
|
+
<WholeProgramOptimization>true</WholeProgramOptimization>
|
38
|
+
<CharacterSet>MultiByte</CharacterSet>
|
39
|
+
</PropertyGroup>
|
40
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
41
|
+
<ConfigurationType>Application</ConfigurationType>
|
42
|
+
<UseDebugLibraries>true</UseDebugLibraries>
|
43
|
+
<PlatformToolset>v140</PlatformToolset>
|
44
|
+
<CharacterSet>MultiByte</CharacterSet>
|
45
|
+
</PropertyGroup>
|
46
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
47
|
+
<ConfigurationType>Application</ConfigurationType>
|
48
|
+
<UseDebugLibraries>false</UseDebugLibraries>
|
49
|
+
<PlatformToolset>v140</PlatformToolset>
|
50
|
+
<WholeProgramOptimization>true</WholeProgramOptimization>
|
51
|
+
<CharacterSet>MultiByte</CharacterSet>
|
52
|
+
</PropertyGroup>
|
53
|
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
54
|
+
<ImportGroup Label="ExtensionSettings">
|
55
|
+
</ImportGroup>
|
56
|
+
<ImportGroup Label="Shared">
|
57
|
+
</ImportGroup>
|
58
|
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
59
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
60
|
+
</ImportGroup>
|
61
|
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
62
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
63
|
+
</ImportGroup>
|
64
|
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
65
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
66
|
+
</ImportGroup>
|
67
|
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
68
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
69
|
+
</ImportGroup>
|
70
|
+
<PropertyGroup Label="UserMacros" />
|
71
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
72
|
+
<OutDir>$(SolutionDir)vs2015\build\</OutDir>
|
73
|
+
<IntDir>$(SolutionDir)vs2015\build\$(ProjectName)\</IntDir>
|
74
|
+
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
|
75
|
+
</PropertyGroup>
|
76
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
77
|
+
<OutDir>$(SolutionDir)vs2015\build\</OutDir>
|
78
|
+
<IntDir>$(SolutionDir)vs2015\build\$(ProjectName)\</IntDir>
|
79
|
+
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
|
80
|
+
</PropertyGroup>
|
81
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
82
|
+
<OutDir>$(SolutionDir)vs2015\build\</OutDir>
|
83
|
+
<IntDir>$(SolutionDir)vs2015\build\$(ProjectName)\</IntDir>
|
84
|
+
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
|
85
|
+
</PropertyGroup>
|
86
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
87
|
+
<OutDir>$(SolutionDir)vs2015\build\</OutDir>
|
88
|
+
<IntDir>$(SolutionDir)vs2015\build\$(ProjectName)\</IntDir>
|
89
|
+
<IncludePath>$(SolutionDir)include;$(IncludePath)</IncludePath>
|
90
|
+
</PropertyGroup>
|
91
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
92
|
+
<ClCompile>
|
93
|
+
<WarningLevel>Level3</WarningLevel>
|
94
|
+
<Optimization>Disabled</Optimization>
|
95
|
+
<SDLCheck>true</SDLCheck>
|
96
|
+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
97
|
+
</ClCompile>
|
98
|
+
</ItemDefinitionGroup>
|
99
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
100
|
+
<ClCompile>
|
101
|
+
<WarningLevel>Level3</WarningLevel>
|
102
|
+
<Optimization>Disabled</Optimization>
|
103
|
+
<SDLCheck>true</SDLCheck>
|
104
|
+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
105
|
+
</ClCompile>
|
106
|
+
</ItemDefinitionGroup>
|
107
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
108
|
+
<ClCompile>
|
109
|
+
<WarningLevel>Level3</WarningLevel>
|
110
|
+
<Optimization>MaxSpeed</Optimization>
|
111
|
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
112
|
+
<IntrinsicFunctions>true</IntrinsicFunctions>
|
113
|
+
<SDLCheck>true</SDLCheck>
|
114
|
+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
115
|
+
</ClCompile>
|
116
|
+
<Link>
|
117
|
+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
118
|
+
<OptimizeReferences>true</OptimizeReferences>
|
119
|
+
</Link>
|
120
|
+
</ItemDefinitionGroup>
|
121
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
122
|
+
<ClCompile>
|
123
|
+
<WarningLevel>Level3</WarningLevel>
|
124
|
+
<Optimization>MaxSpeed</Optimization>
|
125
|
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
126
|
+
<IntrinsicFunctions>true</IntrinsicFunctions>
|
127
|
+
<SDLCheck>true</SDLCheck>
|
128
|
+
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
129
|
+
</ClCompile>
|
130
|
+
<Link>
|
131
|
+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
132
|
+
<OptimizeReferences>true</OptimizeReferences>
|
133
|
+
</Link>
|
134
|
+
</ItemDefinitionGroup>
|
135
|
+
<ItemGroup>
|
136
|
+
<ClInclude Include="..\..\include\argon2.h" />
|
137
|
+
<ClInclude Include="..\..\src\blake2\blake2-impl.h" />
|
138
|
+
<ClInclude Include="..\..\src\blake2\blake2.h" />
|
139
|
+
<ClInclude Include="..\..\src\blake2\blamka-round-opt.h" />
|
140
|
+
<ClInclude Include="..\..\src\blake2\blamka-round-ref.h" />
|
141
|
+
<ClInclude Include="..\..\src\core.h" />
|
142
|
+
<ClInclude Include="..\..\src\encoding.h" />
|
143
|
+
<ClInclude Include="..\..\src\opt.h" />
|
144
|
+
<ClInclude Include="..\..\src\thread.h" />
|
145
|
+
</ItemGroup>
|
146
|
+
<ItemGroup>
|
147
|
+
<ClCompile Include="..\..\src\argon2.c" />
|
148
|
+
<ClCompile Include="..\..\src\blake2\blake2b.c" />
|
149
|
+
<ClCompile Include="..\..\src\core.c" />
|
150
|
+
<ClCompile Include="..\..\src\encoding.c" />
|
151
|
+
<ClCompile Include="..\..\src\opt.c" />
|
152
|
+
<ClCompile Include="..\..\src\run.c" />
|
153
|
+
<ClCompile Include="..\..\src\thread.c" />
|
154
|
+
</ItemGroup>
|
155
|
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
156
|
+
<ImportGroup Label="ExtensionTargets">
|
157
|
+
</ImportGroup>
|
158
|
+
</Project>
|