mirror of
https://github.com/vlang/v.git
synced 2025-08-03 09:47:15 -04:00
crypto.ecdsa: improve internal sign_digest
routine (#23960)
This commit is contained in:
parent
cb4d16ff3a
commit
1e5c812540
@ -363,14 +363,12 @@ fn sign_digest(key &C.EVP_PKEY, digest []u8) ![]u8 {
|
||||
// siglen was used to store the size of the signature output. When EVP_PKEY_sign
|
||||
// was called with NULL signature buffer, siglen will tell maximum size of signature.
|
||||
siglen := usize(C.EVP_PKEY_size(key))
|
||||
st := C.EVP_PKEY_sign(ctx, 0, &siglen, digest.data, digest.len)
|
||||
if st <= 0 {
|
||||
C.EVP_PKEY_CTX_free(ctx)
|
||||
return error('Get null buffer length on EVP_PKEY_sign')
|
||||
}
|
||||
sig := []u8{len: int(siglen)}
|
||||
|
||||
// calls directly with sign
|
||||
do := C.EVP_PKEY_sign(ctx, sig.data, &siglen, digest.data, digest.len)
|
||||
if do <= 0 {
|
||||
unsafe { sig.free() }
|
||||
C.EVP_PKEY_CTX_free(ctx)
|
||||
return error('EVP_PKEY_sign fails to sign message')
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user