Fix returning public key for ECC.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos
2022-04-22 20:37:13 +02:00
parent cf6009e4e1
commit 1437e1c58d

View File

@@ -883,10 +883,12 @@ void make_rsa_response(mbedtls_rsa_context *rsa) {
}
void make_ecdsa_response(mbedtls_ecdsa_context *ecdsa) {
size_t plen = mbedtls_mpi_size(&ecdsa->grp.P);
memcpy(res_APDU, "\x7f\x49\x81\x00", 4);
res_APDU_size = 4;
res_APDU[res_APDU_size++] = 0x86;
size_t plen = mbedtls_mpi_size(&ecdsa->grp.P);
res_APDU[res_APDU_size++] = 0x81;
res_APDU[res_APDU_size++] = 2*plen+1;
res_APDU[res_APDU_size++] = 0x04;
mbedtls_mpi_write_binary(&ecdsa->Q.X, res_APDU+res_APDU_size, plen); res_APDU_size += plen;
mbedtls_mpi_write_binary(&ecdsa->Q.Y, res_APDU+res_APDU_size, plen); res_APDU_size += plen;