Crypto.Cipher AES.MODE_EAX encrypt_and_digest ошибка: аргумент 2 должен быть байтами, а не байтовым массивом - PullRequest
0 голосов
/ 07 июля 2019

Следующий код дал мне ошибку "аргумент 2 должен быть байтами, а не байтовым массивом". Я не могу найти никаких документов о encrypt_and_digest, за исключением некоторых примеров кодов, которые все только передали один аргумент методу. Кто-нибудь знает, в чем здесь проблема? Спасибо.

key = rb(16)
cipher = AES.new(key, AES.MODE_EAX)
ciphertext, tag = cipher.encrypt_and_digest(b'hello')

1 Ответ

0 голосов
/ 07 июля 2019

Я проследил источник ошибки до третьей строки в следующем коде

partial = self._cache[:]
partial[self._cache_n:] = b'\x80' + b'\x00' * (bs - self._cache_n - 1)
pt = strxor(strxor(self._last_ct, partial), self._k2)

в дайджесте функции в файле python3.7 / site-packages / Crypto / Hash / CMAC.py. Ошибка о втором частичном аргументе, который является байтовым массивом. Когда я изменил третью строку на следующую, ошибка исчезла.

pt = strxor(strxor(self._last_ct, bytes(partial)), self._k2)
...