Hi LinOTP Team, ich habe LinOTP genutzt und ich habe nun eine Frage mit dem ,,linotp-decrypt-otp" Script. Ich will einen Token secret key dechiffrieren, dann suche ich in meine MySQL DB die erforderlich Daten:
mysql> select LinOtpKeyEnc, LinOtpKeyIV from Token;
"LinOtpKeyEnc":
"b45a5ae13ff6a3e6938a10bd6fe42e9795ccc77933949da15e4933f76b9e7a4cd5574f951c2e76abbf2eee592ae7209312b51a2250c2d88c694e7b08255dced80e1e939637b7ee79ac7487b1f3670989bc4188a56ca7571abf8d5d7c41b8f303"
"LinOtpKeyIV": "4a2f940d1d77c8331f8b7a94e289f1c7"
Aber wenn ich führe den Script aus:
linotp-decrypt-otpkey --otp=b45a5ae13ff6a3e6938a10bd6fe42e9795ccc77933949da15e4933f76b9e7a4cd5574f951c2e76abbf2eee592ae7209312b51a2250c2d88c694e7b08255dced80e1e939637b7ee79ac7487b1f3670989bc4188a56ca7571abf8d5d7c41b8f303 --iv=4a2f940d1d77c8331f8b7a94e289f1c7 --enckey=/etc/linotp2/encKey
Traceback (most recent call last):
File "/usr/bin/linotp-decrypt-otpkey", line 111, in <module>
main()
File "/usr/bin/linotp-decrypt-otpkey", line 106, in main
result = aes_decrypt(binascii.unhexlify(otp), binascii.unhexlify(iv), enckey)
File "/usr/bin/linotp-decrypt-otpkey", line 44, in aes_decrypt
aesObj = AES.new(key_bin, AES.MODE_CBC, iv_bin)
File "/usr/lib/python2.7/dist-packages/Crypto/Cipher/AES.py", line 94, in new
return AESCipher(key, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/Crypto/Cipher/AES.py", line 59, in __init__
blockalgo.BlockAlgo.__init__(self, _AES, key, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/Crypto/Cipher/blockalgo.py", line 141, in __init__
ValueError: AES key must be either 16, 24, or 32 bytes long
So der encKey Schlüssel hat nicht 16, 24 oder 32 Bytes, er hat 96 Bytes länge. Das ist den Fehler.
Ich frage mich, wie dekodiert LinOTP eine OTP?
Vielen dank für Ihre helfen!
Nicolás