From f963bfba7964244a26f491f2a55496905fac3803 Mon Sep 17 00:00:00 2001 From: deezerdl Date: Wed, 24 May 2017 22:49:22 +0000 Subject: [PATCH] added aes_ecb_encrypt --- youtube_dl/aes.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/youtube_dl/aes.py b/youtube_dl/aes.py index c5bb3c4ef..a24e3be48 100644 --- a/youtube_dl/aes.py +++ b/youtube_dl/aes.py @@ -88,6 +88,25 @@ def aes_cbc_encrypt(data, key, iv): return encrypted_data +def aes_ecb_encrypt(data, key): + """ + Encrypt with aes in ECB mode. + + @param {int[]} data cleartext + @param {int[]} key 16/24/32-Byte cipher key + @returns {int[]} encrypted data + """ + expanded_key = key_expansion(key) + block_count = len(data) // BLOCK_SIZE_BYTES + + encrypted_data = [] + for i in range(block_count): + block = data[i * BLOCK_SIZE_BYTES: (i + 1) * BLOCK_SIZE_BYTES] + encrypted_data += aes_encrypt(block, expanded_key) + + return encrypted_data + + def key_expansion(data): """ Generate key schedule @@ -358,4 +377,4 @@ def inc(data): return data -__all__ = ['aes_encrypt', 'key_expansion', 'aes_ctr_decrypt', 'aes_cbc_decrypt', 'aes_decrypt_text'] +__all__ = ['aes_encrypt', 'key_expansion', 'aes_ctr_decrypt', 'aes_cbc_decrypt', 'aes_decrypt_text', 'aes_ecb_encrypt']