]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/fido/fidocore.c
Merge pull request #910 from pwpiwi/small_USB_response
[proxmark3-svn] / client / fido / fidocore.c
index 13768b756dbb5dbbe28e8abf75c5eae197c9a4c5..6af7671a4722e9088b75bca81282cb3cb9853f7c 100644 (file)
@@ -267,9 +267,9 @@ int FIDOCheckDERAndGetKey(uint8_t *der, size_t derLen, bool verbose, uint8_t *pu
        uint32_t verifyflags = 0;
        res = mbedtls_x509_crt_verify(&cert, &cacert, NULL, NULL, &verifyflags, NULL, NULL);
        if (res) {
        uint32_t verifyflags = 0;
        res = mbedtls_x509_crt_verify(&cert, &cacert, NULL, NULL, &verifyflags, NULL, NULL);
        if (res) {
-               PrintAndLog("ERROR: DER verify returned 0x%x - %s", (res<0)?-res:res, ecdsa_get_error(res));
+               PrintAndLog("ERROR: DER verify returned 0x%x - %s\n", (res<0)?-res:res, ecdsa_get_error(res));
        } else {
        } else {
-               PrintAndLog("Certificate OK.");
+               PrintAndLog("Certificate OK.\n");
        }
        
        if (verbose) {
        }
        
        if (verbose) {
@@ -279,7 +279,7 @@ int FIDOCheckDERAndGetKey(uint8_t *der, size_t derLen, bool verbose, uint8_t *pu
        }
        
        // get public key
        }
        
        // get public key
-       res = ecdsa_public_key_from_pk(&cert.pk, publicKey, publicKeyMaxLen);
+       res = ecdsa_public_key_from_pk(&cert.pk, MBEDTLS_ECP_DP_SECP256R1, publicKey, publicKeyMaxLen);
        if (res) {
                PrintAndLog("ERROR: getting public key from certificate 0x%x - %s", (res<0)?-res:res, ecdsa_get_error(res));
        } else {
        if (res) {
                PrintAndLog("ERROR: getting public key from certificate 0x%x - %s", (res<0)?-res:res, ecdsa_get_error(res));
        } else {
@@ -396,9 +396,9 @@ int FIDO2CheckSignature(json_t *root, uint8_t *publickey, uint8_t *sign, size_t
                        clientDataHash, 32,     // Hash of the serialized client data. "$.ClientDataHash" from json
                        NULL, 0);
                //PrintAndLog("--xbuf(%d)[%d]: %s", res, xbuflen, sprint_hex(xbuf, xbuflen));
                        clientDataHash, 32,     // Hash of the serialized client data. "$.ClientDataHash" from json
                        NULL, 0);
                //PrintAndLog("--xbuf(%d)[%d]: %s", res, xbuflen, sprint_hex(xbuf, xbuflen));
-               res = ecdsa_signature_verify(publickey, xbuf, xbuflen, sign, signLen);
+               res = ecdsa_signature_verify(MBEDTLS_ECP_DP_SECP256R1, publickey, xbuf, xbuflen, sign, signLen, true);
                if (res) {
                if (res) {
-                       if (res == -0x4e00) {
+                       if (res == MBEDTLS_ERR_ECP_VERIFY_FAILED) {
                                PrintAndLog("Signature is NOT VALID.");
                        } else {
                                PrintAndLog("Other signature check error: %x %s", (res<0)?-res:res, ecdsa_get_error(res));
                                PrintAndLog("Signature is NOT VALID.");
                        } else {
                                PrintAndLog("Other signature check error: %x %s", (res<0)?-res:res, ecdsa_get_error(res));
Impressum, Datenschutz