Add a DSA Wycheproof driver.

DSA is deprecated and will ultimately be removed but, in the
meantime, it still ought to be tested.

Change-Id: I75af25430b8937a43b11dced1543a98f7a6fbbd3
Reviewed-on: https://boringssl-review.googlesource.com/27825
Reviewed-by: Steven Valdez <svaldez@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/crypto/evp/evp_test.cc b/crypto/evp/evp_test.cc
index d459333..9d769a6 100644
--- a/crypto/evp/evp_test.cc
+++ b/crypto/evp/evp_test.cc
@@ -74,6 +74,7 @@
 #include <openssl/bytestring.h>
 #include <openssl/crypto.h>
 #include <openssl/digest.h>
+#include <openssl/dsa.h>
 #include <openssl/err.h>
 #include <openssl/rsa.h>
 
@@ -433,6 +434,11 @@
     // Extra EdDSA fields.
     t->IgnoreInstruction("key.pk");
     t->IgnoreInstruction("key.sk");
+    // Extra DSA fields.
+    t->IgnoreInstruction("key.g");
+    t->IgnoreInstruction("key.p");
+    t->IgnoreInstruction("key.q");
+    t->IgnoreInstruction("key.y");
 
     std::vector<uint8_t> der;
     ASSERT_TRUE(t->GetInstructionBytes(&der, "keyDer"));
@@ -450,19 +456,34 @@
     ASSERT_TRUE(t->GetBytes(&msg, "msg"));
     std::vector<uint8_t> sig;
     ASSERT_TRUE(t->GetBytes(&sig, "sig"));
-
-    bssl::ScopedEVP_MD_CTX ctx;
-    ASSERT_TRUE(
-        EVP_DigestVerifyInit(ctx.get(), nullptr, md, nullptr, key.get()));
     WycheproofResult result;
     ASSERT_TRUE(GetWycheproofResult(t, &result));
-    EXPECT_EQ(result == WycheproofResult::kValid ? 1 : 0,
-              EVP_DigestVerify(ctx.get(), sig.data(), sig.size(), msg.data(),
-                               msg.size()));
+
+    if (EVP_PKEY_id(key.get()) == EVP_PKEY_DSA) {
+      // DSA is deprecated and is not usable via EVP.
+      DSA *dsa = EVP_PKEY_get0_DSA(key.get());
+      uint8_t digest[EVP_MAX_MD_SIZE];
+      unsigned digest_len;
+      ASSERT_TRUE(
+          EVP_Digest(msg.data(), msg.size(), digest, &digest_len, md, nullptr));
+      int valid;
+      bool sig_ok = DSA_check_signature(&valid, digest, digest_len, sig.data(),
+                                        sig.size(), dsa) &&
+                    valid;
+      EXPECT_EQ(result == WycheproofResult::kValid, sig_ok);
+    } else {
+      bssl::ScopedEVP_MD_CTX ctx;
+      ASSERT_TRUE(
+          EVP_DigestVerifyInit(ctx.get(), nullptr, md, nullptr, key.get()));
+      EXPECT_EQ(result == WycheproofResult::kValid ? 1 : 0,
+                EVP_DigestVerify(ctx.get(), sig.data(), sig.size(), msg.data(),
+                                 msg.size()));
+    }
   });
 }
 
 TEST(EVPTest, Wycheproof) {
+  RunWycheproofTest("third_party/wycheproof/dsa_test.txt");
   RunWycheproofTest("third_party/wycheproof/ecdsa_secp224r1_sha224_test.txt");
   RunWycheproofTest("third_party/wycheproof/ecdsa_secp224r1_sha256_test.txt");
   RunWycheproofTest("third_party/wycheproof/ecdsa_secp256r1_sha256_test.txt");
diff --git a/sources.cmake b/sources.cmake
index 791541c..d252d98 100644
--- a/sources.cmake
+++ b/sources.cmake
@@ -59,6 +59,7 @@
   crypto/x509/some_names1.pem
   crypto/x509/some_names2.pem
   crypto/x509/some_names3.pem
+  third_party/wycheproof/dsa_test.txt
   third_party/wycheproof/ecdsa_secp224r1_sha224_test.txt
   third_party/wycheproof/ecdsa_secp224r1_sha256_test.txt
   third_party/wycheproof/ecdsa_secp256r1_sha256_test.txt
diff --git a/third_party/wycheproof/convert_wycheproof.go b/third_party/wycheproof/convert_wycheproof.go
index 83834d8..07656b3 100644
--- a/third_party/wycheproof/convert_wycheproof.go
+++ b/third_party/wycheproof/convert_wycheproof.go
@@ -224,6 +224,7 @@
 
 func main() {
 	jsonPaths := []string{
+		"dsa_test.json",
 		"ecdsa_secp224r1_sha224_test.json",
 		"ecdsa_secp224r1_sha256_test.json",
 		"ecdsa_secp256r1_sha256_test.json",
@@ -239,7 +240,6 @@
 		// "aes_gcm_siv_test.json",
 		// "aes_gcm_test.json",
 		// "chacha20_poly1305_test.json",
-		// "dsa_test.json",
 		// "ecdh_test.json",
 	}
 	for _, jsonPath := range jsonPaths {
diff --git a/third_party/wycheproof/dsa_test.txt b/third_party/wycheproof/dsa_test.txt
new file mode 100644
index 0000000..626b060
--- /dev/null
+++ b/third_party/wycheproof/dsa_test.txt
@@ -0,0 +1,4005 @@
+# Imported from Wycheproof's dsa_test.json.
+# This file is generated by convert_wycheproof.go. Do not edit by hand.
+#
+# Algorithm: DSA
+# Generator version: 0.4
+
+[key.g = 0835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d]
+[key.keySize = 1024]
+[key.p = 0b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f]
+[key.q = 0b90b38ba0a50a43ec6898d3f9b68049777f489b1]
+[key.type = DSAPublicKey]
+[key.y = 173931dda31eff32f24b383091bf77eacdc6efd557624911d8e9b9debf0f256d0cffac5567b33f6eaae9d3275bbed7ef9f5f94c4003c959e49a1ed3f58c31b21baccc0ed8840b46145f121b8906d072129bae01f071947997e8ef760d2d9ea21d08a5eb7e89390b21a85664713c549e25feda6e9e6c31970866bdfbc8fa981f6]
+[keyDer = 308201b63082012b06072a8648ce3804013082011e02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b10281800835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d03818400028180173931dda31eff32f24b383091bf77eacdc6efd557624911d8e9b9debf0f256d0cffac5567b33f6eaae9d3275bbed7ef9f5f94c4003c959e49a1ed3f58c31b21baccc0ed8840b46145f121b8906d072129bae01f071947997e8ef760d2d9ea21d08a5eb7e89390b21a85664713c549e25feda6e9e6c31970866bdfbc8fa981f6]
+[sha = SHA-1]
+
+# Legacy:ASN encoding of r misses leading 0
+msg = 313233343030
+result = acceptable
+sig = 302c0214aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+# ASN encoded integers with a leading hex-digit in the range 8 .. F are
+# negative. If the first hex-digit of a positive integer is 8 .. F then a
+# leading 0 must be added. Some libraries forgot to do this an therefore
+# generated invalid DSA signatures. Some providers, accept such legacy
+# signatures for compatibility.
+
+# valid
+msg = 313233343030
+result = valid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 30812d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 302e02811500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a028114496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 3082002d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 302f0282001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a02820014496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 302d021600aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 302d021400aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0215496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0213496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3085010000002d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 30320285010000001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3032021500aa6a258fbf7d90e15614676d377df8b10e38db4a02850100000014496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 308901000000000000002d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3036028901000000000000001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3036021500aa6a258fbf7d90e15614676d377df8b10e38db4a0289010000000000000014496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 30847fffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 303102847fffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a02847fffffff496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 3084ffffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 30310284ffffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a0284ffffffff496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 3085ffffffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 30320285ffffffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 3032021500aa6a258fbf7d90e15614676d377df8b10e38db4a0285ffffffffff496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 3088ffffffffffffffff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 30350288ffffffffffffffff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 3035021500aa6a258fbf7d90e15614676d377df8b10e38db4a0288ffffffffffffffff496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 30ff021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 302d02ff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a02ff496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 302d028000aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0280496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# removing sequence
+msg = 313233343030
+result = invalid
+sig = 
+
+# appending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000
+
+# prepending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 302f0000021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0500
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 302f021700aa6a258fbf7d90e15614676d377df8b10e38db4a05000214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0216496d5220b5f67d3532d1f991203bc3523b964c3b0500
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3032498177302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30312500302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 302f302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0004deadbeef
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3032221a498177021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 303122192500021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30352217021500aa6a258fbf7d90e15614676d377df8b10e38db4a0004deadbeef0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3032021500aa6a258fbf7d90e15614676d377df8b10e38db4a22194981770214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a221825000214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3035021500aa6a258fbf7d90e15614676d377df8b10e38db4a22160214496d5220b5f67d3532d1f991203bc3523b964c3b0004deadbeef
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3035aa00bb00cd00302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3033aa02aabb302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3035221daa00bb00cd00021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3033221baa02aabb021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3035021500aa6a258fbf7d90e15614676d377df8b10e38db4a221caa00bb00cd000214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3033021500aa6a258fbf7d90e15614676d377df8b10e38db4a221aaa02aabb0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 3080302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 30312280021500aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a22800214496d5220b5f67d3532d1f991203bc3523b964c3b0000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 3080312d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 30312280031500aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a22800314496d5220b5f67d3532d1f991203bc3523b964c3b0000
+
+# Replacing sequence with NULL
+msg = 313233343030
+result = invalid
+sig = 0500
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2e2d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2f2d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 312d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 322d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = ff2d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 302d001500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 302d011500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 302d031500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 302d041500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 302dff1500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0014496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0114496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0314496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0414496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4aff14496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# dropping value of sequence
+msg = 313233343030
+result = invalid
+sig = 3000
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 3031300102302c1500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 303122190201000214aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 3031021500aa6a258fbf7d90e15614676d377df8b10e38db4a221802014902136d5220b5f67d3532d1f991203bc3523b964c3b
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 302c1500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# indefinite length
+msg = 313233343030
+result = invalid
+sig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000
+
+# indefinite length with truncated delimiter
+msg = 313233343030
+result = invalid
+sig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b00
+
+# indefinite length with additional element
+msg = 313233343030
+result = invalid
+sig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b05000000
+
+# indefinite length with truncated element
+msg = 313233343030
+result = invalid
+sig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b060811220000
+
+# indefinite length with garbage
+msg = 313233343030
+result = invalid
+sig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0000fe02beef
+
+# indefinite length with nonempty EOC
+msg = 313233343030
+result = invalid
+sig = 3080021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0002beef
+
+# prepend empty sequence
+msg = 313233343030
+result = invalid
+sig = 302f3000021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# append empty sequence
+msg = 313233343030
+result = invalid
+sig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b3000
+
+# sequence of sequence
+msg = 313233343030
+result = invalid
+sig = 302f302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# truncated sequence
+msg = 313233343030
+result = invalid
+sig = 3017021500aa6a258fbf7d90e15614676d377df8b10e38db4a
+
+# repeat element in sequence
+msg = 313233343030
+result = invalid
+sig = 3043021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# removing integer
+msg = 313233343030
+result = invalid
+sig = 30160214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# appending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 302f021700aa6a258fbf7d90e15614676d377df8b10e38db4a00000214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# appending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a0216496d5220b5f67d3532d1f991203bc3523b964c3b0000
+
+# prepending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 302f0217000000aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# prepending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 302f021500aa6a258fbf7d90e15614676d377df8b10e38db4a02160000496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# Replacing integer with NULL
+msg = 313233343030
+result = invalid
+sig = 301805000214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# Replacing integer with NULL
+msg = 313233343030
+result = invalid
+sig = 3019021500aa6a258fbf7d90e15614676d377df8b10e38db4a0500
+
+# dropping value of integer
+msg = 313233343030
+result = invalid
+sig = 301802000214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# dropping value of integer
+msg = 313233343030
+result = invalid
+sig = 3019021500aa6a258fbf7d90e15614676d377df8b10e38db4a0200
+
+# modify first byte of integer
+msg = 313233343030
+result = invalid
+sig = 302d021502aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# modify first byte of integer
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a02144b6d5220b5f67d3532d1f991203bc3523b964c3b
+
+# modify last byte of integer
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38dbca0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# modify last byte of integer
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964cbb
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 302c021400aa6a258fbf7d90e15614676d377df8b10e38db0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 302c0214aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a0213496d5220b5f67d3532d1f991203bc3523b964c
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 302c021500aa6a258fbf7d90e15614676d377df8b10e38db4a02136d5220b5f67d3532d1f991203bc3523b964c3b
+
+# leading ff in integer
+msg = 313233343030
+result = invalid
+sig = 302e0216ff00aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# leading ff in integer
+msg = 313233343030
+result = invalid
+sig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a0215ff496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# infinity
+msg = 313233343030
+result = invalid
+sig = 30190901800214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# infinity
+msg = 313233343030
+result = invalid
+sig = 301a021500aa6a258fbf7d90e15614676d377df8b10e38db4a090180
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302d02150163755e49c9ce35201c9df4acd2e5fd48862d64fb0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302c0214f15eecd5b52ceca28f8ada2d9c15f419964451990214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302d0215ff5595da7040826f1ea9eb9892c882074ef1c724b60214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302c02140ea1132a4ad3135d707525d263ea0be669bbae670214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302d0215fe9c8aa1b63631cadfe3620b532d1a02b779d29b050214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302d021501aa6a258fbf7d90e15614676d377df8b10e38db4a0214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302c02145595da7040826f1ea9eb9892c882074ef1c724b60214496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a02150102788adac0472173f95b86d0bba3c7e9b38ad5ec
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a021490621966aba5d8f66c486c5184d3bebac3a1c28a
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a0214b692addf4a0982cacd2e066edfc43cadc469b3c5
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302d021500aa6a258fbf7d90e15614676d377df8b10e38db4a02146f9de699545a270993b793ae7b2c41453c5e3d76
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a0215fefd8775253fb8de8c06a4792f445c38164c752a14
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a021501496d5220b5f67d3532d1f991203bc3523b964c3b
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 313233343030
+result = invalid
+sig = 302e021500aa6a258fbf7d90e15614676d377df8b10e38db4a021500b692addf4a0982cacd2e066edfc43cadc469b3c5
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a0201000215ff46f4c745f5af5bc1397672c06497fb68880b764f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 3006020100020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 3006020100020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30060201000201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a020100021500b90b38ba0a50a43ec6898d3f9b68049777f489b1
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a020100021500b90b38ba0a50a43ec6898d3f9b68049777f489b2
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a0201000215010000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30818702010002818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 3008020100090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a0201010215ff46f4c745f5af5bc1397672c06497fb68880b764f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 3006020101020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 3006020101020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30060201010201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a020101021500b90b38ba0a50a43ec6898d3f9b68049777f489b1
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a020101021500b90b38ba0a50a43ec6898d3f9b68049777f489b2
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a0201010215010000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30818702010102818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 3008020101090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a0201ff0215ff46f4c745f5af5bc1397672c06497fb68880b764f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30060201ff020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30060201ff020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30060201ff0201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a0201ff021500b90b38ba0a50a43ec6898d3f9b68049777f489b1
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a0201ff021500b90b38ba0a50a43ec6898d3f9b68049777f489b2
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a0201ff0215010000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 3081870201ff02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30080201ff090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b10215ff46f4c745f5af5bc1397672c06497fb68880b764f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b1020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b1020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b10201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b1021500b90b38ba0a50a43ec6898d3f9b68049777f489b1
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b1021500b90b38ba0a50a43ec6898d3f9b68049777f489b2
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b10215010000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30819b021500b90b38ba0a50a43ec6898d3f9b68049777f489b102818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301c021500b90b38ba0a50a43ec6898d3f9b68049777f489b1090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b20215ff46f4c745f5af5bc1397672c06497fb68880b764f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b2020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b2020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a021500b90b38ba0a50a43ec6898d3f9b68049777f489b20201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b2021500b90b38ba0a50a43ec6898d3f9b68049777f489b1
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b2021500b90b38ba0a50a43ec6898d3f9b68049777f489b2
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 302e021500b90b38ba0a50a43ec6898d3f9b68049777f489b20215010000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30819b021500b90b38ba0a50a43ec6898d3f9b68049777f489b202818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301c021500b90b38ba0a50a43ec6898d3f9b68049777f489b2090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 302e02150100000000000000000000000000000000000000000215ff46f4c745f5af5bc1397672c06497fb68880b764f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a0215010000000000000000000000000000000000000000020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a0215010000000000000000000000000000000000000000020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301a02150100000000000000000000000000000000000000000201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 302e0215010000000000000000000000000000000000000000021500b90b38ba0a50a43ec6898d3f9b68049777f489b1
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 302e0215010000000000000000000000000000000000000000021500b90b38ba0a50a43ec6898d3f9b68049777f489b2
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 302e02150100000000000000000000000000000000000000000215010000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30819b021501000000000000000000000000000000000000000002818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301c0215010000000000000000000000000000000000000000090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f0215ff46f4c745f5af5bc1397672c06497fb68880b764f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30818702818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30818702818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30818702818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f0201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b1
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b2
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30819b02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f0215010000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 3082010802818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 30818902818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301c090380fe010215ff46f4c745f5af5bc1397672c06497fb68880b764f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 3008090380fe01020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 3008090380fe01020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 3008090380fe010201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301c090380fe01021500b90b38ba0a50a43ec6898d3f9b68049777f489b1
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301c090380fe01021500b90b38ba0a50a43ec6898d3f9b68049777f489b2
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 301c090380fe010215010000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 308189090380fe0102818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 313233343030
+result = invalid
+sig = 300a090380fe01090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 302c02140e23ff8588683fd9455d185090a9d9199f646bcb0214631ced1a4f6a308bfee3b999f1c2bbe7dcc922dc
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 302c0214313eedf8d478f95321cfdeb5fe439ef8716a60cb021407998d19305abe635be5af240bd7e0ec7216a5ce
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 302d02150092bda94e3d769675132d9d6a17944808899f8c42021416c7bb874e2e59219cb0d52b4fd470fcc8dcdff3
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 302d021500976b29bc6023065b0ee1b5362a4cd2f5529a43c902141db2ad4c3e92cf2bc9267f926ac2e71dacfa5928
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 302c02144afbd1a5d8fb9d117c7efd3e7b3564f37305a80302144e13c38000458a528ff2b667265740e36438bd99
+
+[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]
+[key.keySize = 2048]
+[key.p = 08f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]
+[key.q = 0baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]
+[key.type = DSAPublicKey]
+[key.y = 1e77f842b1ae0fcd9929d394161d41e14614ff7507a9a31f4a1f14d22e2a627a1f4e596624883f1a5b168e9425146f22d5f6ee28757414714bb994ba1129f015d6e04a717edf9b530a5d5cab94f14631e8b4cf79aeb358cc741845553841e8ac461630e804a62f43676ba6794af66899c377b869ea612a7b9fe6611aa96be52eb8b62c979117bbbcca8a7ec1e1ffab1c7dfcfc7048700d3ae3858136e897701d7c2921b5dfef1d1f897f50d96ca1b5c2edc58cada18919e35642f0807eebfa00c99a32f4d095c3188f78ed54711be0325c4b532aeccd6540a567c327225440ea15319bde06510479a1861799e25b57decc73c036d75a0702bd373ca231349931]
+[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde0382010500028201001e77f842b1ae0fcd9929d394161d41e14614ff7507a9a31f4a1f14d22e2a627a1f4e596624883f1a5b168e9425146f22d5f6ee28757414714bb994ba1129f015d6e04a717edf9b530a5d5cab94f14631e8b4cf79aeb358cc741845553841e8ac461630e804a62f43676ba6794af66899c377b869ea612a7b9fe6611aa96be52eb8b62c979117bbbcca8a7ec1e1ffab1c7dfcfc7048700d3ae3858136e897701d7c2921b5dfef1d1f897f50d96ca1b5c2edc58cada18919e35642f0807eebfa00c99a32f4d095c3188f78ed54711be0325c4b532aeccd6540a567c327225440ea15319bde06510479a1861799e25b57decc73c036d75a0702bd373ca231349931]
+[sha = SHA-224]
+
+# Legacy:ASN encoding of s misses leading 0
+msg = 48656c6c6f
+result = acceptable
+sig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021cade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+# ASN encoded integers with a leading hex-digit in the range 8 .. F are
+# negative. If the first hex-digit of a positive integer is 8 .. F then a
+# leading 0 must be added. Some libraries forgot to do this an therefore
+# generated invalid DSA signatures. Some providers, accept such legacy
+# signatures for compatibility.
+
+# valid
+msg = 48656c6c6f
+result = valid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# long form encoding of length
+msg = 48656c6c6f
+result = invalid
+sig = 30813d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# long form encoding of length
+msg = 48656c6c6f
+result = invalid
+sig = 303e02811c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# long form encoding of length
+msg = 48656c6c6f
+result = invalid
+sig = 303e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd02811d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length contains leading 0
+msg = 48656c6c6f
+result = invalid
+sig = 3082003d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length contains leading 0
+msg = 48656c6c6f
+result = invalid
+sig = 303f0282001c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length contains leading 0
+msg = 48656c6c6f
+result = invalid
+sig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0282001d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# wrong length
+msg = 48656c6c6f
+result = invalid
+sig = 303e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# wrong length
+msg = 48656c6c6f
+result = invalid
+sig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# wrong length
+msg = 48656c6c6f
+result = invalid
+sig = 303d021d1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# wrong length
+msg = 48656c6c6f
+result = invalid
+sig = 303d021b1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# wrong length
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021e00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# wrong length
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021c00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# uint32 overflow in length
+msg = 48656c6c6f
+result = invalid
+sig = 3085010000003d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# uint32 overflow in length
+msg = 48656c6c6f
+result = invalid
+sig = 30420285010000001c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# uint32 overflow in length
+msg = 48656c6c6f
+result = invalid
+sig = 3042021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0285010000001d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# uint64 overflow in length
+msg = 48656c6c6f
+result = invalid
+sig = 308901000000000000003d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# uint64 overflow in length
+msg = 48656c6c6f
+result = invalid
+sig = 3046028901000000000000001c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# uint64 overflow in length
+msg = 48656c6c6f
+result = invalid
+sig = 3046021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd028901000000000000001d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length = 2**31 - 1
+msg = 48656c6c6f
+result = invalid
+sig = 30847fffffff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length = 2**31 - 1
+msg = 48656c6c6f
+result = invalid
+sig = 304102847fffffff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length = 2**31 - 1
+msg = 48656c6c6f
+result = invalid
+sig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd02847fffffff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length = 2**32 - 1
+msg = 48656c6c6f
+result = invalid
+sig = 3084ffffffff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length = 2**32 - 1
+msg = 48656c6c6f
+result = invalid
+sig = 30410284ffffffff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length = 2**32 - 1
+msg = 48656c6c6f
+result = invalid
+sig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0284ffffffff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length = 2**40 - 1
+msg = 48656c6c6f
+result = invalid
+sig = 3085ffffffffff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length = 2**40 - 1
+msg = 48656c6c6f
+result = invalid
+sig = 30420285ffffffffff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length = 2**40 - 1
+msg = 48656c6c6f
+result = invalid
+sig = 3042021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0285ffffffffff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length = 2**64 - 1
+msg = 48656c6c6f
+result = invalid
+sig = 3088ffffffffffffffff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length = 2**64 - 1
+msg = 48656c6c6f
+result = invalid
+sig = 30450288ffffffffffffffff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# length = 2**64 - 1
+msg = 48656c6c6f
+result = invalid
+sig = 3045021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0288ffffffffffffffff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# incorrect length
+msg = 48656c6c6f
+result = invalid
+sig = 30ff021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# incorrect length
+msg = 48656c6c6f
+result = invalid
+sig = 303d02ff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# incorrect length
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd02ff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# indefinite length without termination
+msg = 48656c6c6f
+result = invalid
+sig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# indefinite length without termination
+msg = 48656c6c6f
+result = invalid
+sig = 303d02801e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# indefinite length without termination
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd028000ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# removing sequence
+msg = 48656c6c6f
+result = invalid
+sig = 
+
+# appending 0's to sequence
+msg = 48656c6c6f
+result = invalid
+sig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000
+
+# prepending 0's to sequence
+msg = 48656c6c6f
+result = invalid
+sig = 303f0000021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# appending unused 0's
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000
+
+# appending unused 0's
+msg = 48656c6c6f
+result = invalid
+sig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0000021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# appending null value
+msg = 48656c6c6f
+result = invalid
+sig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360500
+
+# appending null value
+msg = 48656c6c6f
+result = invalid
+sig = 303f021e1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0500021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# appending null value
+msg = 48656c6c6f
+result = invalid
+sig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021f00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360500
+
+# including garbage
+msg = 48656c6c6f
+result = invalid
+sig = 3042498177303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# including garbage
+msg = 48656c6c6f
+result = invalid
+sig = 30412500303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# including garbage
+msg = 48656c6c6f
+result = invalid
+sig = 303f303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360004deadbeef
+
+# including garbage
+msg = 48656c6c6f
+result = invalid
+sig = 30422221498177021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# including garbage
+msg = 48656c6c6f
+result = invalid
+sig = 304122202500021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# including garbage
+msg = 48656c6c6f
+result = invalid
+sig = 3045221e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0004deadbeef021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# including garbage
+msg = 48656c6c6f
+result = invalid
+sig = 3042021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2222498177021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# including garbage
+msg = 48656c6c6f
+result = invalid
+sig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd22212500021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# including garbage
+msg = 48656c6c6f
+result = invalid
+sig = 3045021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd221f021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360004deadbeef
+
+# including undefined tags
+msg = 48656c6c6f
+result = invalid
+sig = 3045aa00bb00cd00303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# including undefined tags
+msg = 48656c6c6f
+result = invalid
+sig = 3043aa02aabb303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# including undefined tags
+msg = 48656c6c6f
+result = invalid
+sig = 30452224aa00bb00cd00021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# including undefined tags
+msg = 48656c6c6f
+result = invalid
+sig = 30432222aa02aabb021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# including undefined tags
+msg = 48656c6c6f
+result = invalid
+sig = 3045021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2225aa00bb00cd00021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# including undefined tags
+msg = 48656c6c6f
+result = invalid
+sig = 3043021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2223aa02aabb021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# using composition with indefinite length
+msg = 48656c6c6f
+result = invalid
+sig = 3080303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000
+
+# using composition with indefinite length
+msg = 48656c6c6f
+result = invalid
+sig = 30412280021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0000021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# using composition with indefinite length
+msg = 48656c6c6f
+result = invalid
+sig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2280021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000
+
+# using composition with wrong tag
+msg = 48656c6c6f
+result = invalid
+sig = 3080313d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000
+
+# using composition with wrong tag
+msg = 48656c6c6f
+result = invalid
+sig = 30412280031c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0000021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# using composition with wrong tag
+msg = 48656c6c6f
+result = invalid
+sig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2280031d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000
+
+# Replacing sequence with NULL
+msg = 48656c6c6f
+result = invalid
+sig = 0500
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 2e3d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 2f3d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 313d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 323d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = ff3d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 303d001c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 303d011c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 303d031c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 303d041c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 303dff1c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd001d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd011d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd031d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd041d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# changing tag value
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cdff1d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# dropping value of sequence
+msg = 48656c6c6f
+result = invalid
+sig = 3000
+
+# using composition
+msg = 48656c6c6f
+result = invalid
+sig = 3041300102303c1c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# using composition
+msg = 48656c6c6f
+result = invalid
+sig = 3041222002011e021b41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# using composition
+msg = 48656c6c6f
+result = invalid
+sig = 3041021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd2221020100021cade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# truncate sequence
+msg = 48656c6c6f
+result = invalid
+sig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862
+
+# truncate sequence
+msg = 48656c6c6f
+result = invalid
+sig = 303c1c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# indefinite length
+msg = 48656c6c6f
+result = invalid
+sig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000
+
+# indefinite length with truncated delimiter
+msg = 48656c6c6f
+result = invalid
+sig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe878623600
+
+# indefinite length with additional element
+msg = 48656c6c6f
+result = invalid
+sig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe878623605000000
+
+# indefinite length with truncated element
+msg = 48656c6c6f
+result = invalid
+sig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236060811220000
+
+# indefinite length with garbage
+msg = 48656c6c6f
+result = invalid
+sig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000fe02beef
+
+# indefinite length with nonempty EOC
+msg = 48656c6c6f
+result = invalid
+sig = 3080021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360002beef
+
+# prepend empty sequence
+msg = 48656c6c6f
+result = invalid
+sig = 303f3000021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# append empty sequence
+msg = 48656c6c6f
+result = invalid
+sig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862363000
+
+# sequence of sequence
+msg = 48656c6c6f
+result = invalid
+sig = 303f303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# truncated sequence
+msg = 48656c6c6f
+result = invalid
+sig = 301e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd
+
+# repeat element in sequence
+msg = 48656c6c6f
+result = invalid
+sig = 305c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# removing integer
+msg = 48656c6c6f
+result = invalid
+sig = 301f021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# appending 0's to integer
+msg = 48656c6c6f
+result = invalid
+sig = 303f021e1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0000021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# appending 0's to integer
+msg = 48656c6c6f
+result = invalid
+sig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021f00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862360000
+
+# prepending 0's to integer
+msg = 48656c6c6f
+result = invalid
+sig = 303f021e00001e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# prepending 0's to integer
+msg = 48656c6c6f
+result = invalid
+sig = 303f021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021f000000ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# Replacing integer with NULL
+msg = 48656c6c6f
+result = invalid
+sig = 30210500021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# Replacing integer with NULL
+msg = 48656c6c6f
+result = invalid
+sig = 3020021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0500
+
+# dropping value of integer
+msg = 48656c6c6f
+result = invalid
+sig = 30210200021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# dropping value of integer
+msg = 48656c6c6f
+result = invalid
+sig = 3020021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd0200
+
+# modify first byte of integer
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1c41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# modify first byte of integer
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d02ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# modify last byte of integer
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c94d021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# modify last byte of integer
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862b6
+
+# truncate integer
+msg = 48656c6c6f
+result = invalid
+sig = 303c021b1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# truncate integer
+msg = 48656c6c6f
+result = invalid
+sig = 303c021b41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# truncate integer
+msg = 48656c6c6f
+result = invalid
+sig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021c00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe87862
+
+# truncate integer
+msg = 48656c6c6f
+result = invalid
+sig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021cade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# leading ff in integer
+msg = 48656c6c6f
+result = invalid
+sig = 303e021dff1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# leading ff in integer
+msg = 48656c6c6f
+result = invalid
+sig = 303e021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021eff00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# infinity
+msg = 48656c6c6f
+result = invalid
+sig = 3022090180021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# infinity
+msg = 48656c6c6f
+result = invalid
+sig = 3021021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd090180
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d00d9384b2032d060e59848f87cb4535936bc25fa77959e96d7f88e332a021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303e021dff634b1dd327de7125da7903ad2163ca2addc096101fd395567ee36070021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303d021ce1be4b8652a896fa469f01eb15246e4f330cb7bc2546e9e8c4473633021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d009cb4e22cd8218eda2586fc52de9c35d5223f69efe02c6aa9811c9f90021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303e021dff26c7b4dfcd2f9f1a67b707834baca6c943da05886a6169280771ccd6021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d011e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d00e1be4b8652a896fa469f01eb15246e4f330cb7bc2546e9e8c4473633021d00ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d0168dcf02f57b0caef7ddc183bee1ca94ee09c1a02ee4b0200a54dcb93
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021cf2efc2e24cbedb2fc00c236c5b2d1a430236b59b7880007f2ba2f8d9
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021dff5219a6772dc82cf0610be22bdb5b1e370e969830cc9a7ec017879dca
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021c0d103d1db34124d03ff3dc93a4d2e5bcfdc94a64877fff80d45d0727
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021dfe97230fd0a84f35108223e7c411e356b11f63e5fd11b4fdff5ab2346d
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303d021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021d01ade65988d237d30f9ef41dd424a4e1c8f16967cf3365813fe8786236
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 48656c6c6f
+result = invalid
+sig = 303c021c1e41b479ad576905b960fe14eadb91b0ccf34843dab916173bb8c9cd021c5219a6772dc82cf0610be22bdb5b1e370e969830cc9a7ec017879dca
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022020100021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3006020100020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3006020100020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 30060201000201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022020100021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3082010802010002820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3008020100090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022020101021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3006020101020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3006020101020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 30060201010201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022020101021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3082010802010102820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3008020101090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 30220201ff021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 30060201ff020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 30060201ff020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 30060201ff0201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 30220201ff021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 308201080201ff02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 30080201ff090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e0201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d0100000000000000000000000000000000000000000000000000000000021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022021d0100000000000000000000000000000000000000000000000000000000020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022021d0100000000000000000000000000000000000000000000000000000000020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3022021d01000000000000000000000000000000000000000000000000000000000201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 303e021d0100000000000000000000000000000000000000000000000000000000021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 30820124021d010000000000000000000000000000000000000000000000000000000002820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3024021d0100000000000000000000000000000000000000000000000000000000090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd6670201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3082020a02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd66702820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3082010a02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3024090380fe01021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3008090380fe01020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3008090380fe01020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3008090380fe010201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3024090380fe01021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 3082010a090380fe0102820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 48656c6c6f
+result = invalid
+sig = 300a090380fe01090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# random signature
+msg = 48656c6c6f
+result = valid
+sig = 303b021c6e3d431498bb8911b97308e9e8d05cedd927e1576074f5b407ed47fb021b265cb60340e52374c6b03a99fc1db5d97ffff31d89a7d0847bc57b
+
+# random signature
+msg = 48656c6c6f
+result = valid
+sig = 303d021d00a7b626ca8fe3aadb70736367cbf221099af40e3683aa7f889568d18d021c0ea3c9660f7e84fb794db3ae473e9bafc84e3d1999073b3b444c31ba
+
+# random signature
+msg = 48656c6c6f
+result = valid
+sig = 303d021d0090d3707463fe1fd72514653e54b61e504bf4c32f5ee58928be423c7b021c18f867d66ab6c14e0d4fd144da061cac5e33ee62fc8573b0617eec11
+
+# random signature
+msg = 48656c6c6f
+result = valid
+sig = 303d021c032d0712481f5be239cb0464b89d97fb4ca540089661bf1b930b927d021d00b7b2854013fcc17f3514ba83393a5998c905a90a0c3d0ef3a51562d5
+
+# random signature
+msg = 48656c6c6f
+result = valid
+sig = 303d021d00a11784b27530077677bdb15d78b75f508624099ca06036c2c24f7e20021c3a3c429f5c1411d952f1280c8ef0d582326a39447b934eee17c7b4ea
+
+[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]
+[key.keySize = 2048]
+[key.p = 08f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]
+[key.q = 0baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]
+[key.type = DSAPublicKey]
+[key.y = 1e77f842b1ae0fcd9929d394161d41e14614ff7507a9a31f4a1f14d22e2a627a1f4e596624883f1a5b168e9425146f22d5f6ee28757414714bb994ba1129f015d6e04a717edf9b530a5d5cab94f14631e8b4cf79aeb358cc741845553841e8ac461630e804a62f43676ba6794af66899c377b869ea612a7b9fe6611aa96be52eb8b62c979117bbbcca8a7ec1e1ffab1c7dfcfc7048700d3ae3858136e897701d7c2921b5dfef1d1f897f50d96ca1b5c2edc58cada18919e35642f0807eebfa00c99a32f4d095c3188f78ed54711be0325c4b532aeccd6540a567c327225440ea15319bde06510479a1861799e25b57decc73c036d75a0702bd373ca231349931]
+[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde0382010500028201001e77f842b1ae0fcd9929d394161d41e14614ff7507a9a31f4a1f14d22e2a627a1f4e596624883f1a5b168e9425146f22d5f6ee28757414714bb994ba1129f015d6e04a717edf9b530a5d5cab94f14631e8b4cf79aeb358cc741845553841e8ac461630e804a62f43676ba6794af66899c377b869ea612a7b9fe6611aa96be52eb8b62c979117bbbcca8a7ec1e1ffab1c7dfcfc7048700d3ae3858136e897701d7c2921b5dfef1d1f897f50d96ca1b5c2edc58cada18919e35642f0807eebfa00c99a32f4d095c3188f78ed54711be0325c4b532aeccd6540a567c327225440ea15319bde06510479a1861799e25b57decc73c036d75a0702bd373ca231349931]
+[sha = SHA-256]
+
+# Legacy:ASN encoding of r misses leading 0
+msg = 54657374
+result = acceptable
+sig = 303c021c9b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+# ASN encoded integers with a leading hex-digit in the range 8 .. F are
+# negative. If the first hex-digit of a positive integer is 8 .. F then a
+# leading 0 must be added. Some libraries forgot to do this an therefore
+# generated invalid DSA signatures. Some providers, accept such legacy
+# signatures for compatibility.
+
+# valid
+msg = 54657374
+result = valid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# long form encoding of length
+msg = 54657374
+result = invalid
+sig = 30813d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# long form encoding of length
+msg = 54657374
+result = invalid
+sig = 303e02811d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# long form encoding of length
+msg = 54657374
+result = invalid
+sig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302811c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length contains leading 0
+msg = 54657374
+result = invalid
+sig = 3082003d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length contains leading 0
+msg = 54657374
+result = invalid
+sig = 303f0282001d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length contains leading 0
+msg = 54657374
+result = invalid
+sig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930282001c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# wrong length
+msg = 54657374
+result = invalid
+sig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# wrong length
+msg = 54657374
+result = invalid
+sig = 303c021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# wrong length
+msg = 54657374
+result = invalid
+sig = 303d021e009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# wrong length
+msg = 54657374
+result = invalid
+sig = 303d021c009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# wrong length
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021d5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# wrong length
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021b5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# uint32 overflow in length
+msg = 54657374
+result = invalid
+sig = 3085010000003d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# uint32 overflow in length
+msg = 54657374
+result = invalid
+sig = 30420285010000001d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# uint32 overflow in length
+msg = 54657374
+result = invalid
+sig = 3042021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930285010000001c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# uint64 overflow in length
+msg = 54657374
+result = invalid
+sig = 308901000000000000003d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# uint64 overflow in length
+msg = 54657374
+result = invalid
+sig = 3046028901000000000000001d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# uint64 overflow in length
+msg = 54657374
+result = invalid
+sig = 3046021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93028901000000000000001c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length = 2**31 - 1
+msg = 54657374
+result = invalid
+sig = 30847fffffff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length = 2**31 - 1
+msg = 54657374
+result = invalid
+sig = 304102847fffffff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length = 2**31 - 1
+msg = 54657374
+result = invalid
+sig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302847fffffff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length = 2**32 - 1
+msg = 54657374
+result = invalid
+sig = 3084ffffffff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length = 2**32 - 1
+msg = 54657374
+result = invalid
+sig = 30410284ffffffff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length = 2**32 - 1
+msg = 54657374
+result = invalid
+sig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930284ffffffff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length = 2**40 - 1
+msg = 54657374
+result = invalid
+sig = 3085ffffffffff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length = 2**40 - 1
+msg = 54657374
+result = invalid
+sig = 30420285ffffffffff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length = 2**40 - 1
+msg = 54657374
+result = invalid
+sig = 3042021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930285ffffffffff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length = 2**64 - 1
+msg = 54657374
+result = invalid
+sig = 3088ffffffffffffffff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length = 2**64 - 1
+msg = 54657374
+result = invalid
+sig = 30450288ffffffffffffffff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# length = 2**64 - 1
+msg = 54657374
+result = invalid
+sig = 3045021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930288ffffffffffffffff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# incorrect length
+msg = 54657374
+result = invalid
+sig = 30ff021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# incorrect length
+msg = 54657374
+result = invalid
+sig = 303d02ff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# incorrect length
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302ff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# indefinite length without termination
+msg = 54657374
+result = invalid
+sig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# indefinite length without termination
+msg = 54657374
+result = invalid
+sig = 303d0280009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# indefinite length without termination
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9302805fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# removing sequence
+msg = 54657374
+result = invalid
+sig = 
+
+# appending 0's to sequence
+msg = 54657374
+result = invalid
+sig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000
+
+# prepending 0's to sequence
+msg = 54657374
+result = invalid
+sig = 303f0000021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# appending unused 0's
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000
+
+# appending unused 0's
+msg = 54657374
+result = invalid
+sig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930000021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# appending null value
+msg = 54657374
+result = invalid
+sig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160500
+
+# appending null value
+msg = 54657374
+result = invalid
+sig = 303f021f009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930500021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# appending null value
+msg = 54657374
+result = invalid
+sig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021e5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160500
+
+# including garbage
+msg = 54657374
+result = invalid
+sig = 3042498177303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# including garbage
+msg = 54657374
+result = invalid
+sig = 30412500303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# including garbage
+msg = 54657374
+result = invalid
+sig = 303f303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160004deadbeef
+
+# including garbage
+msg = 54657374
+result = invalid
+sig = 30422222498177021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# including garbage
+msg = 54657374
+result = invalid
+sig = 304122212500021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# including garbage
+msg = 54657374
+result = invalid
+sig = 3045221f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930004deadbeef021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# including garbage
+msg = 54657374
+result = invalid
+sig = 3042021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932221498177021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# including garbage
+msg = 54657374
+result = invalid
+sig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee9322202500021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# including garbage
+msg = 54657374
+result = invalid
+sig = 3045021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93221e021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160004deadbeef
+
+# including undefined tags
+msg = 54657374
+result = invalid
+sig = 3045aa00bb00cd00303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# including undefined tags
+msg = 54657374
+result = invalid
+sig = 3043aa02aabb303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# including undefined tags
+msg = 54657374
+result = invalid
+sig = 30452225aa00bb00cd00021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# including undefined tags
+msg = 54657374
+result = invalid
+sig = 30432223aa02aabb021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# including undefined tags
+msg = 54657374
+result = invalid
+sig = 3045021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932224aa00bb00cd00021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# including undefined tags
+msg = 54657374
+result = invalid
+sig = 3043021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932222aa02aabb021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# using composition with indefinite length
+msg = 54657374
+result = invalid
+sig = 3080303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000
+
+# using composition with indefinite length
+msg = 54657374
+result = invalid
+sig = 30412280021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930000021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# using composition with indefinite length
+msg = 54657374
+result = invalid
+sig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932280021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000
+
+# using composition with wrong tag
+msg = 54657374
+result = invalid
+sig = 3080313d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000
+
+# using composition with wrong tag
+msg = 54657374
+result = invalid
+sig = 30412280031d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930000021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# using composition with wrong tag
+msg = 54657374
+result = invalid
+sig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee932280031c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000
+
+# Replacing sequence with NULL
+msg = 54657374
+result = invalid
+sig = 0500
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 2e3d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 2f3d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 313d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 323d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = ff3d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 303d001d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 303d011d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 303d031d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 303d041d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 303dff1d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93001c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93011c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93031c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93041c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# changing tag value
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93ff1c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# dropping value of sequence
+msg = 54657374
+result = invalid
+sig = 3000
+
+# using composition
+msg = 54657374
+result = invalid
+sig = 3041300102303c1d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# using composition
+msg = 54657374
+result = invalid
+sig = 30412221020100021c9b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# using composition
+msg = 54657374
+result = invalid
+sig = 3041021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93222002015f021be8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# truncate sequence
+msg = 54657374
+result = invalid
+sig = 303c021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1
+
+# truncate sequence
+msg = 54657374
+result = invalid
+sig = 303c1d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# indefinite length
+msg = 54657374
+result = invalid
+sig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000
+
+# indefinite length with truncated delimiter
+msg = 54657374
+result = invalid
+sig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b11600
+
+# indefinite length with additional element
+msg = 54657374
+result = invalid
+sig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b11605000000
+
+# indefinite length with truncated element
+msg = 54657374
+result = invalid
+sig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116060811220000
+
+# indefinite length with garbage
+msg = 54657374
+result = invalid
+sig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000fe02beef
+
+# indefinite length with nonempty EOC
+msg = 54657374
+result = invalid
+sig = 3080021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160002beef
+
+# prepend empty sequence
+msg = 54657374
+result = invalid
+sig = 303f3000021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# append empty sequence
+msg = 54657374
+result = invalid
+sig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1163000
+
+# sequence of sequence
+msg = 54657374
+result = invalid
+sig = 303f303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# truncated sequence
+msg = 54657374
+result = invalid
+sig = 301f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93
+
+# repeat element in sequence
+msg = 54657374
+result = invalid
+sig = 305b021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# removing integer
+msg = 54657374
+result = invalid
+sig = 301e021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# appending 0's to integer
+msg = 54657374
+result = invalid
+sig = 303f021f009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930000021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# appending 0's to integer
+msg = 54657374
+result = invalid
+sig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021e5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1160000
+
+# prepending 0's to integer
+msg = 54657374
+result = invalid
+sig = 303f021f0000009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# prepending 0's to integer
+msg = 54657374
+result = invalid
+sig = 303f021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021e00005fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# Replacing integer with NULL
+msg = 54657374
+result = invalid
+sig = 30200500021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# Replacing integer with NULL
+msg = 54657374
+result = invalid
+sig = 3021021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930500
+
+# dropping value of integer
+msg = 54657374
+result = invalid
+sig = 30200200021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# dropping value of integer
+msg = 54657374
+result = invalid
+sig = 3021021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee930200
+
+# modify first byte of integer
+msg = 54657374
+result = invalid
+sig = 303d021d029b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# modify first byte of integer
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5de8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# modify last byte of integer
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee13021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# modify last byte of integer
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b196
+
+# truncate integer
+msg = 54657374
+result = invalid
+sig = 303c021c009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# truncate integer
+msg = 54657374
+result = invalid
+sig = 303c021c9b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# truncate integer
+msg = 54657374
+result = invalid
+sig = 303c021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021b5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b1
+
+# truncate integer
+msg = 54657374
+result = invalid
+sig = 303c021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021be8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# leading ff in integer
+msg = 54657374
+result = invalid
+sig = 303e021eff009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# leading ff in integer
+msg = 54657374
+result = invalid
+sig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021dff5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# infinity
+msg = 54657374
+result = invalid
+sig = 3021090180021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# infinity
+msg = 54657374
+result = invalid
+sig = 3022021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93090180
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303d021d0156667b48514d3e5d546ca89ff45ada90474113ed248b873430ab57f0021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303c021ce0794dfb465b4e9d969cb3d0616b4b8468dbaf85aec085b2b7008536021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303d021dff64901b5e342bb9828a7b51c7d51cecf5a7f19e469659f98c8c2a116d021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303c021c1f86b204b9a4b16269634c2f9e94b47b9724507a513f7a4d48ff7aca021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303d021dfea99984b7aeb2c1a2ab9357600ba5256fb8beec12db7478cbcf54a810021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303d021d019b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303c021c64901b5e342bb9828a7b51c7d51cecf5a7f19e469659f98c8c2a116d021c5fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021d011adeb9ed974f878dc2fc26f4bf86ffda5f7abe6c26ebabf9b8181a73
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021ca4f18ca08c5d97ce052c32252c9770ce81155a04b120aa783e6d47b9
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021ca017dcb8ee2970521bebd37309f0c7ab8fb7f3c793f9d4c704bd4eea
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303d021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021c5b0e735f73a26831fad3cddad3688f317eeaa5fb4edf5587c192b847
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021dfee521461268b078723d03d90b40790025a0854193d914540647e7e58d
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021d015fe8234711d68fade4142c8cf60f385470480c386c062b38fb42b116
+
+# Modified r or s, e.g. by adding or subtracting the group order
+msg = 54657374
+result = invalid
+sig = 303e021d009b6fe4a1cbd4467d7584ae382ae3130a580e61b969a6067373d5ee93021d00a017dcb8ee2970521bebd37309f0c7ab8fb7f3c793f9d4c704bd4eea
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022020100021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3006020100020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3006020100020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 30060201000201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022020100021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022020100021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3082010802010002820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3008020100090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022020101021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3006020101020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3006020101020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 30060201010201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022020101021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3082010802010102820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3008020101090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 30220201ff021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 30060201ff020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 30060201ff020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 30060201ff0201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 30220201ff021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 30220201ff021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 308201080201ff02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 30080201ff090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e0201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 303e021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 30820124021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3024021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 303e021d0100000000000000000000000000000000000000000000000000000000021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022021d0100000000000000000000000000000000000000000000000000000000020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022021d0100000000000000000000000000000000000000000000000000000000020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3022021d01000000000000000000000000000000000000000000000000000000000201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 303e021d0100000000000000000000000000000000000000000000000000000000021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 303e021d0100000000000000000000000000000000000000000000000000000000021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 30820124021d010000000000000000000000000000000000000000000000000000000002820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3024021d0100000000000000000000000000000000000000000000000000000000090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3082010802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd6670201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3082012402820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3082020a02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd66702820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3082010a02820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3024090380fe01021dff450969597a870820211805983688387a10cd4dcc451a7f3f432a96a3
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3008090380fe01020100
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3008090380fe01020101
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3008090380fe010201ff
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3024090380fe01021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695e
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3024090380fe01021d0100000000000000000000000000000000000000000000000000000000
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 3082010a090380fe0102820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# Signatures with special case values for r and s.
+msg = 54657374
+result = invalid
+sig = 300a090380fe01090380fe01
+# Some implementations of DSA do not properly check for boundaries. In some
+# cases the modular inverse of 0 is simply 0. As a result there are
+# implementations where values such as r=1, s=0 lead to forgeries.
+
+# random signature
+msg = 54657374
+result = valid
+sig = 303e021d009a77c2ecaa462bc2a103083725ad3a829484f471e4aee6202ee86cdb021d009dfbeb5221b3625945dd5e4cc6fee5262ea7894198e8c9da1cd76fb1
+
+# random signature
+msg = 54657374
+result = valid
+sig = 303d021c29a77fe0e704eccc142f5c56672fed3f44f06941e5232b3f356ed2a9021d00970b5c6e7cb7ecb361c0e1645d54f6e7e9440ef5b5af0bd4e4790656
+
+# random signature
+msg = 54657374
+result = valid
+sig = 303c021c19b3f92f6c22e6906b446bca454f31a59aa7714001cbb29bfbcb9f46021c7b609e7b9ab85c569b44bb48ff6b5f6d4bbca4d96ff2dad3577610b3
+
+# random signature
+msg = 54657374
+result = valid
+sig = 303d021d009f8e58385c8d24feca68f3ed3634118f2a72a6001505ffa3ed0d8d14021c51f3e61627da82df148dc323d03e4d02bf7fd6de64af6cab83ca7a2d
+
+# random signature
+msg = 54657374
+result = valid
+sig = 303c021c77ee5cb172ea5d1f23e28195584c056cc19185e68341ee8cc5af4d45021c17d341bb596d6def1e04c361c780af7491b7bb45f7040085f3df1076
+
+[key.g = 0835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d]
+[key.keySize = 1024]
+[key.p = 0b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f]
+[key.q = 0b90b38ba0a50a43ec6898d3f9b68049777f489b1]
+[key.type = DSAPublicKey]
+[key.y = 713e9f8108a6a7075485a37ce1a3b040cce563a0445614fe099fb1bffd68acb36f9e04d8ad17ace3c136da66f730eb7ff18936424ffa4e5ae5b1e7dac375d8d164697254b8b7e848f5e79da25c79df5c0727d5da3498405cd0f4e46d136c351d703cc4bf0d3f4fbb165392888684964a93ad30fa179488cad4a6655dd4fa9754]
+[keyDer = 308201b63082012b06072a8648ce3804013082011e02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b10281800835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d03818400028180713e9f8108a6a7075485a37ce1a3b040cce563a0445614fe099fb1bffd68acb36f9e04d8ad17ace3c136da66f730eb7ff18936424ffa4e5ae5b1e7dac375d8d164697254b8b7e848f5e79da25c79df5c0727d5da3498405cd0f4e46d136c351d703cc4bf0d3f4fbb165392888684964a93ad30fa179488cad4a6655dd4fa9754]
+[sha = SHA-1]
+
+# r,s = 1,1
+msg = 54657374
+result = valid
+sig = 3006020101020101
+
+# r,s = 1,5
+msg = 54657374
+result = valid
+sig = 3006020101020105
+
+# u2 small
+msg = 54657374
+result = valid
+sig = 3019020101021425023e8b9ba9ba72f481e90cb8ae67517e641b8a
+
+# s == q-1
+msg = 54657374
+result = valid
+sig = 301a020101021500b90b38ba0a50a43ec6898d3f9b68049777f489b0
+
+[key.g = 0835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d]
+[key.keySize = 1024]
+[key.p = 0b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f]
+[key.q = 0b90b38ba0a50a43ec6898d3f9b68049777f489b1]
+[key.type = DSAPublicKey]
+[key.y = 61fe5b61f6d555ada7dc0ebac3459fccd8dfbad18ba94dbea52437cd7fb431df404d4738c594e720a6d786275acd02259ca613a08a2de118d0150d2ccae602102aca0cd03666a53f67c0b9943df5046c15baeaf496a9f018b7c939de1509de71ce47dd6f44c57f4e01e569be46932773190c154470cefbd1f4af82d28e4b31]
+[keyDer = 308201b43082012b06072a8648ce3804013082011e02818100b34ce9c1e78294d3258473842005d2a48c8c566cfca8f84c0606f2529b59a6d38aae071b53bb2167eaa4fc3b01fe176e787e481b6037aac62cbc3d089799536a869fa8cdfea1e8b1fd2d1cd3a30350859a2cd6b3ec2f9bfbb68bb11b4bbe2adaa18d64a93639543ae5e16293e311c0cf8c8d6e180df05d08c2fd2d93d570751f021500b90b38ba0a50a43ec6898d3f9b68049777f489b10281800835aa8c358bbf01a1846d1206323fabe408b0e98789fcc6239da14d4b3f86c276a8f48aa85a59507e620ad1bc745f0f1cbf63ec98c229c2610d77c634d1642e404354771655b2d5662f7a45227178ce3430af0f6b3bb94b52f7f51e97bad659b1ba0684e208be624c28d82fb1162f18dd9dce45216461654cf3374624d15a8d03818200027f61fe5b61f6d555ada7dc0ebac3459fccd8dfbad18ba94dbea52437cd7fb431df404d4738c594e720a6d786275acd02259ca613a08a2de118d0150d2ccae602102aca0cd03666a53f67c0b9943df5046c15baeaf496a9f018b7c939de1509de71ce47dd6f44c57f4e01e569be46932773190c154470cefbd1f4af82d28e4b31]
+[sha = SHA-1]
+
+# s == 1
+msg = 54657374
+result = valid
+sig = 3019021462ba827381396dc44facc66c344f91788f11c6fc020101
+
+[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]
+[key.keySize = 2048]
+[key.p = 08f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]
+[key.q = 0baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]
+[key.type = DSAPublicKey]
+[key.y = 6978b68d31334ee5bc7b3e91ab6c2336fab45c64836bd92cb5337b734db9e8e44f889f8869829f4fe174dc9344c164a0ba5b0126259ba8a43f607564fa4a1d0d49645e1d5886a1fc485e2fe91e56eae330da05e17b0b3d018c290285b249bc409e7af54300fc7c3eb34911457e2371931ad9302e8450cd95df3d561ea0ad94d0a2eabcafe0dd6728fb280029b556d9f4fa7c0f46a7804329936708e97e11fc22b2a50761a890c65b5fea2a1a4172f6be9eaa60e738cdf60c015142e2e562bb62a11e810ccdf0bf633307382f2d9a9769b115dfcdab4bacae73feca289db209dce34cbe126e8c7f9d9e4f8f711349a608d567b48c050e9dfb32bc184ecaa4f0f0]
+[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde0382010500028201006978b68d31334ee5bc7b3e91ab6c2336fab45c64836bd92cb5337b734db9e8e44f889f8869829f4fe174dc9344c164a0ba5b0126259ba8a43f607564fa4a1d0d49645e1d5886a1fc485e2fe91e56eae330da05e17b0b3d018c290285b249bc409e7af54300fc7c3eb34911457e2371931ad9302e8450cd95df3d561ea0ad94d0a2eabcafe0dd6728fb280029b556d9f4fa7c0f46a7804329936708e97e11fc22b2a50761a890c65b5fea2a1a4172f6be9eaa60e738cdf60c015142e2e562bb62a11e810ccdf0bf633307382f2d9a9769b115dfcdab4bacae73feca289db209dce34cbe126e8c7f9d9e4f8f711349a608d567b48c050e9dfb32bc184ecaa4f0f0]
+[sha = SHA-224]
+
+# r,s = 1,1
+msg = 54657374
+result = valid
+sig = 3006020101020101
+
+# r,s = 1,5
+msg = 54657374
+result = valid
+sig = 3006020101020105
+
+# u2 small
+msg = 54657374
+result = valid
+sig = 3022020101021d009592121ed12d93197f1ffb863ac63937f28ef4f62f1e009a30aabab1
+
+# s == q-1
+msg = 54657374
+result = valid
+sig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c
+
+[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]
+[key.keySize = 2048]
+[key.p = 08f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]
+[key.q = 0baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]
+[key.type = DSAPublicKey]
+[key.y = 2a64953bde40789f80ed8227192286115b92d09d5de96904e803ec4ecfbd73e0f08e82910febf19fa3cdc55ff20eb970d9c712f44785c0fd592c17fb43f4625357a4ac8a1a628f72040ae5360839c7c1f6b214e7a15530fe22887139ea0f05a9daf9d95bd6b7467abf9107c9fbe31e36330276eeccce3d59635206d60ca256f9af60627626b0594984b5a075c42c42067fa8c330f258bcf145df27a97da8ee419b54e3ab296c7ce9ef6a0113389b3cac7885b44b3722d27cad60e4e5a924a1ed0342cea9e99256f6bc1308d4af2c0af9379b1cf2119ce113c085705f5519ccc1ba8562a2236190d3f0c0a10f01466ad79a48127c28433f6b34e24a539af60f3d]
+[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde0382010500028201002a64953bde40789f80ed8227192286115b92d09d5de96904e803ec4ecfbd73e0f08e82910febf19fa3cdc55ff20eb970d9c712f44785c0fd592c17fb43f4625357a4ac8a1a628f72040ae5360839c7c1f6b214e7a15530fe22887139ea0f05a9daf9d95bd6b7467abf9107c9fbe31e36330276eeccce3d59635206d60ca256f9af60627626b0594984b5a075c42c42067fa8c330f258bcf145df27a97da8ee419b54e3ab296c7ce9ef6a0113389b3cac7885b44b3722d27cad60e4e5a924a1ed0342cea9e99256f6bc1308d4af2c0af9379b1cf2119ce113c085705f5519ccc1ba8562a2236190d3f0c0a10f01466ad79a48127c28433f6b34e24a539af60f3d]
+[sha = SHA-224]
+
+# s == 1
+msg = 54657374
+result = valid
+sig = 3021021c5a252f4fc55618747fd94b13c9bee62bb958d85777cb07dd90710d24020101
+
+[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]
+[key.keySize = 2048]
+[key.p = 08f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]
+[key.q = 0baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]
+[key.type = DSAPublicKey]
+[key.y = 0848177b9bcff136c52caef2a4a9bcb64dbefbac69e18aae499696b5ec7b270e90478b413bb8ad8f8eee8ad32107d7ba492c36b007f9ef30ebe1ee484d0ea7cb0ff4afaa8c705ad5e16576975414f1bc0efed25c2190a3ed0068bffa1f03bf6f21056c9bb383350851997cbc89cf8729b394527f08ab93ce9b360aa055a47177e82a4ce6fe76c8dffddbd6ee20fa08d0085d3983edd2c8d9a366ad2245b4ed28d6754769f5f3a798be4be19cf469399865d464e3f640438bce03c962c2344d0d550542aed3db55c153833bea44b4146878ba347c8614436c6aac4fd1a60f25c62b3f869a7d55cab4b7122d5e9af4322a3fc8214fa55dc1ee021459fb2c4595827]
+[keyDer = 308203433082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde03820106000282010100848177b9bcff136c52caef2a4a9bcb64dbefbac69e18aae499696b5ec7b270e90478b413bb8ad8f8eee8ad32107d7ba492c36b007f9ef30ebe1ee484d0ea7cb0ff4afaa8c705ad5e16576975414f1bc0efed25c2190a3ed0068bffa1f03bf6f21056c9bb383350851997cbc89cf8729b394527f08ab93ce9b360aa055a47177e82a4ce6fe76c8dffddbd6ee20fa08d0085d3983edd2c8d9a366ad2245b4ed28d6754769f5f3a798be4be19cf469399865d464e3f640438bce03c962c2344d0d550542aed3db55c153833bea44b4146878ba347c8614436c6aac4fd1a60f25c62b3f869a7d55cab4b7122d5e9af4322a3fc8214fa55dc1ee021459fb2c4595827]
+[sha = SHA-256]
+
+# r,s = 1,1
+msg = 54657374
+result = valid
+sig = 3006020101020101
+
+# r,s = 1,5
+msg = 54657374
+result = valid
+sig = 3006020101020105
+
+# u2 small
+msg = 54657374
+result = valid
+sig = 3022020101021d009592121ed12d93197f1ffb863ac63937f28ef4f62f1e009a30aabab1
+
+# s == q-1
+msg = 54657374
+result = valid
+sig = 3022020101021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695c
+
+[key.g = 16a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde]
+[key.keySize = 2048]
+[key.p = 08f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667]
+[key.q = 0baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d]
+[key.type = DSAPublicKey]
+[key.y = 629374929537e2c3b09f30d881554ca7357f89e25105474dbbce06e4001efd61481a457aa0d7d7e565e90b7a3d9c688005fb404bf3b6d3e61e402300beee7c58ceeaf00b112ddfeef3cbc2020ba2206dd4ef0563d7fa52c321b4ee6280eb8585041d03cadb9244dff21dc90417bbe6f06b91c2ca6484437c3846926b18ee22275081b60726e7a26a29a947eabd035ede83d65927b3ceb0d4d8c2f34e94a3de0f57e4ea99af059657529f6954b1ac9bb4484ca76b4083e1cf4264eff028662137761e4d7f35b1eda3cf516856f25553840e43ae38379d234b06c891822132081d19f0d5db9f23b4bbd5f5667dd78f3dd7f1fe5f25ca48515f6335ce1c9fd0a64b]
+[keyDer = 308203423082023506072a8648ce3804013082022802820101008f7935d9b9aae9bfabed887acf4951b6f32ec59e3baf3718e8eac4961f3efd3606e74351a9c4183339b809e7c2ae1c539ba7475b85d011adb8b47987754984695cac0e8f14b3360828a22ffa27110a3d62a993453409a0fe696c4658f84bdd20819c3709a01057b195adcd00233dba5484b6291f9d648ef883448677979cec04b434a6ac2e75e9985de23db0292fc1118c9ffa9d8181e7338db792b730d7b9e349592f68099872153915ea3d6b8b4653c633458f803b32a4c2e0f27290256e4e3f8a3b0838a1c450e4e18c1a29a37ddf5ea143de4b66ff04903ed5cf1623e158d487c608e97f211cd81dca23cb6e380765f822e342be484c05763939601cd667021d00baf696a68578f7dfdee7fa67c977c785ef32b233bae580c0bcd5695d0282010016a65c58204850704e7502a39757040d34da3a3478c154d4e4a5c02d242ee04f96e61e4bd0904abdac8f37eeb1e09f3182d23c9043cb642f88004160edf9ca09b32076a79c32a627f2473e91879ba2c4e744bd2081544cb55b802c368d1fa83ed489e94e0fa0688e32428a5c78c478c68d0527b71c9a3abb0b0be12c44689639e7d3ce74db101a65aa2b87f64c6826db3ec72f4b5599834bb4edb02f7c90e9a496d3a55d535bebfc45d4f619f63f3dedbb873925c2f224e07731296da887ec1e4748f87efb5fdeb75484316b2232dee553ddaf02112b0d1f02da30973224fe27aeda8b9d4b2922d9ba8be39ed9e103a63c52810bc688b7e2ed4316e1ef17dbde038201050002820100629374929537e2c3b09f30d881554ca7357f89e25105474dbbce06e4001efd61481a457aa0d7d7e565e90b7a3d9c688005fb404bf3b6d3e61e402300beee7c58ceeaf00b112ddfeef3cbc2020ba2206dd4ef0563d7fa52c321b4ee6280eb8585041d03cadb9244dff21dc90417bbe6f06b91c2ca6484437c3846926b18ee22275081b60726e7a26a29a947eabd035ede83d65927b3ceb0d4d8c2f34e94a3de0f57e4ea99af059657529f6954b1ac9bb4484ca76b4083e1cf4264eff028662137761e4d7f35b1eda3cf516856f25553840e43ae38379d234b06c891822132081d19f0d5db9f23b4bbd5f5667dd78f3dd7f1fe5f25ca48515f6335ce1c9fd0a64b]
+[sha = SHA-256]
+
+# s == 1
+msg = 54657374
+result = valid
+sig = 3021021c5a252f4fc55618747fd94b13c9bee62bb958d85777cb07dd90710d24020101
+