On 13/10/2021 21:12, Ken Goldman wrote:
I tried
irc = EVP_PKEY_get_octet_string_param(eccKey,
OSSL_PKEY_PARAM_PRIV_KEY,
*priv, 256, (size_t *)privLen);
which failed.
In your original email you were attempting to access
OSSL_PKEY_PARAM_PUB_KEY as a BIGNUM which (correctly) failed because it
is an octet string. Now you are trying to access
OSSL_PKEY_PARAM_PRIV_KEY as an octet string which is (correctly) going
to fail because it is an integer. From the same man page I previously
referenced:
"priv" (OSSL_PKEY_PARAM_PRIV_KEY) <unsigned integer>
The private key value.
Since its an integer using EVP_PKEY_get_bn_param() would be appropriate
here, but not EVP_PKEY_get_octet_string_param().
Basically you need to know the type of the parameter you are attempting
to access and use the right kind of "getter" to match the type -
otherwise it will fail.
Matt