]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - client/emv/emv_pki.c
Increase threshold to 160, fix for issue 756 (#760)
[proxmark3-svn] / client / emv / emv_pki.c
index f79e30453fd3929c3b8cfc31590348a6e27ba0db..da102291876fd69a29dcd4a78585dd6074ecb2e5 100644 (file)
 #include <string.h>
 #include <stdarg.h>
 
 #include <string.h>
 #include <stdarg.h>
 
+static bool strictExecution = true;
+void PKISetStrictExecution(bool se) {
+       strictExecution = se;
+}
+
 static const unsigned char empty_tlv_value[] = {};
 static const struct tlv empty_tlv = {.tag = 0x0, .len = 0, .value = empty_tlv_value};
 
 static const unsigned char empty_tlv_value[] = {};
 static const struct tlv empty_tlv = {.tag = 0x0, .len = 0, .value = empty_tlv_value};
 
@@ -108,9 +113,12 @@ static unsigned char *emv_pki_decode_message(const struct emv_pk *enc_pk,
                printf("ERROR: Calculated wrong hash\n");
                printf("decoded:    %s\n",sprint_hex(data + data_len - 1 - hash_len, hash_len));
                printf("calculated: %s\n",sprint_hex(crypto_hash_read(ch), hash_len));
                printf("ERROR: Calculated wrong hash\n");
                printf("decoded:    %s\n",sprint_hex(data + data_len - 1 - hash_len, hash_len));
                printf("calculated: %s\n",sprint_hex(crypto_hash_read(ch), hash_len));
-               crypto_hash_close(ch);
-               free(data);
-               return NULL;
+               
+               if (strictExecution) {
+                       crypto_hash_close(ch);
+                       free(data);
+                       return NULL;
+               }
        }
 
        crypto_hash_close(ch);
        }
 
        crypto_hash_close(ch);
Impressum, Datenschutz