Package com.google.crypto.tink.internal
Class KeySerializer<KeyT extends Key>
- java.lang.Object
-
- com.google.crypto.tink.internal.KeySerializer<KeyT>
-
public abstract class KeySerializer<KeyT extends Key> extends java.lang.ObjectSerializesKeyobjects intoSerializationobjects of a certain kind.This class should eventually be in Tinks public API -- however, it might still change before that.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceKeySerializer.KeySerializationFunction<KeyT extends Key>A function which serializes a key.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static <KeyT extends Key>
KeySerializer<KeyT>create(KeySerializer.KeySerializationFunction<KeyT> function, java.lang.Class<KeyT> keyClass)Creates a KeySerializer object.java.lang.Class<KeyT>getKeyClass()java.lang.Class<ProtoKeySerialization>getSerializationClass()abstract ProtoKeySerializationserializeKey(KeyT key, SecretKeyAccess access)
-
-
-
Method Detail
-
serializeKey
public abstract ProtoKeySerialization serializeKey(KeyT key, @Nullable SecretKeyAccess access) throws java.security.GeneralSecurityException
- Throws:
java.security.GeneralSecurityException
-
getKeyClass
public java.lang.Class<KeyT> getKeyClass()
-
getSerializationClass
public java.lang.Class<ProtoKeySerialization> getSerializationClass()
-
create
public static <KeyT extends Key> KeySerializer<KeyT> create(KeySerializer.KeySerializationFunction<KeyT> function, java.lang.Class<KeyT> keyClass)
Creates a KeySerializer object.In order to create a KeySerializer object, one typically writes a function
This function can then be used to create aclass MyClass { private static ProtoKeySerialization serialize(MyKey key, @Nullable SecretKeyAccess access) throws GeneralSecurityException { ... } }KeySerializer:KeySerializer<MyKey> serializer = KeySerializer.create(MyClass::serialize, MyKey.class);Note that calling this function twice will result in objects which are not equal according to
Object.equals, and hence cannot be used to re-register a previously registered object.
-
-