Make the signature wrapped in JSON object to be able to extend structure later

This commit is contained in:
Ondrej Mikle 2017-10-27 19:56:43 +02:00
parent d4a382ed2f
commit cfe19b55a1
2 changed files with 16 additions and 3 deletions

View file

@ -3,6 +3,7 @@ import sqlite3
import hmac
import hashlib
import logging
import json
import axolotl_curve25519 as curve
@ -184,7 +185,8 @@ class DesfireEd25519Authenthicator(object):
nick = record[0]
try:
ndefSignature = self.nfcReader.readDesfireNDEF()
ndefJson = json.loads(self.nfcReader.readDesfireNDEF())
ndefSignature = ndefJson["brmdoorSignature"].decode("hex")
if len(ndefSignature) != 64:
logging.error("NDEF signature has wrong length")
return None
@ -194,7 +196,16 @@ class DesfireEd25519Authenthicator(object):
logging.info("Signature check failed for Desfire NDEF for UID %s", uid_hex)
return None
except NFCError, e:
logging.info("Desfire read NDEF failed: %s" % e.what())
logging.error("Desfire read NDEF failed: %s", e.what())
return None
except TypeError, e:
logging.error("Could not decode signature from JSON: %s", e)
return None
except ValueError, e:
logging.error("Could not decode JSON from NDEF: %s", e)
return None
except KeyError, e:
logging.error("Missing signature in JSON: %s", e)
return None
def shutdown(self):

View file

@ -27,7 +27,9 @@ try:
print "Got UID %s" % uid_hex
signature = signUid(key, uid_hex.decode("hex"))
(tempFd, tempFname) = tempfile.mkstemp(dir="/tmp")
os.write(tempFd, signature)
signatureJson = '{"brmdoorSignature": "%s"}' % signature.encode("hex")
print "Writing signature JSON:", signatureJson
os.write(tempFd, signatureJson)
os.close(tempFd)
print "Wrote signature into %s" % tempFname
except NFCError, e: