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)); }
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)); }
public override bool VerifySignature(byte[] rgbHash, byte[] rgbSignature) { if (dsa == null) { throw new CryptographicUnexpectedOperationException(Locale.GetText("missing key")); } return(dsa.VerifySignature(rgbHash, rgbSignature)); }
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); }
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)); }
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"); }
public override bool VerifySignature(byte[] rgbHash, byte[] rgbSignature) => _impl.VerifySignature(rgbHash, rgbSignature);