libqaeda

Unnamed repository; edit this file 'description' to name the repository.
Info | Log | Files | Refs | README | LICENSE

commit 3caac83ccd44413d0829a7c6412cf826197f5478
parent 94a3550c9a194cfc21191655e0d20a9e49b7dacf
Author: lash <dev@holbrook.no>
Date:   Thu,  8 May 2025 20:49:52 +0100

Proper publickey instantiation in signature from bytes

Diffstat:
Msrc/crypto/gcrypt.c | 9+++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/crypto/gcrypt.c b/src/crypto/gcrypt.c @@ -973,7 +973,9 @@ LQSig* lq_privatekey_sign(LQPrivKey *pk, const char *data, size_t data_len, cons } LQSig* lq_signature_from_bytes(const char *sig_data, size_t sig_len, LQPubKey *pubkey) { + size_t r; LQSig *sig; + char *pubkey_out; if (!lq_cmp(sig_data, zeros, LQ_SIGN_LEN)) { return NULL; @@ -985,8 +987,11 @@ LQSig* lq_signature_from_bytes(const char *sig_data, size_t sig_len, LQPubKey *p lq_cpy(sig->impl, sig_data, LQ_SIGN_LEN); if (pubkey != NULL) { - sig->pubkey = lq_alloc(sizeof(LQPubKey)); - lq_cpy(sig->pubkey, pubkey, sizeof(LQPubKey)); + r = lq_publickey_bytes(pubkey, &pubkey_out); + if (!r) { + return NULL; + } + sig->pubkey = lq_publickey_new(pubkey_out); } return sig; }