mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-13 06:51:51 +00:00
fix ecdsa test on linux
This commit is contained in:
parent
e27c13284f
commit
c65b9ae385
1 changed files with 25 additions and 16 deletions
|
|
@ -162,11 +162,12 @@ TEST(Crypto, EcdsaVerifiesAllSupportedCurves) {
|
||||||
const char* opensslCurve;
|
const char* opensslCurve;
|
||||||
const EVP_MD* digest;
|
const EVP_MD* digest;
|
||||||
const char* hash;
|
const char* hash;
|
||||||
|
std::size_t coordinateSize;
|
||||||
};
|
};
|
||||||
const Case cases[] {
|
const Case cases[] {
|
||||||
{"P-256", "prime256v1", EVP_sha256(), "SHA256"},
|
{"P-256", "prime256v1", EVP_sha256(), "SHA256", 32},
|
||||||
{"P-384", "secp384r1", EVP_sha384(), "SHA384"},
|
{"P-384", "secp384r1", EVP_sha384(), "SHA384", 48},
|
||||||
{"P-521", "secp521r1", EVP_sha512(), "SHA512"}
|
{"P-521", "secp521r1", EVP_sha512(), "SHA512", 66}
|
||||||
};
|
};
|
||||||
for (const auto& item : cases) {
|
for (const auto& item : cases) {
|
||||||
SCOPED_TRACE(item.curve);
|
SCOPED_TRACE(item.curve);
|
||||||
|
|
@ -175,23 +176,31 @@ TEST(Crypto, EcdsaVerifiesAllSupportedCurves) {
|
||||||
EVP_PKEY_free
|
EVP_PKEY_free
|
||||||
);
|
);
|
||||||
ASSERT_NE(key, nullptr);
|
ASSERT_NE(key, nullptr);
|
||||||
std::size_t publicKeySize = 0;
|
BIGNUM* rawX = nullptr;
|
||||||
|
BIGNUM* rawY = nullptr;
|
||||||
ASSERT_EQ(
|
ASSERT_EQ(
|
||||||
EVP_PKEY_get_octet_string_param(
|
EVP_PKEY_get_bn_param(key.get(), OSSL_PKEY_PARAM_EC_PUB_X, &rawX), 1
|
||||||
key.get(), OSSL_PKEY_PARAM_PUB_KEY, nullptr, 0, &publicKeySize
|
|
||||||
),
|
|
||||||
1
|
|
||||||
);
|
);
|
||||||
crypto::Bytes publicKey(publicKeySize);
|
|
||||||
ASSERT_EQ(
|
ASSERT_EQ(
|
||||||
EVP_PKEY_get_octet_string_param(
|
EVP_PKEY_get_bn_param(key.get(), OSSL_PKEY_PARAM_EC_PUB_Y, &rawY), 1
|
||||||
key.get(),
|
);
|
||||||
OSSL_PKEY_PARAM_PUB_KEY,
|
std::unique_ptr<BIGNUM, decltype(&BN_free)> x(rawX, BN_free);
|
||||||
publicKey.data(),
|
std::unique_ptr<BIGNUM, decltype(&BN_free)> y(rawY, BN_free);
|
||||||
publicKey.size(),
|
crypto::Bytes publicKey(item.coordinateSize * 2 + 1);
|
||||||
&publicKeySize
|
publicKey[0] = 0x04;
|
||||||
|
ASSERT_EQ(
|
||||||
|
BN_bn2binpad(
|
||||||
|
x.get(), publicKey.data() + 1, item.coordinateSize
|
||||||
),
|
),
|
||||||
1
|
static_cast<int>(item.coordinateSize)
|
||||||
|
);
|
||||||
|
ASSERT_EQ(
|
||||||
|
BN_bn2binpad(
|
||||||
|
y.get(),
|
||||||
|
publicKey.data() + 1 + item.coordinateSize,
|
||||||
|
item.coordinateSize
|
||||||
|
),
|
||||||
|
static_cast<int>(item.coordinateSize)
|
||||||
);
|
);
|
||||||
auto signature = sign(key.get(), item.digest, "message");
|
auto signature = sign(key.get(), item.digest, "message");
|
||||||
EXPECT_TRUE(
|
EXPECT_TRUE(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue