def test_fake_hybrid_fail_wrong_dec(self): enc = helper.FakeHybridEncrypt('Name') dec = helper.FakeHybridDecrypt('Wrong Name') ciphertext = enc.encrypt(b'plaintext', b'context_info') with self.assertRaisesRegex(core.TinkError, 'failed to decrypt ciphertext'): dec.decrypt(ciphertext, b'context_info')
def test_fake_hybrid_success(self): enc = helper.FakeHybridEncrypt('Name') dec = helper.FakeHybridDecrypt('Name') ciphertext = enc.encrypt(b'plaintext', b'context_info') self.assertEqual( dec.decrypt(ciphertext, b'context_info'), b'plaintext')
def new_primitives_and_keys(key_id, output_prefix_type): fake_dec_key = helper.fake_key( key_material_type=tink_pb2.KeyData.ASYMMETRIC_PRIVATE, key_id=key_id, output_prefix_type=output_prefix_type) fake_enc_key = helper.fake_key( key_material_type=tink_pb2.KeyData.ASYMMETRIC_PUBLIC, key_id=key_id, output_prefix_type=output_prefix_type) fake_hybrid_decrypt = helper.FakeHybridDecrypt( 'fakeHybrid {}'.format(key_id)) fake_hybrid_encrypt = helper.FakeHybridEncrypt( 'fakeHybrid {}'.format(key_id)) return fake_hybrid_decrypt, fake_hybrid_encrypt, fake_dec_key, fake_enc_key
def test_decrypt_unknown_ciphertext_fails(self): unknown_enc = helper.FakeHybridEncrypt('unknownHybrid') unknown_ciphertext = unknown_enc.encrypt(b'plaintext', b'context_info') dec_pset = core.new_primitive_set(hybrid.HybridDecrypt) dec1, _, dec1_key, _ = new_primitives_and_keys(1234, tink_pb2.RAW) dec2, _, dec2_key, _ = new_primitives_and_keys(5678, tink_pb2.TINK) dec_pset.add_primitive(dec1, dec1_key) dec_pset.set_primary(dec_pset.add_primitive(dec2, dec2_key)) wrapped_dec = hybrid.HybridDecryptWrapper().wrap(dec_pset) with self.assertRaisesRegex(core.TinkError, 'Decryption failed'): wrapped_dec.decrypt(unknown_ciphertext, b'context_info')
def test_fake_hybrid_fail_wrong_context(self): enc = helper.FakeHybridEncrypt('Name') dec = helper.FakeHybridDecrypt('Name') ciphertext = enc.encrypt(b'plaintext', b'context_info') with self.assertRaises(core.TinkError): dec.decrypt(ciphertext, b'other_context_info')