Python Cryptodome.Cipher.AES.MODE_CCM Examples
The following are 30
code examples of Cryptodome.Cipher.AES.MODE_CCM().
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_CCM.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_valid_full_path(self): # Fixed authenticated data, fixed plaintext for assoc_len in (None, len(self.data_128)): for msg_len in (None, len(self.data_128)): # Verify path INIT->UPDATE->ENCRYPT->DIGEST cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.update(self.data_128) ct = cipher.encrypt(self.data_128) mac = cipher.digest() # Verify path INIT->UPDATE->DECRYPT->VERIFY cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.update(self.data_128) cipher.decrypt(ct) cipher.verify(mac)
Example #2
Source File: test_CCM.py From jarvis with GNU General Public License v2.0 | 6 votes |
def test_valid_full_path(self): # Fixed authenticated data, fixed plaintext for assoc_len in (None, len(self.data_128)): for msg_len in (None, len(self.data_128)): # Verify path INIT->UPDATE->ENCRYPT->DIGEST cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.update(self.data_128) ct = cipher.encrypt(self.data_128) mac = cipher.digest() # Verify path INIT->UPDATE->DECRYPT->VERIFY cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.update(self.data_128) cipher.decrypt(ct) cipher.verify(mac)
Example #3
Source File: test_CCM.py From jarvis with GNU General Public License v2.0 | 6 votes |
def test_valid_init_update_digest_verify(self): # No plaintext, fixed authenticated data for assoc_len in (None, len(self.data_128)): for msg_len in (None, 0): # Verify path INIT->UPDATE->DIGEST cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.update(self.data_128) mac = cipher.digest() # Verify path INIT->UPDATE->VERIFY cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.update(self.data_128) cipher.verify(mac)
Example #4
Source File: test_CCM.py From jarvis with GNU General Public License v2.0 | 6 votes |
def test_valid_init_encrypt_decrypt_digest_verify(self): # No authenticated data, fixed plaintext for assoc_len in (None, 0): for msg_len in (None, len(self.data_128)): # Verify path INIT->ENCRYPT->DIGEST cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) ct = cipher.encrypt(self.data_128) mac = cipher.digest() # Verify path INIT->DECRYPT->VERIFY cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.decrypt(ct) cipher.verify(mac)
Example #5
Source File: sensor.py From sensor.mitemp_bt with MIT License | 6 votes |
def decrypt_payload(encrypted_payload, key, nonce): """Decrypt payload.""" aad = b"\x11" token = encrypted_payload[-4:] payload_counter = encrypted_payload[-7:-4] nonce = b"".join([nonce, payload_counter]) cipherpayload = encrypted_payload[:-7] cipher = AES.new(key, AES.MODE_CCM, nonce=nonce, mac_len=4) cipher.update(aad) plaindata = None try: plaindata = cipher.decrypt_and_verify(cipherpayload, token) except ValueError as error: _LOGGER.error("Decryption failed: %s", error) _LOGGER.error("token: %s", token.hex()) _LOGGER.error("nonce: %s", nonce.hex()) _LOGGER.error("encrypted_payload: %s", encrypted_payload.hex()) _LOGGER.error("cipherpayload: %s", cipherpayload.hex()) return None return plaindata
Example #6
Source File: test_CCM.py From jarvis with GNU General Public License v2.0 | 6 votes |
def test_mac_len(self): # Invalid MAC length for mac_len in range(3, 17 + 1, 2): self.assertRaises(ValueError, AES.new, self.key_128, AES.MODE_CCM, nonce=self.nonce_96, mac_len=mac_len) # Valid MAC length for mac_len in range(4, 16 + 1, 2): cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, mac_len=mac_len) _, mac = cipher.encrypt_and_digest(self.data_128) self.assertEqual(len(mac), mac_len) # Default MAC length cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) _, mac = cipher.encrypt_and_digest(self.data_128) self.assertEqual(len(mac), 16)
Example #7
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_valid_init_encrypt_decrypt_digest_verify(self): # No authenticated data, fixed plaintext for assoc_len in (None, 0): for msg_len in (None, len(self.data_128)): # Verify path INIT->ENCRYPT->DIGEST cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) ct = cipher.encrypt(self.data_128) mac = cipher.digest() # Verify path INIT->DECRYPT->VERIFY cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.decrypt(ct) cipher.verify(mac)
Example #8
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_valid_init_update_digest_verify(self): # No plaintext, fixed authenticated data for assoc_len in (None, len(self.data_128)): for msg_len in (None, 0): # Verify path INIT->UPDATE->DIGEST cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.update(self.data_128) mac = cipher.digest() # Verify path INIT->UPDATE->VERIFY cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.update(self.data_128) cipher.verify(mac)
Example #9
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_valid_full_path(self): # Fixed authenticated data, fixed plaintext for assoc_len in (None, len(self.data_128)): for msg_len in (None, len(self.data_128)): # Verify path INIT->UPDATE->ENCRYPT->DIGEST cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.update(self.data_128) ct = cipher.encrypt(self.data_128) mac = cipher.digest() # Verify path INIT->UPDATE->DECRYPT->VERIFY cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.update(self.data_128) cipher.decrypt(ct) cipher.verify(mac)
Example #10
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_valid_init_update_digest_verify(self): # No plaintext, fixed authenticated data for assoc_len in (None, len(self.data_128)): for msg_len in (None, 0): # Verify path INIT->UPDATE->DIGEST cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.update(self.data_128) mac = cipher.digest() # Verify path INIT->UPDATE->VERIFY cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.update(self.data_128) cipher.verify(mac)
Example #11
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_valid_multiple_encrypt_or_decrypt(self): # Only possible if msg_len is declared in advance for method_name in "encrypt", "decrypt": for auth_data in (None, b("333"), self.data_128, self.data_128 + b("3")): if auth_data is None: assoc_len = None else: assoc_len = len(auth_data) cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, msg_len=64, assoc_len=assoc_len) if auth_data is not None: cipher.update(auth_data) method = getattr(cipher, method_name) method(self.data_128) method(self.data_128) method(self.data_128) method(self.data_128)
Example #12
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_mac_len(self): # Invalid MAC length for mac_len in xrange(3, 17 + 1, 2): self.assertRaises(ValueError, AES.new, self.key_128, AES.MODE_CCM, nonce=self.nonce_96, mac_len=mac_len) # Valid MAC length for mac_len in xrange(4, 16 + 1, 2): cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, mac_len=mac_len) _, mac = cipher.encrypt_and_digest(self.data_128) self.assertEqual(len(mac), mac_len) # Default MAC length cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) _, mac = cipher.encrypt_and_digest(self.data_128) self.assertEqual(len(mac), 16)
Example #13
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def test_valid_init_encrypt_decrypt_digest_verify(self): # No authenticated data, fixed plaintext for assoc_len in (None, 0): for msg_len in (None, len(self.data_128)): # Verify path INIT->ENCRYPT->DIGEST cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) ct = cipher.encrypt(self.data_128) mac = cipher.digest() # Verify path INIT->DECRYPT->VERIFY cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=assoc_len, msg_len=msg_len) cipher.decrypt(ct) cipher.verify(mac)
Example #14
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_valid_encrypt_and_digest_decrypt_and_verify(self): # encrypt_and_digest cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) cipher.update(self.data_128) ct, mac = cipher.encrypt_and_digest(self.data_128) # decrypt_and_verify cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) cipher.update(self.data_128) pt = cipher.decrypt_and_verify(ct, mac) self.assertEqual(self.data_128, pt)
Example #15
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_valid_init_digest(self): # Verify path INIT->DIGEST cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) cipher.digest()
Example #16
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_shorter_assoc_data_than_expected(self): # With plaintext cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=17) cipher.update(self.data_128) self.assertRaises(ValueError, cipher.encrypt, self.data_128) # With empty plaintext cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=17) cipher.update(self.data_128) self.assertRaises(ValueError, cipher.digest) # With ciphertext cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=17) cipher.update(self.data_128) self.assertRaises(ValueError, cipher.decrypt, self.data_128) # With empty ciphertext cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) cipher.update(self.data_128) mac = cipher.digest() cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, assoc_len=17) cipher.update(self.data_128) self.assertRaises(ValueError, cipher.verify, mac)
Example #17
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_nonce(self): # If not passed, the nonce is created randomly cipher = AES.new(self.key_128, AES.MODE_CCM) nonce1 = cipher.nonce cipher = AES.new(self.key_128, AES.MODE_CCM) nonce2 = cipher.nonce self.assertEqual(len(nonce1), 11) self.assertNotEqual(nonce1, nonce2) cipher = AES.new(self.key_128, AES.MODE_CCM, self.nonce_96) ct = cipher.encrypt(self.data_128) cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) self.assertEquals(ct, cipher.encrypt(self.data_128))
Example #18
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_loopback_128(self): cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) pt = get_tag_random("plaintext", 16 * 100) ct = cipher.encrypt(pt) cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) pt2 = cipher.decrypt(ct) self.assertEqual(pt, pt2)
Example #19
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def runTest(self): for assoc_data, pt, ct, mac, key, nonce in self.test_vectors: # Encrypt cipher = AES.new(key, AES.MODE_CCM, nonce, mac_len=len(mac)) cipher.update(assoc_data) ct2, mac2 = cipher.encrypt_and_digest(pt) self.assertEqual(ct, ct2) self.assertEqual(mac, mac2) # Decrypt cipher = AES.new(key, AES.MODE_CCM, nonce, mac_len=len(mac)) cipher.update(assoc_data) pt2 = cipher.decrypt_and_verify(ct, mac) self.assertEqual(pt, pt2)
Example #20
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_shorter_and_longer_plaintext_than_declared(self): cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, msg_len=17) cipher.encrypt(self.data_128) self.assertRaises(ValueError, cipher.digest) cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, msg_len=15) self.assertRaises(ValueError, cipher.encrypt, self.data_128)
Example #21
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_valid_multiple_digest_or_verify(self): # Multiple calls to digest cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) cipher.update(self.data_128) first_mac = cipher.digest() for x in xrange(4): self.assertEqual(first_mac, cipher.digest()) # Multiple calls to verify cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) cipher.update(self.data_128) for x in xrange(5): cipher.verify(first_mac)
Example #22
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_invalid_encrypt_or_update_after_digest(self): for method_name in "encrypt", "update": cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) cipher.encrypt(self.data_128) cipher.digest() self.assertRaises(TypeError, getattr(cipher, method_name), self.data_128) cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) cipher.encrypt_and_digest(self.data_128)
Example #23
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_invalid_mixing_encrypt_decrypt(self): # Once per method, with or without assoc. data for method1_name, method2_name in (("encrypt", "decrypt"), ("decrypt", "encrypt")): for assoc_data_present in (True, False): cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, msg_len=32) if assoc_data_present: cipher.update(self.data_128) getattr(cipher, method1_name)(self.data_128) self.assertRaises(TypeError, getattr(cipher, method2_name), self.data_128)
Example #24
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_invalid_multiple_encrypt_decrypt_without_msg_len(self): # Once per method, with or without assoc. data for method_name in "encrypt", "decrypt": for assoc_data_present in (True, False): cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) if assoc_data_present: cipher.update(self.data_128) method = getattr(cipher, method_name) method(self.data_128) self.assertRaises(TypeError, method, self.data_128)
Example #25
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_null_encryption_decryption(self): for func in "encrypt", "decrypt": cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) result = getattr(cipher, func)(b("")) self.assertEqual(result, b(""))
Example #26
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_valid_multiple_digest_or_verify(self): # Multiple calls to digest cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) cipher.update(self.data_128) first_mac = cipher.digest() for x in xrange(4): self.assertEqual(first_mac, cipher.digest()) # Multiple calls to verify cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) cipher.update(self.data_128) for x in xrange(5): cipher.verify(first_mac)
Example #27
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_valid_init_verify(self): # Verify path INIT->VERIFY cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) mac = cipher.digest() cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) cipher.verify(mac)
Example #28
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_valid_init_digest(self): # Verify path INIT->DIGEST cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) cipher.digest()
Example #29
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_shorter_ciphertext_than_declared(self): cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96) ct, mac = cipher.encrypt_and_digest(self.data_128) cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, msg_len=17) cipher.decrypt(ct) self.assertRaises(ValueError, cipher.verify, mac) cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, msg_len=15) self.assertRaises(ValueError, cipher.decrypt, ct)
Example #30
Source File: test_CCM.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def test_shorter_and_longer_plaintext_than_declared(self): cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, msg_len=17) cipher.encrypt(self.data_128) self.assertRaises(ValueError, cipher.digest) cipher = AES.new(self.key_128, AES.MODE_CCM, nonce=self.nonce_96, msg_len=15) self.assertRaises(ValueError, cipher.encrypt, self.data_128)