[ruby/openssl] pkey: use EVP_PKEY_CTX_new_from_name() on OpenSSL 3.0
Replace EVP_PKEY_CTX_new_id() with the new EVP_PKEY_CTX_new_from_name() which takes the algorithm name in a string instead of in an NID. https://github.com/ruby/openssl/commit/d6535d13d1
This commit is contained in:
parent
61e426ae05
commit
ac757b218c
@ -316,6 +316,11 @@ pkey_generate(int argc, VALUE *argv, VALUE self, int genparam)
|
|||||||
ossl_raise(ePKeyError, "EVP_PKEY_CTX_new");
|
ossl_raise(ePKeyError, "EVP_PKEY_CTX_new");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
#if OSSL_OPENSSL_PREREQ(3, 0, 0)
|
||||||
|
ctx = EVP_PKEY_CTX_new_from_name(NULL, StringValueCStr(alg), NULL);
|
||||||
|
if (!ctx)
|
||||||
|
ossl_raise(ePKeyError, "EVP_PKEY_CTX_new_from_name");
|
||||||
|
#else
|
||||||
const EVP_PKEY_ASN1_METHOD *ameth;
|
const EVP_PKEY_ASN1_METHOD *ameth;
|
||||||
ENGINE *tmpeng;
|
ENGINE *tmpeng;
|
||||||
int pkey_id;
|
int pkey_id;
|
||||||
@ -334,6 +339,7 @@ pkey_generate(int argc, VALUE *argv, VALUE self, int genparam)
|
|||||||
ctx = EVP_PKEY_CTX_new_id(pkey_id, NULL/* engine */);
|
ctx = EVP_PKEY_CTX_new_id(pkey_id, NULL/* engine */);
|
||||||
if (!ctx)
|
if (!ctx)
|
||||||
ossl_raise(ePKeyError, "EVP_PKEY_CTX_new_id");
|
ossl_raise(ePKeyError, "EVP_PKEY_CTX_new_id");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (genparam && EVP_PKEY_paramgen_init(ctx) <= 0) {
|
if (genparam && EVP_PKEY_paramgen_init(ctx) <= 0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user