mirror of
https://github.com/brmlab/brmdoor_libnfc.git
synced 2025-06-07 08:04:06 +02:00
27 lines
836 B
Python
27 lines
836 B
Python
#!/usr/bin/env python2
|
|
|
|
import sys
|
|
import os
|
|
import axolotl_curve25519 as curve
|
|
|
|
def signUid(private_key, uid):
|
|
"""
|
|
Create an Ed25519 signature for UID
|
|
:param private_key: Binary representation of Ed25519 key
|
|
:param uid: UID, decoded to binary from hex
|
|
:return: singature in binary format
|
|
"""
|
|
random64 = os.urandom(64)
|
|
signature = curve.calculateSignature(random64, private_key, uid)
|
|
return signature
|
|
|
|
if __name__ == "__main__":
|
|
|
|
if len(sys.argv) < 3:
|
|
print >> sys.stderr, "Usage: sign_uid.py uid_hex ed25519_private_key_hex"
|
|
print >> sys.stderr, "Outputs binary signature, you will probably want to redirect it to a file"
|
|
sys.exit(1)
|
|
|
|
private_key = sys.argv[3].decode("hex")
|
|
uid_bin = sys.argv[1].decode("hex")
|
|
sys.stdout.write(signUid(private_key, uid_bin))
|