コード例 #1
0
 public static byte[] CalculateSignature(IEcPrivateKey signingKey, byte[] message)
 {
     if (signingKey.GetKeyType() == DjbType)
     {
         return(Curve25519.GetInstance(Curve25519ProviderType.Best)
                .CalculateSignature(((DjbEcPrivateKey)signingKey).GetPrivateKey(), message));
     }
     else
     {
         throw new InvalidKeyException("Unknown type: " + signingKey.GetKeyType());
     }
 }
コード例 #2
0
        public static byte[] CalculateAgreement(IEcPublicKey publicKey, IEcPrivateKey privateKey)
        {
            if (publicKey.GetKeyType() != privateKey.GetKeyType())
            {
                throw new InvalidKeyException("Public and private keys must be of the same type!");
            }

            if (publicKey.GetKeyType() == DjbType)
            {
                return(Curve25519.GetInstance(Curve25519ProviderType.Best)
                       .CalculateAgreement(((DjbEcPublicKey)publicKey).GetPublicKey(),
                                           ((DjbEcPrivateKey)privateKey).GetPrivateKey()));
            }
            else
            {
                throw new InvalidKeyException("Unknown type: " + publicKey.GetKeyType());
            }
        }