Skip to content

Commit 1e5c812

Browse files
authored
crypto.ecdsa: improve internal sign_digest routine (#23960)
1 parent cb4d16f commit 1e5c812

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

vlib/crypto/ecdsa/ecdsa.v

+3-5
Original file line numberDiff line numberDiff line change
@@ -363,14 +363,12 @@ fn sign_digest(key &C.EVP_PKEY, digest []u8) ![]u8 {
363363
// siglen was used to store the size of the signature output. When EVP_PKEY_sign
364364
// was called with NULL signature buffer, siglen will tell maximum size of signature.
365365
siglen := usize(C.EVP_PKEY_size(key))
366-
st := C.EVP_PKEY_sign(ctx, 0, &siglen, digest.data, digest.len)
367-
if st <= 0 {
368-
C.EVP_PKEY_CTX_free(ctx)
369-
return error('Get null buffer length on EVP_PKEY_sign')
370-
}
371366
sig := []u8{len: int(siglen)}
367+
368+
// calls directly with sign
372369
do := C.EVP_PKEY_sign(ctx, sig.data, &siglen, digest.data, digest.len)
373370
if do <= 0 {
371+
unsafe { sig.free() }
374372
C.EVP_PKEY_CTX_free(ctx)
375373
return error('EVP_PKEY_sign fails to sign message')
376374
}

0 commit comments

Comments
 (0)