mirror of
https://github.com/vlang/v.git
synced 2025-09-07 14:20:10 -04:00
crypto.ecdsa: fix memleaks, reported by the CI sanitizer jobs (#23450)
This commit is contained in:
parent
d2b30df19c
commit
9d1b855129
@ -31,6 +31,7 @@ fn test_ecdsa_signing_with_options() {
|
|||||||
// Verify the signature
|
// Verify the signature
|
||||||
is_valid := pub_key.verify(message, signature) or { panic(err) }
|
is_valid := pub_key.verify(message, signature) or { panic(err) }
|
||||||
println('Signature valid: ${is_valid}')
|
println('Signature valid: ${is_valid}')
|
||||||
|
key_free(pub_key.key)
|
||||||
assert is_valid
|
assert is_valid
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,6 +98,8 @@ fn test_private_key_equality_on_different_curve() ! {
|
|||||||
// using different group
|
// using different group
|
||||||
priv_key2 := new_key_from_seed(seed, nid: .secp384r1) or { panic(err) }
|
priv_key2 := new_key_from_seed(seed, nid: .secp384r1) or { panic(err) }
|
||||||
assert !priv_key1.equal(priv_key2)
|
assert !priv_key1.equal(priv_key2)
|
||||||
|
key_free(priv_key1.key)
|
||||||
|
key_free(priv_key2.key)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_public_key_equal() ! {
|
fn test_public_key_equal() ! {
|
||||||
|
@ -93,6 +93,7 @@ pub fn pubkey_from_bytes(bytes []u8) !PublicKey {
|
|||||||
&& nidgroup != nid_secp256k1 {
|
&& nidgroup != nid_secp256k1 {
|
||||||
return error('Unsupported group')
|
return error('Unsupported group')
|
||||||
}
|
}
|
||||||
|
C.EVP_PKEY_free(pub_key)
|
||||||
// Its OK to return
|
// Its OK to return
|
||||||
return PublicKey{
|
return PublicKey{
|
||||||
key: eckey
|
key: eckey
|
||||||
|
@ -34,6 +34,7 @@ fn test_load_pubkey_from_der_serialized_bytes() ! {
|
|||||||
hashed_msg := sha512.sum384(message_tobe_signed.bytes())
|
hashed_msg := sha512.sum384(message_tobe_signed.bytes())
|
||||||
status_with_hashed := pbkey.verify(hashed_msg, expected_signature)!
|
status_with_hashed := pbkey.verify(hashed_msg, expected_signature)!
|
||||||
assert status_with_hashed == true
|
assert status_with_hashed == true
|
||||||
|
key_free(pbkey.key)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_for_pubkey_bytes() ! {
|
fn test_for_pubkey_bytes() ! {
|
||||||
@ -45,4 +46,6 @@ fn test_for_pubkey_bytes() ! {
|
|||||||
assert pvkey.seed()!.hex() == pv
|
assert pvkey.seed()!.hex() == pv
|
||||||
pbkey := pvkey.public_key()!
|
pbkey := pvkey.public_key()!
|
||||||
assert pbkey.bytes()!.hex() == pb
|
assert pbkey.bytes()!.hex() == pb
|
||||||
|
key_free(pbkey.key)
|
||||||
|
key_free(pvkey.key)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user