public <SerializationT extends Serialization> Key parseKey(
      SerializationT serializedKey, @Nullable SecretKeyAccess access)
      throws GeneralSecurityException {
    ParserIndex index =
        new ParserIndex(serializedKey.getClass(), serializedKey.getObjectIdentifier());

    if (!keyParserMap.containsKey(index)) {
      throw new GeneralSecurityException(
          "No Key Parser for requested key type " + index + " available");
    }
    @SuppressWarnings("unchecked") // We know we only insert like this.
    KeyParser<SerializationT> parser = (KeyParser<SerializationT>) keyParserMap.get(index);
    return parser.parseKey(serializedKey, access);
  }
Parses the given serialization into a Key.

<p>This will look up a previously registered parser for the passed in {@code SerializationT}
class, and the used object identifier (as indicated by {@code
serializedKey.getObjectIdentifier()}), and then parse the object with this parsers.
java_src/src/main/java/com/google/crypto/tink/internal/SerializationRegistry.java