Fix building without scrypt
Building without the scrypt KDF is now possible, the OPENSSL_NO_SCRYPT define is honored in code. Previous this lead to undefined references. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Stephen Henson <steve@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4116)
This commit is contained in:
parent
5d09b003c0
commit
402f26e6ee
3 changed files with 10 additions and 0 deletions
|
@ -819,6 +819,7 @@ static int alg_print(const X509_ALGOR *alg)
|
|||
BIO_printf(bio_err, ", Iteration %ld, PRF %s",
|
||||
ASN1_INTEGER_get(kdf->iter), OBJ_nid2sn(prfnid));
|
||||
PBKDF2PARAM_free(kdf);
|
||||
#ifndef OPENSSL_NO_SCRYPT
|
||||
} else if (pbenid == NID_id_scrypt) {
|
||||
SCRYPT_PARAMS *kdf = NULL;
|
||||
|
||||
|
@ -835,6 +836,7 @@ static int alg_print(const X509_ALGOR *alg)
|
|||
ASN1_INTEGER_get(kdf->blockSize),
|
||||
ASN1_INTEGER_get(kdf->parallelizationParameter));
|
||||
SCRYPT_PARAMS_free(kdf);
|
||||
#endif
|
||||
}
|
||||
PBE2PARAM_free(pbe2);
|
||||
} else {
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
#include "internal/cryptlib.h"
|
||||
#include "internal/evp_int.h"
|
||||
|
||||
#ifndef OPENSSL_NO_SCRYPT
|
||||
|
||||
static int atou64(const char *nptr, uint64_t *result);
|
||||
|
||||
typedef struct {
|
||||
|
@ -256,3 +258,5 @@ const EVP_PKEY_METHOD scrypt_pkey_meth = {
|
|||
pkey_scrypt_ctrl,
|
||||
pkey_scrypt_ctrl_str
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -60,6 +60,7 @@ static int test_kdf_hkdf(void)
|
|||
return 1;
|
||||
}
|
||||
|
||||
#ifndef OPENSSL_NO_SCRYPT
|
||||
static int test_kdf_scrypt(void)
|
||||
{
|
||||
EVP_PKEY_CTX *pctx;
|
||||
|
@ -126,10 +127,13 @@ static int test_kdf_scrypt(void)
|
|||
EVP_PKEY_CTX_free(pctx);
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
int setup_tests()
|
||||
{
|
||||
ADD_TEST(test_kdf_hkdf);
|
||||
#ifndef OPENSSL_NO_SCRYPT
|
||||
ADD_TEST(test_kdf_scrypt);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue