def test_encrypt_short_tag(): key = "fedcba9876543210" iv = "0123456789abcdef" gcm = AesGcmStream(key, iv, 12) buf = gcm.encrypt("hello world") authTag = gcm.final() assert b2h(authTag) == bytes('ac8fcee96dc6ef8e5236da19', 'utf-8') assert b2h(buf) == bytes('5ba7d42e1bf01d7998e932', "utf-8") gcmdec = AesGcmStream(key, iv) bufdec = gcmdec.decrypt(buf) gcmdec.final(authTag) assert bufdec == t2b("hello world")
def test_multipart(): key = "fedcba9876543210" iv = "0123456789abcdef" gcm = AesGcmStream(key, iv) buf = gcm.encrypt("hello") buf += gcm.encrypt(" world") authTag = gcm.final() assert b2h(authTag) == bytes('ac8fcee96dc6ef8e5236da19b6197d2e', 'utf-8') assert b2h(buf) == bytes('5ba7d42e1bf01d7998e932', "utf-8") gcmdec = AesGcmStream(key, iv) bufdec = gcmdec.decrypt(buf[:5]) bufdec += gcmdec.decrypt(buf[5:]) gcmdec.final(authTag) assert bufdec == t2b("hello world")
def test_encrypt_aad(): key = "fedcba9876543210" iv = "0123456789abcdef" aad = "aad data" gcm = AesGcmStream(key, iv) gcm.set_aad(aad) buf = gcm.encrypt("hello world") authTag = gcm.final() print(b2h(authTag)) assert b2h(authTag) == bytes('8f85338aa0b13f48f8b17482dbb8acca', 'utf-8') assert b2h(buf) == bytes('5ba7d42e1bf01d7998e932', "utf-8") gcmdec = AesGcmStream(key, iv) gcmdec.set_aad(aad) bufdec = gcmdec.decrypt(buf) gcmdec.final(authTag) assert bufdec == t2b("hello world")