public static bool VerifySignature(ECPublicKey signingKey, byte[] message, byte[] signature) { if (signingKey.GetKeyType() == DJB_TYPE) { return(Curve25519.GetInstance(Curve25519ProviderType.BEST).VerifySignature(((DjbECPublicKey)signingKey).GetPublicKey(), message, signature)); } else { throw new InvalidKeyException("Unknown type: " + signingKey.GetKeyType()); } }
public static byte[] CalculateAgreement(ECPublicKey publicKey, ECPrivateKey privateKey) { if (publicKey.GetKeyType() != privateKey.GetKeyType()) { throw new InvalidKeyException("Public and private keys must be of the same type!"); } if (publicKey.GetKeyType() == DJB_TYPE) { return(Curve25519.GetInstance(Curve25519ProviderType.BEST) .CalculateAgreement(((DjbECPublicKey)publicKey).GetPublicKey(), ((DjbECPrivateKey)privateKey).GetPrivateKey())); } else { throw new InvalidKeyException("Unknown type: " + publicKey.GetKeyType()); } }