@Override public MessageLite newKey(ByteString unused) throws GeneralSecurityException { return newKey(); }
@Override public PublicKeySign getPrimitive(ByteString serialized) throws GeneralSecurityException { try { Ed25519PrivateKey keyProto = Ed25519PrivateKey.parseFrom(serialized); return getPrimitive(keyProto); } catch (InvalidProtocolBufferException e) { throw new GeneralSecurityException("invalid Ed25519 private key", e); } }
private KeyManager<PublicKeySign> publicKeySignKeyManager(String typeUrl) throws GeneralSecurityException { switch (typeUrl) { case EcdsaSignKeyManager.TYPE_URL: return new EcdsaSignKeyManager(); case Ed25519PrivateKeyManager.TYPE_URL: return new Ed25519PrivateKeyManager(); default: throw new GeneralSecurityException( String.format("No support for primitive 'PublicKeySign' with key type '%s'.", typeUrl)); } } }
@Override public PublicKeySign getPrimitive(MessageLite key) throws GeneralSecurityException { if (!(key instanceof Ed25519PrivateKey)) { throw new GeneralSecurityException("expected Ed25519PrivateKey proto"); } Ed25519PrivateKey keyProto = (Ed25519PrivateKey) key; validate(keyProto); return new Ed25519Sign(keyProto.getKeyValue().toByteArray()); }
@Override public MessageLite newKey(MessageLite unused) throws GeneralSecurityException { return newKey(); }
@Override public KeyData newKeyData(ByteString unused) throws GeneralSecurityException { Ed25519PrivateKey key = newKey(); return KeyData.newBuilder() .setTypeUrl(TYPE_URL) .setValue(key.toByteString()) .setKeyMaterialType(KeyData.KeyMaterialType.ASYMMETRIC_PRIVATE) .build(); }