public bool VerifyHash(Hash hash, string signature, string publicKey) { if (!hash.IsSha256Size) { throw new ArgumentException("SHA256 hashes are supported exclusivly", nameof(hash)); } var signatureData = Convert.FromBase64String(signature); var parameters = AsymmetricKeyFactory.Deserialize(publicKey); using (var rsa = RSA.Create()) { rsa.ImportParameters(parameters); return(rsa.VerifyHash(hash.HashData, signatureData, _hashAlgorithm, _padding)); } }
public string SignHash(Hash hash, string privateKey) { if (!hash.IsSha256Size) { throw new ArgumentException("SHA256 hashes are supported exclusively", nameof(hash)); } var parameters = AsymmetricKeyFactory.Deserialize(privateKey); using (var rsa = RSA.Create()) { rsa.ImportParameters(parameters); var signature = rsa.SignHash(hash.HashData, _hashAlgorithm, _padding); return(Convert.ToBase64String(signature)); } }