1 diff --git a/lib/crypto/crypto_scrypt-ref.c b/lib/crypto/crypto_scrypt-ref.c 2 index 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); 41 diff --git a/lib/crypto/crypto_scrypt-sse.c b/lib/crypto/crypto_scrypt-sse.c 42 index 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 81