| diff --git a/lib/crypto/crypto_scrypt-ref.c b/lib/crypto/crypto_scrypt-ref.c |
| index 79a6f8f..60ef2aa 100644 |
| --- a/lib/crypto/crypto_scrypt-ref.c |
| +++ b/lib/crypto/crypto_scrypt-ref.c |
| @@ -34,7 +34,11 @@ |
| #include <stdlib.h> |
| #include <string.h> |
| |
| +#ifdef USE_OPENSSL_PBKDF2 |
| +#include <openssl/evp.h> |
| +#else |
| #include "sha256.h" |
| +#endif |
| #include "sysendian.h" |
| |
| #include "crypto_scrypt.h" |
| @@ -256,7 +260,11 @@ crypto_scrypt(const uint8_t * passwd, size_t passwdlen, |
| goto err2; |
| |
| /* 1: (B_0 ... B_{p-1}) <-- PBKDF2(P, S, 1, p * MFLen) */ |
| +#ifdef USE_OPENSSL_PBKDF2 |
| + PKCS5_PBKDF2_HMAC((const char *)passwd, passwdlen, salt, saltlen, 1, EVP_sha256(), p * 128 * r, B); |
| +#else |
| PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, 1, B, p * 128 * r); |
| +#endif |
| |
| /* 2: for i = 0 to p - 1 do */ |
| for (i = 0; i < p; i++) { |
| @@ -265,7 +273,11 @@ crypto_scrypt(const uint8_t * passwd, size_t passwdlen, |
| } |
| |
| /* 5: DK <-- PBKDF2(P, B, 1, dkLen) */ |
| +#ifdef USE_OPENSSL_PBKDF2 |
| + PKCS5_PBKDF2_HMAC((const char *)passwd, passwdlen, B, p * 128 * r, 1, EVP_sha256(), buflen, buf); |
| +#else |
| PBKDF2_SHA256(passwd, passwdlen, B, p * 128 * r, 1, buf, buflen); |
| +#endif |
| |
| /* Free memory. */ |
| free(V); |
| diff --git a/lib/crypto/crypto_scrypt-sse.c b/lib/crypto/crypto_scrypt-sse.c |
| index 875175e..dd18f29 100644 |
| --- a/lib/crypto/crypto_scrypt-sse.c |
| +++ b/lib/crypto/crypto_scrypt-sse.c |
| @@ -37,7 +37,11 @@ |
| #include <stdlib.h> |
| #include <string.h> |
| |
| +#ifdef USE_OPENSSL_PBKDF2 |
| +#include <openssl/evp.h> |
| +#else |
| #include "sha256.h" |
| +#endif |
| #include "sysendian.h" |
| |
| #include "crypto_scrypt.h" |
| @@ -332,7 +336,11 @@ crypto_scrypt(const uint8_t * passwd, size_t passwdlen, |
| #endif |
| |
| /* 1: (B_0 ... B_{p-1}) <-- PBKDF2(P, S, 1, p * MFLen) */ |
| +#ifdef USE_OPENSSL_PBKDF2 |
| + PKCS5_PBKDF2_HMAC((const char *)passwd, passwdlen, salt, saltlen, 1, EVP_sha256(), p * 128 * r, B); |
| +#else |
| PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, 1, B, p * 128 * r); |
| +#endif |
| |
| /* 2: for i = 0 to p - 1 do */ |
| for (i = 0; i < p; i++) { |
| @@ -341,7 +349,11 @@ crypto_scrypt(const uint8_t * passwd, size_t passwdlen, |
| } |
| |
| /* 5: DK <-- PBKDF2(P, B, 1, dkLen) */ |
| +#ifdef USE_OPENSSL_PBKDF2 |
| + PKCS5_PBKDF2_HMAC((const char *)passwd, passwdlen, B, p * 128 * r, 1, EVP_sha256(), buflen, buf); |
| +#else |
| PBKDF2_SHA256(passwd, passwdlen, B, p * 128 * r, 1, buf, buflen); |
| +#endif |
| |
| /* Free memory. */ |
| #ifdef MAP_ANON |