mirror of
https://github.com/polhenarejos/pico-hsm.git
synced 2026-01-17 01:18:06 +00:00
Add OTP command to Pico HSM Tool.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
parent
812a737ff5
commit
2b77519a3b
1 changed files with 19 additions and 3 deletions
|
|
@ -135,10 +135,15 @@ def parse_args():
|
||||||
parser_keygen = subparser.add_parser('keygen', help='Generates private keypair or secret key.')
|
parser_keygen = subparser.add_parser('keygen', help='Generates private keypair or secret key.')
|
||||||
subparser_keygen = parser_keygen.add_subparsers(title='commands', dest='subcommand', required=True)
|
subparser_keygen = parser_keygen.add_subparsers(title='commands', dest='subcommand', required=True)
|
||||||
parser_keygen_aes = subparser_keygen.add_parser('aes', help='Generates an AES key.')
|
parser_keygen_aes = subparser_keygen.add_parser('aes', help='Generates an AES key.')
|
||||||
parser_keygen_aes.add_argument('--size', help='Specifies the size of AES key [128, 192 or 256]',choices=[128, 192, 256], default=128, type=int)
|
parser_keygen_aes.add_argument('--size', help='Specifies the size of AES key [128, 192 or 256]', choices=[128, 192, 256], default=128, type=int)
|
||||||
parser_keygen_x25519 = subparser_keygen.add_parser('x25519', help='Generates a private X25519 keypair.')
|
parser_keygen_x25519 = subparser_keygen.add_parser('x25519', help='Generates a private X25519 keypair.')
|
||||||
parser_keygen_x448 = subparser_keygen.add_parser('x448', help='Generates a private X448 keypair.')
|
parser_keygen_x448 = subparser_keygen.add_parser('x448', help='Generates a private X448 keypair.')
|
||||||
|
|
||||||
|
parser_otp = subparser.add_parser('otp', help='Read/write OTP values.')
|
||||||
|
parser_otp.add_argument('subcommand', choices=['read', 'write'], help='Read/write.', nargs='?')
|
||||||
|
parser_otp.add_argument('--row', help='OTP row (in HEX)', required=True)
|
||||||
|
parser_otp.add_argument('-d', '--data', help='Data to write (in HEX) [e.g. 0011223344556677889900AABBCCDDEEFF]', required='write' in sys.argv)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
return args
|
return args
|
||||||
|
|
||||||
|
|
@ -480,8 +485,18 @@ def phy(picohsm, args):
|
||||||
else:
|
else:
|
||||||
print('Command executed successfully. Please, restart your Pico Key.')
|
print('Command executed successfully. Please, restart your Pico Key.')
|
||||||
|
|
||||||
|
def otp(picohsm, args):
|
||||||
|
row = int(args.row, 16)
|
||||||
|
if (args.subcommand == 'read'):
|
||||||
|
ret = picohsm.otp(row=row)
|
||||||
|
print(f'OTP row {args.row}: {hexlify(ret).decode()}')
|
||||||
|
elif (args.subcommand == 'write'):
|
||||||
|
data = unhexlify(args.data)
|
||||||
|
picohsm.otp(row=row, data=data)
|
||||||
|
print(f'OTP row {args.row} written successfully.')
|
||||||
|
|
||||||
def main(args):
|
def main(args):
|
||||||
sys.stderr.buffer.write(b'Pico HSM Tool v1.16\n')
|
sys.stderr.buffer.write(b'Pico HSM Tool v1.18\n')
|
||||||
sys.stderr.buffer.write(b'Author: Pol Henarejos\n')
|
sys.stderr.buffer.write(b'Author: Pol Henarejos\n')
|
||||||
sys.stderr.buffer.write(b'Report bugs to https://github.com/polhenarejos/pico-hsm/issues\n')
|
sys.stderr.buffer.write(b'Report bugs to https://github.com/polhenarejos/pico-hsm/issues\n')
|
||||||
sys.stderr.buffer.write(b'\n\n')
|
sys.stderr.buffer.write(b'\n\n')
|
||||||
|
|
@ -508,7 +523,8 @@ def main(args):
|
||||||
keygen(picohsm, args)
|
keygen(picohsm, args)
|
||||||
elif (args.command == 'phy'):
|
elif (args.command == 'phy'):
|
||||||
phy(picohsm, args)
|
phy(picohsm, args)
|
||||||
|
elif (args.command == 'otp'):
|
||||||
|
otp(picohsm, args)
|
||||||
|
|
||||||
def run():
|
def run():
|
||||||
args = parse_args()
|
args = parse_args()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue