我正在尝试在Django应用程序中实现与此api的集成。http://pdn.pearson.com/pearson-learningstudio/apis/authentication/authentication-use-cases/use-case-submit-request-using-oauth2-assertion_x
除了使用断言认证方法外,几乎所有工作都有效。我需要使用CMAC-AES加密断言字符串,我不知道该怎么做。
他们的所有示例代码都使用内置的语言库,我找不到任何可以让我在Python中执行此操作的库。我一整天都在谷歌上搜索,却找不到任何东西。
有谁知道我在哪里可以找到一个可以让我这样做的图书馆?或者如何解决它
由于
-Alex
答案 0 :(得分:2)
PyCrypto的当前alpha版本包含CMAC作为模块Crypto.Hash.CMAC
。
例如:
from Crypto.Hash import CMAC
from Crypto.Cipher import AES
secret = b'Sixteen byte key'
cobj = CMAC.new(secret, ciphermod=AES)
cobj.update(b'Hello')
print cobj.hexdigest()
答案 1 :(得分:1)
PyCryptoPlus库实现了CMAC-AES。这是AES.py文档的摘录:
CMAC EXAMPLE:
-------------
NIST publication 800-38B: http://csrc.nist.gov/publications/nistpubs/800-38B/Updated_CMAC_Examples.pdf
>>> key = '2b7e151628aed2a6abf7158809cf4f3c'.decode('hex')
>>> plaintext = '6bc1bee22e409f96e93d7e117393172a'.decode('hex')
>>> cipher = AES.new(key,AES.MODE_CMAC)
>>> cipher.encrypt(plaintext).encode('hex')
'070a16b46b4d4144f79bdd9dd04a287c'