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 virtual byte[] CalculateRawSignature(SecureRandom random, AsymmetricKeyParameter privateKey, byte[] md5andsha1) { // Note: Only use the SHA1 part of the hash ISigner sig = new DsaDigestSigner(CreateDsaImpl(), new NullDigest()); sig.Init(true, new ParametersWithRandom(privateKey, random)); sig.BlockUpdate(md5andsha1, 16, 20); return(sig.GenerateSignature()); }
public byte[] Sign(byte[] data, string privateKey) { var key = PrivateKeyFactory.CreateKey(Convert.FromBase64String(privateKey)); var dsaDigestSigner = new DsaDigestSigner(new DsaSigner(), new Sha1Digest()); dsaDigestSigner.Init(true, key); dsaDigestSigner.BlockUpdate(data, 0, data.Length); return(dsaDigestSigner.GenerateSignature()); }
/// <summary> /// Signs the passed in data with a private key /// </summary> /// <param name="privateKey">the private key used to create the signature</param> /// <param name="data">The data to sign</param> /// <returns>the signature as a byte array</returns> public byte[] Sign(byte[] privateKey, byte[] data) { var signer = new DsaDigestSigner(new DsaSigner(), new Sha1Digest()); var privKey = (DsaPrivateKeyParameters)CreateAsymmetricKeyParameterFromPrivateKeyInfo(privateKey); signer.Init(true, privKey); signer.BlockUpdate(data, 0, data.Length); byte[] signature; try { signature = signer.GenerateSignature(); } catch (Exception exception) { string message = "Signature Failure!\n" + $"{exception.Message}.\n" + $"The private key file is corrupted, verify private key file or try another key.\n" + $"If all fails create a new key pair."; throw new CryptoException(message, exception); } return(signature); }