Signature wrapper for uECC
diff --git a/library/pk_wrap.c b/library/pk_wrap.c
index 2f175f5..c6f6302 100644
--- a/library/pk_wrap.c
+++ b/library/pk_wrap.c
@@ -613,7 +613,7 @@
return( (int) len );
}
-/* Transcode signature from PSA format to ASN.1 sequence.
+/* Transcode signature from uECC format to ASN.1 sequence.
* See ecdsa_signature_to_asn1 in ecdsa.c, but with byte buffers instead of
* MPIs, and in-place.
*
@@ -647,16 +647,17 @@
unsigned char *sig, size_t *sig_len,
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng )
{
- (void) ctx;
- (void) md_alg;
- (void) hash;
- (void) hash_len;
- (void) sig;
- (void) sig_len;
+ const mbedtls_uecc_keypair *keypair = (const mbedtls_uecc_keypair *) ctx;
+ const struct uECC_Curve_t * uecc_curve = uECC_secp256r1();
+
+ uECC_sign(keypair->private_key, hash, hash_len, sig, uecc_curve);
+
+ /* uECC owns its rng function pointer */
(void) f_rng;
(void) p_rng;
+ (void) md_alg;
- return( 0 );
+ return( pk_ecdsa_sig_asn1_from_psa( sig, sig_len, 2*NUM_ECC_BYTES ) );
}
static void *uecc_ecdsa_alloc_wrap( void )