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