]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdhffido.c
fix 'hf iclass writebl' and 'hf iclass clone' (#896)
[proxmark3-svn] / client / cmdhffido.c
index 9c8128603f0b8eef5e0f8a73fbd0aec058f6da9e..25862445ef715dd2b909950f3eca9fc27050d94f 100644 (file)
@@ -40,6 +40,7 @@
 #include "emv/emvcore.h"
 #include "emv/emvjson.h"
 #include "emv/dump.h"
+#include "emv/apduinfo.h"
 #include "cliparser/cliparser.h"
 #include "crypto/asn1utils.h"
 #include "crypto/libpcrypto.h"
@@ -61,7 +62,7 @@ int CmdHFFidoInfo(const char *cmd) {
        PrintAndLog("--------------------------------------------"); 
        SetAPDULogging(false);
        
-       uint8_t buf[APDU_RES_LEN] = {0};
+       uint8_t buf[APDU_RESPONSE_LEN] = {0};
        size_t len = 0;
        uint16_t sw = 0;
        int res = FIDOSelect(true, true, buf, sizeof(buf), &len, &sw);
@@ -352,9 +353,9 @@ int CmdHFFidoRegister(const char *cmd) {
                        &buf[1], 65,             // user public key
                        NULL, 0);
                //PrintAndLog("--xbuf(%d)[%d]: %s", res, xbuflen, sprint_hex(xbuf, xbuflen));
-               res = ecdsa_signature_verify(public_key, xbuf, xbuflen, &buf[hashp], len - hashp);
+               res = ecdsa_signature_verify(MBEDTLS_ECP_DP_SECP256R1, public_key, xbuf, xbuflen, &buf[hashp], len - hashp, true);
                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));
@@ -578,9 +579,9 @@ int CmdHFFidoAuthenticate(const char *cmd) {
                                data, 32,      // challenge parameter
                                NULL, 0);
                        //PrintAndLog("--xbuf(%d)[%d]: %s", res, xbuflen, sprint_hex(xbuf, xbuflen));
-                       res = ecdsa_signature_verify(public_key, xbuf, xbuflen, &buf[5], len - 5);
+                       res = ecdsa_signature_verify(MBEDTLS_ECP_DP_SECP256R1, public_key, xbuf, xbuflen, &buf[5], len - 5, true);
                        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));
Impressum, Datenschutz