Adding tests for OpenPGP.
All tests are taken from gnuk. Reader is migrated from pyusb to pyscard. Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
34
tests/util.py
Normal file
34
tests/util.py
Normal file
@@ -0,0 +1,34 @@
|
||||
def skip_tag_if_any(tagh, tagl, data):
|
||||
if data == None:
|
||||
return None
|
||||
if len(data) == 0:
|
||||
return b''
|
||||
# No tag, return DATA itself
|
||||
if tagh == 0x00:
|
||||
if tagl != data[0]:
|
||||
return data
|
||||
else:
|
||||
if tagh != data[0]:
|
||||
return data
|
||||
elif tagl != data[1]:
|
||||
raise ValueError(data)
|
||||
data_len_b0 = data[1 if tagh==0 else 2]
|
||||
if data_len_b0 == 0x81:
|
||||
data_len = data[2 if tagh==0 else 3]
|
||||
elif data_len_b0 == 0x82:
|
||||
data_len = (data[2 if tagh==0 else 3] << 8)| data[3 if tagh==0 else 4]
|
||||
else:
|
||||
data_len = data_len_b0
|
||||
return data[len(data)-data_len:]
|
||||
|
||||
def get_data_object(card, tag):
|
||||
tagh = tag >> 8
|
||||
tagl = tag & 0xff
|
||||
result = card.cmd_get_data(tagh, tagl)
|
||||
if card.is_yubikey:
|
||||
return skip_tag_if_any(tagh, tagl, result)
|
||||
else:
|
||||
return result
|
||||
|
||||
def check_null(data_object):
|
||||
return data_object == None or len(data_object) == 0
|
||||
Reference in New Issue
Block a user