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:
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;
}