mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 13:23:51 -07:00
recover_pk selftests: show curve & hash
This commit is contained in:
parent
16424a83c9
commit
93639e16a5
1 changed files with 49 additions and 45 deletions
|
@ -133,10 +133,10 @@ def selftests():
|
||||||
"12817C48", "3351979A3449CACD9EE113A75B862917F03EFAE68DA399C06342BF8583C88DFE769DF49754A96F7C28B57189FB05B9C10E2305D41423A6EB"], # noqa: E501
|
"12817C48", "3351979A3449CACD9EE113A75B862917F03EFAE68DA399C06342BF8583C88DFE769DF49754A96F7C28B57189FB05B9C10E2305D41423A6EB"], # noqa: E501
|
||||||
'pk': "044409ADC42F91A8394066BA83D872FB1D16803734E911170412DDF8BAD1A4DADFD0416291AFE1C748253925DA39A5F39A1C557FFACD34C62E"}, # noqa: E501
|
'pk': "044409ADC42F91A8394066BA83D872FB1D16803734E911170412DDF8BAD1A4DADFD0416291AFE1C748253925DA39A5F39A1C557FFACD34C62E"}, # noqa: E501
|
||||||
|
|
||||||
{'name': "NTAG413DNA",
|
{'name': "NTAG413DNA, DESFire EV1",
|
||||||
'samples': ["042468222F5C80", "B9211E320F321BD1D0E158E10FF15109B389638BAE15D9909D7725BF1250ED236D66F1AF75C94D60330E4E92535F5E6997675281A5687173", # noqa: E501
|
'samples': ["042468222F5C80", "B9211E320F321BD1D0E158E10FF15109B389638BAE15D9909D7725BF1250ED236D66F1AF75C94D60330E4E92535F5E6997675281A5687173", # noqa: E501
|
||||||
"042938222F5C80", "18B642797D1FD71806146A7A6EC778D3FDD04F39C4A3B36A592BD1A114DC44E5528380FA766C0B7EA32B284AFBE84300B620369F0686D8CC"], # noqa: E501
|
"042938222F5C80", "18B642797D1FD71806146A7A6EC778D3FDD04F39C4A3B36A592BD1A114DC44E5528380FA766C0B7EA32B284AFBE84300B620369F0686D8CC"], # noqa: E501
|
||||||
'pk': "04bb5d514f7050025c7d0f397310360eec91eaf792e96fc7e0f496cb4e669d414f877b7b27901fe67c2e3b33cd39d1c797715189ac951c2add"}, # noqa: E501
|
'pk': "04BB5D514F7050025C7D0F397310360EEC91EAF792E96FC7E0F496CB4E669D414F877B7B27901FE67C2E3B33CD39D1C797715189AC951C2ADD"}, # noqa: E501
|
||||||
|
|
||||||
{'name': "NTAG424DNA",
|
{'name': "NTAG424DNA",
|
||||||
'samples': ["0463474AA26A80", "27E9A50E6CA4BA9037C02F7D20A80D0284D0C1D83C67F5A5AC1D8A4EF86C9508417E4E9C6F85AA7920F0ABDED984CAF20467D66EA54BBF08", # noqa: E501
|
'samples': ["0463474AA26A80", "27E9A50E6CA4BA9037C02F7D20A80D0284D0C1D83C67F5A5AC1D8A4EF86C9508417E4E9C6F85AA7920F0ABDED984CAF20467D66EA54BBF08", # noqa: E501
|
||||||
|
@ -208,35 +208,39 @@ def selftests():
|
||||||
succeeded = True
|
succeeded = True
|
||||||
for t in tests:
|
for t in tests:
|
||||||
|
|
||||||
print("Testing %-38s" % (t['name']+":"), end="")
|
print("Testing %-40s" % (t['name']+":"), end="")
|
||||||
|
|
||||||
curvenames = guess_curvename(t['samples'][1])
|
curvenames = guess_curvename(t['samples'][1])
|
||||||
recovered = set()
|
recovered = set()
|
||||||
|
|
||||||
for c in curvenames:
|
for c in curvenames:
|
||||||
for h in [None, "md5", "sha1", "sha256", "sha512"]:
|
for h in [None, "md5", "sha1", "sha256", "sha512"]:
|
||||||
recovered |= recover_multiple(t['samples'][::2], t['samples'][1::2], c, alghash=h)
|
recovered |= set([(c, h, pk) for pk in
|
||||||
|
recover_multiple(t['samples'][::2], t['samples'][1::2], c, alghash=h)])
|
||||||
|
|
||||||
if (len(recovered) == 1):
|
if (len(recovered) == 1):
|
||||||
pk = recovered.pop()
|
c, h, pk = recovered.pop()
|
||||||
pk = binascii.hexlify(pk).decode('utf8')
|
pk = binascii.hexlify(pk).decode('utf8')
|
||||||
if pk.lower() == t['pk'].lower():
|
if pk.lower() == t['pk'].lower():
|
||||||
print("( %s )" % color('ok', fg='green'))
|
print("%15s/%-8s ( %s )" % (c, h, color('ok', fg='green')))
|
||||||
else:
|
else:
|
||||||
succeeded = False
|
succeeded = False
|
||||||
print("( FAIL ) got %s" % pk.lower())
|
print("%15s/%-8s ( %s ) got %s" % (c, h, color('fail', fg='red'), pk.lower()))
|
||||||
elif len(t['samples'])//2 == 1:
|
elif len(t['samples'])//2 == 1:
|
||||||
pks = [binascii.hexlify(pk).decode('utf8').lower() for pk in list(recovered)]
|
recovereds = [(c, h) for c, h, pk in list(recovered)
|
||||||
if t['pk'].lower() in pks:
|
if t['pk'].lower() == binascii.hexlify(pk).decode('utf8').lower()]
|
||||||
print("( %s ) partial" % color('ok', fg='green'))
|
if len(recovereds) > 0:
|
||||||
|
print("%15s/%-8s ( %s ) partial" % (c, h, color('ok', fg='green')))
|
||||||
else:
|
else:
|
||||||
succeeded = False
|
succeeded = False
|
||||||
print("( %s ), got %s" % color('fail', fg='red'), pks)
|
print(" ( %s ), got" % color('fail', fg='red'))
|
||||||
|
for c, h, pk in list(recovered):
|
||||||
|
print(c, h, binascii.hexlify(pk).decode('utf8').lower())
|
||||||
else:
|
else:
|
||||||
print(" ( %s )" % color('fail', fg='red'))
|
print(" ( %s )" % color('fail', fg='red'))
|
||||||
succeeded = False
|
succeeded = False
|
||||||
|
|
||||||
print("=====================================================")
|
print("===============================================================================")
|
||||||
fail = color('fail', fg='red')
|
fail = color('fail', fg='red')
|
||||||
ok = color('ok', fg='green')
|
ok = color('ok', fg='green')
|
||||||
print("Tests: ( %s )" % [fail, ok][succeeded])
|
print("Tests: ( %s )" % [fail, ok][succeeded])
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue