Ejemplo n.º 1
0
 def test_keyset_info(self):
     keyset = tink_pb2.Keyset(primary_key_id=2)
     keyset.key.extend([
         helper.fake_key(value=b'v1',
                         type_url='t1',
                         key_id=1,
                         status=tink_pb2.ENABLED,
                         output_prefix_type=tink_pb2.TINK),
         helper.fake_key(value=b'v2',
                         type_url='t2',
                         key_id=2,
                         status=tink_pb2.DESTROYED,
                         output_prefix_type=tink_pb2.RAW)
     ])
     handle = core.KeysetHandle(keyset)
     expected_keyset_info = tink_pb2.KeysetInfo(primary_key_id=2)
     info1 = expected_keyset_info.key_info.add()
     info1.type_url = 't1'
     info1.status = tink_pb2.ENABLED
     info1.output_prefix_type = tink_pb2.TINK
     info1.key_id = 1
     info2 = expected_keyset_info.key_info.add()
     info2.type_url = 't2'
     info2.status = tink_pb2.DESTROYED
     info2.output_prefix_type = tink_pb2.RAW
     info2.key_id = 2
     self.assertEqual(expected_keyset_info, handle.keyset_info())
Ejemplo n.º 2
0
 def test_primitive_fails_on_empty_keyset(self):
     keyset = tink_pb2.Keyset()
     keyset.key.extend(
         [helper.fake_key(key_id=1, status=tink_pb2.DESTROYED)])
     keyset.primary_key_id = 1
     handle = core.KeysetHandle(keyset)
     with self.assertRaisesRegex(core.TinkError, 'empty keyset'):
         handle.primitive(aead.Aead)
Ejemplo n.º 3
0
 def test_primitive_fails_on_key_with_unknown_status(self):
     keyset = tink_pb2.Keyset()
     keyset.key.extend(
         [helper.fake_key(key_id=1234, status=tink_pb2.UNKNOWN_STATUS)])
     keyset.primary_key_id = 1234
     handle = core.KeysetHandle(keyset)
     with self.assertRaisesRegex(core.TinkError,
                                 'key 1234 has unknown status'):
         handle.primitive(aead.Aead)
Ejemplo n.º 4
0
 def test_primitive_fails_on_key_without_keydata(self):
     keyset = tink_pb2.Keyset()
     key = helper.fake_key(key_id=123)
     key.ClearField('key_data')
     keyset.key.extend([key])
     keyset.primary_key_id = 123
     handle = core.KeysetHandle(keyset)
     with self.assertRaisesRegex(core.TinkError, 'key 123 has no key data'):
         handle.primitive(aead.Aead)
Ejemplo n.º 5
0
 def test_primitive_fails_on_multiple_primary_keys(self):
     keyset = tink_pb2.Keyset()
     keyset.key.extend(
         [helper.fake_key(key_id=12345),
          helper.fake_key(key_id=12345)])
     keyset.primary_key_id = 12345
     handle = core.KeysetHandle(keyset)
     with self.assertRaisesRegex(core.TinkError,
                                 'keyset contains multiple primary keys'):
         handle.primitive(aead.Aead)
Ejemplo n.º 6
0
 def test_primitive_fails_on_key_with_unknown_prefix(self):
     keyset = tink_pb2.Keyset()
     keyset.key.extend([
         helper.fake_key(key_id=12,
                         output_prefix_type=tink_pb2.UNKNOWN_PREFIX)
     ])
     keyset.primary_key_id = 12
     handle = core.KeysetHandle(keyset)
     with self.assertRaisesRegex(core.TinkError,
                                 'key 12 has unknown prefix'):
         handle.primitive(aead.Aead)
Ejemplo n.º 7
0
 def test_primitive_fails_on_wrong_primitive_class(self):
     keyset = tink_pb2.Keyset()
     key = keyset.key.add()
     key.key_data.CopyFrom(
         core.Registry.new_key_data(aead.aead_key_templates.AES128_EAX))
     key.output_prefix_type = tink_pb2.TINK
     key.key_id = 1
     key.status = tink_pb2.ENABLED
     keyset.primary_key_id = 1
     handle = core.KeysetHandle(keyset)
     with self.assertRaisesRegex(core.TinkError, 'Wrong primitive class'):
         handle.primitive(mac.Mac)
Ejemplo n.º 8
0
 def test_primitive_fails_without_primary_key_present(self):
     keyset = tink_pb2.Keyset()
     key = keyset.key.add()
     key.key_data.CopyFrom(
         core.Registry.new_key_data(aead.aead_key_templates.AES128_EAX))
     key.output_prefix_type = tink_pb2.TINK
     key.key_id = 2
     key.status = tink_pb2.ENABLED
     keyset.primary_key_id = 1
     handle = core.KeysetHandle(keyset)
     with self.assertRaisesRegex(
             core.TinkError, 'keyset does not contain a valid primary key'):
         handle.primitive(aead.Aead)
Ejemplo n.º 9
0
 def test_primitive_success(self):
     keyset = tink_pb2.Keyset()
     key = keyset.key.add()
     key.key_data.CopyFrom(
         core.Registry.new_key_data(aead.aead_key_templates.AES128_EAX))
     key.output_prefix_type = tink_pb2.TINK
     key.key_id = 1
     key.status = tink_pb2.ENABLED
     keyset.primary_key_id = 1
     handle = core.KeysetHandle(keyset)
     aead_primitive = handle.primitive(aead.Aead)
     self.assertEqual(
         aead_primitive.decrypt(aead_primitive.encrypt(b'message', b'aad'),
                                b'aad'), b'message')
 def test_instantiation(self):
     with self.assertRaisesRegex(core.TinkError, 'cannot be instantiated'):
         core.KeysetHandle()