X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=providers%2Fimplementations%2Fkdfs%2Fscrypt.c;h=023b1916a11661be8d84631ad93152db6870f0b7;hp=7a389e65d83d4da3a092cf52b002d95cbc22c856;hb=6debc6ab7499745baf7123e69936a9997dbbe6cb;hpb=26496f5a5cc44f3250198d22b353403a54f5e29b diff --git a/providers/implementations/kdfs/scrypt.c b/providers/implementations/kdfs/scrypt.c index 7a389e65d8..023b1916a1 100644 --- a/providers/implementations/kdfs/scrypt.c +++ b/providers/implementations/kdfs/scrypt.c @@ -37,10 +37,10 @@ static int scrypt_alg(const char *pass, size_t passlen, const unsigned char *salt, size_t saltlen, uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, unsigned char *key, size_t keylen, EVP_MD *sha256, - OPENSSL_CTX *libctx, const char *propq); + OSSL_LIB_CTX *libctx, const char *propq); typedef struct { - OPENSSL_CTX *libctx; + OSSL_LIB_CTX *libctx; char *propq; unsigned char *pass; size_t pass_len; @@ -66,7 +66,7 @@ static void *kdf_scrypt_new(void *provctx) ERR_raise(ERR_LIB_PROV, ERR_R_MALLOC_FAILURE); return NULL; } - ctx->libctx = PROV_LIBRARY_CONTEXT_OF(provctx); + ctx->libctx = PROV_LIBCTX_OF(provctx); kdf_scrypt_init(ctx); return ctx; } @@ -266,7 +266,7 @@ static const OSSL_PARAM *kdf_scrypt_gettable_ctx_params(ossl_unused void *p_ctx) return known_gettable_ctx_params; } -const OSSL_DISPATCH kdf_scrypt_functions[] = { +const OSSL_DISPATCH ossl_kdf_scrypt_functions[] = { { OSSL_FUNC_KDF_NEWCTX, (void(*)(void))kdf_scrypt_new }, { OSSL_FUNC_KDF_FREECTX, (void(*)(void))kdf_scrypt_free }, { OSSL_FUNC_KDF_RESET, (void(*)(void))kdf_scrypt_reset }, @@ -404,7 +404,7 @@ static int scrypt_alg(const char *pass, size_t passlen, const unsigned char *salt, size_t saltlen, uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, unsigned char *key, size_t keylen, EVP_MD *sha256, - OPENSSL_CTX *libctx, const char *propq) + OSSL_LIB_CTX *libctx, const char *propq) { int rv = 0; unsigned char *B; @@ -417,7 +417,7 @@ static int scrypt_alg(const char *pass, size_t passlen, return 0; /* Check p * r < SCRYPT_PR_MAX avoiding overflow */ if (p > SCRYPT_PR_MAX / r) { - EVPerr(EVP_F_SCRYPT_ALG, EVP_R_MEMORY_LIMIT_EXCEEDED); + ERR_raise(ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED); return 0; } @@ -428,7 +428,7 @@ static int scrypt_alg(const char *pass, size_t passlen, if (16 * r <= LOG2_UINT64_MAX) { if (N >= (((uint64_t)1) << (16 * r))) { - EVPerr(EVP_F_SCRYPT_ALG, EVP_R_MEMORY_LIMIT_EXCEEDED); + ERR_raise(ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED); return 0; } } @@ -446,7 +446,7 @@ static int scrypt_alg(const char *pass, size_t passlen, * have to be revised when/if PKCS5_PBKDF2_HMAC accepts size_t.] */ if (Blen > INT_MAX) { - EVPerr(EVP_F_SCRYPT_ALG, EVP_R_MEMORY_LIMIT_EXCEEDED); + ERR_raise(ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED); return 0; } @@ -456,14 +456,14 @@ static int scrypt_alg(const char *pass, size_t passlen, */ i = UINT64_MAX / (32 * sizeof(uint32_t)); if (N + 2 > i / r) { - EVPerr(EVP_F_SCRYPT_ALG, EVP_R_MEMORY_LIMIT_EXCEEDED); + ERR_raise(ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED); return 0; } Vlen = 32 * r * (N + 2) * sizeof(uint32_t); /* check total allocated size fits in uint64_t */ if (Blen > UINT64_MAX - Vlen) { - EVPerr(EVP_F_SCRYPT_ALG, EVP_R_MEMORY_LIMIT_EXCEEDED); + ERR_raise(ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED); return 0; } @@ -472,7 +472,7 @@ static int scrypt_alg(const char *pass, size_t passlen, maxmem = SIZE_MAX; if (Blen + Vlen > maxmem) { - EVPerr(EVP_F_SCRYPT_ALG, EVP_R_MEMORY_LIMIT_EXCEEDED); + ERR_raise(ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED); return 0; } @@ -482,26 +482,26 @@ static int scrypt_alg(const char *pass, size_t passlen, B = OPENSSL_malloc((size_t)(Blen + Vlen)); if (B == NULL) { - EVPerr(EVP_F_SCRYPT_ALG, ERR_R_MALLOC_FAILURE); + ERR_raise(ERR_LIB_EVP, ERR_R_MALLOC_FAILURE); return 0; } X = (uint32_t *)(B + Blen); T = X + 32 * r; V = T + 32 * r; - if (pkcs5_pbkdf2_hmac_with_libctx(pass, passlen, salt, saltlen, 1, sha256, - (int)Blen, B, libctx, propq) == 0) + if (pkcs5_pbkdf2_hmac_ex(pass, passlen, salt, saltlen, 1, sha256, (int)Blen, + B, libctx, propq) == 0) goto err; for (i = 0; i < p; i++) scryptROMix(B + 128 * r * i, r, N, X, T, V); - if (pkcs5_pbkdf2_hmac_with_libctx(pass, passlen, B, (int)Blen, 1, sha256, - keylen, key, libctx, propq) == 0) + if (pkcs5_pbkdf2_hmac_ex(pass, passlen, B, (int)Blen, 1, sha256, keylen, + key, libctx, propq) == 0) goto err; rv = 1; err: if (rv == 0) - EVPerr(EVP_F_SCRYPT_ALG, EVP_R_PBKDF2_ERROR); + ERR_raise(ERR_LIB_EVP, EVP_R_PBKDF2_ERROR); OPENSSL_clear_free(B, (size_t)(Blen + Vlen)); return rv;