예제 #1
0
  def add_primitive(self, primitive: P, key: tink_pb2.Keyset.Key) -> Entry:
    """Adds a new primitive and key entry to the set, and returns the entry."""
    if not isinstance(primitive, self._primitive_class):
      raise _tink_error.TinkError(
          'The primitive is not an instance of {}'.format(
              self._primitive_class))
    identifier = _crypto_format.output_prefix(key)

    entry = Entry(primitive, identifier, key.status, key.output_prefix_type)
    entries = self._primitives.setdefault(identifier, [])
    entries.append(entry)
    return entry
예제 #2
0
 def primitive(self, key: tink_pb2.Keyset.Key) -> List[Entry]:
     """Returns a copy of the list of entries for a given key."""
     return self.primitive_from_identifier(
         _crypto_format.output_prefix(key))