示例#1
0
        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());
        }
示例#2
0
        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());
        }
示例#4
0
        /// <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);
        }