fix p256 public key

This commit is contained in:
dagger 2026-08-22 16:07:59 +07:00
parent a23c4d4159
commit e27c13284f

View file

@ -811,23 +811,13 @@ namespace crypto {
) != static_cast<int>(privateSize)) { ) != static_cast<int>(privateSize)) {
fail("ECDSA private key encoding failed"); fail("ECDSA private key encoding failed");
} }
std::size_t publicSize = 0; result.publicKey = ecPrivateKey(
if (EVP_PKEY_get_octet_string_param( curve,
key.get(), OSSL_PKEY_PARAM_PUB_KEY, nullptr, 0, &publicSize std::string_view(
) != 1) { reinterpret_cast<const char*>(result.privateKey.data()),
fail("ECDSA public key size query failed"); result.privateKey.size()
} )
result.publicKey.resize(publicSize); ).publicKey;
if (EVP_PKEY_get_octet_string_param(
key.get(),
OSSL_PKEY_PARAM_PUB_KEY,
result.publicKey.data(),
result.publicKey.size(),
&publicSize
) != 1) {
fail("ECDSA public key export failed");
}
result.publicKey.resize(publicSize);
return result; return result;
} }