Python Cryptodome.Cipher.AES.MODE_CBC Examples
The following are 30
code examples of Cryptodome.Cipher.AES.MODE_CBC().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
Cryptodome.Cipher.AES
, or try the search function
.
Example #1
Source File: test_CBC.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_aes_256(self): key = '603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4' iv = '000102030405060708090a0b0c0d0e0f' plaintext = '6bc1bee22e409f96e93d7e117393172a' +\ 'ae2d8a571e03ac9c9eb76fac45af8e51' +\ '30c81c46a35ce411e5fbc1191a0a52ef' +\ 'f69f2445df4f9b17ad2b417be66c3710' ciphertext = 'f58c4c04d6e5f1ba779eabfb5f7bfbd6' +\ '9cfc4e967edb808d679f777bc6702c7d' +\ '39f23369a9d9bacfa530e26304231461' +\ 'b2eb05e2c39be9fcda6c19078c6a9d1b' key = unhexlify(key) iv = unhexlify(iv) plaintext = unhexlify(plaintext) ciphertext = unhexlify(ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.encrypt(plaintext), ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.decrypt(ciphertext), plaintext)
Example #2
Source File: test_CBC.py From jarvis with GNU General Public License v2.0 | 6 votes |
def test_aes_128(self): key = '2b7e151628aed2a6abf7158809cf4f3c' iv = '000102030405060708090a0b0c0d0e0f' plaintext = '6bc1bee22e409f96e93d7e117393172a' +\ 'ae2d8a571e03ac9c9eb76fac45af8e51' +\ '30c81c46a35ce411e5fbc1191a0a52ef' +\ 'f69f2445df4f9b17ad2b417be66c3710' ciphertext = '7649abac8119b246cee98e9b12e9197d' +\ '5086cb9b507219ee95db113a917678b2' +\ '73bed6b8e3c1743b7116e69e22229516' +\ '3ff1caa1681fac09120eca307586e1a7' key = unhexlify(key) iv = unhexlify(iv) plaintext = unhexlify(plaintext) ciphertext = unhexlify(ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.encrypt(plaintext), ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.decrypt(ciphertext), plaintext)
Example #3
Source File: test_CBC.py From jarvis with GNU General Public License v2.0 | 6 votes |
def test_aes_192(self): key = '8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b' iv = '000102030405060708090a0b0c0d0e0f' plaintext = '6bc1bee22e409f96e93d7e117393172a' +\ 'ae2d8a571e03ac9c9eb76fac45af8e51' +\ '30c81c46a35ce411e5fbc1191a0a52ef' +\ 'f69f2445df4f9b17ad2b417be66c3710' ciphertext = '4f021db243bc633d7178183a9fa071e8' +\ 'b4d9ada9ad7dedf4e5e738763f69145a' +\ '571b242012fb7ae07fa9baac3df102e0' +\ '08b0e27988598881d920a9e64f5615cd' key = unhexlify(key) iv = unhexlify(iv) plaintext = unhexlify(plaintext) ciphertext = unhexlify(ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.encrypt(plaintext), ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.decrypt(ciphertext), plaintext)
Example #4
Source File: test_CBC.py From jarvis with GNU General Public License v2.0 | 6 votes |
def test_aes_256(self): key = '603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4' iv = '000102030405060708090a0b0c0d0e0f' plaintext = '6bc1bee22e409f96e93d7e117393172a' +\ 'ae2d8a571e03ac9c9eb76fac45af8e51' +\ '30c81c46a35ce411e5fbc1191a0a52ef' +\ 'f69f2445df4f9b17ad2b417be66c3710' ciphertext = 'f58c4c04d6e5f1ba779eabfb5f7bfbd6' +\ '9cfc4e967edb808d679f777bc6702c7d' +\ '39f23369a9d9bacfa530e26304231461' +\ 'b2eb05e2c39be9fcda6c19078c6a9d1b' key = unhexlify(key) iv = unhexlify(iv) plaintext = unhexlify(plaintext) ciphertext = unhexlify(ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.encrypt(plaintext), ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.decrypt(ciphertext), plaintext)
Example #5
Source File: model.py From EvilOSX with GNU General Public License v3.0 | 6 votes |
def _openssl_encrypt(password, plaintext): """ :type password: str :type plaintext: str :rtype: str """ # Thanks to Joe Linoff, taken from https://stackoverflow.com/a/42773185 salt = get_random_bytes(8) key, iv = PayloadFactory._get_key_and_iv(password, salt) # PKCS#7 padding padding_len = 16 - (len(plaintext) % 16) padded_plaintext = plaintext + (chr(padding_len) * padding_len) # Encrypt cipher = AES.new(key, AES.MODE_CBC, iv) cipher_text = cipher.encrypt(padded_plaintext.encode()) # Make OpenSSL compatible openssl_cipher_text = b"Salted__" + salt + cipher_text return b64encode(openssl_cipher_text).decode()
Example #6
Source File: credentials.py From plugin.video.netflix with MIT License | 6 votes |
def decrypt_credential(enc, secret=None): """ Decodes data :param data: Data to be decoded :type data: str :returns: string -- Decoded data """ # pylint: disable=invalid-name,import-error import base64 try: # The crypto package depends on the library installed (see Wiki) from Crypto.Cipher import AES from Crypto.Util import Padding except ImportError: from Cryptodome.Cipher import AES from Cryptodome.Util import Padding enc = base64.b64decode(enc) iv = enc[:AES.block_size] cipher = AES.new(secret or get_crypt_key(), AES.MODE_CBC, iv) decoded = Padding.unpad( padded_data=cipher.decrypt(enc[AES.block_size:]), block_size=__BLOCK_SIZE__) return decoded
Example #7
Source File: credentials.py From plugin.video.netflix with MIT License | 6 votes |
def encrypt_credential(raw): """ Encodes data :param data: Data to be encoded :type data: str :returns: string -- Encoded data """ # pylint: disable=invalid-name,import-error import base64 try: # The crypto package depends on the library installed (see Wiki) from Crypto import Random from Crypto.Cipher import AES from Crypto.Util import Padding except ImportError: from Cryptodome import Random from Cryptodome.Cipher import AES from Cryptodome.Util import Padding raw = bytes(Padding.pad(data_to_pad=raw.encode('utf-8'), block_size=__BLOCK_SIZE__)) iv = Random.new().read(AES.block_size) cipher = AES.new(get_crypt_key(), AES.MODE_CBC, iv) return base64.b64encode(iv + cipher.encrypt(raw)).decode('utf-8')
Example #8
Source File: test_CBC.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_aes_128(self): key = '2b7e151628aed2a6abf7158809cf4f3c' iv = '000102030405060708090a0b0c0d0e0f' plaintext = '6bc1bee22e409f96e93d7e117393172a' +\ 'ae2d8a571e03ac9c9eb76fac45af8e51' +\ '30c81c46a35ce411e5fbc1191a0a52ef' +\ 'f69f2445df4f9b17ad2b417be66c3710' ciphertext = '7649abac8119b246cee98e9b12e9197d' +\ '5086cb9b507219ee95db113a917678b2' +\ '73bed6b8e3c1743b7116e69e22229516' +\ '3ff1caa1681fac09120eca307586e1a7' key = unhexlify(key) iv = unhexlify(iv) plaintext = unhexlify(plaintext) ciphertext = unhexlify(ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.encrypt(plaintext), ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.decrypt(ciphertext), plaintext)
Example #9
Source File: test_CBC.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_aes_192(self): key = '8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b' iv = '000102030405060708090a0b0c0d0e0f' plaintext = '6bc1bee22e409f96e93d7e117393172a' +\ 'ae2d8a571e03ac9c9eb76fac45af8e51' +\ '30c81c46a35ce411e5fbc1191a0a52ef' +\ 'f69f2445df4f9b17ad2b417be66c3710' ciphertext = '4f021db243bc633d7178183a9fa071e8' +\ 'b4d9ada9ad7dedf4e5e738763f69145a' +\ '571b242012fb7ae07fa9baac3df102e0' +\ '08b0e27988598881d920a9e64f5615cd' key = unhexlify(key) iv = unhexlify(iv) plaintext = unhexlify(plaintext) ciphertext = unhexlify(ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.encrypt(plaintext), ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.decrypt(ciphertext), plaintext)
Example #10
Source File: test_CBC.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_aes_128(self): key = '2b7e151628aed2a6abf7158809cf4f3c' iv = '000102030405060708090a0b0c0d0e0f' plaintext = '6bc1bee22e409f96e93d7e117393172a' +\ 'ae2d8a571e03ac9c9eb76fac45af8e51' +\ '30c81c46a35ce411e5fbc1191a0a52ef' +\ 'f69f2445df4f9b17ad2b417be66c3710' ciphertext = '7649abac8119b246cee98e9b12e9197d' +\ '5086cb9b507219ee95db113a917678b2' +\ '73bed6b8e3c1743b7116e69e22229516' +\ '3ff1caa1681fac09120eca307586e1a7' key = unhexlify(key) iv = unhexlify(iv) plaintext = unhexlify(plaintext) ciphertext = unhexlify(ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.encrypt(plaintext), ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.decrypt(ciphertext), plaintext)
Example #11
Source File: test_CBC.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_aes_192(self): key = '8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b' iv = '000102030405060708090a0b0c0d0e0f' plaintext = '6bc1bee22e409f96e93d7e117393172a' +\ 'ae2d8a571e03ac9c9eb76fac45af8e51' +\ '30c81c46a35ce411e5fbc1191a0a52ef' +\ 'f69f2445df4f9b17ad2b417be66c3710' ciphertext = '4f021db243bc633d7178183a9fa071e8' +\ 'b4d9ada9ad7dedf4e5e738763f69145a' +\ '571b242012fb7ae07fa9baac3df102e0' +\ '08b0e27988598881d920a9e64f5615cd' key = unhexlify(key) iv = unhexlify(iv) plaintext = unhexlify(plaintext) ciphertext = unhexlify(ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.encrypt(plaintext), ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.decrypt(ciphertext), plaintext)
Example #12
Source File: test_CBC.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_aes_256(self): key = '603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4' iv = '000102030405060708090a0b0c0d0e0f' plaintext = '6bc1bee22e409f96e93d7e117393172a' +\ 'ae2d8a571e03ac9c9eb76fac45af8e51' +\ '30c81c46a35ce411e5fbc1191a0a52ef' +\ 'f69f2445df4f9b17ad2b417be66c3710' ciphertext = 'f58c4c04d6e5f1ba779eabfb5f7bfbd6' +\ '9cfc4e967edb808d679f777bc6702c7d' +\ '39f23369a9d9bacfa530e26304231461' +\ 'b2eb05e2c39be9fcda6c19078c6a9d1b' key = unhexlify(key) iv = unhexlify(iv) plaintext = unhexlify(plaintext) ciphertext = unhexlify(ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.encrypt(plaintext), ciphertext) cipher = AES.new(key, AES.MODE_CBC, iv) self.assertEqual(cipher.decrypt(ciphertext), plaintext)
Example #13
Source File: __init__.py From django-encrypted-id with BSD 2-Clause "Simplified" License | 6 votes |
def encode(the_id, sub_key): assert 0 <= the_id < 2 ** 64 version = 1 crc = binascii.crc32(str(the_id).encode('utf-8')) & 0xffffffff message = struct.pack(b"<IQI", crc, the_id, version) assert len(message) == 16 key = settings.SECRET_KEY iv = hashlib.sha256((key + sub_key).encode('ascii')).digest()[:16] cypher = AES.new(key[:32].encode('utf-8'), AES.MODE_CBC, iv) eid = base64.urlsafe_b64encode(cypher.encrypt(message)).replace(b"=", b"") return eid.decode("utf-8")
Example #14
Source File: parser.py From Commander with MIT License | 6 votes |
def decode_aes256(cipher, iv, data, encryption_key): """ Decrypt AES-256 bytes. Allowed ciphers are: :ecb, :cbc. If for :ecb iv is not used and should be set to "". """ if cipher == 'cbc': aes = AES.new(encryption_key, AES.MODE_CBC, iv) elif cipher == 'ecb': aes = AES.new(encryption_key, AES.MODE_ECB) else: raise ValueError('Unknown AES mode') d = aes.decrypt(data) # http://passingcuriosity.com/2009/aes-encryption-in-python-with-m2crypto/ unpad = lambda s: s[0:-ord(d[-1:])] return unpad(d)
Example #15
Source File: memo.py From python-graphenelib with MIT License | 6 votes |
def init_aes(shared_secret, nonce): """ Initialize AES instance :param hex shared_secret: Shared Secret to use as encryption key :param int nonce: Random nonce :return: AES instance :rtype: AES """ " Shared Secret " ss = hashlib.sha512(unhexlify(shared_secret)).digest() " Seed " seed = bytes(str(nonce), "ascii") + hexlify(ss) seed_digest = hexlify(hashlib.sha512(seed).digest()).decode("ascii") " AES " key = unhexlify(seed_digest[0:64]) iv = unhexlify(seed_digest[64:96]) return AES.new(key, AES.MODE_CBC, iv)
Example #16
Source File: myjdapi.py From RSScrawler with MIT License | 5 votes |
def __encrypt(self, secret_token, data): """ Encrypts the data from the server using the provided token :param secret_token: :param data: """ data = pad(data.encode('utf-8')) init_vector = secret_token[:len(secret_token) // 2] key = secret_token[len(secret_token) // 2:] encryptor = AES.new(key, AES.MODE_CBC, init_vector) encrypted_data = base64.b64encode(encryptor.encrypt(data)) return encrypted_data.decode('utf-8')
Example #17
Source File: common.py From pykeepass with GNU General Public License v3.0 | 5 votes |
def get_cipher(self, master_key, encryption_iv): return AES.new(master_key, AES.MODE_CBC, encryption_iv)
Example #18
Source File: test.py From Padding-oracle-attack with MIT License | 5 votes |
def encrypt(msg, iv): raw = pad(msg) cipher = AES.new(b"V38lKILOJmtpQMHp", AES.MODE_CBC, iv) return cipher.encrypt(raw), iv
Example #19
Source File: test.py From Padding-oracle-attack with MIT License | 5 votes |
def decrypt(enc, iv): decipher = AES.new(b"V38lKILOJmtpQMHp", AES.MODE_CBC, iv) return unpad(decipher.decrypt(enc))
Example #20
Source File: aes.py From python-graphenelib with MIT License | 5 votes |
def encrypt(self, raw): raw = self._pad(AESCipher.str_to_bytes(raw)) iv = Random.new().read(AES.block_size) cipher = AES.new(self.key, AES.MODE_CBC, iv) return base64.b64encode(iv + cipher.encrypt(raw)).decode("utf-8")
Example #21
Source File: psk-frontend.py From tuya-convert with MIT License | 5 votes |
def gen_psk(identity, hint): print("ID: %s" % hexlify(identity).decode()) identity = identity[1:] if identity[:16] != IDENTITY_PREFIX: print("Prefix: %s" % identity[:16]) key = md5(hint[-16:]).digest() iv = md5(identity).digest() cipher = AES.new(key, AES.MODE_CBC, iv) psk = cipher.encrypt(identity[:32]) print("PSK: %s" % hexlify(psk).decode()) return psk
Example #22
Source File: myjdapi.py From RSScrawler with MIT License | 5 votes |
def __decrypt(self, secret_token, data): """ Decrypts the data from the server using the provided token :param secret_token: :param data: """ init_vector = secret_token[:len(secret_token) // 2] key = secret_token[len(secret_token) // 2:] decryptor = AES.new(key, AES.MODE_CBC, init_vector) decrypted_data = unpad(decryptor.decrypt(base64.b64decode(data))) return decrypted_data
Example #23
Source File: core.py From synology-decrypt with GNU General Public License v3.0 | 5 votes |
def _decryptor_with_keyiv(key_iv_pair): (key,iv) = key_iv_pair return AES.new(key, AES.MODE_CBC, iv)
Example #24
Source File: crypto.py From snmpfwd with BSD 2-Clause "Simplified" License | 5 votes |
def decrypt(self, key, enc): iv = enc[:16] cipher = AES.new(str2octs(key), AES.MODE_CBC, iv) return self.unpad(cipher.decrypt(enc[16:]))
Example #25
Source File: crypto.py From snmpfwd with BSD 2-Clause "Simplified" License | 5 votes |
def encrypt(self, key, raw): raw = self.pad(raw) iv = Random.new().read(AES.block_size) cipher = AES.new(str2octs(key), AES.MODE_CBC, iv) return iv + cipher.encrypt(raw)
Example #26
Source File: common.py From pykeepass with GNU General Public License v3.0 | 5 votes |
def get_cipher(self, master_key, encryption_iv): return Twofish.new(master_key, mode=Twofish.MODE_CBC, IV=encryption_iv)
Example #27
Source File: backend.py From docassemble with MIT License | 5 votes |
def decrypt_phrase(phrase_string, secret): phrase_string = bytearray(phrase_string, encoding='utf-8') decrypter = AES.new(bytearray(secret, encoding='utf-8'), AES.MODE_CBC, phrase_string[:16]) return unpad(decrypter.decrypt(codecs.decode(phrase_string[16:], 'base64'))).decode('utf-8')
Example #28
Source File: hls.py From DataSpider with GNU General Public License v3.0 | 5 votes |
def __init__(self, index_url: str): self.playlist = m3u8.load(index_url) if len(self.playlist.playlists) > 0: bw_uri = sorted( [ ( p.absolute_uri, int(p.stream_info.bandwidth) ) for p in self.playlist.playlists ], key=lambda bu: -bu[1] ) log.info(f"Multi playlists found, loading the video which bandwidth={bw_uri[0][1]} uri={bw_uri[0][0]}") self.playlist = m3u8.load(bw_uri[0][0]) if len(self.playlist.keys) == 1: key = self.playlist.keys[0] if not key.method.startswith("AES"): raise Exception(f"Unsupported crypt method: {key.method}") else: log.info(f"Key found, method={key.method}") _aes = AES.new(http_get(key.absolute_uri), AES.MODE_CBC) self._crypto_func = lambda data: _aes.decrypt(data) elif len(self.playlist.keys) == 0: log.info("No keys found in index file.") self._crypto_func = lambda data: data else: raise Exception(f"Too much ({len(self.playlist.keys)}) keys found.")
Example #29
Source File: utils.py From pymsl with GNU General Public License v3.0 | 5 votes |
def msl_encrypt(msl_session, plaintext): """ msl_encrypt() @param msl_session: Dict of msl_session created by the client upon initialization @param plaintext: Plaintext to encrypt @return: JSON byte string of encryption envelope """ cbc_iv = os.urandom(16) encryption_envelope = { 'keyid': '%s_%s' % ( msl_session['esn'], msl_session['session_keys']['sequence_number'] ), 'sha256': 'AA==', 'iv': base64.b64encode(cbc_iv).decode('utf8') } plaintext = Padding.pad(plaintext.encode('utf8'), 16) cipher = AES.new( msl_session['session_keys']['encryption_key'], AES.MODE_CBC, cbc_iv ) ciphertext = cipher.encrypt(plaintext) encryption_envelope['ciphertext'] = base64.b64encode( ciphertext ).decode('utf8') return json.dumps(encryption_envelope).encode('utf8')
Example #30
Source File: test_dpapi.py From Slackor with GNU General Public License v3.0 | 5 votes |
def test_decryptVCrd(self): blob = VAULT_VCRD(self.vcrdFile) blob.dump() key = unhexlify('acf4ff323558de5514be1731598e37c1ae5a6bf9016d5906097aee46712a5fe7') cleartext = None for i, entry in enumerate(blob.attributesLen): if entry > 28: attribute = blob.attributes[i] if 'IV' in attribute.fields and len(attribute['IV']) == 16: cipher = AES.new(key, AES.MODE_CBC, iv=attribute['IV']) else: cipher = AES.new(key, AES.MODE_CBC) cleartext = cipher.decrypt(attribute['Data']) if cleartext is not None: # Lookup schema Friendly Name and print if we find one if blob['FriendlyName'].decode('utf-16le')[:-1] in VAULT_KNOWN_SCHEMAS: # Found one. Cast it and print vault = VAULT_KNOWN_SCHEMAS[blob['FriendlyName'].decode('utf-16le')[:-1]](cleartext) vault.dump() self.assertEqual(vault['Username'], 'CONTOSO\\Administrator\x00'.encode('utf-16le')) else: raise Exception('No valid Schema') # Process command-line arguments.