blob: 0a1328cc007a1d98a7f3acab5d017c890ee1f9f6 [file] [log] [blame]
Dees Troy4dff2e62013-11-10 04:11:43 +00001diff --git a/lib/crypto/crypto_scrypt-ref.c b/lib/crypto/crypto_scrypt-ref.c
2index 79a6f8f..60ef2aa 100644
3--- a/lib/crypto/crypto_scrypt-ref.c
4+++ b/lib/crypto/crypto_scrypt-ref.c
5@@ -34,7 +34,11 @@
6 #include <stdlib.h>
7 #include <string.h>
8
9+#ifdef USE_OPENSSL_PBKDF2
10+#include <openssl/evp.h>
11+#else
12 #include "sha256.h"
13+#endif
14 #include "sysendian.h"
15
16 #include "crypto_scrypt.h"
17@@ -256,7 +260,11 @@ crypto_scrypt(const uint8_t * passwd, size_t passwdlen,
18 goto err2;
19
20 /* 1: (B_0 ... B_{p-1}) <-- PBKDF2(P, S, 1, p * MFLen) */
21+#ifdef USE_OPENSSL_PBKDF2
22+ PKCS5_PBKDF2_HMAC((const char *)passwd, passwdlen, salt, saltlen, 1, EVP_sha256(), p * 128 * r, B);
23+#else
24 PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, 1, B, p * 128 * r);
25+#endif
26
27 /* 2: for i = 0 to p - 1 do */
28 for (i = 0; i < p; i++) {
29@@ -265,7 +273,11 @@ crypto_scrypt(const uint8_t * passwd, size_t passwdlen,
30 }
31
32 /* 5: DK <-- PBKDF2(P, B, 1, dkLen) */
33+#ifdef USE_OPENSSL_PBKDF2
34+ PKCS5_PBKDF2_HMAC((const char *)passwd, passwdlen, B, p * 128 * r, 1, EVP_sha256(), buflen, buf);
35+#else
36 PBKDF2_SHA256(passwd, passwdlen, B, p * 128 * r, 1, buf, buflen);
37+#endif
38
39 /* Free memory. */
40 free(V);
41diff --git a/lib/crypto/crypto_scrypt-sse.c b/lib/crypto/crypto_scrypt-sse.c
42index 875175e..dd18f29 100644
43--- a/lib/crypto/crypto_scrypt-sse.c
44+++ b/lib/crypto/crypto_scrypt-sse.c
45@@ -37,7 +37,11 @@
46 #include <stdlib.h>
47 #include <string.h>
48
49+#ifdef USE_OPENSSL_PBKDF2
50+#include <openssl/evp.h>
51+#else
52 #include "sha256.h"
53+#endif
54 #include "sysendian.h"
55
56 #include "crypto_scrypt.h"
57@@ -332,7 +336,11 @@ crypto_scrypt(const uint8_t * passwd, size_t passwdlen,
58 #endif
59
60 /* 1: (B_0 ... B_{p-1}) <-- PBKDF2(P, S, 1, p * MFLen) */
61+#ifdef USE_OPENSSL_PBKDF2
62+ PKCS5_PBKDF2_HMAC((const char *)passwd, passwdlen, salt, saltlen, 1, EVP_sha256(), p * 128 * r, B);
63+#else
64 PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, 1, B, p * 128 * r);
65+#endif
66
67 /* 2: for i = 0 to p - 1 do */
68 for (i = 0; i < p; i++) {
69@@ -341,7 +349,11 @@ crypto_scrypt(const uint8_t * passwd, size_t passwdlen,
70 }
71
72 /* 5: DK <-- PBKDF2(P, B, 1, dkLen) */
73+#ifdef USE_OPENSSL_PBKDF2
74+ PKCS5_PBKDF2_HMAC((const char *)passwd, passwdlen, B, p * 128 * r, 1, EVP_sha256(), buflen, buf);
75+#else
76 PBKDF2_SHA256(passwd, passwdlen, B, p * 128 * r, 1, buf, buflen);
77+#endif
78
79 /* Free memory. */
80 #ifdef MAP_ANON