private KeyManager<PublicKeyVerify> publicKeyVerifyKeyManager(String typeUrl) throws GeneralSecurityException { switch (typeUrl) { case EcdsaVerifyKeyManager.TYPE_URL: return new EcdsaVerifyKeyManager(); case Ed25519PublicKeyManager.TYPE_URL: return new Ed25519PublicKeyManager(); default: throw new GeneralSecurityException( String.format( "No support for primitive 'PublicKeyVerify' with key type '%s'.", typeUrl)); } } }
@Override public PublicKeyVerify getPrimitive(ByteString serialized) throws GeneralSecurityException { try { Ed25519PublicKey keyProto = Ed25519PublicKey.parseFrom(serialized); return getPrimitive(keyProto); } catch (InvalidProtocolBufferException e) { throw new GeneralSecurityException("invalid Ed25519 public key", e); } }
@Override public PublicKeyVerify getPrimitive(MessageLite key) throws GeneralSecurityException { if (!(key instanceof Ed25519PublicKey)) { throw new GeneralSecurityException("expected Ed25519PublicKey proto"); } Ed25519PublicKey keyProto = (Ed25519PublicKey) key; validate(keyProto); return new Ed25519Verify(keyProto.getKeyValue().toByteArray()); }