diff options
| author | Kévin Le Gouguec <kevin.legouguec@gmail.com> | 2019-03-24 17:33:38 +0100 |
|---|---|---|
| committer | Kévin Le Gouguec <kevin.legouguec@gmail.com> | 2019-03-24 17:33:38 +0100 |
| commit | 62cff183e2e9e67549db0461589a05138ce2ed00 (patch) | |
| tree | 2bf79622bbf7c18601f3ec89fc19596873f5b269 /src/add_python/lilliput | |
| parent | 97db0c6e5dc3576cdcca339acf3bb33b698dccd0 (diff) | |
| download | lilliput-ae-implem-62cff183e2e9e67549db0461589a05138ce2ed00.tar.xz | |
[implem-python] Remplacement de _low_part par du "tranchage" natif
Diffstat (limited to 'src/add_python/lilliput')
| -rw-r--r-- | src/add_python/lilliput/ae_mode_1.py | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/src/add_python/lilliput/ae_mode_1.py b/src/add_python/lilliput/ae_mode_1.py index efa0b6f..a5ba7c8 100644 --- a/src/add_python/lilliput/ae_mode_1.py +++ b/src/add_python/lilliput/ae_mode_1.py @@ -36,30 +36,6 @@ TWEAK_BITS = 192 TWEAK_BYTES = TWEAK_BITS//8 -def _low_part(array, number_bits): - shifted = 0 - for byte in range(0, len(array)): - shifted |= (array[byte] << (8 * byte)) - - mask = 0 - for bit in range(0, number_bits): - mask |= (0x1 << bit) - - lower_part = shifted & mask - - will_pad = 0 - if number_bits % 8 != 0: - will_pad = 1 - - lower_part_byte = [] - nb_bytes = number_bits//8 + will_pad - for byte in range(nb_bytes): - lower_part_byte.append(lower_part & 0xff) - lower_part = lower_part >> 8 - - return lower_part_byte - - class _MessageTweak(Enum): BLOCK = 0b0000 NO_PADDING = 0b0001 @@ -106,7 +82,7 @@ def _treat_message_enc(M, N, key): tweak = _tweak_message(N, l, _MessageTweak.PAD) pad = tbc.encrypt(tweak, key, [0 for byte in range(0, BLOCK_BYTES)]) - lower_part = _low_part(pad, padding_bytes*8) + lower_part = pad[:padding_bytes] C.append(xor(M[l], lower_part)) tweak_final = _tweak_message(N, l+1, _MessageTweak.FINAL) Final = tbc.encrypt(tweak_final, key, checksum) @@ -135,7 +111,7 @@ def _treat_message_dec(C, N, key): else: tweak = _tweak_message(N, l, _MessageTweak.PAD) pad = tbc.encrypt(tweak, key, [0 for byte in range(0, BLOCK_BYTES)]) - lower_part = _low_part(pad, padding_bytes*8) + lower_part = pad[:padding_bytes] M.append(xor(C[l], lower_part)) m_padded = pad10(M[l]) |
