protected override byte[] HashData(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm) { using (SafeHashHandle hash = Utils.CreateHash(Utils.StaticProvHandle, RSACryptoServiceProvider.GetAlgorithmId(hashAlgorithm))) { Utils.HashData(hash, data, offset, count); return(Utils.EndHash(hash)); } }
protected override byte[] HashData(Stream data, HashAlgorithmName hashAlgorithm) { using (SafeHashHandle hash = Utils.CreateHash(Utils.StaticProvHandle, RSACryptoServiceProvider.GetAlgorithmId(hashAlgorithm))) { byte[] numArray = new byte[4096]; int cbSize; do { cbSize = data.Read(numArray, 0, numArray.Length); if (cbSize > 0) { Utils.HashData(hash, numArray, 0, cbSize); } }while (cbSize > 0); return(Utils.EndHash(hash)); } }
public override byte[] SignHash(byte[] hash, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) { if (hash == null) { throw new ArgumentNullException("hash"); } if (string.IsNullOrEmpty(hashAlgorithm.Name)) { throw RSA.HashAlgorithmNameNullOrEmpty(); } if (padding == (RSASignaturePadding)null) { throw new ArgumentNullException("padding"); } if (padding != RSASignaturePadding.Pkcs1) { throw RSACryptoServiceProvider.PaddingModeNotSupported(); } return(this.SignHash(hash, RSACryptoServiceProvider.GetAlgorithmId(hashAlgorithm))); }
protected override byte[] HashData(Stream data, HashAlgorithmName hashAlgorithm) { byte[] result; using (SafeHashHandle safeHashHandle = Utils.CreateHash(Utils.StaticProvHandle, RSACryptoServiceProvider.GetAlgorithmId(hashAlgorithm))) { byte[] array = new byte[4096]; int num; do { num = data.Read(array, 0, array.Length); if (num > 0) { Utils.HashData(safeHashHandle, array, 0, num); } }while (num > 0); result = Utils.EndHash(safeHashHandle); } return(result); }