mirror of
https://github.com/polhenarejos/pico-hsm.git
synced 2026-01-17 09:28:05 +00:00
Only request and upload the device certificate if needed.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
parent
9b9ea7cae5
commit
f1410bbf04
1 changed files with 17 additions and 14 deletions
|
|
@ -217,24 +217,27 @@ def initialize(picohsm, args):
|
||||||
so_pin = '57621880'
|
so_pin = '57621880'
|
||||||
|
|
||||||
picohsm.initialize(pin=pin, sopin=so_pin)
|
picohsm.initialize(pin=pin, sopin=so_pin)
|
||||||
response = picohsm.get_contents(DOPrefixes.EE_CERTIFICATE_PREFIX, 0x00)
|
try:
|
||||||
|
picohsm.select_file(0x2f02)
|
||||||
|
except APDUResponse:
|
||||||
|
response = picohsm.get_contents(DOPrefixes.EE_CERTIFICATE_PREFIX, 0x00)
|
||||||
|
|
||||||
cert = bytearray(response)
|
cert = bytearray(response)
|
||||||
Y = CVC().decode(cert).pubkey().find(0x86).data()
|
Y = CVC().decode(cert).pubkey().find(0x86).data()
|
||||||
print(f'Public Point: {hexlify(Y).decode()}')
|
print(f'Public Point: {hexlify(Y).decode()}')
|
||||||
|
|
||||||
pbk = base64.urlsafe_b64encode(Y)
|
pbk = base64.urlsafe_b64encode(Y)
|
||||||
data = urllib.parse.urlencode({'pubkey': pbk}).encode()
|
data = urllib.parse.urlencode({'pubkey': pbk}).encode()
|
||||||
j = get_pki_data('cvc', data=data)
|
j = get_pki_data('cvc', data=data)
|
||||||
print('Device name: '+j['devname'])
|
print('Device name: '+j['devname'])
|
||||||
dataef = base64.urlsafe_b64decode(
|
dataef = base64.urlsafe_b64decode(
|
||||||
j['cvcert']) + base64.urlsafe_b64decode(j['dvcert']) + base64.urlsafe_b64decode(j['cacert'])
|
j['cvcert']) + base64.urlsafe_b64decode(j['dvcert']) + base64.urlsafe_b64decode(j['cacert'])
|
||||||
|
|
||||||
picohsm.select_file(0x2f02)
|
picohsm.select_file(0x2f02)
|
||||||
response = picohsm.put_contents(0x0000, data=dataef)
|
response = picohsm.put_contents(0x0000, data=dataef)
|
||||||
|
|
||||||
print('Certificate uploaded successfully!')
|
print('Certificate uploaded successfully!')
|
||||||
print('')
|
print('')
|
||||||
print('Note that the device is initialized with a default PIN and '
|
print('Note that the device is initialized with a default PIN and '
|
||||||
'configuration.')
|
'configuration.')
|
||||||
print('Now you can initialize the device as usual with your chosen PIN '
|
print('Now you can initialize the device as usual with your chosen PIN '
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue