public static bool Verify(Signature s, Keypair kp) { IAsymmetricEncryptionProvider provider = GetRsaProvider(kp.RsaProvider); provider.SetKeyPair(kp.ToPublic()); return(provider.VerifyData(s.Data, s.SignatureData)); }
/// <summary> /// Encrypts <paramref name="data" /> for <paramref name="recipient" />. <paramref name="recipient" /> can be a public /// key. /// </summary> /// <param name="recipient"></param> /// <param name="data"></param> /// <returns></returns> public static Message Encrypt(Keypair recipient, byte[] data) { IAsymmetricEncryptionProvider provider = GetRsaProvider(recipient.RsaProvider); provider.SetKeyPair(recipient.ToPublic()); var aes = new AesSymmetricEncryptionProvider(); byte[] cipher = aes.TransformAsync(data).Result; byte[] encryptedKey = provider.Encrypt(aes.Key); var m = new Message { Content = cipher, EncryptedKey = encryptedKey, Iv = aes.Iv, RecipientId = recipient.ShortId }; return(m); }