public void Signature()
 {
     byte[] hash = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13 };
     dsa.ImportParameters(AllTests.GetKey(true));
     fmt.SetKey(dsa);
     byte[] sign = fmt.CreateSignature(hash);
     Assert.IsTrue(dsa.VerifySignature(hash, sign));
 }
Exemple #2
0
        protected override void UseAfterDispose(DSA dsa, byte[] data, byte[] sig)
        {
            base.UseAfterDispose(dsa, data, sig);
            byte[] hash = new byte[20];

            Assert.Throws <ObjectDisposedException>(() => dsa.CreateSignature(hash));
            Assert.Throws <ObjectDisposedException>(() => dsa.VerifySignature(hash, sig));
        }
Exemple #3
0
        public override bool VerifySignature(byte[] rgbHash, byte[] rgbSignature)
        {
            if (dsa == null)
            {
                throw new CryptographicUnexpectedOperationException(Locale.GetText("missing key"));
            }

            return(dsa.VerifySignature(rgbHash, rgbSignature));
        }
Exemple #4
0
        public static bool DeDSA(this string data, string privatekey, string originalData)
        {
            //Byte[] result;
            DSA dsa = DSA.Create();

            dsa.FromXmlString(privatekey);
            SHA1 sha1 = System.Security.Cryptography.SHA1.Create();

            return(dsa.VerifySignature(sha1.ComputeHash(Convert.FromBase64String(originalData)), Convert.FromBase64String(data)));
        }
        public static void DSADemo()
        {
            string keyString = "This is important...This is important...This is important..This is important";
            DSA    dsa       = DSA.Create();

            byte[] rgbHash = new byte[] { 59, 4, 248, 102, 77, 97, 142, 201, 210, 12, 224, 93, 25, 41, 100, 197, 213, 134, 130, 135 };

            byte[] rgbSignature = dsa.CreateSignature(rgbHash);

            bool result = dsa.VerifySignature(rgbHash, rgbSignature);

            byte[] data = Encoding.UTF8.GetBytes(keyString);
        }
Exemple #6
0
        public bool VerifySignature(
            ReadOnlySpan <byte> rgbHash,
            ReadOnlySpan <byte> rgbSignature,
            PgpHashAlgorithm hashAlgorithm)
        {
            var asnWriter = new AsnWriter(AsnEncodingRules.DER);

            using (var scope = asnWriter.PushSequence())
            {
                asnWriter.WriteIntegerUnsigned(MPInteger.ReadInteger(rgbSignature, out int rConsumed));
                asnWriter.WriteIntegerUnsigned(MPInteger.ReadInteger(rgbSignature.Slice(rConsumed), out var _));
            }
            return(dsa.VerifySignature(rgbHash, asnWriter.Encode(), DSASignatureFormat.Rfc3279DerSequence));
        }
Exemple #7
0
            internal override bool VerifySignature(
                ReadOnlySpan <byte> valueHash,
                ReadOnlyMemory <byte> signature,
                string digestAlgorithmOid,
                HashAlgorithmName digestAlgorithmName,
                ReadOnlyMemory <byte>?signatureParameters,
                X509Certificate2 certificate)
            {
                if (_expectedDigest != digestAlgorithmName)
                {
                    throw new CryptographicException(
                              SR.Format(
                                  SR.Cryptography_Cms_InvalidSignerHashForSignatureAlg,
                                  digestAlgorithmOid,
                                  _signatureAlgorithm));
                }

                DSA dsa = certificate.GetDSAPublicKey();

                if (dsa == null)
                {
                    return(false);
                }

                DSAParameters dsaParameters = dsa.ExportParameters(false);
                int           bufSize       = 2 * dsaParameters.Q.Length;

                ArrayPool <byte> pool = ArrayPool <byte> .Shared;

                byte[]      rented = pool.Rent(bufSize);
                Span <byte> ieee   = new Span <byte>(rented, 0, bufSize);

                try
                {
                    if (!DsaDerToIeee(signature, ieee))
                    {
                        return(false);
                    }

                    return(dsa.VerifySignature(valueHash, ieee));
                }
                finally
                {
                    ieee.Clear();
                    pool.Return(rented);
                }
            }
        private void MakeDSA()
        {
            var hash = SHA1.Create().ComputeHash(this._message);
            DSA dsa  = DSACryptoServiceProvider.Create();

            this._stopwatch.Start();
            for (int i = 0; i < runs; i++)
            {
                _aux = dsa.CreateSignature(hash);
            }
            this._stopwatch.Stop();
            prettyPrint("DSA sign");

            this._stopwatch.Start();
            for (int i = 0; i < runs; i++)
            {
                dsa.VerifySignature(hash, _aux);
            }
            this._stopwatch.Stop();
            prettyPrint("DSA verify");
        }
Exemple #9
0
 public override bool VerifySignature(byte[] rgbHash, byte[] rgbSignature) =>
 _impl.VerifySignature(rgbHash, rgbSignature);