public byte[] CalculateRawSignature(AsymmetricKeyParameter privateKey, byte[] md5andsha1) { // Note: Only use the SHA1 part of the hash ISigner sig = new DsaDigestSigner(new DsaSigner(), new NullDigest()); sig.Init(true, privateKey); sig.BlockUpdate(md5andsha1, 16, 20); return sig.GenerateSignature(); }
public void ThrowIfSignatureNotOkay(byte[] signature, params byte[][] inputs) { var signer = new DsaDigestSigner(new ECDsaSigner(), new Sha256Digest()); signer.Init(false, _publicKey); foreach (var input in inputs) { signer.BlockUpdate(input, 0, input.Length); } if (!signer.VerifySignature(signature)) { throw new ApplicationException(); } }