Add ECDSA and RSA verify Wycheproof drivers.

Along the way, add some utility functions for getting common things
(curves, hashes, etc.) in the names Wycheproof uses.

Change-Id: I09c11ea2970cf2c8a11a8c2a861d85396efda125
Reviewed-on: https://boringssl-review.googlesource.com/27786
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/evp/evp_test.cc b/crypto/evp/evp_test.cc
index 3bcdbd6..d73c2c4 100644
--- a/crypto/evp/evp_test.cc
+++ b/crypto/evp/evp_test.cc
@@ -79,6 +79,7 @@
 
 #include "../test/file_test.h"
 #include "../test/test_util.h"
+#include "../test/wycheproof_util.h"
 
 
 // evp_test dispatches between multiple test types. PrivateKey tests take a key
@@ -413,3 +414,54 @@
     }
   });
 }
+
+static void RunWycheproofTest(const char *path) {
+  SCOPED_TRACE(path);
+  FileTestGTest(path, [](FileTest *t) {
+    t->IgnoreInstruction("key.type");
+    // Extra ECDSA fields.
+    t->IgnoreInstruction("key.curve");
+    t->IgnoreInstruction("key.keySize");
+    t->IgnoreInstruction("key.wx");
+    t->IgnoreInstruction("key.wy");
+    // Extra RSA fields.
+    t->IgnoreInstruction("e");
+    t->IgnoreInstruction("keyAsn");
+    t->IgnoreInstruction("keysize");
+    t->IgnoreInstruction("n");
+    t->IgnoreAttribute("padding");
+
+    std::vector<uint8_t> der;
+    ASSERT_TRUE(t->GetInstructionBytes(&der, "keyDer"));
+    CBS cbs;
+    CBS_init(&cbs, der.data(), der.size());
+    bssl::UniquePtr<EVP_PKEY> key(EVP_parse_public_key(&cbs));
+    ASSERT_TRUE(key);
+
+    const EVP_MD *md = GetWycheproofDigest(t, "sha", true);
+    ASSERT_TRUE(md);
+    std::vector<uint8_t> msg;
+    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()));
+  });
+}
+
+TEST(EVPTest, Wycheproof) {
+  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");
+  RunWycheproofTest("third_party/wycheproof/ecdsa_secp384r1_sha384_test.txt");
+  RunWycheproofTest("third_party/wycheproof/ecdsa_secp384r1_sha512_test.txt");
+  RunWycheproofTest("third_party/wycheproof/ecdsa_secp521r1_sha512_test.txt");
+  RunWycheproofTest("third_party/wycheproof/rsa_signature_test.txt");
+}
diff --git a/crypto/test/CMakeLists.txt b/crypto/test/CMakeLists.txt
index 46a40f8..90707dd 100644
--- a/crypto/test/CMakeLists.txt
+++ b/crypto/test/CMakeLists.txt
@@ -6,6 +6,7 @@
   file_test.cc
   malloc.cc
   test_util.cc
+  wycheproof_util.cc
 )
 
 add_library(
diff --git a/crypto/test/file_test.cc b/crypto/test/file_test.cc
index cbb9f7f..2ad49d3 100644
--- a/crypto/test/file_test.cc
+++ b/crypto/test/file_test.cc
@@ -286,52 +286,19 @@
   return true;
 }
 
+bool FileTest::GetInstructionBytes(std::vector<uint8_t> *out,
+                                   const std::string &key) {
+  std::string value;
+  return GetInstruction(&value, key) && ConvertToBytes(out, value);
+}
+
 const std::string &FileTest::CurrentTestToString() const {
   return current_test_;
 }
 
-static bool FromHexDigit(uint8_t *out, char c) {
-  if ('0' <= c && c <= '9') {
-    *out = c - '0';
-    return true;
-  }
-  if ('a' <= c && c <= 'f') {
-    *out = c - 'a' + 10;
-    return true;
-  }
-  if ('A' <= c && c <= 'F') {
-    *out = c - 'A' + 10;
-    return true;
-  }
-  return false;
-}
-
 bool FileTest::GetBytes(std::vector<uint8_t> *out, const std::string &key) {
   std::string value;
-  if (!GetAttribute(&value, key)) {
-    return false;
-  }
-
-  if (value.size() >= 2 && value[0] == '"' && value[value.size() - 1] == '"') {
-    out->assign(value.begin() + 1, value.end() - 1);
-    return true;
-  }
-
-  if (value.size() % 2 != 0) {
-    PrintLine("Error decoding value: %s", value.c_str());
-    return false;
-  }
-  out->clear();
-  out->reserve(value.size() / 2);
-  for (size_t i = 0; i < value.size(); i += 2) {
-    uint8_t hi, lo;
-    if (!FromHexDigit(&hi, value[i]) || !FromHexDigit(&lo, value[i + 1])) {
-      PrintLine("Error decoding value: %s", value.c_str());
-      return false;
-    }
-    out->push_back((hi << 4) | lo);
-  }
-  return true;
+  return GetAttribute(&value, key) && ConvertToBytes(out, value);
 }
 
 static std::string EncodeHex(const uint8_t *in, size_t in_len) {
@@ -381,6 +348,46 @@
   unused_instructions_.erase(key);
 }
 
+static bool FromHexDigit(uint8_t *out, char c) {
+  if ('0' <= c && c <= '9') {
+    *out = c - '0';
+    return true;
+  }
+  if ('a' <= c && c <= 'f') {
+    *out = c - 'a' + 10;
+    return true;
+  }
+  if ('A' <= c && c <= 'F') {
+    *out = c - 'A' + 10;
+    return true;
+  }
+  return false;
+}
+
+bool FileTest::ConvertToBytes(std::vector<uint8_t> *out,
+                              const std::string &value) {
+  if (value.size() >= 2 && value[0] == '"' && value[value.size() - 1] == '"') {
+    out->assign(value.begin() + 1, value.end() - 1);
+    return true;
+  }
+
+  if (value.size() % 2 != 0) {
+    PrintLine("Error decoding value: %s", value.c_str());
+    return false;
+  }
+  out->clear();
+  out->reserve(value.size() / 2);
+  for (size_t i = 0; i < value.size(); i += 2) {
+    uint8_t hi, lo;
+    if (!FromHexDigit(&hi, value[i]) || !FromHexDigit(&lo, value[i + 1])) {
+      PrintLine("Error decoding value: %s", value.c_str());
+      return false;
+    }
+    out->push_back((hi << 4) | lo);
+  }
+  return true;
+}
+
 bool FileTest::IsAtNewInstructionBlock() const {
   return is_at_new_instruction_block_;
 }
diff --git a/crypto/test/file_test.h b/crypto/test/file_test.h
index a164e99..52a2c3f 100644
--- a/crypto/test/file_test.h
+++ b/crypto/test/file_test.h
@@ -185,6 +185,10 @@
   // otherwise.
   bool GetInstruction(std::string *out_value, const std::string &key);
 
+  // GetInstructionBytes behaves like GetBytes, but looks up the corresponding
+  // instruction.
+  bool GetInstructionBytes(std::vector<uint8_t> *out, const std::string &key);
+
   // CurrentTestToString returns the file content parsed for the current test.
   // If the current test was preceded by an instruction block, the return test
   // case is preceded by the instruction block and a single blank line. All
@@ -203,6 +207,7 @@
   void ClearInstructions();
   void OnKeyUsed(const std::string &key);
   void OnInstructionUsed(const std::string &key);
+  bool ConvertToBytes(std::vector<uint8_t> *out, const std::string &value);
 
   std::unique_ptr<LineReader> reader_;
   // line_ is the number of lines read.
diff --git a/crypto/test/wycheproof_util.cc b/crypto/test/wycheproof_util.cc
new file mode 100644
index 0000000..3ff132f
--- /dev/null
+++ b/crypto/test/wycheproof_util.cc
@@ -0,0 +1,91 @@
+/* Copyright (c) 2018, Google Inc.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
+
+#include "./wycheproof_util.h"
+
+#include <openssl/digest.h>
+#include <openssl/ec.h>
+#include <openssl/nid.h>
+
+#include "./file_test.h"
+
+
+bool GetWycheproofResult(FileTest *t, WycheproofResult *out) {
+  std::string result;
+  if (!t->GetAttribute(&result, "result")) {
+    return false;
+  }
+  if (result == "valid") {
+    *out = WycheproofResult::kValid;
+  } else if (result == "invalid") {
+    *out = WycheproofResult::kInvalid;
+  } else if (result == "acceptable") {
+    *out = WycheproofResult::kAcceptable;
+  } else {
+    t->PrintLine("Bad result string '%s'", result.c_str());
+    return false;
+  }
+  return true;
+}
+
+const EVP_MD *GetWycheproofDigest(FileTest *t, const char *key,
+                                  bool instruction) {
+  std::string name;
+  bool ok =
+      instruction ? t->GetInstruction(&name, key) : t->GetAttribute(&name, key);
+  if (!ok) {
+    return nullptr;
+  }
+  if (name == "SHA-1") {
+    return EVP_sha1();
+  }
+  if (name == "SHA-224") {
+    return EVP_sha224();
+  }
+  if (name == "SHA-256") {
+    return EVP_sha256();
+  }
+  if (name == "SHA-384") {
+    return EVP_sha384();
+  }
+  if (name == "SHA-512") {
+    return EVP_sha512();
+  }
+  t->PrintLine("Unknown digest '%s'", name.c_str());
+  return nullptr;
+}
+
+bssl::UniquePtr<EC_GROUP> GetWycheproofCurve(FileTest *t, const char *key,
+                                             bool instruction) {
+  std::string name;
+  bool ok =
+      instruction ? t->GetInstruction(&name, key) : t->GetAttribute(&name, key);
+  if (!ok) {
+    return nullptr;
+  }
+  int nid;
+  if (name == "secp224r1") {
+    nid = NID_secp224r1;
+  } else if (name == "secp256r1") {
+    nid = NID_X9_62_prime256v1;
+  } else if (name == "secp384r1") {
+    nid = NID_secp384r1;
+  } else if (name == "secp521r1") {
+    nid = NID_secp521r1;
+  } else {
+    t->PrintLine("Unknown curve '%s'", name.c_str());
+    return nullptr;
+  }
+  return bssl::UniquePtr<EC_GROUP>(EC_GROUP_new_by_curve_name(nid));
+}
diff --git a/crypto/test/wycheproof_util.h b/crypto/test/wycheproof_util.h
new file mode 100644
index 0000000..cf50b8e
--- /dev/null
+++ b/crypto/test/wycheproof_util.h
@@ -0,0 +1,45 @@
+/* Copyright (c) 2018, Google Inc.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
+
+#ifndef OPENSSL_HEADER_CRYPTO_TEST_WYCHEPROOF_UTIL_H
+#define OPENSSL_HEADER_CRYPTO_TEST_WYCHEPROOF_UTIL_H
+
+#include <openssl/base.h>
+
+
+// This header contains convenience functions for Wycheproof tests.
+
+class FileTest;
+
+enum class WycheproofResult {
+  kValid,
+  kInvalid,
+  kAcceptable,
+};
+
+// GetWycheproofResult sets |*out| to the parsed "result" key of |t|.
+bool GetWycheproofResult(FileTest *t, WycheproofResult *out);
+
+// GetWycheproofDigest returns a digest function using the Wycheproof name, or
+// nullptr on error.
+const EVP_MD *GetWycheproofDigest(FileTest *t, const char *key,
+                                  bool instruction);
+
+// GetWycheproofCurve returns a curve using the Wycheproof name, or nullptr on
+// error.
+bssl::UniquePtr<EC_GROUP> GetWycheproofCurve(FileTest *t, const char *key,
+                                             bool instruction);
+
+
+#endif  // OPENSSL_HEADER_CRYPTO_TEST_WYCHEPROOF_UTIL_H
diff --git a/sources.cmake b/sources.cmake
index d2fea88..6ac7222 100644
--- a/sources.cmake
+++ b/sources.cmake
@@ -59,5 +59,12 @@
   crypto/x509/some_names1.pem
   crypto/x509/some_names2.pem
   crypto/x509/some_names3.pem
+  third_party/wycheproof/ecdsa_secp224r1_sha224_test.txt
+  third_party/wycheproof/ecdsa_secp224r1_sha256_test.txt
+  third_party/wycheproof/ecdsa_secp256r1_sha256_test.txt
+  third_party/wycheproof/ecdsa_secp384r1_sha384_test.txt
+  third_party/wycheproof/ecdsa_secp384r1_sha512_test.txt
+  third_party/wycheproof/ecdsa_secp521r1_sha512_test.txt
+  third_party/wycheproof/rsa_signature_test.txt
   third_party/wycheproof/x25519_test.txt
 )
diff --git a/third_party/wycheproof/convert_wycheproof.go b/third_party/wycheproof/convert_wycheproof.go
index 312a417..73ef166 100644
--- a/third_party/wycheproof/convert_wycheproof.go
+++ b/third_party/wycheproof/convert_wycheproof.go
@@ -224,6 +224,13 @@
 
 func main() {
 	jsonPaths := []string{
+		"ecdsa_secp224r1_sha224_test.json",
+		"ecdsa_secp224r1_sha256_test.json",
+		"ecdsa_secp256r1_sha256_test.json",
+		"ecdsa_secp384r1_sha384_test.json",
+		"ecdsa_secp384r1_sha512_test.json",
+		"ecdsa_secp521r1_sha512_test.json",
+		"rsa_signature_test.json",
 		"x25519_test.json",
 
 		// TODO(davidben): The following tests still need test drivers.
@@ -233,14 +240,7 @@
 		// "chacha20_poly1305_test.json",
 		// "dsa_test.json",
 		// "ecdh_test.json",
-		// "ecdsa_secp224r1_sha224_test.json",
-		// "ecdsa_secp224r1_sha256_test.json",
-		// "ecdsa_secp256r1_sha256_test.json",
-		// "ecdsa_secp384r1_sha384_test.json",
-		// "ecdsa_secp384r1_sha512_test.json",
-		// "ecdsa_secp521r1_sha512_test.json",
 		// "eddsa_test.json",
-		// "rsa_signature_test.json",
 	}
 	for _, jsonPath := range jsonPaths {
 		if !strings.HasSuffix(jsonPath, ".json") {
diff --git a/third_party/wycheproof/ecdsa_secp224r1_sha224_test.txt b/third_party/wycheproof/ecdsa_secp224r1_sha224_test.txt
new file mode 100644
index 0000000..59083d8
--- /dev/null
+++ b/third_party/wycheproof/ecdsa_secp224r1_sha224_test.txt
@@ -0,0 +1,2333 @@
+# Imported from Wycheproof's ecdsa_secp224r1_sha224_test.json.
+# This file is generated by convert_wycheproof.go. Do not edit by hand.
+#
+# Algorithm: ECDSA
+# Generator version: 0.4
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7]
+[key.wy = 0eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]
+[sha = SHA-224]
+
+# signature malleability
+msg = 313233343030
+result = valid
+sig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c2840bf24f6f66be287066b7cbf38788e1b7770b18fd1aa6a26d7c6dc
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 303c021c533d488bd8c4b459bc1bb67c7c96f5fcfc70996660c068d7fca3d605021c31893ff9dd72c79f3a62fdc5d82f7c05b75b8807c3f6830e861697fb
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 303d021c40d10e9cb11ac916d0c388a6feef764e2c22309f93a9f539c73725a2021d00904be66c40a6d256f3e99555c502b933f8625351e9bf7955fe173e75
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 303c021c426f5e9c494c3669a6d0df24f5523d6dcda666a6ab8eb7def60a40bf021c1c342732ba0cc317dd4ffbbd20ce163607f9009a1a67518b0dff0cee
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 303d021d00abf10842ebbfdcd2c3bf18e1acc17c04bcc488e65542af2de38cb712021c5f37ff71604b38b5d66087a36ffdf371b0d4e2d9d4a22c2e9c80fafc
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 303d021c7827f94e5abd228d2bf7bd42bb8cbd1a3529ff26b295f4fbfa159b4c021d00b5a984cbd21ed6d230d22e4688745cfe0da94f9c0bccfb249ae6a4ef
+
+# Legacy:ASN encoding of s misses leading 0
+msg = 313233343030
+result = acceptable
+sig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021cd7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+# Some implementations of ECDSA and DSA incorrectly encode r and s by not
+# including leading zeros in the ASN encoding of integers when necessary. Hence,
+# some implementations (e.g. jdk) allow signatures with incorrect ASN encodings
+# assuming that the signature is otherwise valid.
+
+# valid
+msg = 313233343030
+result = valid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 30813d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 303e02811c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 303e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02811d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 3082003d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 303f0282001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0282001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 303e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 303d021d70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 303d021b70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021e00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3085010000003d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 30420285010000001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3042021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0285010000001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 308901000000000000003d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3046028901000000000000001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3046021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a028901000000000000001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 30847fffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 304102847fffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02847fffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 3084ffffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 30410284ffffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0284ffffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 3085ffffffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 30420285ffffffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 3042021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0285ffffffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 3088ffffffffffffffff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 30450288ffffffffffffffff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 3045021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0288ffffffffffffffff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 30ff021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 303d02ff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a02ff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 303d028070049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a028000d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# removing sequence
+msg = 313233343030
+result = invalid
+sig = 
+
+# appending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000
+
+# prepending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 303f0000021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610500
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 303f021e70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0500021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021f00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610500
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3042498177303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30412500303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 303f303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610004deadbeef
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30422221498177021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 304122202500021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3045221e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0004deadbeef021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3042021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2222498177021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a22212500021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3045021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a221f021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610004deadbeef
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3045aa00bb00cd00303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3043aa02aabb303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 30452224aa00bb00cd00021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 30432222aa02aabb021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3045021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2225aa00bb00cd00021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3043021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2223aa02aabb021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 3080303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 30412280021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2280021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 3080313d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 30412280031c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2280031d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000
+
+# Replacing sequence with NULL
+msg = 313233343030
+result = invalid
+sig = 0500
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2e3d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2f3d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 313d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 323d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = ff3d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303d001c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303d011c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303d031c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303d041c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303dff1c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a001d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a011d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a031d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a041d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480aff1d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# dropping value of sequence
+msg = 313233343030
+result = invalid
+sig = 3000
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 3041300102303c1c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 30412220020170021b049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 3041021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a2221020100021cd7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 303c1c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# indefinite length
+msg = 313233343030
+result = invalid
+sig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000
+
+# indefinite length with truncated delimiter
+msg = 313233343030
+result = invalid
+sig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb3584636100
+
+# indefinite length with additional element
+msg = 313233343030
+result = invalid
+sig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb3584636105000000
+
+# indefinite length with truncated element
+msg = 313233343030
+result = invalid
+sig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361060811220000
+
+# indefinite length with garbage
+msg = 313233343030
+result = invalid
+sig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000fe02beef
+
+# indefinite length with nonempty EOC
+msg = 313233343030
+result = invalid
+sig = 3080021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610002beef
+
+# prepend empty sequence
+msg = 313233343030
+result = invalid
+sig = 303f3000021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# append empty sequence
+msg = 313233343030
+result = invalid
+sig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463613000
+
+# sequence of sequence
+msg = 313233343030
+result = invalid
+sig = 303f303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# truncated sequence
+msg = 313233343030
+result = invalid
+sig = 301e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a
+
+# repeat element in sequence
+msg = 313233343030
+result = invalid
+sig = 305c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# removing integer
+msg = 313233343030
+result = invalid
+sig = 301f021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# appending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 303f021e70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0000021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# appending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021f00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463610000
+
+# prepending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 303f021e000070049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# prepending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 303f021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021f000000d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# Replacing integer with NULL
+msg = 313233343030
+result = invalid
+sig = 30210500021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# Replacing integer with NULL
+msg = 313233343030
+result = invalid
+sig = 3020021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0500
+
+# dropping value of integer
+msg = 313233343030
+result = invalid
+sig = 30210200021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# dropping value of integer
+msg = 313233343030
+result = invalid
+sig = 3020021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a0200
+
+# modify first byte of integer
+msg = 313233343030
+result = invalid
+sig = 303d021c72049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# modify first byte of integer
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d02d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# modify last byte of integer
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a488a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# modify last byte of integer
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463e1
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 303c021b70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a48021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 303c021b049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb358463
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021cd7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# leading ff in integer
+msg = 313233343030
+result = invalid
+sig = 303e021dff70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# leading ff in integer
+msg = 313233343030
+result = invalid
+sig = 303e021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021eff00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# infinity
+msg = 313233343030
+result = invalid
+sig = 3022090180021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# infinity
+msg = 313233343030
+result = invalid
+sig = 3021021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a090180
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303e021d0170049af31f8348673d56cece2b26fc2a84bbe2e2a2e84aeced767247021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303e021dff70049af31f8348673d56cece2b28cee4c34a02667b2df86234be1dcd021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021c8ffb650ce07cb798c2a93131d4d81a785bfd0d5b70f4de586ee5b7f6021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303e021d008ffb650ce07cb798c2a93131d4d7311b3cb5fd9984d2079dcb41e233021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303e021dfe8ffb650ce07cb798c2a93131d4d903d57b441d1d5d17b51312898db9021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303e021d0170049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303e021d008ffb650ce07cb798c2a93131d4d81a785bfd0d5b70f4de586ee5b7f6021d00d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d01d7bf40db0909941d78f9948340c5b4b7a5fa6fca97e8a82091e08d9e
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021cd7bf40db0909941d78f9948340c78771e4888f4e702e5595d9283924
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021dff2840bf24f6f66be287066b7cbf3961eb3abe80737bf48124ca7b9c9f
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021dfe2840bf24f6f66be287066b7cbf3a4b485a059035681757df6e1f7262
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021d01d7bf40db0909941d78f9948340c69e14c5417f8c840b7edb35846361
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303c021c70049af31f8348673d56cece2b27e587a402f2a48f0b21a7911a480a021c2840bf24f6f66be287066b7cbf3961eb3abe80737bf48124ca7b9c9f
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020100020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020100020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201000201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3008020100090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020101020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020101020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201010201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3008020101090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30080201ff090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000010201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000001090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000020201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000002090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Edge case for Shamir multiplication
+msg = 3137353738
+result = valid
+sig = 303c021c326bc06353f7f9c9f77b8f4b55464e8619944e7879402cca572e041a021c3116e1a38e4ab2008eca032fb2d185e5c21a232eaf4507ae56177fd2
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 08bf7e792f7c86877f1fd0552e42d80653b59e3a29e762a22810daac7]
+[key.wy = 0eec615bbad04b58dc2a7956090b8040bb5055325bba0aa8b3a5caa6f]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048bf7e792f7c86877f1fd0552e42d80653b59e3a29e762a22810daac7eec615bbad04b58dc2a7956090b8040bb5055325bba0aa8b3a5caa6f]
+[sha = SHA-224]
+
+# k*G has a large x-coordinate
+msg = 313233343030
+result = valid
+sig = 3030020f00e95c1f470fc1ec22d6baa3a3d5c1021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a
+
+# r too large
+msg = 313233343030
+result = invalid
+sig = 303e021d00fffffffffffffffffffffffffffffffefffffffffffffffffffffffe021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 2646ff36d9697aaaed0d641117f94f60e138bab8e9912b558ae0a818]
+[key.wy = 0ca48e45a33550c1b5bd20a00e4d9df3033c03222e87bd96a8197f2dd]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042646ff36d9697aaaed0d641117f94f60e138bab8e9912b558ae0a818ca48e45a33550c1b5bd20a00e4d9df3033c03222e87bd96a8197f2dd]
+[sha = SHA-224]
+
+# r,s are large
+msg = 313233343030
+result = valid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0ea3ea2873b6fc099bfd779b0a2c23c2c4354e2fec4536f3b8e420988]
+[key.wy = 0f97e1c7646b4eb3de616752f415ab3a6f696d1d674fb4b6732252382]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ea3ea2873b6fc099bfd779b0a2c23c2c4354e2fec4536f3b8e420988f97e1c7646b4eb3de616752f415ab3a6f696d1d674fb4b6732252382]
+[sha = SHA-224]
+
+# r and s^-1 have a large Hamming weight
+msg = 313233343030
+result = valid
+sig = 303c021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021c3d5052691b8dc89debad360466f2a39e82e8ae2aefb77c3c92ad7cd1
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 092ae54e38b4e9c6ae9943193747c4c8acc6c96f422515288e9698a13]
+[key.wy = 0e8f3a759a1a8273c53f4b4b18bfcf78d9bb988adb3b005002dbe434c]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000492ae54e38b4e9c6ae9943193747c4c8acc6c96f422515288e9698a13e8f3a759a1a8273c53f4b4b18bfcf78d9bb988adb3b005002dbe434c]
+[sha = SHA-224]
+
+# r and s^-1 have a large Hamming weight
+msg = 313233343030
+result = valid
+sig = 303d021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021d00bf19ab4d3ebf5a1a49d765909308daa88c2b7be3969db552ea30562b
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b157315cc1aaeae64eb5b38452884195fdfe8a15fb5618284f48afe5]
+[key.wy = 0e1fbbaad729477a45f3752b7f72ad2f9cd7dce4158a8e21b8127e8a7]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b157315cc1aaeae64eb5b38452884195fdfe8a15fb5618284f48afe5e1fbbaad729477a45f3752b7f72ad2f9cd7dce4158a8e21b8127e8a7]
+[sha = SHA-224]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020103020101
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 087d9d964044b5b16801f32de9f3f9066194e8bf80affa3cb0d4ddb1d]
+[key.wy = 0b5eb9b6594e6d1bcacd0fd9d67c408f789dfb95feb79a6e2fb9c4cee]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000487d9d964044b5b16801f32de9f3f9066194e8bf80affa3cb0d4ddb1db5eb9b6594e6d1bcacd0fd9d67c408f789dfb95feb79a6e2fb9c4cee]
+[sha = SHA-224]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020103020103
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 461b435af09ede35e74dac21f9af7b1b9998213039f8785d4a4905f5]
+[key.wy = 18b89bde69de34a482638461d09386e7193ca90ca5b3038e2a3885d1]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004461b435af09ede35e74dac21f9af7b1b9998213039f8785d4a4905f518b89bde69de34a482638461d09386e7193ca90ca5b3038e2a3885d1]
+[sha = SHA-224]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020103020104
+
+# r is larger than n
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a40020104
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 08093af8db04b3dd2e7c3c59bb64a832c2fb8e8e141bae7ba1534950a]
+[key.wy = 10c5e87aecbd1fcdfc36cd18d41b3238b2ac613eb7c9de988d881816]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048093af8db04b3dd2e7c3c59bb64a832c2fb8e8e141bae7ba1534950a10c5e87aecbd1fcdfc36cd18d41b3238b2ac613eb7c9de988d881816]
+[sha = SHA-224]
+
+# s is larger than n
+msg = 313233343030
+result = invalid
+sig = 3022020103021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c6f00c4
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0c6d71f4ba0933f1269f7d6df83fd0c9c67254f101dcc126dc15faa3e]
+[key.wy = 3c45dc9fedc71c9f2b0dd1b12b656241f5e335066f3f925bdbcfe98f]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c6d71f4ba0933f1269f7d6df83fd0c9c67254f101dcc126dc15faa3e3c45dc9fedc71c9f2b0dd1b12b656241f5e335066f3f925bdbcfe98f]
+[sha = SHA-224]
+
+# small r and s^-1
+msg = 313233343030
+result = valid
+sig = 302302020100021d00c993264c993264c993264c99326411d2e55b3214a8d67528812a55ab
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0beb9d8dcba48146b9032688ecea947a231e7d0e6ce17d76b56ed6348]
+[key.wy = 35503f3b4af414870ef03383784b1d846b3e07b8e9fc2d6190a3bfda]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004beb9d8dcba48146b9032688ecea947a231e7d0e6ce17d76b56ed634835503f3b4af414870ef03383784b1d846b3e07b8e9fc2d6190a3bfda]
+[sha = SHA-224]
+
+# smallish r and s^-1
+msg = 313233343030
+result = valid
+sig = 302702072d9b4d347952cc021c3e85d56474b5c55fbe86608442a84b2bf093b7d75f53a47250e1c70c
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 1955ba3f90e7a739471a5d182b594c9747eb49d5356203f3bb8b939c]
+[key.wy = 0807d88ce3a0885bfa5b5b7f6e9beb18285e7130524b6c1498b3269ee]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041955ba3f90e7a739471a5d182b594c9747eb49d5356203f3bb8b939c807d88ce3a0885bfa5b5b7f6e9beb18285e7130524b6c1498b3269ee]
+[sha = SHA-224]
+
+# 100-bit r and small s^-1
+msg = 313233343030
+result = valid
+sig = 302d020d1033e67e37b32b445580bf4efb021c02fd02fd02fd02fd02fd02fd02fd0043a4fd2da317247308c74dc6b8
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 5cb9e5a5071f2b37aa3a5e5f389f54f996b0bc8a132ecb6885318fbf]
+[key.wy = 4ec5f8b93d8bf2a3b64fa7cac316392562c46567963c43a69f7a37fd]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00045cb9e5a5071f2b37aa3a5e5f389f54f996b0bc8a132ecb6885318fbf4ec5f8b93d8bf2a3b64fa7cac316392562c46567963c43a69f7a37fd]
+[sha = SHA-224]
+
+# small r and 100 bit s^-1
+msg = 313233343030
+result = valid
+sig = 302302020100021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 7b34ef8723a4309c0fa8a7ec3a783477652a82892370f6763314fe7b]
+[key.wy = 0dee663853071e35fd3c76f991d7843c5e168ca659b93bd6015518fba]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047b34ef8723a4309c0fa8a7ec3a783477652a82892370f6763314fe7bdee663853071e35fd3c76f991d7843c5e168ca659b93bd6015518fba]
+[sha = SHA-224]
+
+# 100-bit r and s^-1
+msg = 313233343030
+result = valid
+sig = 302e020d062522bbd3ecbe7c39e93e7c24021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 3f26a9c13979cf5d090ea25dc966398022ceec31504abc4b10f7676]
+[key.wy = 7d577dcf47e10e384c6b9a229a455a9fd33e54fe7960b8b0160aef16]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000403f26a9c13979cf5d090ea25dc966398022ceec31504abc4b10f76767d577dcf47e10e384c6b9a229a455a9fd33e54fe7960b8b0160aef16]
+[sha = SHA-224]
+
+# r and s^-1 are close to n
+msg = 313233343030
+result = valid
+sig = 303d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29bd021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b671296dd5f690502e4b1500e4acb4c82d3aa8dfbc5868a643f86a3c]
+[key.wy = 0a46ba8c3a7b823259522291e2416232276cca8503cc8dbf941f1d93d]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b671296dd5f690502e4b1500e4acb4c82d3aa8dfbc5868a643f86a3ca46ba8c3a7b823259522291e2416232276cca8503cc8dbf941f1d93d]
+[sha = SHA-224]
+
+# s == 1
+msg = 313233343030
+result = valid
+sig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020101
+
+# s == 0
+msg = 313233343030
+result = invalid
+sig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020100
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 76e34b57a8c61df59cb0b7921cec6e5422344033f7accb7b3179e682]
+[key.wy = 0cefd0a848309d1decf98a3b9e333691b95c17821cb681137630c02e2]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000476e34b57a8c61df59cb0b7921cec6e5422344033f7accb7b3179e682cefd0a848309d1decf98a3b9e333691b95c17821cb681137630c02e2]
+[sha = SHA-224]
+
+# point at infinity during verify
+msg = 313233343030
+result = invalid
+sig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151e021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b5c09b4851a67371eee7bbf02451e5208c40de61bc1a33df2710b384]
+[key.wy = 0dcce4e5b83c32a800e8de28fa936d582cdcad185e894caac797f1d14]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b5c09b4851a67371eee7bbf02451e5208c40de61bc1a33df2710b384dcce4e5b83c32a800e8de28fa936d582cdcad185e894caac797f1d14]
+[sha = SHA-224]
+
+# u1 == 1
+msg = 313233343030
+result = valid
+sig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c753bb40078934081d7bd113ec49b19ef09d1ba33498690516d4d122c
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0941e283be31300bfd4f6a12b876fd3267352551cc49e9eef73f76538]
+[key.wy = 0c115e5fe3b92f643c6cef1c58f3f8657574d1f64957d4880995cde83]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004941e283be31300bfd4f6a12b876fd3267352551cc49e9eef73f76538c115e5fe3b92f643c6cef1c58f3f8657574d1f64957d4880995cde83]
+[sha = SHA-224]
+
+# u1 == n - 1
+msg = 313233343030
+result = valid
+sig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d008ac44bff876cbf7e2842eec13b63fcb3d6e7360aca5698f3ef0f1811
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 43c9ccd08a80bca18022722b0bdcd790d82a3ef8b65c3f34204bb472]
+[key.wy = 09ee1c1f00598130b2313a3e38a3798d03dac665cff20f36ce8a2024a]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000443c9ccd08a80bca18022722b0bdcd790d82a3ef8b65c3f34204bb4729ee1c1f00598130b2313a3e38a3798d03dac665cff20f36ce8a2024a]
+[sha = SHA-224]
+
+# u2 == 1
+msg = 313233343030
+result = valid
+sig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0d958e418fad1c5ea5c923e6185e03ed5539d3f5f58dfac8bb9f10459]
+[key.wy = 6997e408c97be5fdc037a5c004389d4b97eb1f54635e985853c1f082]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d958e418fad1c5ea5c923e6185e03ed5539d3f5f58dfac8bb9f104596997e408c97be5fdc037a5c004389d4b97eb1f54635e985853c1f082]
+[sha = SHA-224]
+
+# u2 == n - 1
+msg = 313233343030
+result = valid
+sig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d00aaaaaaaaaaaaaaaaaaaaaaaaaaaa0f17407b4ad40d3e1b8392e81c29
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0d629b434c9b5d157bd72e114fd839553f7f0e94600934a0a49e59aa4]
+[key.wy = 713a13c01775e75e2ebae75d9e29d2506184177b7dd0868693873596]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d629b434c9b5d157bd72e114fd839553f7f0e94600934a0a49e59aa4713a13c01775e75e2ebae75d9e29d2506184177b7dd0868693873596]
+[sha = SHA-224]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d1be91557d866ad5f2945b14ec3317bc43c1338fd06af6496201cce2
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 3d2e9bb9a712bf3ad42ac30659fdbda9be9956537f9f37cd05f0ff37]
+[key.wy = 7d5982d6d9266d774942c44d9eb3501051d3b9688610131e7856ef36]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043d2e9bb9a712bf3ad42ac30659fdbda9be9956537f9f37cd05f0ff377d5982d6d9266d774942c44d9eb3501051d3b9688610131e7856ef36]
+[sha = SHA-224]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7ac54a381d9bd3f2698359d6f658b5e4167d15a75b576e82d2efbd37
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0a0be2f10144b9b42b016f1bd9fca30e4c24aae4775596c7cdb07ae60]
+[key.wy = 0d60ff3a70f1541631f6087d3f3b3fe376d2305b50b94821106412479]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a0be2f10144b9b42b016f1bd9fca30e4c24aae4775596c7cdb07ae60d60ff3a70f1541631f6087d3f3b3fe376d2305b50b94821106412479]
+[sha = SHA-224]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c4fbb063e82402e16fe14edda4d7986b0b88344a1f53b0e2684ee7e31
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 4d74397a586c8ac5e326bed03720bde7037e4a07aee7209f70493cab]
+[key.wy = 106778bfd081d17ab6dcb8fd8a454962941c26ecc19cda9fb77719db]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044d74397a586c8ac5e326bed03720bde7037e4a07aee7209f70493cab106778bfd081d17ab6dcb8fd8a454962941c26ecc19cda9fb77719db]
+[sha = SHA-224]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d3be5f50d726f99b8ac44bff876bfe78dd7ae630d227ef0ba87ae39b
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 08c2f149b1738243f81a6f12135395a2ba2718863622e66e33efc241f]
+[key.wy = 5638cf6ae9cfb39578cf3a719702052e5e9e940216c5136dcb6ef085]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048c2f149b1738243f81a6f12135395a2ba2718863622e66e33efc241f5638cf6ae9cfb39578cf3a719702052e5e9e940216c5136dcb6ef085]
+[sha = SHA-224]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00e5f50d726f99b8ac44bff876cbf710e47f9087d1afdfb1dab6d6daf1
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0ad5227e48afaa165e7b97ef8210687556e10643fda8a377aaf4f5bf4]
+[key.wy = 12e86d4ae55f4460aba6a932f307ee78efdc136e9a3df6313100bf4f]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ad5227e48afaa165e7b97ef8210687556e10643fda8a377aaf4f5bf412e86d4ae55f4460aba6a932f307ee78efdc136e9a3df6313100bf4f]
+[sha = SHA-224]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00cbea1ae4df337158897ff0ed97ef0b261e681f654be23a7011518ba5
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 3fb94a3165ecdef43fa27907ed075caf52c25420ac7bc7bb90408992]
+[key.wy = 23c4d7b4775b591ae223dd4da9ceaabd73b9743ddab8b40576e393f]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043fb94a3165ecdef43fa27907ed075caf52c25420ac7bc7bb90408992023c4d7b4775b591ae223dd4da9ceaabd73b9743ddab8b40576e393f]
+[sha = SHA-224]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d726f99b8ac44bff876cbf7e28422aa07ec3cb1d9472bd704f4029f0
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0e45fcf0a7f4dc2a308dc7868251423fbf71a205a9546850a01a732fc]
+[key.wy = 09a73ca4d41175076f2f362b276ecb0ccdb6e0bb30c4a1b35c2e3ed82]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e45fcf0a7f4dc2a308dc7868251423fbf71a205a9546850a01a732fc9a73ca4d41175076f2f362b276ecb0ccdb6e0bb30c4a1b35c2e3ed82]
+[sha = SHA-224]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d009720b755413cca9506b5d27589e58ac4bed856762ba7ae20ab5b43cc
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 3c59e13982fd9c1a45991b1e9d79e939a52a62ca479764f1477e2813]
+[key.wy = 1b004c9bffd7f00c05e3168c625cc93ab7a0f1ba8d6fa26a4d5162cb]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043c59e13982fd9c1a45991b1e9d79e939a52a62ca479764f1477e28131b004c9bffd7f00c05e3168c625cc93ab7a0f1ba8d6fa26a4d5162cb]
+[sha = SHA-224]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c2e416eaa8279952a0d6ba4eb13cbfee69cf7bcae437232fbfa5a5d5b
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0c6b8ff152d7a1b7a99ce3483bdeaaf5bd2ce64dc6b0f89cf3544b87c]
+[key.wy = 53ab6cf9cb510dc1440ab4e412a167f4c69365fcfc97f31d5ba4581]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c6b8ff152d7a1b7a99ce3483bdeaaf5bd2ce64dc6b0f89cf3544b87c053ab6cf9cb510dc1440ab4e412a167f4c69365fcfc97f31d5ba4581]
+[sha = SHA-224]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00c56225ffc3b65fbf142177609db189ab5bd013246f19e11ca5b5a127
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 7c0772fb6553c0ec0dd1f73b5db380764d9f2f7afb4eac1e774dacd5]
+[key.wy = 6e2e5de0db63bf03cf9675eae6d2dfe5424e79ab394951c9b60ad5df]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047c0772fb6553c0ec0dd1f73b5db380764d9f2f7afb4eac1e774dacd56e2e5de0db63bf03cf9675eae6d2dfe5424e79ab394951c9b60ad5df]
+[sha = SHA-224]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00a7dd831f4120170b7f0a76ed26bc4ea9cc9e1a70048c1bb5f0a55437
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 4108e0ccd47cba09fb7ed4d9f3455823780965157861c1bf8f93d34b]
+[key.wy = 46d6fdb71e9e89adaae71376b13fd17644b11eed00d498783da0ba1a]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044108e0ccd47cba09fb7ed4d9f3455823780965157861c1bf8f93d34b46d6fdb71e9e89adaae71376b13fd17644b11eed00d498783da0ba1a]
+[sha = SHA-224]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffffb2364ae85014b149b86c741eb8be
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 2f2da40a1b72f67ba63613a243119c41c7252839cf106e86b5d8e6e3]
+[key.wy = 5a1e0e2fc49b4f316f0c0e7236785749eb34ce923c23aef330af8733]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042f2da40a1b72f67ba63613a243119c41c7252839cf106e86b5d8e6e35a1e0e2fc49b4f316f0c0e7236785749eb34ce923c23aef330af8733]
+[sha = SHA-224]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00855f5b2dc8e46ec428a593f73219cf65dae793e8346e30cc3701309c
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 7dc09710f4f586af05b08f0c9dcd48b1308733c97767fc286d1c7283]
+[key.wy = 4353a704c7950b8f4a11394bc8db06adccf19d8ed95c7f214a173137]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047dc09710f4f586af05b08f0c9dcd48b1308733c97767fc286d1c72834353a704c7950b8f4a11394bc8db06adccf19d8ed95c7f214a173137]
+[sha = SHA-224]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c2db5f61aea817276af2064e104c7a30e32034cb526dd0aacfa56566f
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0dbb439e2c3e9d1822b94ccc7d98c9fcb668e65dd6a759ad2dfdcd328]
+[key.wy = 082663234e6da512d7d7d5fe79156ad0e19ffc62d618e3cf48276106d]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004dbb439e2c3e9d1822b94ccc7d98c9fcb668e65dd6a759ad2dfdcd32882663234e6da512d7d7d5fe79156ad0e19ffc62d618e3cf48276106d]
+[sha = SHA-224]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0084a6c7513e5f48c07fffffffffff8713f3cba1293e4f3e95597fe6bd
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0e012dc20cca5bd2adfaa27f57419596ce09ed0f18a9148e30a0f6ed2]
+[key.wy = 55beca1b5e3e2485ef9537ae48a67b72dbcf6d7b33372023a5c443e8]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e012dc20cca5bd2adfaa27f57419596ce09ed0f18a9148e30a0f6ed255beca1b5e3e2485ef9537ae48a67b72dbcf6d7b33372023a5c443e8]
+[sha = SHA-224]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c6c7513e5f48c07ffffffffffffff9d21fd1b31544cb13ca86a75b25e
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0c510ab34abd4855c54d62407abe6ca090c73ba49aca9de9bf117bca2]
+[key.wy = 42b3b00c272c22681af7c255120fac148ad73c81b47846e4ad2f5627]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c510ab34abd4855c54d62407abe6ca090c73ba49aca9de9bf117bca242b3b00c272c22681af7c255120fac148ad73c81b47846e4ad2f5627]
+[sha = SHA-224]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d8ea27cbe9180fffffffffffffff3a43fa3662a899627950d4eb64bc
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 08a6e167536a47aaa224fec21ce077642efdb97d93ae16b9672279f4]
+[key.wy = 33fb9f1abb25f2c0c3e6008ac857ede4a89ca8d9d08b8996614969ac]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000408a6e167536a47aaa224fec21ce077642efdb97d93ae16b9672279f433fb9f1abb25f2c0c3e6008ac857ede4a89ca8d9d08b8996614969ac]
+[sha = SHA-224]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3e5f48c07fffffffffffffffffffc724968c0ecf9ed783744a7337b3
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 1a83e185fcf30e6c69cf292e497d63cc04e6fd07cb9365a74be3c39c]
+[key.wy = 6b2d56247df49cf94176c4e8efc84ec710cd0d614dd066c16f6ad3e0]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041a83e185fcf30e6c69cf292e497d63cc04e6fd07cb9365a74be3c39c6b2d56247df49cf94176c4e8efc84ec710cd0d614dd066c16f6ad3e0]
+[sha = SHA-224]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00bfffffffffffffffffffffffffff3d87bb44c833bb384d0f224ccdde
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 2d59efd841a44b83fd42e6a2984a53fa93ad242c11678f92202cccfb]
+[key.wy = 095bcaf0b2f6eb0e6d4d83e3260e037d3dc0e48ab6c4141ce6b56cad0]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042d59efd841a44b83fd42e6a2984a53fa93ad242c11678f92202cccfb95bcaf0b2f6eb0e6d4d83e3260e037d3dc0e48ab6c4141ce6b56cad0]
+[sha = SHA-224]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffff646c95d0a029629370d8e83d717f
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 1161c7add6f67f995b93e19eb18bd5e73fd71d6bb10dceef0b792e9c]
+[key.wy = 08c44cef9826b4ed67508c09d07ec857a0ea49ed1a7f1fa2c74cb838]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041161c7add6f67f995b93e19eb18bd5e73fd71d6bb10dceef0b792e9c08c44cef9826b4ed67508c09d07ec857a0ea49ed1a7f1fa2c74cb838]
+[sha = SHA-224]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e1520
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 084dc3d2ebfcf3480713baeff30ad0781bc8c4d06ab6ddd4f7f1045af]
+[key.wy = 7570537c5d71a78b1a041aca0fe35f642824abda8c3ff2e9fcf5c8cb]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000484dc3d2ebfcf3480713baeff30ad0781bc8c4d06ab6ddd4f7f1045af7570537c5d71a78b1a041aca0fe35f642824abda8c3ff2e9fcf5c8cb]
+[sha = SHA-224]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0096dafb0d7540b93b5790327082635cd8895e1e799d5d19f92b594056
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 1767574e645c550ef3d353f76d4428f9616ac288b36378857de33262]
+[key.wy = 09fe09825a57f3a0ec11189f4560272297ab6d5e095401febb60d0dc9]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041767574e645c550ef3d353f76d4428f9616ac288b36378857de332629fe09825a57f3a0ec11189f4560272297ab6d5e095401febb60d0dc9]
+[sha = SHA-224]
+
+# point duplication during verification
+msg = 313233343030
+result = valid
+sig = 303d021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021c1ef359e4bd146f63d8155c5c2523fa3353c9820f84f28150bad3819a
+# Some implementations of ECDSA do not handle duplication and points at infinity
+# correctly. This is a test vector that has been specially crafted to check for
+# such an omission.
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 1767574e645c550ef3d353f76d4428f9616ac288b36378857de33262]
+[key.wy = 601f67da5a80c5f13eee760ba9fd8dd585492a1f6abfe01449f2f238]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041767574e645c550ef3d353f76d4428f9616ac288b36378857de33262601f67da5a80c5f13eee760ba9fd8dd585492a1f6abfe01449f2f238]
+[sha = SHA-224]
+
+# duplication bug
+msg = 313233343030
+result = invalid
+sig = 303d021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021c1ef359e4bd146f63d8155c5c2523fa3353c9820f84f28150bad3819a
+# Some implementations of ECDSA do not handle duplication and points at infinity
+# correctly. This is a test vector that has been specially crafted to check for
+# such an omission.
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0e2ef8c8ccb58eba287d9279b349e7652cca3e7cda188a5f179d77142]
+[key.wy = 0f87594f3664c0faf7b59670e353a370d1d68ad89d6a1e246b4d03bee]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e2ef8c8ccb58eba287d9279b349e7652cca3e7cda188a5f179d77142f87594f3664c0faf7b59670e353a370d1d68ad89d6a1e246b4d03bee]
+[sha = SHA-224]
+
+# comparison with point at infinity 
+msg = 313233343030
+result = invalid
+sig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b8bf3ef9646abfffb84220104ec996a92cef33f9328ec4cb1ea69948]
+[key.wy = 4fea51a0de9e9d801babd42ca0924b36498bc5900fbeb9cbd5ad9c1a]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b8bf3ef9646abfffb84220104ec996a92cef33f9328ec4cb1ea699484fea51a0de9e9d801babd42ca0924b36498bc5900fbeb9cbd5ad9c1a]
+[sha = SHA-224]
+
+# extreme value for k
+msg = 313233343030
+result = valid
+sig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 24819323b7be8ab0910f7f33bd2f7669c44b13f09479965e95287d13]
+[key.wy = 0b0592345beafbfdb8cf3629269bdd817728d5d5cd3c28bc6c6414a70]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000424819323b7be8ab0910f7f33bd2f7669c44b13f09479965e95287d13b0592345beafbfdb8cf3629269bdd817728d5d5cd3c28bc6c6414a70]
+[sha = SHA-224]
+
+# extreme value for k
+msg = 313233343030
+result = valid
+sig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]
+[key.wy = 0bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]
+[sha = SHA-224]
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 303c021c753bb40078934081d7bd113ec49b19ef09d1ba33498690516d4d122c021c249249249249249249249249249227ce201a6b76951f982e7ae89851
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 303d021d008ac44bff876cbf7e2842eec13b63fcb3d6e7360aca5698f3ef0f1811021c249249249249249249249249249227ce201a6b76951f982e7ae89851
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]
+[key.wy = 42c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]
+[sha = SHA-224]
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 303c021c753bb40078934081d7bd113ec49b19ef09d1ba33498690516d4d122c021c249249249249249249249249249227ce201a6b76951f982e7ae89851
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 303d021d008ac44bff876cbf7e2842eec13b63fcb3d6e7360aca5698f3ef0f1811021c249249249249249249249249249227ce201a6b76951f982e7ae89851
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 4c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466]
+[key.wy = 0ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]
+[sha = SHA-224]
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021c2770403d42b7b45e553308d1f6a480640b61cac0ae36665d6f14d34e021d0085506b0404265ededf9a89fc7c9c7a55c16c5b0d781f774de8f46fa1
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021d00dd0d56c27a0dc01ce0aad178f274d47bdf9dac8db1df5edbd3234e9f021c393cb201b9f3306ef587c8461e18617f8c0cb96dfad301fca8c852a5
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303c021c0441d3ea1ccaf7ee9cba39cc90f117edf9183d34e8ec255bbee3af7b021c72787e0e4c55099d0582680e153ed4907d2a950c9421da4b83036091
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303c021c4408ea3b626ab23a391f941f93e1f2998efb4c2dc4ab6ccbf2f79b50021c0fa5ffbafb3943ff0c4e68408247f95343c4832bc01e5cd505685ef3
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021d009f0659f0009e16c6a98e26f7479b7ed4268f28d9bd8806ca54a5d8e7021c43aa3fd3dfc50844e03f4ce9801d3a1023a8c4d0bd67149f437ae3a2
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021d00b2f4f3ca7ce467a8928ee15b2672a30aad1d03f5271e9a0e7a52e233021c3e0f281a9d56fdfac280ac1eb799d3874115e773041d1e722fc36b67
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303e021d00ed63abaa150741427c9810dbaadec1bf43c0ac36968146300c0b080d021d00febd4a3944f0ea30f0e9bb13d553e839b48ef721e598aa03db7638d5
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021c340814eb8a132af8e8d6bc0836c0abcd6411e8d8930cf346c41de9ae021d00c8eefdb53796bcb54c59f3193ef858ebc92cebac9f0bb38c08284b4e
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021d00cc75615f5415f8244fd42b518618b9734e3c5b1399507557f7834789021c7b68afe08887d34f1ce19942e4f3c5d99c20d0e15ba13adc287e5554
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021d00f83bb419a391163c306b3e10c3bb5a029b428d560181c80e279498f3021c317446aa67bac1e52b6069e29e90f6df1737a61229600523e32f4e23
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021d00b68da722bbba7f6a58417bb5d0dd88f40316fc628b0edfcb0f02b062021c5c742e330b6febadf9a12d58ba2a7199629457ef2e9e4cecd2f09f50
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021c5df6b8389e40473ac6cb14330066887779a6aafbec652c9d3f42f4db021d00ce28e7b8f4a4d5263a10c20d615b3dbaad18b58de36625a485d77adb
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021d00edd07a0529340b7e3ad39a37f7f7043cc560f605f2c14d5b6e7c4f63021c03cd4525a02091490b49645464040fac40d8a70ce49042b21f1a1b8e
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021d00d32e7b5ebef67e442f086595e62d7f282c26b5618e50ae386de8efa9021c554e7c860e0e1db0080cd520c7fe745b72c540074fc610dc0e280520
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021d00d1edaf4c0174197bf38b78b53c6ed7d8d3f16ab50379bc9c25e40536021c438bc07b8cfc3b8aa319e9d50153ca4bb6702071bbc01b687d48bd99
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303e021d008bb29b81e2b348ab4f04156269f21e9ed74eada70e505faf8ee8519a021d008b9a30f30ea26c37bfe4f879939ed442523ff8ce0a3ceda97f3314e2
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021c627cf63b5c30c55368d377cee6e8da5ccc265952b36eed5f2a7ccc0b021d008f76f6b9cfec6ad1bbb3e0b27ddadc7c3b35b6fd33a8302a75b0ee55
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303c021c1d6b1e116413eae3d8975144d14bbab1db23dbc2254417973f8871a4021c7dfea6372066fce663a84ced6385ae63a4c5121d3ba6856208603ddf
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021c1e93ab2e3b2249bcc89c326d709ddaa568320cf8598c3ee0d69aa674021d00ee64abd080c4f31311b5c1ff081f3131a1d76e292f23e1f8602a3dff
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303c021c76ab1b4c88eb4985ed345b5e3abf06ddc8c3f34c0d0e1b393a76ce85021c523ce0669a34b629b6e13a9f8b0fa6c5a6514e1267077df420ab3b88
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303c021c01ec1ff15c8a55d697a5424d674753f82f711593828368d2fbb41a17021c20d9089db7baf46b8135e17e01645e732d22d5adb20e3772da740eee
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303c021c5af925948bda1fe510456cf27ce65b6d3ad17dd6d511600fad58aacf021c2eb0a3cf8b5e0b73239eb053a5a78ab8af78397062d06f8dbda2eb17
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303c021c070fa48e5307b660cfa9e66a0ab98959ec3dcc3ac5e1b1dff1064087021c028926a511087943333f6fa336b235792b6f64ee3f5f594a7c3f6d2c
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303d021d00bcfbb22ed79dd2ee8ae602dde144a63f9fa68f8f9b71b5994ac8f17b021c27c9c1494081d99a2708b02196eb9581b0b4147d00f3ae3089cc6d7a
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303d021d00a914df6f841ef05491827d92e55148a5c71c687c89dccbfdfd6eddfc021c7316b41eecbff1dd0fafdeb8b717e3f91aceeb2c22cb25023ee2af0b
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303e021d00a72fc403de3dab1cf179f630940cfd990702969160d7bdf5c47a12a0021d00c2b0a943e45dbd0ffe6a4e31eab8099cd940c02d415041c149f24308
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303d021c23ae9b89bbddbc88815c39e6f5969cce536caf36547b19d286fd868d021d00df9f9b611e22facb95e599bbca556f943739d5110678883c27d89c4d
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303d021c356c7d340cfbd7205d466872524b1585d8659c43532fad657352f420021d00bc54e0b4c6f878e6052058ef4cbadefe3b4299993df773277bc32e5c
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303d021d0086f4ab774e4e5d8705eaeff1f464da1774c177defcf4799656606b85021c3e03ea07272bad191989244af4230c275657c13258b77f9241caf7e6
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303c021c1bde22394310f2f3139a51406c05ef6b553cd72b3520c824eb0ba4e6021c379d85d4a88357b77fc418c1e4a2525e964415605b7a5ca5018c7662
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303c021c3e46e9ba4dc089ff30fa8c0209c31b11ff49dbeec090f9f53c000c75021c6f2e3b36369416602bca83206809ed898fcf158a56c25a5474143f68
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303d021c6464668eeb6f693262fa4449dfffa86d346a2d11521d196214158666021d009ba2b14539efc3c884515e5bcf794c27a00ccbff01297a45dc444693
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303c021c50b504b81612583ebecc4317a24ea4f7527d246ae1bee6c0157452f8021c0df691ff8b33d71c8b96bd246328ebd3a2f91d2be2ade9a7c2643cbf
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303d021d00e14a319fd627669f24ce1a51f7ec2333da3b2c3de62c3aaf2b02e76b021c7845a14342c67c2f1ccd0a8a3a34ca0f382386964cd4c07360dd7bf8
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303b021c098c7a8a3b6c5659e7a013efbd8e907935d0606b6c2a868455abf489021b7730907f494e81ddceb19215fa7e9398e7aa9144ac74d9fbf8c519
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303e021d009e5db35801390400d1c6d496ba9d9ff5fddb688bdad6c8144d12e3b4021d00f8a618180b6b76c9bd837a67547a826c3cf270be1f2f50af690b8285
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303e021d00f1b4f951e32e2ae47b776cdb87654cb18b74106d6b81f29e4d98f3cc021d00f1ea4b08a530d55982eb4a895d28f75fc2b831d7e46fd835bf8d8a33
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303c021c50e80890e6b9b25b1aae3f8ddbc48026f57ad0f117694b0377bf4b9e021c7e804b9aaeb1df008cb3ac44f54d7d9ff159ca37d7f869a642c65eb6
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303e021d00bdd75697eeb16df9b85ba07a14bcd200997a64bf1ec12e6e24bbe81b021d00d6f8396d399baa426c70d9cf00f1e392281755bff240752ca544e433
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303d021c36766ad3607b8b63a4d7ce4132b46c90c8b99f44afb589720efffe4d021d00ded14db5945f5f84ba235f8eb2ada604ae8a9cf92527f692bf066629
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf]
+[key.wy = 08a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]
+[sha = SHA-224]
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 303d021c77b38da37079d27b837613ac3e8248d66eabd5d637076c8e62c7991e021d00d40cd9f81efc52db4429c0c1af7c1d8a22b6c7babbe7fbd8b5b3f02f
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 303d021d008c03b32c166c0c8b99d7f876acd109447efb13f6b82945e78d51a269021c657568f1a0a8bd7df5ffa43097ebb2b64435c8e3335bcaafc63f9ed5
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 303d021d00d199a375253d30f1d2b4493542e9934f9f1f8b0680117679f5bc4ad2021c11419ddbf02c8ad5f518f8dac33f86a85e777af51a034132e2767a6d
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f1]
+[key.wy = 73d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]
+[sha = SHA-224]
+
+# y-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 303d021d008ff82699e2e82870be9cfdd8a408bb34f8f38a83a4ac8370f18f2bc8021c7e5008fab6a0d4159200077ef9918dad6592cd8359838852c636ac05
+
+# y-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 303d021c3f3b60b529ae0f950c517264adf2e481616bc47416742d5103589660021d00f731ebe98e58384b3a64b4696d4cc9619828ad51d7c39980749709a6
+
+# y-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 303d021d00dc11ffdc6b78754a335f168c4033916a2158d125a3f4fed9dc736661021c6dd84364717d9f4b0790f2b282f9245ecb316874eac025600397f109
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 26e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000]
+[key.wy = 0eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]
+[sha = SHA-224]
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 303e021d00a59b25b786d55f26b04dfe90ee02a6bde64ed6e431dc9fbdc3ab360e021d00fc14b5ad20f39da9900e35437936c8626fccf6632e7a3d9e587e3311
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 303d021c2eda1f96c1a6e3ad8a3321ce82cbb13a5b935b501abf6c06f7fd2b3f021d00e81050c3e5f53a3c7b9d0bdb9ed92a326dfeac44791ba1abe4d6e973
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 303d021c60f5e093fda08fc14ac99d820a18ad1370c58150bea0aca24fc6db9d021d00c2220a0ebbf4896e68fdb5bd824f88291c1c862b916f9c4af87f8f5f
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff]
+[key.wy = 41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]
+[sha = SHA-224]
+
+# x-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 303d021c2ead37846a5e36a490b75140bdc7b636c6e9f6d8f980f6fadb08f769021d00e1fe130ae1798c196d7be62c7a5ddb3168cf4b8d48b6b6b4dc94ab3b
+
+# x-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 303d021d00a8a4c9416d72c860573d073281cb08c86ad65313f06b15a329e82eb2021c5a6edd2f0816b7263d915d72c67d50a854e3abee5cde1b679a0cef09
+
+# x-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 303c021c576bb86c517bfecdc930a4c8501725548d425afbb96d93f5c1e2a0e1021c77248c5ecd620c431438c50e6bee6858091b54a87f8548ae35c21027
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]
+[key.wy = 762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]
+[sha = SHA-224]
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303d021c34e41cba628fd8787ba1a528f6015d2cae015c1c9a866e08a7133801021d0083d422ffdd99cc3c6d7096ef927f0b11988d1824e6e93840ff666ccd
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303c021c2558a42e79689244bccd5e855f6a1e42b4ff726873f30b532b89ef53021c07f9bd947785187175d848b6e2d79f7ab3bbc1087b42590b0cfb256a
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303e021d00d5fe7dd5fb4fd1ea5ce66c0824f53f96ce47fd9b6c63b4d57827fd17021d00bce5bc3af705afaacb81bfa6d552d6198962fece9fba41546c602ddc
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]
+[key.wy = 0ffffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]
+[sha = SHA-224]
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303d021d008c1da2f07cdcbce4db8067b863468cfc728df52980229028689e57b6021c32175c1390a4b2cab6359bab9f854957d4fd7976c9c6d920c871c051
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303e021d00e46d4f11b86b5a12f6fe781d1f934ef2b30e78f6f9cc86a9996e20c0021d008351974b965526034a0ccef0e7d3bc13d91798151488c91533143f7b
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303c021c305ccf0b5d0cf33dc745bb7c7964c233f6cfd8892a1c1ae9f50b2f3f021c785f6e85f5e652587c6e15d0c45c427278cf65bb1429a57d8826ca39
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0f7e4713d085112112c37cdf4601ff688da796016b71a727a]
+[key.wy = 0de5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]
+[sha = SHA-224]
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303d021c0e4fde0ac8d37536505f7b8bdc2d22c5c334b064ac5ed27bea9c179e021d00c4d6bf829dd547000d6f70b9ad9e9c1503bebcf1d95c2608942ca19d
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303e021d00818afcaf491da9d08a7cc29318d5e85dce568dcca7018059f44e9b7e021d00bf32a233d5fc6ed8e2d9270b1bdad4bbd2a0f2c293d289bd91ffbcf3
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303c021c0e05ed675c673e5e70a4fdd5a47b114c5d542d4f6d7a367597d713ea021c26d70d65c48430373363987810bdcc556e02718eab214403ae008db4
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f725]
+[key.wy = 086c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]
+[sha = SHA-224]
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303e021d00ab7a19eecf63e9668278963b65236b2768e57cae0e268cb86a0ddda1021d008829f5d3a3394f9467ba62e66ef1768e3e54f93ed23ec962bc443c2e
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303d021c17111a77cf79bead456ed86a7d8a935531440281eb8b15a885e341c0021d00fdc3958d04f037b1d4bb2cee307b5201be062e0d4e089df1c1917668
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303d021d00acafa1e33345eeba0c338c2204b4cd8ba21de7ec3e1213317038e968021c0b42fbbaeda98a35da0de4c79546f3a0f7d9dec275d2cd671f93c874
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]
+[key.wy = 0e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]
+[sha = SHA-224]
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303d021d00a3fe71a2a56f554e98fd10a8098c2a543c98bc6b3602ef39f2412308021c5d1d68f9a870ef2bc87484b3386549fae95811ab72bc0e3a514720da
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303d021c132f7625704756c13f2bfa449e60952f836f4904660b5b1da07e5a9f021d0082b4abafc40e8fd19b0c967f02fff152737ce01153658df445c4d7b7
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303e021d00f36a8347c6fe0397a1161a364cbc4bdfb4d8b7894cbaa6edc55a4ff7021d009c9c90515da5e602d62e99f48eac414e913dd0b7cbf680c1a5399952
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]
+[key.wy = 0fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]
+[sha = SHA-224]
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303d021c2125ecc08e52e9e39e590117de2145bd879626cb87180e52e9d3ce03021d008f7e838d0e8fb80005fe3c72fca1b7cc08ed321a34487896b0c90b04
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303e021d00e485747ac2f3d045e010cdadab4fd5dbd5556c0008445fb73e07cd90021d00e2133a7906aeac504852e09e6d057f29ab21368cfc4e2394be565e68
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303d021d00a4de0d931ddab90e667ebc0ad800ce49e971c60543abdc46cefff926021c550816170bd87593b9fb8ad5ed9ab4ddb12403ff6fe032252833bac4
+
diff --git a/third_party/wycheproof/ecdsa_secp224r1_sha256_test.txt b/third_party/wycheproof/ecdsa_secp224r1_sha256_test.txt
new file mode 100644
index 0000000..2868b6c
--- /dev/null
+++ b/third_party/wycheproof/ecdsa_secp224r1_sha256_test.txt
@@ -0,0 +1,2324 @@
+# Imported from Wycheproof's ecdsa_secp224r1_sha256_test.json.
+# This file is generated by convert_wycheproof.go. Do not edit by hand.
+#
+# Algorithm: ECDSA
+# Generator version: 0.4
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7]
+[key.wy = 0eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004eada93be10b2449e1e8bb58305d52008013c57107c1a20a317a6cba7eca672340c03d1d2e09663286691df55069fa25490c9dd9f9c0bb2b5]
+[sha = SHA-256]
+
+# signature malleability
+msg = 313233343030
+result = valid
+sig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d009e82950ebe102f37ff3645cc7d3c1bab8864e5e03a5011eeba8150bc
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 303d021c684caf7bdbcd579b1d8a17591e98630040e1bda6d6d5780af206a0b9021d00c006293694f152d326ba30011d95554d09189c7735b26068c5101c0d
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 303e021d008f59422c1b4482269602cd7486aee41817a36c64d232fc411f3a1d09021d00d61e33aaaa743e2d10f55c302318c41d2236b2478a4f85fca09319fd
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 303e021d008c451662a222b7ed1d4e55744761bc47b8015e570e9b5390b56adf4e021d00acbe66d485b3c9cba373401f8e37fb4ff3c12bc6302cd7f8a6a65ebb
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 303e021d00d269d4150eb8ba7d590f35c6ad28e015d2f8cc4474c3b28d6d2c4af8021d00add458ae2267a4b3aba251104cc7b5d82c9aed339f4856b2e8397096
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 303e021d00df70013e990003e109e47b31e517715cd40628fe461c690b5447abff021d00838b89938718900c0b572545d4c556f9c00e46b0da22ae3840cb03e6
+
+# valid
+msg = 313233343030
+result = valid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 30813c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 303d02811c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402811c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 3082003c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 303e0282001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040282001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 303c021d3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 303c021b3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021b617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3085010000003c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 30410285010000001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3041021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040285010000001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 308901000000000000003c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3045028901000000000000001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3045021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04028901000000000000001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 30847fffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 304002847fffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402847fffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 3084ffffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 30400284ffffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040284ffffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 3085ffffffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 30410285ffffffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 3041021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040285ffffffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 3088ffffffffffffffff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 30440288ffffffffffffffff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 3044021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040288ffffffffffffffff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 30ff021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 303c02ff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0402ff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 303c02803ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040280617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# removing sequence
+msg = 313233343030
+result = invalid
+sig = 
+
+# appending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000
+
+# prepending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 303e0000021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810500
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 303e021e3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040500021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021e617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810500
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3041498177303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30402500303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 303e303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810004deadbeef
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30412221498177021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 304022202500021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3044221e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040004deadbeef021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3041021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042221498177021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a0422202500021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3044021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04221e021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810004deadbeef
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3044aa00bb00cd00303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3042aa02aabb303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 30442224aa00bb00cd00021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 30422222aa02aabb021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3044021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042224aa00bb00cd00021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 3042021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042222aa02aabb021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 3080303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 30402280021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042280021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 3080313c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 30402280031c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042280031c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000
+
+# Replacing sequence with NULL
+msg = 313233343030
+result = invalid
+sig = 0500
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2e3c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2f3c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 313c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 323c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = ff3c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303c001c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303c011c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303c031c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303c041c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303cff1c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04001c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04011c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04031c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04041c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04ff1c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# dropping value of sequence
+msg = 313233343030
+result = invalid
+sig = 3000
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 3040300102303b1c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 3040222002013a021bde5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 3040021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a042220020161021b7d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 303b1c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# indefinite length
+msg = 313233343030
+result = invalid
+sig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000
+
+# indefinite length with truncated delimiter
+msg = 313233343030
+result = invalid
+sig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad98100
+
+# indefinite length with additional element
+msg = 313233343030
+result = invalid
+sig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad98105000000
+
+# indefinite length with truncated element
+msg = 313233343030
+result = invalid
+sig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981060811220000
+
+# indefinite length with garbage
+msg = 313233343030
+result = invalid
+sig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000fe02beef
+
+# indefinite length with nonempty EOC
+msg = 313233343030
+result = invalid
+sig = 3080021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810002beef
+
+# prepend empty sequence
+msg = 313233343030
+result = invalid
+sig = 303e3000021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# append empty sequence
+msg = 313233343030
+result = invalid
+sig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9813000
+
+# sequence of sequence
+msg = 313233343030
+result = invalid
+sig = 303e303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# truncated sequence
+msg = 313233343030
+result = invalid
+sig = 301e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04
+
+# repeat element in sequence
+msg = 313233343030
+result = invalid
+sig = 305a021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# removing integer
+msg = 313233343030
+result = invalid
+sig = 301e021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# appending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 303e021e3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040000021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# appending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021e617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9810000
+
+# prepending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 303e021e00003ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# prepending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 303e021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021e0000617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# Replacing integer with NULL
+msg = 313233343030
+result = invalid
+sig = 30200500021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# Replacing integer with NULL
+msg = 313233343030
+result = invalid
+sig = 3020021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040500
+
+# dropping value of integer
+msg = 313233343030
+result = invalid
+sig = 30200200021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# dropping value of integer
+msg = 313233343030
+result = invalid
+sig = 3020021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a040200
+
+# modify first byte of integer
+msg = 313233343030
+result = invalid
+sig = 303c021c38de5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# modify first byte of integer
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c637d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# modify last byte of integer
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a84021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# modify last byte of integer
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad901
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 303b021b3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 303b021bde5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021b617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad9
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 303b021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021b7d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# leading ff in integer
+msg = 313233343030
+result = invalid
+sig = 303d021dff3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# leading ff in integer
+msg = 313233343030
+result = invalid
+sig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021dff617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# infinity
+msg = 313233343030
+result = invalid
+sig = 3021090180021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# infinity
+msg = 313233343030
+result = invalid
+sig = 3021021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04090180
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021d013ade5c0624a5677ed7b6450d941fd283098d8a004fc718e2e7e6b441021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021dff3ade5c0624a5677ed7b6450d9421a53d481ba984280cc6582f2e5fc7021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303c021cc521a3f9db5a98812849baf26bdf441fd72b663dc4161062747575fc021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021d00c521a3f9db5a98812849baf26bde5ac2b7e4567bd7f339a7d0d1a039021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021dfec521a3f9db5a98812849baf26be02d7cf67275ffb038e71d18194bbf021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021d013ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021d00c521a3f9db5a98812849baf26bdf441fd72b663dc4161062747575fc021c617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d01617d6af141efd0c800c9ba3382c2119a390cfa9bed6a409bfe3703be
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021dff617d6af141efd0c800c9ba3382c3e454779b1a1fc5afee11457eaf44
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303c021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021c9e82950ebe102f37ff3645cc7d3d0508a7abf5a22672e8a95e25267f
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021dfe9e82950ebe102f37ff3645cc7d3dee65c6f305641295bf6401c8fc42
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d01617d6af141efd0c800c9ba3382c2faf758540a5dd98d1756a1dad981
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 303d021c3ade5c0624a5677ed7b6450d9420bbe028d499c23be9ef9d8b8a8a04021d009e82950ebe102f37ff3645cc7d3d0508a7abf5a22672e8a95e25267f
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020100020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020100020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201000201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020100021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020100021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3008020100090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020101020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020101020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201010201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020101021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022020101021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3008020101090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30220201ff021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30220201ff021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30080201ff090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3024021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000001020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000010201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000001021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000001090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffffffff000000000000000000000002020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffffffff0000000000000000000000020201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3e
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000001
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 303e021d00ffffffffffffffffffffffffffffffff000000000000000000000002021d00ffffffffffffffffffffffffffffffff000000000000000000000002
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3024021d00ffffffffffffffffffffffffffffffff000000000000000000000002090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Edge case for Shamir multiplication
+msg = 3839313737
+result = valid
+sig = 303d021c326bc06353f7f9c9f77b8f4b55464e8619944e7879402cca572e041a021d0096ad91f02a3bc40c118abd416ed5c6203ed7ced0330860d7b88c10ab
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 093b4c28f032d00f80e77491edc158359909ee9e30a7327b74219e5e2]
+[key.wy = 482c19ae35cb28afc9b95ca1ed7ad91c812d5fcceb4beddbf1a16d92]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000493b4c28f032d00f80e77491edc158359909ee9e30a7327b74219e5e2482c19ae35cb28afc9b95ca1ed7ad91c812d5fcceb4beddbf1a16d92]
+[sha = SHA-256]
+
+# k*G has a large x-coordinate
+msg = 313233343030
+result = valid
+sig = 3030020f00e95c1f470fc1ec22d6baa3a3d5c1021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a
+
+# r too large
+msg = 313233343030
+result = invalid
+sig = 303e021d00fffffffffffffffffffffffffffffffefffffffffffffffffffffffe021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3a
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0da927f4ba88b639bf5334221d2f54d8ef9ccc1a1125fad18c7bfb789]
+[key.wy = 0ac51ae53de6d834a9db3947b8dd4c6ac2b084b85496bfa72d86b6948]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004da927f4ba88b639bf5334221d2f54d8ef9ccc1a1125fad18c7bfb789ac51ae53de6d834a9db3947b8dd4c6ac2b084b85496bfa72d86b6948]
+[sha = SHA-256]
+
+# r,s are large
+msg = 313233343030
+result = valid
+sig = 303e021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3c021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3b
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 20888e1c0f5694c4c0363b36482beb6e1e6649b3d3b26f127febb6fc]
+[key.wy = 0de00c2f3d8e4a7e8a0bafd417c96d3e81c975946a2f3686aa39d35f1]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000420888e1c0f5694c4c0363b36482beb6e1e6649b3d3b26f127febb6fcde00c2f3d8e4a7e8a0bafd417c96d3e81c975946a2f3686aa39d35f1]
+[sha = SHA-256]
+
+# r and s^-1 have a large Hamming weight
+msg = 313233343030
+result = valid
+sig = 303c021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021c3d5052691b8dc89debad360466f2a39e82e8ae2aefb77c3c92ad7cd1
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 09545c86f032c5df255a4490bb0b83eca201181792ad74246874db229]
+[key.wy = 405264c283063327b70f4c2be5ab4d2e9407b866e121d6145d124c04]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00049545c86f032c5df255a4490bb0b83eca201181792ad74246874db229405264c283063327b70f4c2be5ab4d2e9407b866e121d6145d124c04]
+[sha = SHA-256]
+
+# r and s^-1 have a large Hamming weight
+msg = 313233343030
+result = valid
+sig = 303d021c7fffffffffffffffffffffffffffffffffffffffffffffffffffffff021d00bf19ab4d3ebf5a1a49d765909308daa88c2b7be3969db552ea30562b
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 579d53f39d5109bd440e3e3e7efd603740963348ff9c72c03b0fe6b8]
+[key.wy = 0df02f133ecd60b072a0812adc752708f2be9d8c9ad5953d8c7bf3965]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004579d53f39d5109bd440e3e3e7efd603740963348ff9c72c03b0fe6b8df02f133ecd60b072a0812adc752708f2be9d8c9ad5953d8c7bf3965]
+[sha = SHA-256]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020103020101
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0d2a14c8106d89f3536faebdafcd4680f65ab4bf2243164ca1464b628]
+[key.wy = 0acaf2bee52e6231d3c980f52f8e189a41c3e3a05e591195ec864217a]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d2a14c8106d89f3536faebdafcd4680f65ab4bf2243164ca1464b628acaf2bee52e6231d3c980f52f8e189a41c3e3a05e591195ec864217a]
+[sha = SHA-256]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020103020103
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0e892479153ad13ea5ca45d4c323ebf1fc3cd0cdf787c34306a3f79a4]
+[key.wy = 326ca9645f2b517608dc1f08b7a84cfc61e6ff68d14f27d2043c7ef5]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e892479153ad13ea5ca45d4c323ebf1fc3cd0cdf787c34306a3f79a4326ca9645f2b517608dc1f08b7a84cfc61e6ff68d14f27d2043c7ef5]
+[sha = SHA-256]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020103020104
+
+# r is larger than n
+msg = 313233343030
+result = invalid
+sig = 3022021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a40020104
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 2b0eac35c0b294f6d435dcaffa8633b0123005465c30080adbcc103a]
+[key.wy = 0d465a63bfb71d4aee09328697fe1088753646d8369b8dc103217c219]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042b0eac35c0b294f6d435dcaffa8633b0123005465c30080adbcc103ad465a63bfb71d4aee09328697fe1088753646d8369b8dc103217c219]
+[sha = SHA-256]
+
+# s is larger than n
+msg = 313233343030
+result = invalid
+sig = 3022020103021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c6f00c4
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0d156e01e33becede8f4fb4ae9521d751e7f8eb795ca00857db2fd7af]
+[key.wy = 0d73a450ec60e6a9218a8431870687e0968944f6dc5ffeb30e4693b7c]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d156e01e33becede8f4fb4ae9521d751e7f8eb795ca00857db2fd7afd73a450ec60e6a9218a8431870687e0968944f6dc5ffeb30e4693b7c]
+[sha = SHA-256]
+
+# small r and s^-1
+msg = 313233343030
+result = valid
+sig = 302302020100021d00c993264c993264c993264c99326411d2e55b3214a8d67528812a55ab
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0f293a8a2b4aff0bed95c663b364afe69778d38dd7e7a304f7d3c74e6]
+[key.wy = 17dfd09e7803c4439a6c075cb579cde652d03f7559ff58846312fa4c]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f293a8a2b4aff0bed95c663b364afe69778d38dd7e7a304f7d3c74e617dfd09e7803c4439a6c075cb579cde652d03f7559ff58846312fa4c]
+[sha = SHA-256]
+
+# smallish r and s^-1
+msg = 313233343030
+result = valid
+sig = 302702072d9b4d347952cc021c3e85d56474b5c55fbe86608442a84b2bf093b7d75f53a47250e1c70c
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0d4ddf003b298cbaa7d2edc584b28b474a76162ed4b5b0f6222c54317]
+[key.wy = 0d4e4fe030f178fb4aa4a6d7f61265ecd7ef13c313606b8d341a8b954]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004d4ddf003b298cbaa7d2edc584b28b474a76162ed4b5b0f6222c54317d4e4fe030f178fb4aa4a6d7f61265ecd7ef13c313606b8d341a8b954]
+[sha = SHA-256]
+
+# 100-bit r and small s^-1
+msg = 313233343030
+result = valid
+sig = 302d020d1033e67e37b32b445580bf4efb021c02fd02fd02fd02fd02fd02fd02fd0043a4fd2da317247308c74dc6b8
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 08a5bf0028f1e3eb6841dee7b8f873f68b0c560e592e3182074f51ce8]
+[key.wy = 09668c32224b65b6849713d35e3acf1786862e65b5a664b47a098caa0]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048a5bf0028f1e3eb6841dee7b8f873f68b0c560e592e3182074f51ce89668c32224b65b6849713d35e3acf1786862e65b5a664b47a098caa0]
+[sha = SHA-256]
+
+# small r and 100 bit s^-1
+msg = 313233343030
+result = valid
+sig = 302302020100021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b53e569b18e9361567e5713ee69ecbe7949911b0257546a24c3dd137]
+[key.wy = 0f29a83334cff1c44d8c0c33b6dadb8568c024fa1fbb694cd9e705f5a]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b53e569b18e9361567e5713ee69ecbe7949911b0257546a24c3dd137f29a83334cff1c44d8c0c33b6dadb8568c024fa1fbb694cd9e705f5a]
+[sha = SHA-256]
+
+# 100-bit r and s^-1
+msg = 313233343030
+result = valid
+sig = 302e020d062522bbd3ecbe7c39e93e7c24021d00d05434abacd859ed74185e75b751c6d9f60c7921dacfbb8e19cdba8e
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 77f3ebf52725c809acbb19adf093126a2a3a065ca654c22099c97812]
+[key.wy = 09f1948d23c5158ec2adff455eb2fedf1075d4ec22d660977424a10f7]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000477f3ebf52725c809acbb19adf093126a2a3a065ca654c22099c978129f1948d23c5158ec2adff455eb2fedf1075d4ec22d660977424a10f7]
+[sha = SHA-256]
+
+# r and s^-1 are close to n
+msg = 313233343030
+result = valid
+sig = 303d021d00ffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c29bd021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0a7f7b99e5cdc6fec8928eff773ccdf3b68b19d43cdb41809e19c60f3]
+[key.wy = 1736b7a0c12a9c2d706671912915142b3e05c89ef3ad497bd6c34699]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a7f7b99e5cdc6fec8928eff773ccdf3b68b19d43cdb41809e19c60f31736b7a0c12a9c2d706671912915142b3e05c89ef3ad497bd6c34699]
+[sha = SHA-256]
+
+# s == 1
+msg = 313233343030
+result = valid
+sig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020101
+
+# s == 0
+msg = 313233343030
+result = invalid
+sig = 3021021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14020100
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 09cf00010b4ad86636f6cc70fb58c3b995c0d12e46fc58e24b0d28f69]
+[key.wy = 21c8a8a320cc450ccb15ebd71617f4ed25db4d3413fbdf157d31dbb6]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00049cf00010b4ad86636f6cc70fb58c3b995c0d12e46fc58e24b0d28f6921c8a8a320cc450ccb15ebd71617f4ed25db4d3413fbdf157d31dbb6]
+[sha = SHA-256]
+
+# point at infinity during verify
+msg = 313233343030
+result = invalid
+sig = 303c021c7fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e151e021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 10518eb7a926b5f7b65be801ec9b2abf76adce25c6152e452a3512c8]
+[key.wy = 3f322b9ab57ea8352ad29beb99ef356b713432fcc4aef31f903045d9]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000410518eb7a926b5f7b65be801ec9b2abf76adce25c6152e452a3512c83f322b9ab57ea8352ad29beb99ef356b713432fcc4aef31f903045d9]
+[sha = SHA-256]
+
+# u1 == 1
+msg = 313233343030
+result = valid
+sig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d00bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419fe
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 08a5dfedc9dd1cb9a439c88b3dd472b2e66173f7866855db6bb6c12fd]
+[key.wy = 3badfbb8a4c6fd80e66510957927c78a2aa02ecef62816d0356b49c3]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048a5dfedc9dd1cb9a439c88b3dd472b2e66173f7866855db6bb6c12fd3badfbb8a4c6fd80e66510957927c78a2aa02ecef62816d0356b49c3]
+[sha = SHA-256]
+
+# u1 == n - 1
+msg = 313233343030
+result = valid
+sig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c44a5ad0bd0636d9e12bc9e0a6bdc74bfe082087ae8b61cbd54b8103f
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 083a59fc3df295e84c290b32d0b550a06f99456fc2298e4a68c4f2bff]
+[key.wy = 1b34f483db30db3a51d8288732c107d8b1a858cd54c3936e1b5c11a4]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000483a59fc3df295e84c290b32d0b550a06f99456fc2298e4a68c4f2bff1b34f483db30db3a51d8288732c107d8b1a858cd54c3936e1b5c11a4]
+[sha = SHA-256]
+
+# u2 == 1
+msg = 313233343030
+result = valid
+sig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 58bada578a205d6e170722c8ed6c7715011fe33d7eba869ed1d448a7]
+[key.wy = 5be4730c1d2d2ef881e02f028a241b7d7d3b0d0b4a9c0565fcb49977]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000458bada578a205d6e170722c8ed6c7715011fe33d7eba869ed1d448a75be4730c1d2d2ef881e02f028a241b7d7d3b0d0b4a9c0565fcb49977]
+[sha = SHA-256]
+
+# u2 == n - 1
+msg = 313233343030
+result = valid
+sig = 303d021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021d00aaaaaaaaaaaaaaaaaaaaaaaaaaaa0f17407b4ad40d3e1b8392e81c29
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 7fcc799b919fe9789ce01dd9202731cb7d815158bc6cb8468760247c]
+[key.wy = 0f9d2957e0dd5e4c40124bd5e0dd1be41c038fce2cd1dc814e0af37d]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00047fcc799b919fe9789ce01dd9202731cb7d815158bc6cb8468760247c0f9d2957e0dd5e4c40124bd5e0dd1be41c038fce2cd1dc814e0af37d]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0093c8c651653430cb4f1675fc86b5e82ca04ff2ab1501674476aac169
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 3ddd68f69d0bfd47ad19370fa3dc72eb258268c2b5f3768852151674]
+[key.wy = 0fbe0e155d94d2373a01a5e70f1a105259e7b8b1d2fdf4dba3cf4c780]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043ddd68f69d0bfd47ad19370fa3dc72eb258268c2b5f3768852151674fbe0e155d94d2373a01a5e70f1a105259e7b8b1d2fdf4dba3cf4c780]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d009df50acc33b3625a2d5940dd13dbb97d1f7dd56afff8b7de7545127c
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 1cb1f564c29ebf60a342b3bc33c8945cb279c6c1a012255c874e1c37]
+[key.wy = 0b75191ab3b2bb730914ebfa14080410970b71eaf4fe01e2d48be9891]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00041cb1f564c29ebf60a342b3bc33c8945cb279c6c1a012255c874e1c37b75191ab3b2bb730914ebfa14080410970b71eaf4fe01e2d48be9891]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00dce8c223f235699d1f5d2dcde4809d013390b59129f783239525c08f
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 44e309eb686e7af7f1e2cc17fd56542b38910b3b7908ea54fb038d36]
+[key.wy = 477e829d4c8332e5b29f344ad27a21c18dab24a31ce7985b63a21304]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000444e309eb686e7af7f1e2cc17fd56542b38910b3b7908ea54fb038d36477e829d4c8332e5b29f344ad27a21c18dab24a31ce7985b63a21304]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c074aae944ee7a7d544a5ad0bd06366f872d2250ba3018a63d2a7f2e6
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0c728064542cb5142f5eefe638124dcd7a1ad0b3555842a47dd5108e1]
+[key.wy = 10129dd878ebd47313276cec86f521ea9585cd105b3dc421141993b8]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c728064542cb5142f5eefe638124dcd7a1ad0b3555842a47dd5108e110129dd878ebd47313276cec86f521ea9585cd105b3dc421141993b8]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00aae944ee7a7d544a5ad0bd0636d9455f4e83de0f186f89bca56b3c5c
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0c46c1ad3d3d0df8e9c0f525c21ce8d81ef9d66297f442d6309966722]
+[key.wy = 0cfa2253aa31a98d8966b85969bf9c819c019292ef6a53ac1db2a108]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c46c1ad3d3d0df8e9c0f525c21ce8d81ef9d66297f442d63099667220cfa2253aa31a98d8966b85969bf9c819c019292ef6a53ac1db2a108]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c55d289dcf4faa894b5a17a0c6db3741bbc4ecbe01d01ea33ee7a4e7b
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b7b2e48c1e60e20925f4d9b6be600dd83786a936c9bfab00639c33ca]
+[key.wy = 0a967cbc65070739a3379da80d54843a18d9c11a29a32234a0b303c12]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b7b2e48c1e60e20925f4d9b6be600dd83786a936c9bfab00639c33caa967cbc65070739a3379da80d54843a18d9c11a29a32234a0b303c12]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c4ee7a7d544a5ad0bd0636d9e12bc561ce04faaf1312bba3a15601ebc
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0f4a3d4598875af7f2741bbd67b1733b6541bc5325b3bcb4d3267c27e]
+[key.wy = 0c30bf322f58a45c6c2aa2ced55f175d1cbf72a7c5bfc464d74f666c0]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004f4a3d4598875af7f2741bbd67b1733b6541bc5325b3bcb4d3267c27ec30bf322f58a45c6c2aa2ced55f175d1cbf72a7c5bfc464d74f666c0]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c361b9cd74d65e79a5874c501bca4973b20347ec97f6de10072d8b46a
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 56d1e5c1d664f6ce2fc1fcb937a7ce231a29486abf36c73f77a2bd11]
+[key.wy = 6cb282c9d7c6fc05f399c183e880ea362edf043cd28ffac9f94f2141]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000456d1e5c1d664f6ce2fc1fcb937a7ce231a29486abf36c73f77a2bd116cb282c9d7c6fc05f399c183e880ea362edf043cd28ffac9f94f2141]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c6c3739ae9acbcf34b0e98a0379492e764068fd92fedbc200e5b168d4
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 30bce8c6b7f1bbba040b8d121d85d55167ac99b2e2cf1cfac8b018b5]
+[key.wy = 0f1c384c35be0ae309a5cb55aba982343d2125f2d4a559d8c545359cd]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000430bce8c6b7f1bbba040b8d121d85d55167ac99b2e2cf1cfac8b018b5f1c384c35be0ae309a5cb55aba982343d2125f2d4a559d8c545359cd]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00a252d685e831b6cf095e4f0535edc5b1609d7c5c7e49a301588a1d3e
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0e87e538a978cf187908beb27a4a247d496a8421dab1fe79f8744d2b5]
+[key.wy = 539b9f8fe8bddcf7c97c44c55a4fc22f4d78f6a961447a5b613b5c49]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004e87e538a978cf187908beb27a4a247d496a8421dab1fe79f8744d2b5539b9f8fe8bddcf7c97c44c55a4fc22f4d78f6a961447a5b613b5c49]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00ee746111f91ab4ce8fae96e6f23fd9d20a24d2e79eea563478c0f566
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 113a2cc57c8ee7de11bc45e14546c72a29725b9a7218114ac31f0281]
+[key.wy = 6c765b9a46b0215312a3292f5979c98d37b35883baa156281b1bae8c]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004113a2cc57c8ee7de11bc45e14546c72a29725b9a7218114ac31f02816c765b9a46b0215312a3292f5979c98d37b35883baa156281b1bae8c]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffffb2364ae85014b149b86c741eb8be
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 23dd9c3f1a4b478b01fa2c5e997d0482073b32918de44be583dcf74a]
+[key.wy = 0d661a5ed579a2f09d2ff56d6b80f26568d93a237ca6444b0cadc7951]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000423dd9c3f1a4b478b01fa2c5e997d0482073b32918de44be583dcf74ad661a5ed579a2f09d2ff56d6b80f26568d93a237ca6444b0cadc7951]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00855f5b2dc8e46ec428a593f73219cf65dae793e8346e30cc3701309c
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0bbce4b17d45d24a1c80bc8eca98c359d5e1e458058a00b950643256d]
+[key.wy = 0fe09e092318e39303dca03688e4ecf300300784312d617e5088c584c]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bbce4b17d45d24a1c80bc8eca98c359d5e1e458058a00b950643256dfe09e092318e39303dca03688e4ecf300300784312d617e5088c584c]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c2db5f61aea817276af2064e104c7a30e32034cb526dd0aacfa56566f
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 35f58446c1bdbeaa56660a897ebf965f2d18820c7cd0630f04a4953]
+[key.wy = 47bdfaea60091f405e09929cb2c0e2f6eed53e0871b7fe0cd5a15d85]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004035f58446c1bdbeaa56660a897ebf965f2d18820c7cd0630f04a495347bdfaea60091f405e09929cb2c0e2f6eed53e0871b7fe0cd5a15d85]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0084a6c7513e5f48c07fffffffffff8713f3cba1293e4f3e95597fe6bd
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0911c0033eac46332691cb7920c4950eed57354761e1081a1ea9f1279]
+[key.wy = 508ebf7cfd3eab5dabdee1be14ce8296b1fc20acfaac16f7824c6002]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004911c0033eac46332691cb7920c4950eed57354761e1081a1ea9f1279508ebf7cfd3eab5dabdee1be14ce8296b1fc20acfaac16f7824c6002]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c6c7513e5f48c07ffffffffffffff9d21fd1b31544cb13ca86a75b25e
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 62b2abb70bb9c7efdfb57181f433b64751f108130dce180d6992e7d3]
+[key.wy = 124b3aa8a53e5eedf72aa67e6edcc71f19e36e6ad1d099a59ffd9555]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000462b2abb70bb9c7efdfb57181f433b64751f108130dce180d6992e7d3124b3aa8a53e5eedf72aa67e6edcc71f19e36e6ad1d099a59ffd9555]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00d8ea27cbe9180fffffffffffffff3a43fa3662a899627950d4eb64bc
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0f759330e7992752aae6a85f7bb0599784bea53e288ff7ee8d53d5e6]
+[key.wy = 0defe617362380e92f9a23c4fdcc34e09713aab9cc44119418f6f2fd1]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00040f759330e7992752aae6a85f7bb0599784bea53e288ff7ee8d53d5e6defe617362380e92f9a23c4fdcc34e09713aab9cc44119418f6f2fd1]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3e5f48c07fffffffffffffffffffc724968c0ecf9ed783744a7337b3
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 08f2eda42742ab31f5d4cf666892d1d623efd3b26f7df9aa70296e80d]
+[key.wy = 3beaf235cfea41fadb98c533a8fdeb5841d69ee65f6e71914711f138]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00048f2eda42742ab31f5d4cf666892d1d623efd3b26f7df9aa70296e80d3beaf235cfea41fadb98c533a8fdeb5841d69ee65f6e71914711f138]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d00bfffffffffffffffffffffffffff3d87bb44c833bb384d0f224ccdde
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 2bcf4371b319a691ed0e2e0c4a55a8a9b987dec86b863621e97b9c09]
+[key.wy = 5b8660a74cc964a6af0311edc6b1cd980f9c7bf3a6c9b7f9132a0b2f]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00042bcf4371b319a691ed0e2e0c4a55a8a9b987dec86b863621e97b9c095b8660a74cc964a6af0311edc6b1cd980f9c7bf3a6c9b7f9132a0b2f]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c7fffffffffffffffffffffffffff646c95d0a029629370d8e83d717f
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0a6f252568f6fbd1ae045e602344359c0c216911723748f9a3e7fadec]
+[key.wy = 3b76efc75ba030bfe7de2ded686991e6183d40241a05b479693c7015]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a6f252568f6fbd1ae045e602344359c0c216911723748f9a3e7fadec3b76efc75ba030bfe7de2ded686991e6183d40241a05b479693c7015]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303c021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021c3fffffffffffffffffffffffffff8b51705c781f09ee94a2ae2e1520
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0a74c1c3a31c7d493ab2c0af89cf5e688621ca9466d2ba1d8761c3fe8]
+[key.wy = 2ba0d08f4c9f76856c2b7138c8f1e780b6959992b16ccdfd925f4b3a]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004a74c1c3a31c7d493ab2c0af89cf5e688621ca9466d2ba1d8761c3fe82ba0d08f4c9f76856c2b7138c8f1e780b6959992b16ccdfd925f4b3a]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 303d021c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffd021d0096dafb0d7540b93b5790327082635cd8895e1e799d5d19f92b594056
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 34ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f2]
+[key.wy = 080562acc9b49f2d7fcc89421d2a5db2ea8dd0361fb48d897d4612627]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004034ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f280562acc9b49f2d7fcc89421d2a5db2ea8dd0361fb48d897d4612627]
+[sha = SHA-256]
+
+# point duplication during verification
+msg = 313233343030
+result = valid
+sig = 303d021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021c3f552f1c2b01651edf5902650fe9ab046f71999ac928edc0087bdb13
+# Some implementations of ECDSA do not handle duplication and points at infinity
+# correctly. This is a test vector that has been specially crafted to check for
+# such an omission.
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 34ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f2]
+[key.wy = 7fa9d53364b60d2803376bde2d5a24d05722fc9e04b727682b9ed9da]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004034ea72798257f33f24f64c49438fc43e8f67ddc7170fd127e2c43f27fa9d53364b60d2803376bde2d5a24d05722fc9e04b727682b9ed9da]
+[sha = SHA-256]
+
+# duplication bug
+msg = 313233343030
+result = invalid
+sig = 303d021d00c44503dae85dd5210780f02928b3d927171c578f8603d16b240663c7021c3f552f1c2b01651edf5902650fe9ab046f71999ac928edc0087bdb13
+# Some implementations of ECDSA do not handle duplication and points at infinity
+# correctly. This is a test vector that has been specially crafted to check for
+# such an omission.
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 3672ba9718e60d00eab4295c819ea366a778dd6fd621fa9665259cb6]
+[key.wy = 7ae5e847eeaea674beeb636379e968f79265502e414a1d444f04ae79]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00043672ba9718e60d00eab4295c819ea366a778dd6fd621fa9665259cb67ae5e847eeaea674beeb636379e968f79265502e414a1d444f04ae79]
+[sha = SHA-256]
+
+# comparison with point at infinity 
+msg = 313233343030
+result = invalid
+sig = 303c021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14021c33333333333333333333333333330486f9be9672d0c5d50ddf45a20c
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 33eeefbfc77229136e56b575144863ed90b4c0f8a9e315816d6de648]
+[key.wy = 51749dd11480c141fb5a1946313163c0141265b68a26216bcb9936a]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000433eeefbfc77229136e56b575144863ed90b4c0f8a9e315816d6de648051749dd11480c141fb5a1946313163c0141265b68a26216bcb9936a]
+[sha = SHA-256]
+
+# extreme value for k
+msg = 313233343030
+result = valid
+sig = 303c021c706a46dc76dcb76798e60e6d89474788d16dc18032d268fd1a704fa6021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0c520b18003b356094147ee2f9df1178572bed837bd89443b25ebceb8]
+[key.wy = 0e2e93a998fbbabe82192ea4c85651cf09a95ab0dc2e3d975ee7be98]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004c520b18003b356094147ee2f9df1178572bed837bd89443b25ebceb80e2e93a998fbbabe82192ea4c85651cf09a95ab0dc2e3d975ee7be98]
+[sha = SHA-256]
+
+# extreme value for k
+msg = 313233343030
+result = valid
+sig = 303d021d00b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21021c5555555555555555555555555555078ba03da56a069f0dc1c9740e14
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]
+[key.wy = 0bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34]
+[sha = SHA-256]
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 303d021d00bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419fe021c249249249249249249249249249227ce201a6b76951f982e7ae89851
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 303c021c44a5ad0bd0636d9e12bc9e0a6bdc74bfe082087ae8b61cbd54b8103f021c249249249249249249249249249227ce201a6b76951f982e7ae89851
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21]
+[key.wy = 42c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d2142c89c774a08dc04b3dd201932bc8a5ea5f8b89bbb2a7e667aff81cd]
+[sha = SHA-256]
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 303d021d00bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419fe021c249249249249249249249249249227ce201a6b76951f982e7ae89851
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 303c021c44a5ad0bd0636d9e12bc9e0a6bdc74bfe082087ae8b61cbd54b8103f021c249249249249249249249249249227ce201a6b76951f982e7ae89851
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 4c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466]
+[key.wy = 0ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a00044c246670658a1d41f5d77bce246cbe386ac22848e269b9d4cd67c466ddd947153d39b2d42533a460def26880408caf2dd3dd48fe888cd176]
+[sha = SHA-256]
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021c0364e7d96832614a80216e730c353534d4bffd2c26649c0b4b0e2628021d008f40064b412fe38c5ba9cf664e6172ed48e6e79f0fe5e31a54985dfc
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303e021d00b41091a5d3fbacfb8cf5633536cbe1d9fcf21e6d68cc9778490e058d021d00fb62cf967601d20f34f43cb138f57b7e0ba1f0b900faf0ea2bb1fc14
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021d00d0f1072fd6283d4d60ee043f6c78b6e3ca9c1cce4caaf9ae4874b2c9021c49e7aa1cc6e8c7833bd67a8880329b96ece3d4fda1c0fcaf53daadac
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021d009124453ca4b811d8a50834a092ef6a32ce6db98e72a66a140fe33b9f021c20cd9182f7d9d42e1e67ea77b92190afaaa4ff664cfc684e0f384eb1
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303e021d00c8db428f70740b9a2769e50ef6c8897a58f2b805d3630556a23025e1021d00a1eaa6d5b7f44109f839a66ee6463f16c2ca7ca0fb20ea4eb992ac10
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303e021d00f3142ef7e66d0434c9d2db4187183504d7ab2692d5a8c92e4dc08883021d00b8f43460ff89694721da3d8dfa21d9cf09eccc4ec97ad8216719b3c4
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021c5b1c9ef283f70dbacae11eaa63f13e6b5a33dbcdb329c3ceeab98848021d00f70ebe657369f642c61d643bdf52d49b07a68d80279561958c3102d9
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021d00d4340200c221c443f6763120ecafca40a327dd6e40dae29641b11205021c3c9b65e174695e62117579f4ca5903044320e48d6ccec91446426325
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021c53df2654f17e3c002c7f464e9aff8c3dcaa1b8f0122c8a4b86e9c4e5021d00cae45907fa41b790c7e90f0669ae3e76ff0a3de0b585998e81df34c1
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 303d021d00bea17b9096e2bc7e041cdef9ec91f42b827ee8c8228d65d9bf7a9711021c13e245afc9277f7e32714fd7b3d95872aa689b219ac0acf050c1d9ec
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021d00f4b68df62b9238363ccc1bbee00deb3fb2693f7894178e14eeac596a021c7f51c9451adacd2bcbc721f7df0643d7cd18a6b52064b507e1912f23
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021c6f66f0f4d6fe7620666bb98e24769a58af83693d42cd7769b3caeabf021d00818ad21034973894236d27a9bcd736eb9ac631caeb196ed4c97ce7f5
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303c021c30d85a8bd9d7750d036da6cd2e8d590d23d54d60a07fb32e1c170402021c420de69e400c572c36ce3b35e40a4b47bedfbe3a7af58f8ceb4066ed
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021d00e01302d4273341f11ef9788ac1e525a45f2659d7a8a64885aec54ae1021c3a886ab91681c019476753253fdda416731aad946b91886214fe0650
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303c021c3afd7abd885aae32de3ef49cb331155334bb4309e4eda73ac4aee400021c1d51e8a79b85335560dfb118a8f4cf16ee3641a782d3ee5e455a63b6
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021c07c73dae6b6f894bf1aeb340eaf06cbdf5556887aeed306ca87bb4a7021d00f0e98ce504608ac63b30b7d581a9ee44a5b439736a20661a0d0656a8
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021c3d8216344b7480e25230dd4608b7ca09a63ae352f9961c2a3088676f021d00e71d2d7e78aae7f826b1d30a06f89f8fbe8702e639d85cf15b3ecb06
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021c24e768c333808f0f0eb05b3ddf95d5530f8670334e742ff4ad783ef9021d00f4da768f939e12c7cecc90c45cfff173ea1fc4237290b17d2acbf8a9
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303d021d00b1d7988d9bcd4f7a7b643e391f5b37d9f56a6ca4ab81c9a5a2b72d14021c518da4c39db722cdae6d1a8f0268ded4e4522926b672b4bd14ef8564
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 303c021c6374f85c920dace4b5828384b05696d0bd7cc0992f804a8059247538021c01b8f519efc35f104cc83be9280c44b4345cafcda02b944744a931c7
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303d021d00b2970cdec29c70294a18bbc49985efa33acc0af509c326a3977a35e8021c0cea3ed8ebaaf6ee6aef6049a23cbc39f61fcf8fc6be4bab13385579
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303d021d00bc9052305d076c009f0250d888d0fae950bbdf53e42fc5b35850d4c5021c400a143f82c3b045ce46742aca8a1af966cc4b04e10fe96090374d36
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303c021c7a57cfac41911d334dde984ef64bacf978fb04c77ffe00892e611fad021c52a3f891c2877d433b6b5799ca6f774941370654e17811b2fc401974
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303c021c2092d6e7a86055b119e1f6f97b21ac3789e78804d0e25ff2945ad240021c3099207c5088715cb79437724b84018459553e82e6a72e6791cc2b02
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303e021d0089b1dfa081bc9200d86bcf63c75e80fab8b8b11270768fa0ed07d45e021d008c2299775762dd15aefb1a18d9adac8dc756f4619e5fc3c526922100
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303d021d00b16307867551b63b168131371c2eb6e8fab7d1ecfec6fde744e0ec51021c2f3ad86ba61343dc7d33908f83feb28a5b63aba08e3e990bdd441ab1
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303e021d00b712f2b41da5c8265797d52b946fb79ecfe70544f83be0badbe4b71c021d00b02018a67a61d7df4d04aef55bafabd50e56840733b99b781185667f
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303d021d008972a6fc414736cfc4a57704dc2d76857738366a4175acb71eb3aa59021c0bfdc4fd4b6d9e6afb62b9f5e41c8cbac2790dd9fa06a72df6e0d0d8
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303e021d00da7640586f3f0aae5fb1c3e32da59b3322c24d6303d1d006d50f74b5021d00c5462bf20238cdd4e534494629561aa111480d08b48557e69fc17f3e
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 303c021c05c302ce36d5b7ba053cc9c9c26095e887df0f7e190396e13e487905021c52cb970da954ac97f3c507399451dcf28a4d37871b66b46f99c58531
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303d021c7e7b0eb7da8c68a7072b11404ee95a5c407fbfe3d69646802e28ae77021d00d409a2f6bbaae59bb60fc0a092b12fa4e67dc8d088cf19a833322fd6
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303d021c0d81b5454f87f6000460dc7819b6fc712c042645340e0f4196f046e9021d00aa2efd27ccc7b942bcfebce7e735125227e2bdadcb943efa88f1f42e
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303c021c09b59a8f079529fad06c514abaf356537f9bc2eedfefc595aace6c48021c721310942b44535e02f455015143fffe3dae9e5193a4ef1eeff94686
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303d021d0092f268abc43239955edad0766503714b4e156ec436df34b1da00b2c2021c580cab7733f22244b5c74ceae56e048b260c2d1e8b96b15997145ba4
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303c021c514ef0e344b5cb8de93212d0493192437f86090ecc284dae54f74a60021c42e510fc18cd8c39113d4153dc2fc59dd2efaf22bd9330119458820a
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303e021d008a16dcf2e449678047e967a2c281c6500b6cdfddf631d784ff60fb68021d00b16ac240544d86b9b40e4baf4d53f1ee33fdf8161830ccad4d2f354e
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303c021c6f84179e3ea956abbf31daebace7b443c7a0e9f9641fa8fe4f4f9be9021c39df090fbe36b37c2aab1cbd61d7a5138c4b709e70606bcf99ff16ae
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303d021d00c0f2d12d910cf6bc0c4d09443a6da8247649e1724f95bddd711e2f64021c766bf054f829d02db13c6aa8536e00e5e30e5313a868e0a7851fcdcc
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303e021d00ca3d5f3822b905db4786b88e0ca370555825971d1a4b7fcc37bb1ed0021d00a3c21935732cd227a4f592c91cdd2509c078984b38a37cf530338364
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 303d021d00e1e6139431452e5cb96dc75677cbb3f1892b98e8fa2ba3f62ed8ea1a021c735daa1083e15eefad9357f76f83198448daffea42d34946d6c48b1f
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf]
+[key.wy = 08a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004aed6fcad2400c4d94e55dbb6b012ce3d4c2b46843fbe99d4289e6ecf8a24a89e71343d7d151d258d2cb690349c2d56b366dd10a600000000]
+[sha = SHA-256]
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 303c021c519bf185ff4635271961fa491be257231deeea9c53a6ede3b4a89ed1021c486bdad484a6a3134e1471cf56a9df0fac50f773b3e37d6f327617d7
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 303d021c09fd644898b7cb5d018b52234e7b4ef2b54789afd0ce9c434e9e5515021d00f19309532164ea2053cae55df7bdcbab536c83ea7bfe6fe10d60c1ab
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 303d021d00ec919d4e283ccf1f71a9e3c0f781a36758d3f38b1b78a87a74288e80021c4c4663044a73c79bd88f0dc245ab1a32f89f06f40a704b31e9fabc51
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f1]
+[key.wy = 73d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004bf19ecfe43ffe289f699f479316145b9a7f7370b9ece5ab1212174f173d528949ae9142f818bade71a960407963be0b6482a6a60ffffffff]
+[sha = SHA-256]
+
+# y-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 303e021d00c51760478447217597ecc6f4001bd45088d53c90f53103608bf88aea021d00a201253aa903f9781e8992101d7171d2dd3a5d48c44d8e1d544cd6d7
+
+# y-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 303c021c76be0112674ec29128823e1af7512e6143872fef30a64e2f1799bd56021c187e503e1a48c27b549fe0a4ce5e581e242c8663fc9efb02d6f2b193
+
+# y-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 303c021c36245ef126b5b51e459f84eaaad5a495061f0471dc8c23f1c5f16282021c39e31d72a06ba8e14fcf95778e07bc16a2628e39449da8857d506edc
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 26e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000]
+[key.wy = 0eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000426e5abf135cb54eaaa16b69e4b0b292275344e88a09df6df80000000eab891de54e3f26ff50ab989f333dac551583d468ae623c596434af0]
+[sha = SHA-256]
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 303c021c258682975df8bca7f203f771ebeb478ef637360c860fc386cfb21745021c7663e70188047e41469a2a35c8c330dd900f2340ba82aafd22962a96
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 303e021d0085c98614f36c0d66f8d87834cae978611b7b4eebf59a46bea1b89ae9021d00d1a18e378dda840e06b60f6279bf0a2231d9fa2d8d2c31e88bc1bdd7
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 303e021d00ca7b7432ba41ff2112e1116fffde89bbd68f5ce67fe5513d16c8e6f7021d00e421b7599e0180798acc2006451603cda2db1d582741116e6033ce5f
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff]
+[key.wy = 41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ec627f345545d03f8c6dbd08e575527116567fe375f9ecaaffffffff41bf705697d5f716bcf78718d5393b63a98691f4a1f24246375538fd]
+[sha = SHA-256]
+
+# x-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 303c021c19397fe5d3ecabf80fc624c1bf379564387517c185087dc97d605069021c33b5773e9aaf6c34cb612cfc81efd3bf9c22224e8c4fa1bfccf5c501
+
+# x-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 303d021c70f24f5c164164bfbb8459aa12a981aa312dbcf00204326ebaaabdc8021d00f5cebee8caedae8662c43501665084b45d2f494fb70d603043543dc4
+
+# x-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 303d021c0bf2d86ecaa8b56aca5e8f8ebcb45081d078a14555b75f5be8e9b132021d009a55b3ce4734849966b5034ccd9b19f76407ee0241c3f58e7b8fc89a
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]
+[key.wy = 762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a00000000762d28f1fdc219184f81681fbff566d465b5f1f31e872df5]
+[sha = SHA-256]
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303e021d00bfc5dc4434cd09369610687d38d2d418b63fd475dea246a456b25a3a021d00b171dfa6cf722f20816370a868785da842b37bac31d7b78e6751fc50
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303e021d008fdbe8da646c5642d767c7dbeb3872b1edab6e37365805f0e94ce0a9021d00bcf35ab81222883dd3526cb0cf93138f4687cd0b10c2b0a126385161
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303d021d00e23a11275848fd4f8b6f4ac4fc305eae981d3b7dc453e5a980c46422021c1a875693f24a03ea1614c4c3bbd0dd7221429f22b337ea7d98348ca4
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 15016e52b36472d536477605fb805dd3903082a062d1ea30af9e555a]
+[key.wy = 0ffffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000415016e52b36472d536477605fb805dd3903082a062d1ea30af9e555affffffff89d2d70e023de6e7b07e97df400a992b9a4a0e0ce178d20c]
+[sha = SHA-256]
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303d021c76645164ff9af3a1a9205fda2eef326d2bffc795dcc4829547fe01dd021d00b65bba503719314b27734dd06b1395d540af8396029b78b84e0149eb
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303c021c32fa0ca7e07f1f86ac350734994e1f31b6da9c82f93dced2b983c29c021c7b7891282206a45711bdfcb2a102b5d289df84ff5778548603574004
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303d021c2d5492478ca64e5111dfd8521867b6477b7e78227849ad090b855694021d00a532f5a2fa3594af81cd5928b81b4057da717be5fb42a3a86c68190d
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0f7e4713d085112112c37cdf4601ff688da796016b71a727a]
+[key.wy = 0de5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a000400000000f7e4713d085112112c37cdf4601ff688da796016b71a727ade5a9ec165054cc987f9dc87e9991b92e4fa649ca655eeae9f2a30e1]
+[sha = SHA-256]
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303d021c191eee5daf55cd499e8539cb2cff797cfec5d566d2027bf9f8d64693021d00dadfeae8131f64d96b94fd340197caa2bc04818554812feef3343070
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303e021d00e0e2c08180b8a207ee9105a7d379fa112368e8370fa09dfde4a45c45021d00c717bc0860e016e7ce48f8fe6a299b36906a6055adad93b416ce8838
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303d021c1b919ef93532292743bb2e1b7b4894fd847c6e5de52a08e1b0f2dcfb021d00c2d30d6b7594d8dbd261491ae1d58779505b075b64e5564dc97a418b
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f725]
+[key.wy = 086c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004ffffffffeadf7cee8d34d04cf22c8f7de35674fb2f501d242a76f72586c409309d398e60ce1e0a4c9e05a9d32627577e8ce2cc7f3afa2c3e]
+[sha = SHA-256]
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303d021d00e75db49ed33ff2885ea6100cc95b8fe1b9242ea4248db07bcac2e020021c796c866142ae8eb75bb0499c668c6fe45497692fbcc66b37c2e4624f
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303c021c1f81cd924362ec825890307b9b3936e0d8f728a7c84bdb43c5cf0433021c39d3e46a03040ad41ac026b18e0629f6145e3dc8d1e6bbe200c8482b
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303c021c00fda613aa67ca42673ad4309f3f0f05b2569f3dee63f4aa9cc54cf3021c1e5a64b68a37e5b201c918303dc7a40439aaeacf019c5892a8f6d0ce
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]
+[key.wy = 0e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1000000000e2ab0e8495e859eb2afb00769d6e7fe626a119167c0b6bc]
+[sha = SHA-256]
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303e021d00b932b3f7e6467e1ec7a561f31160248c7f224550a8508788634b53ce021d00a0c5312acf9e801aff6d6fc98550cfa712bbf65937165a36f2c32dc9
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303d021d00e509593fb09245ee8226ce72786b0cc352be555a7486be628f4fd00c021c0b7abde0061b1e07bf13319150a4ff6a464abab636ab4e297b0d7633
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 303c021c6e54f941204d4639b863c98a65b7bee318d51ab1900a8f345eac6f07021c0da5054829214ecde5e10579b36a2fe6426c24b064ed77c38590f25c
+
+[key.curve = secp224r1]
+[key.keySize = 224]
+[key.type = ECPublicKey]
+[key.wx = 0b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1]
+[key.wy = 0fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]
+[keyDer = 304e301006072a8648ce3d020106052b81040021033a0004b0013c6fbff6f09fecda1c263ef65399d4cf989ca5fc4f8fff0fe9e1fffffffff1d54f17b6a17a614d504ff7962918019d95ee6e983f4945]
+[sha = SHA-256]
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303d021d0085ea4ab3ffdc992330c0ca8152faf991386bce82877dbb239ba654f6021c0806c6baf0ebea4c1aaa190e7d4325d46d1f7789d550632b70b5fc9b
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303d021c44d53debb646b73485402eab2d099081b97b1243c025b624f0dd67ea021d00e5de789a7d4b77eac6d7bba41658e6e4dc347dabed2f9680c04a6f55
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 303c021c1526eb2f657ebea9af4ca184b975c02372c88e24e835f3f5774c0e12021c1f1ecce38ee52372cb201907794de17b6d6c1afa13c316c51cb07bc7
+
diff --git a/third_party/wycheproof/ecdsa_secp256r1_sha256_test.txt b/third_party/wycheproof/ecdsa_secp256r1_sha256_test.txt
new file mode 100644
index 0000000..7580de1
--- /dev/null
+++ b/third_party/wycheproof/ecdsa_secp256r1_sha256_test.txt
@@ -0,0 +1,2404 @@
+# Imported from Wycheproof's ecdsa_secp256r1_sha256_test.json.
+# This file is generated by convert_wycheproof.go. Do not edit by hand.
+#
+# Algorithm: ECDSA
+# Generator version: 0.4
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 2927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838]
+[key.wy = 0c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042927b10512bae3eddcfe467828128bad2903269919f7086069c8c4df6c732838c7787964eaac00e5921fb1498a60f4606766b3d9685001558d1a974e7341513e]
+[sha = SHA-256]
+
+# signature malleability
+msg = 313233343030
+result = valid
+sig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802204cd60b855d442f5b3c7b11eb6c4e0ae7525fe710fab9aa7c77a67f79e6fadd76
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 3046022100e43dc0edacf7345544d7c28547949164bf882dedcc9db1be918caa02a5f7f7ca022100eb313df522aa9e6dbc0cd45d1ea6edaebd858dca4780a940014363ff7600118d
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 304502204d1b36126feee49ec974650f8d1a335f8d210e60949642348ad71e476a35cdfe022100a890b9ddbb3f2089ea69fd117fb349ed054c0f0830f671c1a639ed88eec0bc75
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 304502200e285057b2f96995a3e6a6511cc4a83a791491610ae3f3571d8ab1080b726cc4022100d8b8325f25fb663eda57d958cc174fa8c36d19d2ccb76d5ac4488d776fcf0b8d
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 3046022100caf80e1656e0a20237b7c39c8bffdf1831efef84a0b5bd7d404fec77b20efecd022100e8352a15bf01544331281f2f71fd913003acabbc6ab0f47cdc58c8d7bc8a6cd5
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 304502206160cb08f98f68d6c62b45babea51bd439d9003a40acb38295f63929bf26027e0221008f6b86c954822054da763c5dc9e5ce22e08814904e438311fa4ff2d79e9f9795
+
+# Legacy:ASN encoding of s misses leading 0
+msg = 313233343030
+result = acceptable
+sig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180220b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+# Some implementations of ECDSA and DSA incorrectly encode r and s by not
+# including leading zeros in the ASN encoding of integers when necessary. Hence,
+# some implementations (e.g. jdk) allow signatures with incorrect ASN encodings
+# assuming that the signature is otherwise valid.
+
+# valid
+msg = 313233343030
+result = valid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 30814502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 30460281202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 304602202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802812100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 3082004502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 3047028200202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180282002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 304602202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 304502212ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 3045021f2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022200b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3085010000004502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 304a028501000000202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 304a02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180285010000002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 308901000000000000004502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 304e02890100000000000000202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 304e02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18028901000000000000002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 30847fffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 304902847fffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802847fffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 3084ffffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 30490284ffffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180284ffffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 3085ffffffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 304a0285ffffffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 304a02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180285ffffffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 3088ffffffffffffffff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 304d0288ffffffffffffffff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 304d02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180288ffffffffffffffff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 30ff02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 304502ff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802ff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 304502802ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18028000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# removing sequence
+msg = 313233343030
+result = invalid
+sig = 
+
+# appending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000
+
+# prepending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 3047000002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0500
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 304702222ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180500022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022300b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0500
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 304a498177304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30492500304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3047304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0004deadbeef
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 304a222549817702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30492224250002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 304d222202202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180004deadbeef022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 304a02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182226498177022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1822252500022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 304d02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182223022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0004deadbeef
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 304daa00bb00cd00304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 304baa02aabb304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 304d2228aa00bb00cd0002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 304b2226aa02aabb02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 304d02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182229aa00bb00cd00022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 304b02202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182227aa02aabb022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 3080304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 3049228002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182280022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 3080314502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 3049228003202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e182280032100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000
+
+# Replacing sequence with NULL
+msg = 313233343030
+result = invalid
+sig = 0500
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2e4502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2f4502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 314502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 324502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = ff4502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 304500202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 304501202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 304503202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 304504202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3045ff202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18002100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18012100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18032100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18042100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18ff2100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# dropping value of sequence
+msg = 313233343030
+result = invalid
+sig = 3000
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 30493001023044202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 3049222402012b021fa3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 304902202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1822250201000220b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 3044202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# indefinite length
+msg = 313233343030
+result = invalid
+sig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000
+
+# indefinite length with truncated delimiter
+msg = 313233343030
+result = invalid
+sig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db00
+
+# indefinite length with additional element
+msg = 313233343030
+result = invalid
+sig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db05000000
+
+# indefinite length with truncated element
+msg = 313233343030
+result = invalid
+sig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db060811220000
+
+# indefinite length with garbage
+msg = 313233343030
+result = invalid
+sig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000fe02beef
+
+# indefinite length with nonempty EOC
+msg = 313233343030
+result = invalid
+sig = 308002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0002beef
+
+# prepend empty sequence
+msg = 313233343030
+result = invalid
+sig = 3047300002202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# append empty sequence
+msg = 313233343030
+result = invalid
+sig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db3000
+
+# sequence of sequence
+msg = 313233343030
+result = invalid
+sig = 3047304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# truncated sequence
+msg = 313233343030
+result = invalid
+sig = 302202202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18
+
+# repeat element in sequence
+msg = 313233343030
+result = invalid
+sig = 306802202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# removing integer
+msg = 313233343030
+result = invalid
+sig = 3023022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# appending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 304702222ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180000022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# appending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022300b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db0000
+
+# prepending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 3047022200002ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# prepending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 304702202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180223000000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# Replacing integer with NULL
+msg = 313233343030
+result = invalid
+sig = 30250500022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# Replacing integer with NULL
+msg = 313233343030
+result = invalid
+sig = 302402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180500
+
+# dropping value of integer
+msg = 313233343030
+result = invalid
+sig = 30250200022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# dropping value of integer
+msg = 313233343030
+result = invalid
+sig = 302402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180200
+
+# modify first byte of integer
+msg = 313233343030
+result = invalid
+sig = 3045022029a3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# modify first byte of integer
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022102b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# modify last byte of integer
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e98022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# modify last byte of integer
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b491568475b
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 3044021f2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 3044021fa3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022000b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180220b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# leading ff in integer
+msg = 313233343030
+result = invalid
+sig = 30460221ff2ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# leading ff in integer
+msg = 313233343030
+result = invalid
+sig = 304602202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180222ff00b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# infinity
+msg = 313233343030
+result = invalid
+sig = 3026090180022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# infinity
+msg = 313233343030
+result = invalid
+sig = 302502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18090180
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 30460221012ba3a8bd6b94d5ed80a6d9d1190a436ebccc0833490686deac8635bcb9bf5369022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 30460221ff2ba3a8bf6b94d5eb80a6d9d1190a436f42fe12d7fad749d4c512a036c0f908c7022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 30450220d45c5741946b2a137f59262ee6f5bc91001af27a5e1117a64733950642a3d1e8022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3046022100d45c5740946b2a147f59262ee6f5bc90bd01ed280528b62b3aed5fc93f06f739022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 30460221fed45c5742946b2a127f59262ee6f5bc914333f7ccb6f979215379ca434640ac97022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 30460221012ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3046022100d45c5741946b2a137f59262ee6f5bc91001af27a5e1117a64733950642a3d1e8022100b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022101b329f478a2bbd0a6c384ee1493b1f518276e0e4a5375928d6fcd160c11cb6d2c
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180220b329f47aa2bbd0a4c384ee1493b1f518ada018ef05465583885980861905228a
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180221ff4cd60b865d442f5a3c7b11eb6c4e0ae79578ec6353a20bf783ecb4b6ea97b825
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e180221fe4cd60b875d442f593c7b11eb6c4e0ae7d891f1b5ac8a6d729032e9f3ee3492d4
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 304502202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e18022101b329f479a2bbd0a5c384ee1493b1f5186a87139cac5df4087c134b49156847db
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 304402202ba3a8be6b94d5ec80a6d9d1190a436effe50d85a1eee859b8cc6af9bd5c2e1802204cd60b865d442f5a3c7b11eb6c4e0ae79578ec6353a20bf783ecb4b6ea97b825
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020100020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020100020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201000201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026020100022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026020100022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026020100022100ffffffff00000001000000000000000000000001000000000000000000000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3008020100090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020101020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020101020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201010201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026020101022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026020101022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026020101022100ffffffff00000001000000000000000000000001000000000000000000000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3008020101090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30260201ff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30260201ff022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30260201ff022100ffffffff00000001000000000000000000000001000000000000000000000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30080201ff090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325510201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551022100ffffffff00000001000000000000000000000001000000000000000000000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3028022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325500201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550022100ffffffff00000001000000000000000000000001000000000000000000000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3028022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325520201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552022100ffffffff00000001000000000000000000000001000000000000000000000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3028022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff022100ffffffff00000001000000000000000000000001000000000000000000000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3028022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000001000000000000000000000001000000000000000000000000020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000001000000000000000000000001000000000000000000000000020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff000000010000000000000000000000010000000000000000000000000201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632550
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632552
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000001000000000000000000000000ffffffffffffffffffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000001000000000000000000000001000000000000000000000000022100ffffffff00000001000000000000000000000001000000000000000000000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3028022100ffffffff00000001000000000000000000000001000000000000000000000000090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Edge case for Shamir multiplication
+msg = 3639383139
+result = valid
+sig = 3044022064a1aab5000d0e804f3e2fc02bdee9be8ff312334e2ba16d11547c97711c898e02206af015971cc30be6d1a206d4e013e0997772a2f91d73286ffd683b9bb2cf4f1b
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0ad99500288d466940031d72a9f5445a4d43784640855bf0a69874d2de5fe103]
+[key.wy = 0c5011e6ef2c42dcd50d5d3d29f99ae6eba2c80c9244f4c5422f0979ff0c3ba5e]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040ad99500288d466940031d72a9f5445a4d43784640855bf0a69874d2de5fe103c5011e6ef2c42dcd50d5d3d29f99ae6eba2c80c9244f4c5422f0979ff0c3ba5e]
+[sha = SHA-256]
+
+# k*G has a large x-coordinate
+msg = 313233343030
+result = valid
+sig = 303502104319055358e8617b0c46353d039cdaab022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e
+
+# r too large
+msg = 313233343030
+result = invalid
+sig = 3046022100ffffffff00000001000000000000000000000000fffffffffffffffffffffffc022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0ab05fd9d0de26b9ce6f4819652d9fc69193d0aa398f0fba8013e09c582204554]
+[key.wy = 19235271228c786759095d12b75af0692dd4103f19f6a8c32f49435a1e9b8d45]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004ab05fd9d0de26b9ce6f4819652d9fc69193d0aa398f0fba8013e09c58220455419235271228c786759095d12b75af0692dd4103f19f6a8c32f49435a1e9b8d45]
+[sha = SHA-256]
+
+# r,s are large
+msg = 313233343030
+result = valid
+sig = 3046022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254e
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 080984f39a1ff38a86a68aa4201b6be5dfbfecf876219710b07badf6fdd4c6c56]
+[key.wy = 11feb97390d9826e7a06dfb41871c940d74415ed3cac2089f1445019bb55ed95]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000480984f39a1ff38a86a68aa4201b6be5dfbfecf876219710b07badf6fdd4c6c5611feb97390d9826e7a06dfb41871c940d74415ed3cac2089f1445019bb55ed95]
+[sha = SHA-256]
+
+# r and s^-1 have a large Hamming weight
+msg = 313233343030
+result = valid
+sig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100909135bdb6799286170f5ead2de4f6511453fe50914f3df2de54a36383df8dd4
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 4201b4272944201c3294f5baa9a3232b6dd687495fcc19a70a95bc602b4f7c05]
+[key.wy = 095c37eba9ee8171c1bb5ac6feaf753bc36f463e3aef16629572c0c0a8fb0800e]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044201b4272944201c3294f5baa9a3232b6dd687495fcc19a70a95bc602b4f7c0595c37eba9ee8171c1bb5ac6feaf753bc36f463e3aef16629572c0c0a8fb0800e]
+[sha = SHA-256]
+
+# r and s^-1 have a large Hamming weight
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022027b4577ca009376f71303fd5dd227dcef5deb773ad5f5a84360644669ca249a5
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0a71af64de5126a4a4e02b7922d66ce9415ce88a4c9d25514d91082c8725ac957]
+[key.wy = 5d47723c8fbe580bb369fec9c2665d8e30a435b9932645482e7c9f11e872296b]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a71af64de5126a4a4e02b7922d66ce9415ce88a4c9d25514d91082c8725ac9575d47723c8fbe580bb369fec9c2665d8e30a435b9932645482e7c9f11e872296b]
+[sha = SHA-256]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020105020101
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 6627cec4f0731ea23fc2931f90ebe5b7572f597d20df08fc2b31ee8ef16b1572]
+[key.wy = 6170ed77d8d0a14fc5c9c3c4c9be7f0d3ee18f709bb275eaf2073e258fe694a5]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046627cec4f0731ea23fc2931f90ebe5b7572f597d20df08fc2b31ee8ef16b15726170ed77d8d0a14fc5c9c3c4c9be7f0d3ee18f709bb275eaf2073e258fe694a5]
+[sha = SHA-256]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020105020103
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 5a7c8825e85691cce1f5e7544c54e73f14afc010cb731343262ca7ec5a77f5bf]
+[key.wy = 0ef6edf62a4497c1bd7b147fb6c3d22af3c39bfce95f30e13a16d3d7b2812f813]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045a7c8825e85691cce1f5e7544c54e73f14afc010cb731343262ca7ec5a77f5bfef6edf62a4497c1bd7b147fb6c3d22af3c39bfce95f30e13a16d3d7b2812f813]
+[sha = SHA-256]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020105020105
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0cbe0c29132cd738364fedd603152990c048e5e2fff996d883fa6caca7978c737]
+[key.wy = 70af6a8ce44cb41224b2603606f4c04d188e80bff7cc31ad5189d4ab0d70e8c1]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cbe0c29132cd738364fedd603152990c048e5e2fff996d883fa6caca7978c73770af6a8ce44cb41224b2603606f4c04d188e80bff7cc31ad5189d4ab0d70e8c1]
+[sha = SHA-256]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020105020106
+
+# r is larger than n
+msg = 313233343030
+result = invalid
+sig = 3026022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632556020106
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 4be4178097002f0deab68f0d9a130e0ed33a6795d02a20796db83444b037e139]
+[key.wy = 20f13051e0eecdcfce4dacea0f50d1f247caa669f193c1b4075b51ae296d2d56]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044be4178097002f0deab68f0d9a130e0ed33a6795d02a20796db83444b037e13920f13051e0eecdcfce4dacea0f50d1f247caa669f193c1b4075b51ae296d2d56]
+[sha = SHA-256]
+
+# s is larger than n
+msg = 313233343030
+result = invalid
+sig = 3026020105022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc75fbd8
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0d0f73792203716afd4be4329faa48d269f15313ebbba379d7783c97bf3e890d9]
+[key.wy = 0971f4a3206605bec21782bf5e275c714417e8f566549e6bc68690d2363c89cc1]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d0f73792203716afd4be4329faa48d269f15313ebbba379d7783c97bf3e890d9971f4a3206605bec21782bf5e275c714417e8f566549e6bc68690d2363c89cc1]
+[sha = SHA-256]
+
+# small r and s^-1
+msg = 313233343030
+result = valid
+sig = 3027020201000221008f1e3c7862c58b16bb76eddbb76eddbb516af4f63f2d74d76e0d28c9bb75ea88
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 4838b2be35a6276a80ef9e228140f9d9b96ce83b7a254f71ccdebbb8054ce05f]
+[key.wy = 0fa9cbc123c919b19e00238198d04069043bd660a828814051fcb8aac738a6c6b]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044838b2be35a6276a80ef9e228140f9d9b96ce83b7a254f71ccdebbb8054ce05ffa9cbc123c919b19e00238198d04069043bd660a828814051fcb8aac738a6c6b]
+[sha = SHA-256]
+
+# smallish r and s^-1
+msg = 313233343030
+result = valid
+sig = 302c02072d9b4d347952d6022100ef3043e7329581dbb3974497710ab11505ee1c87ff907beebadd195a0ffe6d7a
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 7393983ca30a520bbc4783dc9960746aab444ef520c0a8e771119aa4e74b0f64]
+[key.wy = 0e9d7be1ab01a0bf626e709863e6a486dbaf32793afccf774e2c6cd27b1857526]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200047393983ca30a520bbc4783dc9960746aab444ef520c0a8e771119aa4e74b0f64e9d7be1ab01a0bf626e709863e6a486dbaf32793afccf774e2c6cd27b1857526]
+[sha = SHA-256]
+
+# 100-bit r and small s^-1
+msg = 313233343030
+result = valid
+sig = 3032020d1033e67e37b32b445580bf4eff0221008b748b74000000008b748b748b748b7466e769ad4a16d3dcd87129b8e91d1b4d
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 5ac331a1103fe966697379f356a937f350588a05477e308851b8a502d5dfcdc5]
+[key.wy = 0fe9993df4b57939b2b8da095bf6d794265204cfe03be995a02e65d408c871c0b]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045ac331a1103fe966697379f356a937f350588a05477e308851b8a502d5dfcdc5fe9993df4b57939b2b8da095bf6d794265204cfe03be995a02e65d408c871c0b]
+[sha = SHA-256]
+
+# small r and 100 bit s^-1
+msg = 313233343030
+result = valid
+sig = 302702020100022100ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 1d209be8de2de877095a399d3904c74cc458d926e27bb8e58e5eae5767c41509]
+[key.wy = 0dd59e04c214f7b18dce351fc2a549893a6860e80163f38cc60a4f2c9d040d8c9]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200041d209be8de2de877095a399d3904c74cc458d926e27bb8e58e5eae5767c41509dd59e04c214f7b18dce351fc2a549893a6860e80163f38cc60a4f2c9d040d8c9]
+[sha = SHA-256]
+
+# 100-bit r and s^-1
+msg = 313233343030
+result = valid
+sig = 3032020d062522bbd3ecbe7c39e93e7c25022100ef9f6ba4d97c09d03178fa20b4aaad83be3cf9cb824a879fec3270fc4b81ef5b
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 083539fbee44625e3acaafa2fcb41349392cef0633a1b8fabecee0c133b10e99]
+[key.wy = 0915c1ebe7bf00df8535196770a58047ae2a402f26326bb7d41d4d7616337911e]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004083539fbee44625e3acaafa2fcb41349392cef0633a1b8fabecee0c133b10e99915c1ebe7bf00df8535196770a58047ae2a402f26326bb7d41d4d7616337911e]
+[sha = SHA-256]
+
+# r and s^-1 are close to n
+msg = 313233343030
+result = valid
+sig = 3045022100ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6324d50220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 08aeb368a7027a4d64abdea37390c0c1d6a26f399e2d9734de1eb3d0e19373874]
+[key.wy = 5bd13834715e1dbae9b875cf07bd55e1b6691c7f7536aef3b19bf7a4adf576d]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200048aeb368a7027a4d64abdea37390c0c1d6a26f399e2d9734de1eb3d0e1937387405bd13834715e1dbae9b875cf07bd55e1b6691c7f7536aef3b19bf7a4adf576d]
+[sha = SHA-256]
+
+# s == 1
+msg = 313233343030
+result = valid
+sig = 30250220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70020101
+
+# s == 0
+msg = 313233343030
+result = invalid
+sig = 30250220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70020100
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0b533d4695dd5b8c5e07757e55e6e516f7e2c88fa0239e23f60e8ec07dd70f287]
+[key.wy = 1b134ee58cc583278456863f33c3a85d881f7d4a39850143e29d4eaf009afe47]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004b533d4695dd5b8c5e07757e55e6e516f7e2c88fa0239e23f60e8ec07dd70f2871b134ee58cc583278456863f33c3a85d881f7d4a39850143e29d4eaf009afe47]
+[sha = SHA-256]
+
+# point at infinity during verify
+msg = 313233343030
+result = invalid
+sig = 304402207fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a80220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 69da0364734d2e530fece94019265fefb781a0f1b08f6c8897bdf6557927c8b8]
+[key.wy = 66d2d3c7dcd518b23d726960f069ad71a933d86ef8abbcce8b20f71e2a847002]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000469da0364734d2e530fece94019265fefb781a0f1b08f6c8897bdf6557927c8b866d2d3c7dcd518b23d726960f069ad71a933d86ef8abbcce8b20f71e2a847002]
+[sha = SHA-256]
+
+# u1 == 1
+msg = 313233343030
+result = valid
+sig = 30450220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022100bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca605023
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0d8adc00023a8edc02576e2b63e3e30621a471e2b2320620187bf067a1ac1ff32]
+[key.wy = 33e2b50ec09807accb36131fff95ed12a09a86b4ea9690aa32861576ba2362e1]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d8adc00023a8edc02576e2b63e3e30621a471e2b2320620187bf067a1ac1ff3233e2b50ec09807accb36131fff95ed12a09a86b4ea9690aa32861576ba2362e1]
+[sha = SHA-256]
+
+# u1 == n - 1
+msg = 313233343030
+result = valid
+sig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022044a5ad0ad0636d9f12bc9e0a6bdd5e1cbcb012ea7bf091fcec15b0c43202d52e
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 3623ac973ced0a56fa6d882f03a7d5c7edca02cfc7b2401fab3690dbe75ab785]
+[key.wy = 08db06908e64b28613da7257e737f39793da8e713ba0643b92e9bb3252be7f8fe]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043623ac973ced0a56fa6d882f03a7d5c7edca02cfc7b2401fab3690dbe75ab7858db06908e64b28613da7257e737f39793da8e713ba0643b92e9bb3252be7f8fe]
+[sha = SHA-256]
+
+# u2 == 1
+msg = 313233343030
+result = valid
+sig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c700220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0cf04ea77e9622523d894b93ff52dc3027b31959503b6fa3890e5e04263f922f1]
+[key.wy = 0e8528fb7c006b3983c8b8400e57b4ed71740c2f3975438821199bedeaecab2e9]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004cf04ea77e9622523d894b93ff52dc3027b31959503b6fa3890e5e04263f922f1e8528fb7c006b3983c8b8400e57b4ed71740c2f3975438821199bedeaecab2e9]
+[sha = SHA-256]
+
+# u2 == n - 1
+msg = 313233343030
+result = valid
+sig = 30450220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70022100aaaaaaaa00000000aaaaaaaaaaaaaaaa7def51c91a0fbf034d26872ca84218e1
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0db7a2c8a1ab573e5929dc24077b508d7e683d49227996bda3e9f78dbeff77350]
+[key.wy = 4f417f3bc9a88075c2e0aadd5a13311730cf7cc76a82f11a36eaf08a6c99a206]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004db7a2c8a1ab573e5929dc24077b508d7e683d49227996bda3e9f78dbeff773504f417f3bc9a88075c2e0aadd5a13311730cf7cc76a82f11a36eaf08a6c99a206]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100e91e1ba60fdedb76a46bcb51dc0b8b4b7e019f0a28721885fa5d3a8196623397
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0dead11c7a5b396862f21974dc4752fadeff994efe9bbd05ab413765ea80b6e1f]
+[key.wy = 1de3f0640e8ac6edcf89cff53c40e265bb94078a343736df07aa0318fc7fe1ff]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004dead11c7a5b396862f21974dc4752fadeff994efe9bbd05ab413765ea80b6e1f1de3f0640e8ac6edcf89cff53c40e265bb94078a343736df07aa0318fc7fe1ff]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100fdea5843ffeb73af94313ba4831b53fe24f799e525b1e8e8c87b59b95b430ad9
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0d0bc472e0d7c81ebaed3a6ef96c18613bb1fea6f994326fbe80e00dfde67c7e9]
+[key.wy = 0986c723ea4843d48389b946f64ad56c83ad70ff17ba85335667d1bb9fa619efd]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d0bc472e0d7c81ebaed3a6ef96c18613bb1fea6f994326fbe80e00dfde67c7e9986c723ea4843d48389b946f64ad56c83ad70ff17ba85335667d1bb9fa619efd]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022003ffcabf2f1b4d2a65190db1680d62bb994e41c5251cd73b3c3dfc5e5bafc035
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0a0a44ca947d66a2acb736008b9c08d1ab2ad03776e02640f78495d458dd51c32]
+[key.wy = 6337fe5cf8c4604b1f1c409dc2d872d4294a4762420df43a30a2392e40426add]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a0a44ca947d66a2acb736008b9c08d1ab2ad03776e02640f78495d458dd51c326337fe5cf8c4604b1f1c409dc2d872d4294a4762420df43a30a2392e40426add]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02204dfbc401f971cd304b33dfdb17d0fed0fe4c1a88ae648e0d2847f74977534989
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0c9c2115290d008b45fb65fad0f602389298c25420b775019d42b62c3ce8a96b7]
+[key.wy = 3877d25a8080dc02d987ca730f0405c2c9dbefac46f9e601cc3f06e9713973fd]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c9c2115290d008b45fb65fad0f602389298c25420b775019d42b62c3ce8a96b73877d25a8080dc02d987ca730f0405c2c9dbefac46f9e601cc3f06e9713973fd]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bc4024761cd2ffd43dfdb17d0fed112b988977055cd3a8e54971eba9cda5ca71
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 5eca1ef4c287dddc66b8bccf1b88e8a24c0018962f3c5e7efa83bc1a5ff6033e]
+[key.wy = 5e79c4cb2c245b8c45abdce8a8e4da758d92a607c32cd407ecaef22f1c934a71]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045eca1ef4c287dddc66b8bccf1b88e8a24c0018962f3c5e7efa83bc1a5ff6033e5e79c4cb2c245b8c45abdce8a8e4da758d92a607c32cd407ecaef22f1c934a71]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220788048ed39a5ffa77bfb62fa1fda2257742bf35d128fb3459f2a0c909ee86f91
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 5caaa030e7fdf0e4936bc7ab5a96353e0a01e4130c3f8bf22d473e317029a47a]
+[key.wy = 0deb6adc462f7058f2a20d371e9702254e9b201642005b3ceda926b42b178bef9]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045caaa030e7fdf0e4936bc7ab5a96353e0a01e4130c3f8bf22d473e317029a47adeb6adc462f7058f2a20d371e9702254e9b201642005b3ceda926b42b178bef9]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220476d9131fd381bd917d0fed112bc9e0a5924b5ed5b11167edd8b23582b3cb15e
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0c2fd20bac06e555bb8ac0ce69eb1ea20f83a1fc3501c8a66469b1a31f619b098]
+[key.wy = 6237050779f52b615bd7b8d76a25fc95ca2ed32525c75f27ffc87ac397e6cbaf]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004c2fd20bac06e555bb8ac0ce69eb1ea20f83a1fc3501c8a66469b1a31f619b0986237050779f52b615bd7b8d76a25fc95ca2ed32525c75f27ffc87ac397e6cbaf]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0221008374253e3e21bd154448d0a8f640fe46fafa8b19ce78d538f6cc0a19662d3601
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 3fd6a1ca7f77fb3b0bbe726c372010068426e11ea6ae78ce17bedae4bba86ced]
+[key.wy = 3ce5516406bf8cfaab8745eac1cd69018ad6f50b5461872ddfc56e0db3c8ff4]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043fd6a1ca7f77fb3b0bbe726c372010068426e11ea6ae78ce17bedae4bba86ced03ce5516406bf8cfaab8745eac1cd69018ad6f50b5461872ddfc56e0db3c8ff4]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220357cfd3be4d01d413c5b9ede36cba5452c11ee7fe14879e749ae6a2d897a52d6
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 09cb8e51e27a5ae3b624a60d6dc32734e4989db20e9bca3ede1edf7b086911114]
+[key.wy = 0b4c104ab3c677e4b36d6556e8ad5f523410a19f2e277aa895fc57322b4427544]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200049cb8e51e27a5ae3b624a60d6dc32734e4989db20e9bca3ede1edf7b086911114b4c104ab3c677e4b36d6556e8ad5f523410a19f2e277aa895fc57322b4427544]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022029798c5c0ee287d4a5e8e6b799fd86b8df5225298e6ffc807cd2f2bc27a0a6d8
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0a3e52c156dcaf10502620b7955bc2b40bc78ef3d569e1223c262512d8f49602a]
+[key.wy = 4a2039f31c1097024ad3cc86e57321de032355463486164cf192944977df147f]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004a3e52c156dcaf10502620b7955bc2b40bc78ef3d569e1223c262512d8f49602a4a2039f31c1097024ad3cc86e57321de032355463486164cf192944977df147f]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02200b70f22c781092452dca1a5711fa3a5a1f72add1bf52c2ff7cae4820b30078dd
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0f19b78928720d5bee8e670fb90010fb15c37bf91b58a5157c3f3c059b2655e88]
+[key.wy = 0cf701ec962fb4a11dcf273f5dc357e58468560c7cfeb942d074abd4329260509]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f19b78928720d5bee8e670fb90010fb15c37bf91b58a5157c3f3c059b2655e88cf701ec962fb4a11dcf273f5dc357e58468560c7cfeb942d074abd4329260509]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022016e1e458f021248a5b9434ae23f474b43ee55ba37ea585fef95c90416600f1ba
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 083a744459ecdfb01a5cf52b27a05bb7337482d242f235d7b4cb89345545c90a8]
+[key.wy = 0c05d49337b9649813287de9ffe90355fd905df5f3c32945828121f37cc50de6e]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000483a744459ecdfb01a5cf52b27a05bb7337482d242f235d7b4cb89345545c90a8c05d49337b9649813287de9ffe90355fd905df5f3c32945828121f37cc50de6e]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02202252d6856831b6cf895e4f0535eeaf0e5e5809753df848fe760ad86219016a97
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0dd13c6b34c56982ddae124f039dfd23f4b19bbe88cee8e528ae51e5d6f3a21d7]
+[key.wy = 0bfad4c2e6f263fe5eb59ca974d039fc0e4c3345692fb5320bdae4bd3b42a45ff]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004dd13c6b34c56982ddae124f039dfd23f4b19bbe88cee8e528ae51e5d6f3a21d7bfad4c2e6f263fe5eb59ca974d039fc0e4c3345692fb5320bdae4bd3b42a45ff]
+[sha = SHA-256]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02210081ffe55f178da695b28c86d8b406b15dab1a9e39661a3ae017fbe390ac0972c3
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 67e6f659cdde869a2f65f094e94e5b4dfad636bbf95192feeed01b0f3deb7460]
+[key.wy = 0a37e0a51f258b7aeb51dfe592f5cfd5685bbe58712c8d9233c62886437c38ba0]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000467e6f659cdde869a2f65f094e94e5b4dfad636bbf95192feeed01b0f3deb7460a37e0a51f258b7aeb51dfe592f5cfd5685bbe58712c8d9233c62886437c38ba0]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02207fffffffaaaaaaaaffffffffffffffffe9a2538f37b28a2c513dee40fecbb71a
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 2eb6412505aec05c6545f029932087e490d05511e8ec1f599617bb367f9ecaaf]
+[key.wy = 0805f51efcc4803403f9b1ae0124890f06a43fedcddb31830f6669af292895cb0]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042eb6412505aec05c6545f029932087e490d05511e8ec1f599617bb367f9ecaaf805f51efcc4803403f9b1ae0124890f06a43fedcddb31830f6669af292895cb0]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100b62f26b5f2a2b26f6de86d42ad8a13da3ab3cccd0459b201de009e526adf21f2
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 084db645868eab35e3a9fd80e056e2e855435e3a6b68d75a50a854625fe0d7f35]
+[key.wy = 6d2589ac655edc9a11ef3e075eddda9abf92e72171570ef7bf43a2ee39338cfe]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000484db645868eab35e3a9fd80e056e2e855435e3a6b68d75a50a854625fe0d7f356d2589ac655edc9a11ef3e075eddda9abf92e72171570ef7bf43a2ee39338cfe]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bb1d9ac949dd748cd02bbbe749bd351cd57b38bb61403d700686aa7b4c90851e
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 091b9e47c56278662d75c0983b22ca8ea6aa5059b7a2ff7637eb2975e386ad663]
+[key.wy = 49aa8ff283d0f77c18d6d11dc062165fd13c3c0310679c1408302a16854ecfbd]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000491b9e47c56278662d75c0983b22ca8ea6aa5059b7a2ff7637eb2975e386ad66349aa8ff283d0f77c18d6d11dc062165fd13c3c0310679c1408302a16854ecfbd]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022066755a00638cdaec1c732513ca0234ece52545dac11f816e818f725b4f60aaf2
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0f3ec2f13caf04d0192b47fb4c5311fb6d4dc6b0a9e802e5327f7ec5ee8e4834d]
+[key.wy = 0f97e3e468b7d0db867d6ecfe81e2b0f9531df87efdb47c1338ac321fefe5a432]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004f3ec2f13caf04d0192b47fb4c5311fb6d4dc6b0a9e802e5327f7ec5ee8e4834df97e3e468b7d0db867d6ecfe81e2b0f9531df87efdb47c1338ac321fefe5a432]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022055a00c9fcdaebb6032513ca0234ecfffe98ebe492fdf02e48ca48e982beb3669
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0d92b200aefcab6ac7dafd9acaf2fa10b3180235b8f46b4503e4693c670fccc88]
+[key.wy = 5ef2f3aebf5b317475336256768f7c19efb7352d27e4cccadc85b6b8ab922c72]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d92b200aefcab6ac7dafd9acaf2fa10b3180235b8f46b4503e4693c670fccc885ef2f3aebf5b317475336256768f7c19efb7352d27e4cccadc85b6b8ab922c72]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100ab40193f9b5d76c064a27940469d9fffd31d7c925fbe05c919491d3057d66cd2
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0a88361eb92ecca2625b38e5f98bbabb96bf179b3d76fc48140a3bcd881523cd]
+[key.wy = 0e6bdf56033f84a5054035597375d90866aa2c96b86a41ccf6edebf47298ad489]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040a88361eb92ecca2625b38e5f98bbabb96bf179b3d76fc48140a3bcd881523cde6bdf56033f84a5054035597375d90866aa2c96b86a41ccf6edebf47298ad489]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100ca0234ebb5fdcb13ca0234ecffffffffcb0dadbbc7f549f8a26b4408d0dc8600
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0d0fb17ccd8fafe827e0c1afc5d8d80366e2b20e7f14a563a2ba50469d84375e8]
+[key.wy = 68612569d39e2bb9f554355564646de99ac602cc6349cf8c1e236a7de7637d93]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d0fb17ccd8fafe827e0c1afc5d8d80366e2b20e7f14a563a2ba50469d84375e868612569d39e2bb9f554355564646de99ac602cc6349cf8c1e236a7de7637d93]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff3ea3677e082b9310572620ae19933a9e65b285598711c77298815ad3
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0836f33bbc1dc0d3d3abbcef0d91f11e2ac4181076c9af0a22b1e4309d3edb276]
+[key.wy = 09ab443ff6f901e30c773867582997c2bec2b0cb8120d760236f3a95bbe881f75]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004836f33bbc1dc0d3d3abbcef0d91f11e2ac4181076c9af0a22b1e4309d3edb2769ab443ff6f901e30c773867582997c2bec2b0cb8120d760236f3a95bbe881f75]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0220266666663bbbbbbbe6666666666666665b37902e023fab7c8f055d86e5cc41f4
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 092f99fbe973ed4a299719baee4b432741237034dec8d72ba5103cb33e55feeb8]
+[key.wy = 33dd0e91134c734174889f3ebcf1b7a1ac05767289280ee7a794cebd6e69697]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000492f99fbe973ed4a299719baee4b432741237034dec8d72ba5103cb33e55feeb8033dd0e91134c734174889f3ebcf1b7a1ac05767289280ee7a794cebd6e69697]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff36db6db7a492492492492492146c573f4c6dfc8d08a443e258970b09
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0d35ba58da30197d378e618ec0fa7e2e2d12cffd73ebbb2049d130bba434af09e]
+[key.wy = 0ff83986e6875e41ea432b7585a49b3a6c77cbb3c47919f8e82874c794635c1d2]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004d35ba58da30197d378e618ec0fa7e2e2d12cffd73ebbb2049d130bba434af09eff83986e6875e41ea432b7585a49b3a6c77cbb3c47919f8e82874c794635c1d2]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304502207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd022100bfffffff2aaaaaab7fffffffffffffffc815d0e60b3e596ecb1ad3a27cfd49c4
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 08651ce490f1b46d73f3ff475149be29136697334a519d7ddab0725c8d0793224]
+[key.wy = 0e11c65bd8ca92dc8bc9ae82911f0b52751ce21dd9003ae60900bd825f590cc28]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200048651ce490f1b46d73f3ff475149be29136697334a519d7ddab0725c8d0793224e11c65bd8ca92dc8bc9ae82911f0b52751ce21dd9003ae60900bd825f590cc28]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02207fffffff55555555ffffffffffffffffd344a71e6f651458a27bdc81fd976e37
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 6d8e1b12c831a0da8795650ff95f101ed921d9e2f72b15b1cdaca9826b9cfc6d]
+[key.wy = 0ef6d63e2bc5c089570394a4bc9f892d5e6c7a6a637b20469a58c106ad486bf37]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046d8e1b12c831a0da8795650ff95f101ed921d9e2f72b15b1cdaca9826b9cfc6def6d63e2bc5c089570394a4bc9f892d5e6c7a6a637b20469a58c106ad486bf37]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02203fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192aa
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0ae580bae933b4ef2997cbdbb0922328ca9a410f627a0f7dff24cb4d920e1542]
+[key.wy = 08911e7f8cc365a8a88eb81421a361ccc2b99e309d8dcd9a98ba83c3949d893e3]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200040ae580bae933b4ef2997cbdbb0922328ca9a410f627a0f7dff24cb4d920e15428911e7f8cc365a8a88eb81421a361ccc2b99e309d8dcd9a98ba83c3949d893e3]
+[sha = SHA-256]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 304402207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02205d8ecd64a4eeba466815ddf3a4de9a8e6abd9c5db0a01eb80343553da648428f
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 5b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc46963]
+[key.wy = 0838a40f2a36092e9004e92d8d940cf5638550ce672ce8b8d4e15eba5499249e9]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc46963838a40f2a36092e9004e92d8d940cf5638550ce672ce8b8d4e15eba5499249e9]
+[sha = SHA-256]
+
+# point duplication during verification
+msg = 313233343030
+result = valid
+sig = 304502206f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569022100bb726660235793aa9957a61e76e00c2c435109cf9a15dd624d53f4301047856b
+# Some implementations of ECDSA do not handle duplication and points at infinity
+# correctly. This is a test vector that has been specially crafted to check for
+# such an omission.
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 5b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc46963]
+[key.wy = 7c75bf0c5c9f6d17ffb16d2726bf30a9c7aaf31a8d317472b1ea145ab66db616]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045b812fd521aafa69835a849cce6fbdeb6983b442d2444fe70e134c027fc469637c75bf0c5c9f6d17ffb16d2726bf30a9c7aaf31a8d317472b1ea145ab66db616]
+[sha = SHA-256]
+
+# duplication bug
+msg = 313233343030
+result = invalid
+sig = 304502206f2347cab7dd76858fe0555ac3bc99048c4aacafdfb6bcbe05ea6c42c4934569022100bb726660235793aa9957a61e76e00c2c435109cf9a15dd624d53f4301047856b
+# Some implementations of ECDSA do not handle duplication and points at infinity
+# correctly. This is a test vector that has been specially crafted to check for
+# such an omission.
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 6adda82b90261b0f319faa0d878665a6b6da497f09c903176222c34acfef72a6]
+[key.wy = 47e6f50dcc40ad5d9b59f7602bb222fad71a41bf5e1f9df4959a364c62e488d9]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046adda82b90261b0f319faa0d878665a6b6da497f09c903176222c34acfef72a647e6f50dcc40ad5d9b59f7602bb222fad71a41bf5e1f9df4959a364c62e488d9]
+[sha = SHA-256]
+
+# point with x-coordinate 0
+msg = 313233343030
+result = invalid
+sig = 30250201010220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 2fca0d0a47914de77ed56e7eccc3276a601120c6df0069c825c8f6a01c9f3820]
+[key.wy = 65f3450a1d17c6b24989a39beb1c7decfca8384fbdc294418e5d807b3c6ed7de]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042fca0d0a47914de77ed56e7eccc3276a601120c6df0069c825c8f6a01c9f382065f3450a1d17c6b24989a39beb1c7decfca8384fbdc294418e5d807b3c6ed7de]
+[sha = SHA-256]
+
+# point with x-coordinate 0
+msg = 313233343030
+result = invalid
+sig = 3045022101000000000000000000000000000000000000000000000000000000000000000002203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aa9
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0dd86d3b5f4a13e8511083b78002081c53ff467f11ebd98a51a633db76665d250]
+[key.wy = 45d5c8200c89f2fa10d849349226d21d8dfaed6ff8d5cb3e1b7e17474ebc18f7]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004dd86d3b5f4a13e8511083b78002081c53ff467f11ebd98a51a633db76665d25045d5c8200c89f2fa10d849349226d21d8dfaed6ff8d5cb3e1b7e17474ebc18f7]
+[sha = SHA-256]
+
+# comparison with point at infinity 
+msg = 313233343030
+result = invalid
+sig = 30440220555555550000000055555555555555553ef7a8e48d07df81a693439654210c7002203333333300000000333333333333333325c7cbbc549e52e763f1f55a327a3aa9
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 4fea55b32cb32aca0c12c4cd0abfb4e64b0f5a516e578c016591a93f5a0fbcc5]
+[key.wy = 0d7d3fd10b2be668c547b212f6bb14c88f0fecd38a8a4b2c785ed3be62ce4b280]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044fea55b32cb32aca0c12c4cd0abfb4e64b0f5a516e578c016591a93f5a0fbcc5d7d3fd10b2be668c547b212f6bb14c88f0fecd38a8a4b2c785ed3be62ce4b280]
+[sha = SHA-256]
+
+# extreme value for k
+msg = 313233343030
+result = valid
+sig = 304402207cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc476699780220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 5e59f50708646be8a589355014308e60b668fb670196206c41e748e64e4dca21]
+[key.wy = 5de37fee5c97bcaf7144d5b459982f52eeeafbdf03aacbafef38e213624a01de]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200045e59f50708646be8a589355014308e60b668fb670196206c41e748e64e4dca215de37fee5c97bcaf7144d5b459982f52eeeafbdf03aacbafef38e213624a01de]
+[sha = SHA-256]
+
+# extreme value for k
+msg = 313233343030
+result = valid
+sig = 304402206b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2960220555555550000000055555555555555553ef7a8e48d07df81a693439654210c70
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296]
+[key.wy = 4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2964fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5]
+[sha = SHA-256]
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 3045022100bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 3044022044a5ad0ad0636d9f12bc9e0a6bdd5e1cbcb012ea7bf091fcec15b0c43202d52e0220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296]
+[key.wy = 0b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200046b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296b01cbd1c01e58065711814b583f061e9d431cca994cea1313449bf97c840ae0a]
+[sha = SHA-256]
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 3045022100bb5a52f42f9c9261ed4361f59422a1e30036e7c32b270c8807a419feca6050230220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 3044022044a5ad0ad0636d9f12bc9e0a6bdd5e1cbcb012ea7bf091fcec15b0c43202d52e0220249249246db6db6ddb6db6db6db6db6dad4591868595a8ee6bf5f864ff7be0c2
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 4aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad5]
+[key.wy = 087d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000404aaec73635726f213fb8a9e64da3b8632e41495a944d0045b522eba7240fad587d9315798aaa3a5ba01775787ced05eaaf7b4e09fc81d6d1aa546e8365d525d]
+[sha = SHA-256]
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3045022100b292a619339f6e567a305c951c0dcbcc42d16e47f219f9e98e76e09d8770b34a02200177e60492c5a8242f76f07bfe3661bde59ec2a17ce5bd2dab2abebdf89a62e2
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3045022100e502de07f887e60119f9668cec69d2760839e6e74b9e6ff8cb7fa8d5a24f66c802207605e8b6afdbef06db7f89d06e2add2cf064eb4054d5ff0b101d815e813a8c08
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3044022030fbfb3d662f0f07e8d51c6c3ebbc3ae9cf17b985db10e38116f1ba584cccf4102206fcc086c907209fe3d3d3a3724af44ce3d5af9345ac8864de18ad2b2f9617819
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 304602210097dde41357ef913cb8b9cd8e8c8c858831ec69298c739cd7fb14edcafc519d4e022100c8e032ad4432814ba4ddf3e25004594fa8c5137e39fd360ca36aedabaa934db3
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3044022047bf21626d4b879fc51774251d7e3a380104e2c8170f13d32e86358c63d6b50102203f9c9d81b5e20b94766a62efdee7f3edfada68ab4d74487a24978fb574358830
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3045022100d7908fbd16c6a3ffd7c315bfc2f87d8d42bda8fac5d6024069b5df6b101420e0022066a4771722eef9f166f037629c0d210010727dd114049fe2159ffa228fc11798
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3046022100d48907279f401ee511d2e78d15f4c17539c93373d72bb66cff066a9114801a6d022100c7b709d88a367836a66cdb4b3bd4e0b2a76c97e551505c2969c98b6709600733
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 30450220743d6d5a99bcf2f7e011d6cac86a73582014419d3803c8d61128b23e4683cf96022100fa1270b7406b13cdbea376cb502f01f388f97dc5b660c9f3ba92c40233ae853f
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 304502201c8e26e3a84892b12d6946fa39aa15ee8989f32c647db31c48c7276718907734022100e486719b597f52356d20afc98af82301d3ed33e2c3ec61c23601de687c432893
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3046022100f8f074bad4cc63ce49b1a7101f5f1e5dd7e8d28e1654e3052e9dea4e8830a247022100d232383e83d2b4e0c12ee6127dd8cc3fcfcdff971571b07e18ea0d59d1bd75e9
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 30450220530bd6b0c9af2d69ba897f6b5fb59695cfbf33afe66dbadcf5b8d2a2a6538e23022100d85e489cb7a161fd55ededcedbf4cc0c0987e3e3f0f242cae934c72caa3f43e9
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 304502202a95faa048e78949b27dd4f2a69bf26f809d565cca4fd0205aac95382e19df1c022100c7de7183db22fb7015697d8f15874529c1c37b3506b32e2969c6345ba6431eea
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3046022100ef18b2f9d187e6d6ebd0fe0ff63ebbee44e4e8c3812fb53f7399a2db757965fc022100ff2f438009b409c18fb908851115a00f3ac250428c0485cb8e8066e27608dc2a
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3045022100d1ba6053e65dd564d24a99aeabb181529f48ed9564bfcf8d9b7950d05dfbf1f702204b4d69402ba634983534a599f49c47d4fef03ace4446a7934124e7b4cd212be2
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3045022100d8df1a77d439e1a68621712e5cf65ecc503398f7a87a6b53fbd1d7251d1a62bd02203276f956f733314b20eb399f2027702463e203cd8f15f1dbe41fe157dcaac618
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 30440220771b9696276b14cf4e0342272f65be8ddf3d603036b03d13a82f522c0446843c022062e7b425f0e2d8a6a207e8324014a6d4d569d80e0fe5509ba1cd1581446d5a2b
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3046022100f052476d9a28b34372a358481c650f2aee5c91b88fa307ad39719c11d2ae2b79022100d5da4b0f6bab8923ec17533d455ed259d379fe265956b7106f2c44c4f56a70ed
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3046022100a6a63a03be4a3505ba28907fb2b028268387b657ae561fb5bf9c011a330a8dae022100bacb589b58eeb74b7ab85b1abdaf50f59ed03ea4a73dde66470b86dc34e25768
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3046022100f547541d72fad13c84399a2e74e00c2f2b6ee9c24b48bb06c00c321786273c07022100d28d340d5e507b1fd87011bc8a21b388f7a4ea6acbc67916667e278dd52c5c1b
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 304402205b64337764e6b896219a3502e4ea632fc03afe12c27ad0501640f46f7a6e62950220100cd011a79cbcba991f0994e4e406de9a390d8ede12d4a116f39072d8373463
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 3046022100a8ea150cb80125d7381c4c1f1da8e9de2711f9917060406a73d7904519e51388022100f3ab9fa68bd47973a73b2d40480c2ba50c22c9d76ec217257288293285449b86
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 304402206d5091f9497241fb2a99137f56734d70797c1620fa58f292f3ddc1c21980768a02207d4681372addeec97da13d3834429a49cf94c68cc6d8380fcc1fb897caeaa4d7
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 30440220111af92aa721abe4492468a6ad410f85351c3f71f6f076c5160eac1665bf08a002205d9f4658ec427e54fd64ccc367f50d48c7e5c2822299e258f443cc7890d25db9
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 3046022100ecd42e0caddf730e79911ea0725402d3e4519e93299217cfff7f27eb06383bcb022100b9002348257e8aa55de6326e8588d1e5ac7803e912dca2b6aac1c0b6c6ce887d
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 3046022100dd7ff4894d875b82698e738cd6af3e06df3dfe519c63c83bda6cb780003212680221008ae21af20504ca943014f87bc06eff0c72222900e7b78e49e7107d1d27f78d7a
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 304502202c4ffe7eba452ab8147fbd117091b6a6aed2c022b51a0559f45a210149827585022100f8f713031c6747382a930183f508cb5ba3dee9918623ed7b9246f7792895806f
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 30450220036e58fdd99c73206d0b989e315d4e7445853b29756abd9be4988043ee575318022100bca3bdbd7b13d674a507755a1fb25d6b9ad533e6aea4c07da2b662bf64074c1f
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 3045022100e8967620ea0878093f914bc670e9fd49e5e1d120cd8296f67934806921edd1eb0220091fe9cc8158606b7a93a87b830d8bf892c8086bc3ccb364b885adc11c5a2f5b
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 30450221008053d20f27c43e96e7cb99f0fb5ed638f391dbb8c49228bb164e3c5c7ed98df802200f8f909a360d019c8cd8cc4936c471cb0e81eec812a7815a413f015e5020a83a
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 304402201a05d145760911a0d03a3f9e04183b4fa12052ab08e8e2a61cecd685abe06ccd022015a45cdddd5b271b460fd23970e3f09bd3e428c5935a141131f7bb9cdcb31ffe
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3045022100986e65933ef2ed4ee5aada139f52b70539aaf63f00a91f29c69178490d57fb7102203dafedfb8da6189d372308cbf1489bbbdabf0c0217d1c0ff0f701aaa7a694b9c
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 304502200a1ba2c8595e428eb8efe4d0d527b57a9d65a18f2adb74a8d42b079cca3ded47022100a9b1d33b3b0498f08a46b3602d216cddd909b46a4531bb0c8eda027c813701ea
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3044022051a2d733ccc576739d202cac29631dd4a4c2b7bca274a88bed819b4fa74bc13a02203332485952b2bafdd23bb4bdd5b182c17d68fa989fb297e522f58267f579858b
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 30450221008523fa05039757ff31734c5a97512e16d36a2b44cfeaf698bf99a3da10192ce102201a4a46d618146dbd6f8b96bde830c1cd6b3c40b3c3f076b0525327b81421703c
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 30450221008b7c16aead127ff236229edf3b3d685389d833a6706f8baaf8d18c42c8e0fcb402207c007ac920eb885009bb826dacf204affc995b8b1da3088ab8233372e77bfcb9
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3046022100eb05151d10844480bb1da9bbd5fadeb94653979ce6473e1eae877c04b5dc136b022100f5626ba78e4936461be857439da72310f0159c53076ed7602b802b5c79296db6
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3046022100b1ef5e5b2ed946f33e3f14a755af39520397d425aa184e24c3a1ab2071bd28ad022100f06c9370a8fd969f14fe9fb10d18e593c1469e5716c7264880dd35a8589c4747
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 304502206da6c71eb7d8a2435999c8f6b7a1de30f2a863a2f07a8aad4d321d52cc619679022100ab1abe0cbd07504de3fd9ac64bed3bf89fb0061e251a1b1de2925e6635d523ec
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 30450220450e205ad97a14760979e1d5a24f2277c88382810b73c94ea53fa0d768ee18d1022100ba73359c371c5ff36c338bcd9761096647e0437db6a01b95df8cfa15ffc29bf4
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 304502201814378a581d4584664c2e24d695edeec6ce96971887a35a67df515e8788d44c022100c96da4442349d041183bba91d8f2b0279501c85b7b31f993c82268b6703c7b3f
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 4f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000]
+[key.wy = 0ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200044f337ccfd67726a805e4f1600ae2849df3807eca117380239fbd816900000000ed9dea124cc8c396416411e988c30f427eb504af43a3146cd5df7ea60666d685]
+[sha = SHA-256]
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 3046022100d434e262a49eab7781e353a3565e482550dd0fd5defa013c7f29745eff3569f10221009b0c0a93f267fb6052fd8077be769c2b98953195d7bc10de844218305c6ba17a
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 304402200fe774355c04d060f76d79fd7a772e421463489221bf0a33add0be9b1979110b0220500dcba1c69a8fbd43fa4f57f743ce124ca8b91a1f325f3fac6181175df55737
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 3045022100bb40bf217bed3fb3950c7d39f03d36dc8e3b2cd79693f125bfd06595ee1135e30220541bf3532351ebb032710bdb6a1bf1bfc89a1e291ac692b3fa4780745bb55677
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f497265004935]
+[key.wy = 084fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f49726500493584fa174d791c72bf2ce3880a8960dd2a7c7a1338a82f85a9e59cdbde80000000]
+[sha = SHA-256]
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 30440220664eb7ee6db84a34df3c86ea31389a5405badd5ca99231ff556d3e75a233e73a022059f3c752e52eca46137642490a51560ce0badc678754b8f72e51a2901426a1bd
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 304502204cd0429bbabd2827009d6fcd843d4ce39c3e42e2d1631fd001985a79d1fd8b430221009638bf12dd682f60be7ef1d0e0d98f08b7bca77a1a2b869ae466189d2acdabe3
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 3046022100e56c6ea2d1b017091c44d8b6cb62b9f460e3ce9aed5e5fd41e8added97c56c04022100a308ec31f281e955be20b457e463440b4fcf2b80258078207fc1378180f89b55
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 3cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f497265004935]
+[key.wy = 7b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200043cf03d614d8939cfd499a07873fac281618f06b8ff87e8015c3f4972650049357b05e8b186e38d41d31c77f5769f22d58385ecc857d07a561a6324217fffffff]
+[sha = SHA-256]
+
+# y-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 304402201158a08d291500b4cabed3346d891eee57c176356a2624fb011f8fbbf34668300220228a8c486a736006e082325b85290c5bc91f378b75d487dda46798c18f285519
+
+# y-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 3045022100b1db9289649f59410ea36b0c0fc8d6aa2687b29176939dd23e0dde56d309fa9d02203e1535e4280559015b0dbd987366dcf43a6d1af5c23c7d584e1c3f48a1251336
+
+# y-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 3046022100b7b16e762286cb96446aa8d4e6e7578b0a341a79f2dd1a220ac6f0ca4e24ed86022100ddc60a700a139b04661c547d07bbb0721780146df799ccf55e55234ecb8f12bc
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 2829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffff]
+[key.wy = 0a01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d030107034200042829c31faa2e400e344ed94bca3fcd0545956ebcfe8ad0f6dfa5ff8effffffffa01aafaf000e52585855afa7676ade284113099052df57e7eb3bd37ebeb9222e]
+[sha = SHA-256]
+
+# x-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 3045022100d82a7c2717261187c8e00d8df963ff35d796edad36bc6e6bd1c91c670d9105b402203dcabddaf8fcaa61f4603e7cbac0f3c0351ecd5988efb23f680d07debd139929
+
+# x-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 304402205eb9c8845de68eb13d5befe719f462d77787802baff30ce96a5cba063254af7802202c026ae9be2e2a5e7ca0ff9bbd92fb6e44972186228ee9a62b87ddbe2ef66fb5
+
+# x-coordinate of the public key has many trailing 1's
+msg = 4d657373616765
+result = valid
+sig = 304602210096843dd03c22abd2f3b782b170239f90f277921becc117d0404a8e4e36230c28022100f2be378f526f74a543f67165976de9ed9a31214eb4d7e6db19e1ede123dd991d
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f5]
+[key.wy = 5a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004fffffff948081e6a0458dd8f9e738f2665ff9059ad6aac0708318c4ca9a7a4f55a8abcba2dda8474311ee54149b973cae0c0fb89557ad0bf78e6529a1663bd73]
+[sha = SHA-256]
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 30440220766456dce1857c906f9996af729339464d27e9d98edc2d0e3b760297067421f60220402385ecadae0d8081dccaf5d19037ec4e55376eced699e93646bfbbf19d0b41
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 3046022100c605c4b2edeab20419e6518a11b2dbc2b97ed8b07cced0b19c34f777de7b9fd9022100edf0f612c5f46e03c719647bc8af1b29b2cde2eda700fb1cff5e159d47326dba
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 3046022100d48b68e6cabfe03cf6141c9ac54141f210e64485d9929ad7b732bfe3b7eb8a84022100feedae50c61bd00e19dc26f9b7e2265e4508c389109ad2f208f0772315b6c941
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 3fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e]
+[key.wy = 1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d0301070342000400000003fa15f963949d5f03a6f5c7f86f9e0015eeb23aebbff1173937ba748e1099872070e8e87c555fa13659cca5d7fadcfcb0023ea889548ca48af2ba7e71]
+[sha = SHA-256]
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 3046022100b7c81457d4aeb6aa65957098569f0479710ad7f6595d5874c35a93d12a5dd4c7022100b7961a0b652878c2d568069a432ca18a1a9199f2ca574dad4b9e3a05c0a1cdb3
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 304402206b01332ddb6edfa9a30a1321d5858e1ee3cf97e263e669f8de5e9652e76ff3f702205939545fced457309a6a04ace2bd0f70139c8f7d86b02cb1cc58f9e69e96cd5a
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 3046022100efdb884720eaeadc349f9fc356b6c0344101cd2fd8436b7d0e6a4fb93f106361022100f24bee6ad5dc05f7613975473aadf3aacba9e77de7d69b6ce48cb60d8113385d
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]
+[key.wy = 1352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015000000001352bb4a0fa2ea4cceb9ab63dd684ade5a1127bcf300a698a7193bc2]
+[sha = SHA-256]
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 3044022031230428405560dcb88fb5a646836aea9b23a23dd973dcbe8014c87b8b20eb0702200f9344d6e812ce166646747694a41b0aaf97374e19f3c5fb8bd7ae3d9bd0beff
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 3046022100caa797da65b320ab0d5c470cda0b36b294359c7db9841d679174db34c4855743022100cf543a62f23e212745391aaf7505f345123d2685ee3b941d3de6d9b36242e5a0
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 304502207e5f0ab5d900d3d3d7867657e5d6d36519bc54084536e7d21c336ed8001859450221009450c07f201faec94b82dfb322e5ac676688294aad35aa72e727ff0b19b646aa
+
+[key.curve = secp256r1]
+[key.keySize = 256]
+[key.type = ECPublicKey]
+[key.wx = 0bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015]
+[key.wy = 0fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]
+[keyDer = 3059301306072a8648ce3d020106082a8648ce3d03010703420004bcbb2914c79f045eaa6ecbbc612816b3be5d2d6796707d8125e9f851c18af015fffffffeecad44b6f05d15b33146549c2297b522a5eed8430cff596758e6c43d]
+[sha = SHA-256]
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 3046022100d7d70c581ae9e3f66dc6a480bf037ae23f8a1e4a2136fe4b03aa69f0ca25b35602210089c460f8a5a5c2bbba962c8a3ee833a413e85658e62a59e2af41d9127cc47224
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 30440220341c1b9ff3c83dd5e0dfa0bf68bcdf4bb7aa20c625975e5eeee34bb396266b34022072b69f061b750fd5121b22b11366fad549c634e77765a017902a67099e0a4469
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 3045022070bebe684cdcb5ca72a42f0d873879359bd1781a591809947628d313a3814f67022100aec03aca8f5587a4d535fa31027bbe9cc0e464b1c3577f4c2dcde6b2094798a9
+
diff --git a/third_party/wycheproof/ecdsa_secp384r1_sha384_test.txt b/third_party/wycheproof/ecdsa_secp384r1_sha384_test.txt
new file mode 100644
index 0000000..ae61087
--- /dev/null
+++ b/third_party/wycheproof/ecdsa_secp384r1_sha384_test.txt
@@ -0,0 +1,2293 @@
+# Imported from Wycheproof's ecdsa_secp384r1_sha384_test.json.
+# This file is generated by convert_wycheproof.go. Do not edit by hand.
+#
+# Algorithm: ECDSA
+# Generator version: 0.4
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 2da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa]
+[key.wy = 4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]
+[sha = SHA-384]
+
+# signature malleability
+msg = 313233343030
+result = valid
+sig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702301840da9fc1d2f8f8900cf485d5413b8c2574ee3a8d4ca03995ca30240e09513805bf6209b58ac7aa9cff54eecd82b9f1
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 3064023077391f04a7b47a003a9b68ae641d6022093a5fa29464b1826228cbffc35a3a655f9712d478dec2f72dd3c02ce31c075a02305e8daba38b616460ec0e4b6477ce0266aa2f62b0cdb224907a8f999abfa68b48657677b018a29767c0926a1640fd9b0a
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 3065023100c46c6312342ad3b2d260d33a0cc41d13378daf8570d7b937980761ea0cc18c9948b40fcd790bb2021afaa8cb4fc76ff502307a7547ed765905268768027bc59f1edf367e4088b779c2618f4c1e6f0f56154351aac80cd59d4907ef2f93155c16523d
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 30660231009584b8a737f417dfeef0eb1a8f727e14b231ec372eb0520a2357b44478bd076e7a3e4e8bac670bfd3419296c9d854da1023100beca69a1c97e08af8e9a5cb76d9c46c6ee022b670962dc1e59850e6a9266d216aa816225d8ebcb7c4de88ceb3c1bae3d
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 30650230700041c0719c076f07280dec96763c88efdb903660d57182c9c7753b0334abb2e4dd2726f63ce1a8acd0eb67a492161f0231008028097fd011fea390fba8f50c36e5676867325d0bce627c3ddc3581ed3ba7ff1e76f5ece6304c172e9144756f47b2b8
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 30650230409616ba406241c624514057defe1c868e655bca413af7aa0fb3d80c4969df41d9bb5d3a733b400705453a965e80d46d023100da24d79fdb11e4612faf34b8b64af8067492d6510c4eddb1310e578d1f49a43e427dcd188b259f9012791718776253ab
+
+# Legacy:ASN encoding of s misses leading 0
+msg = 313233343030
+result = acceptable
+sig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70230e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+# Some implementations of ECDSA and DSA incorrectly encode r and s by not
+# including leading zeros in the ASN encoding of integers when necessary. Hence,
+# some implementations (e.g. jdk) allow signatures with incorrect ASN encodings
+# assuming that the signature is otherwise valid.
+
+# valid
+msg = 313233343030
+result = valid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 308165023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 306602813012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 3066023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702813100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 30820065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 30670282003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70282003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 3066023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 3065023112b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 3065022f12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023200e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 30850100000065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 306a0285010000003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 306a023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70285010000003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3089010000000000000065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 306e028901000000000000003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 306e023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7028901000000000000003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 30847fffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 306902847fffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702847fffffff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 3084ffffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 30690284ffffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70284ffffffff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 3085ffffffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 306a0285ffffffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 306a023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70285ffffffffff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 3088ffffffffffffffff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 306d0288ffffffffffffffff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 306d023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70288ffffffffffffffff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 30ff023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 306502ff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702ff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 3065028012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7028000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# removing sequence
+msg = 313233343030
+result = invalid
+sig = 
+
+# appending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000
+
+# prepending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 30670000023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820500
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 3067023212b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70500023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023300e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820500
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306a4981773065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306925003065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30673065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820004deadbeef
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306a2235498177023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306922342500023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306d2232023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70004deadbeef023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306a023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72236498177023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d722352500023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306d023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72233023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820004deadbeef
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 306daa00bb00cd003065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 306baa02aabb3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 306d2238aa00bb00cd00023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 306b2236aa02aabb023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 306d023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72239aa00bb00cd00023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 306b023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72237aa02aabb023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 30803065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 30692280023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72280023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 30803165023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 30692280033012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d72280033100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000
+
+# Replacing sequence with NULL
+msg = 313233343030
+result = invalid
+sig = 0500
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2e65023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2f65023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3165023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3265023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = ff65023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3065003012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3065013012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3065033012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3065043012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3065ff3012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7003100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7013100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7033100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7043100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7ff3100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# dropping value of sequence
+msg = 313233343030
+result = invalid
+sig = 3000
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 306930010230643012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 30692234020112022fb30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 3069023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d722350201000230e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 30643012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# indefinite length
+msg = 313233343030
+result = invalid
+sig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000
+
+# indefinite length with truncated delimiter
+msg = 313233343030
+result = invalid
+sig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f8200
+
+# indefinite length with additional element
+msg = 313233343030
+result = invalid
+sig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f8205000000
+
+# indefinite length with truncated element
+msg = 313233343030
+result = invalid
+sig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82060811220000
+
+# indefinite length with garbage
+msg = 313233343030
+result = invalid
+sig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000fe02beef
+
+# indefinite length with nonempty EOC
+msg = 313233343030
+result = invalid
+sig = 3080023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820002beef
+
+# prepend empty sequence
+msg = 313233343030
+result = invalid
+sig = 30673000023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# append empty sequence
+msg = 313233343030
+result = invalid
+sig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f823000
+
+# sequence of sequence
+msg = 313233343030
+result = invalid
+sig = 30673065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# truncated sequence
+msg = 313233343030
+result = invalid
+sig = 3032023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7
+
+# repeat element in sequence
+msg = 313233343030
+result = invalid
+sig = 308198023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# removing integer
+msg = 313233343030
+result = invalid
+sig = 3033023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# appending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 3067023212b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70000023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# appending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023300e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f820000
+
+# prepending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 30670232000012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# prepending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 3067023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70233000000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# Replacing integer with NULL
+msg = 313233343030
+result = invalid
+sig = 30350500023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# Replacing integer with NULL
+msg = 313233343030
+result = invalid
+sig = 3034023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70500
+
+# dropping value of integer
+msg = 313233343030
+result = invalid
+sig = 30350200023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# dropping value of integer
+msg = 313233343030
+result = invalid
+sig = 3034023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70200
+
+# modify first byte of integer
+msg = 313233343030
+result = invalid
+sig = 3065023010b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# modify first byte of integer
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023102e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# modify last byte of integer
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c54857023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# modify last byte of integer
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f02
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 3064022f12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 3064022fb30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023000e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70230e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# leading ff in integer
+msg = 313233343030
+result = invalid
+sig = 30660231ff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# leading ff in integer
+msg = 313233343030
+result = invalid
+sig = 3066023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70232ff00e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# infinity
+msg = 313233343030
+result = invalid
+sig = 3036090180023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# infinity
+msg = 313233343030
+result = invalid
+sig = 3035023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7090180
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 306602310112b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19a25617aad7485e6312a8589714f647acf7a94cffbe8a724a023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 30660231ff12b30abef6b5476fe6b612ae557c0425661e26b44b1bfe1a138f7ca6eeda02a462743d328394f8b71dd11a2a25001f64023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 30650230ed4cf541094ab8901949ed51aa83fbda99e1d94bb4e401e6250d35d71ceecf7c4571b51b33ba5fcdf542cc6b0e3ab729023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3066023100ed4cf541094ab8901949ed51aa83fbda99e1d94bb4e401e5ec7083591125fd5b9d8bc2cd7c6b0748e22ee5d5daffe09c023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 30660231feed4cf541094ab8901949ed51aa83fbda99e1d94bb4e401e65da9e85528b7a19ced57a768eb09b8530856b30041758db6023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 306602310112b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3066023100ed4cf541094ab8901949ed51aa83fbda99e1d94bb4e401e6250d35d71ceecf7c4571b51b33ba5fcdf542cc6b0e3ab729023100e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023101e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc5f8fc6adfda650a86aa74b95adbd6874b3cd8dde6cc0798f5
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70230e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc66a35cfdbf1f6aec7fa409df64a7538556300ab11327d460f
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70231ff1840da9fc1d2f8f8900cf485d5413b8c2574ee3a8d4ca039ce66e2a219d22358ada554576cda202fb0133b8400bd907e
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d70231fe1840da9fc1d2f8f8900cf485d5413b8c2574ee3a8d4ca03a07039520259af579558b46a5242978b4c327221933f8670b
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3065023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d7023101e7bf25603e2d07076ff30b7a2abec473da8b11c572b35fc631991d5de62ddca7525aaba89325dfd04fecc47bff426f82
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3064023012b30abef6b5476fe6b612ae557c0425661e26b44b1bfe19daf2ca28e3113083ba8e4ae4cc45a0320abd3394f1c548d702301840da9fc1d2f8f8900cf485d5413b8c2574ee3a8d4ca039ce66e2a219d22358ada554576cda202fb0133b8400bd907e
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020100020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020100020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201000201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020100023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020100023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3008020100090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020101020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020101020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201010201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3008020101090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30360201ff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30360201ff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30080201ff090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529730201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529720201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529740201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3038023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000001000000000201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3038023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Edge case for Shamir multiplication
+msg = 3133323237
+result = valid
+sig = 3066023100ac042e13ab83394692019170707bc21dd3d7b8d233d11b651757085bdd5767eabbb85322984f14437335de0cdf565684023100bd770d3ee4beadbabe7ca46e8c4702783435228d46e2dd360e322fe61c86926fa49c8116ec940f72ac8c30d9beb3e12f
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 4bf4e52f958427ebb5915fb8c9595551b4d3a3fdab67badd9d6c3093f425ba43630df71f42f0eb7ceaa94d9f6448a85d]
+[key.wy = 0d30331588249fd2fdc0b309ec7ed8481bc16f27800c13d7db700fc82e1b1c8545aa0c0d3b56e3bfe789fc18a916887c2]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200044bf4e52f958427ebb5915fb8c9595551b4d3a3fdab67badd9d6c3093f425ba43630df71f42f0eb7ceaa94d9f6448a85dd30331588249fd2fdc0b309ec7ed8481bc16f27800c13d7db700fc82e1b1c8545aa0c0d3b56e3bfe789fc18a916887c2]
+[sha = SHA-384]
+
+# k*G has a large x-coordinate
+msg = 313233343030
+result = valid
+sig = 304d0218389cb27e0bc8d21fa7e5f24cb74f58851313e696333ad68b023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970
+
+# r too large
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 3623bb296b88f626d0f92656bf016f115b721277ccb4930739bfbd81f9c1e734630e0685d32e154e0b4a5c62e43851f6]
+[key.wy = 768356b4a5764c128c7b1105e3d778a89d1e01da297ede1bc4312c2583e0bbddd21613583dd09ab895c63be479f94576]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200043623bb296b88f626d0f92656bf016f115b721277ccb4930739bfbd81f9c1e734630e0685d32e154e0b4a5c62e43851f6768356b4a5764c128c7b1105e3d778a89d1e01da297ede1bc4312c2583e0bbddd21613583dd09ab895c63be479f94576]
+[sha = SHA-384]
+
+# r,s are large
+msg = 313233343030
+result = valid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0d516cb8ac8e4457b693d5192beeb6ce7d9a46bef48eecf3ea823286f101f98d130f5a26dc6fec23662eff07f14486fd5]
+[key.wy = 08456932e74894b7f0e3bb0dfd362502b3765dd80a3177209fb221dc9b51aaf4470b245391405bef514176b13a267a720]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d516cb8ac8e4457b693d5192beeb6ce7d9a46bef48eecf3ea823286f101f98d130f5a26dc6fec23662eff07f14486fd58456932e74894b7f0e3bb0dfd362502b3765dd80a3177209fb221dc9b51aaf4470b245391405bef514176b13a267a720]
+[sha = SHA-384]
+
+# r and s^-1 have a large Hamming weight
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d1aee55fdc2a716ba2fabcb57020b72e539bf05c7902f98e105bf83d4cc10c2a159a3cf7e01d749d2205f4da6bd8fcf1
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0a8380cd35026e13bf87be693cdb6e75a82d765b4019b529e8d277c4af6c9db27ebb5d3f86e88add9d5b61186f04c83a9]
+[key.wy = 092a187507c737325d2cc624acef3cd036bfa99e0c1518be65c88bb51f900f94123acabad81d15130d3ade7ff7e4364e1]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a8380cd35026e13bf87be693cdb6e75a82d765b4019b529e8d277c4af6c9db27ebb5d3f86e88add9d5b61186f04c83a992a187507c737325d2cc624acef3cd036bfa99e0c1518be65c88bb51f900f94123acabad81d15130d3ade7ff7e4364e1]
+[sha = SHA-384]
+
+# r and s^-1 have a large Hamming weight
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b6b681dc484f4f020fd3f7e626d88edc6ded1b382ef3e143d60887b51394260832d4d8f2ef70458f9fa90e38c2e19e4f
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 554f2fd0b700a9f4568752b673d9c0d29dc96c10fe67e38c6d6d339bfafe05f970da8c3d2164e82031307a44bd322511]
+[key.wy = 71312b61b59113ff0bd3b8a9a4934df262aa8096f840e9d8bffa5d7491ded87b38c496f9b9e4f0ba1089f8d3ffc88a9f]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004554f2fd0b700a9f4568752b673d9c0d29dc96c10fe67e38c6d6d339bfafe05f970da8c3d2164e82031307a44bd32251171312b61b59113ff0bd3b8a9a4934df262aa8096f840e9d8bffa5d7491ded87b38c496f9b9e4f0ba1089f8d3ffc88a9f]
+[sha = SHA-384]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020102020101
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 44ee3335fa77d2fb02e4bd7074f45e598a879c0fa822ec718c21dc13b83440edc4e3c10a1858423e03044c9eff22591c]
+[key.wy = 0d027c49933e5510557d6b4b2c6f66fe5dcb9302a3b13fdc68048c3fcac88ba152b6a9833c87fdc6280afc5d11ab7c107]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000444ee3335fa77d2fb02e4bd7074f45e598a879c0fa822ec718c21dc13b83440edc4e3c10a1858423e03044c9eff22591cd027c49933e5510557d6b4b2c6f66fe5dcb9302a3b13fdc68048c3fcac88ba152b6a9833c87fdc6280afc5d11ab7c107]
+[sha = SHA-384]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020102020102
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0e2f87f72e3c66c73037fe77607d42ad2d9c4cc159893b4b9b8b0365d3a7766dbe8678b02e2b68f58e5a4f7681061a390]
+[key.wy = 0e38f2142818542bef6b2bc3a2c4f43c95e5259d6bd5401531378c7ca125a1f6cc609d4fadfc5c9a99358ee77ff780c8d]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e2f87f72e3c66c73037fe77607d42ad2d9c4cc159893b4b9b8b0365d3a7766dbe8678b02e2b68f58e5a4f7681061a390e38f2142818542bef6b2bc3a2c4f43c95e5259d6bd5401531378c7ca125a1f6cc609d4fadfc5c9a99358ee77ff780c8d]
+[sha = SHA-384]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020102020103
+
+# r is larger than n
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52975020103
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 5e67c44fc0cbc9a8eb343b4d6f596c7d00cac5da8594caf45b7209397496214c42d856a015ce589bc9ba865a4fab5ab]
+[key.wy = 088a01c7b5d09efaf878fcb9102fb3875a8381af234d1c593076e452225a56f51674f347126d3009b44dcbb003a64d95f]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000405e67c44fc0cbc9a8eb343b4d6f596c7d00cac5da8594caf45b7209397496214c42d856a015ce589bc9ba865a4fab5ab88a01c7b5d09efaf878fcb9102fb3875a8381af234d1c593076e452225a56f51674f347126d3009b44dcbb003a64d95f]
+[sha = SHA-384]
+
+# s is larger than n
+msg = 313233343030
+result = invalid
+sig = 3036020102023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accd7fffa
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0bb03fce3c01ebcf0873abd134a8682f5fb8dbffa22da674047e5c3e71e43de582ed6abb908c2e4faa5d96186278b6c1]
+[key.wy = 0ba3b22123e68ccc56f17dd79ff15565706f71a0b6123c77af3cd88f0af024cc5259781516edcaf5fe990646e7b66999d]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200040bb03fce3c01ebcf0873abd134a8682f5fb8dbffa22da674047e5c3e71e43de582ed6abb908c2e4faa5d96186278b6c1ba3b22123e68ccc56f17dd79ff15565706f71a0b6123c77af3cd88f0af024cc5259781516edcaf5fe990646e7b66999d]
+[sha = SHA-384]
+
+# small r and s^-1
+msg = 313233343030
+result = valid
+sig = 3036020201000230489122448912244891224489122448912244891224489122347ce79bc437f4d071aaa92c7d6c882ae8734dc18cb0d553
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 58f246090d5e49863bc0bf2d501ff72f551c5f1c5e679eb49064fd02e221a2707326ec2d140bcc817afaad5065761566]
+[key.wy = 497c823fd736882cbf78fb92b1a5589b67e8067497c710a4cbb39dee2c5431bc45cfb96c9f8454385c9f2b3ef2d3d31a]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000458f246090d5e49863bc0bf2d501ff72f551c5f1c5e679eb49064fd02e221a2707326ec2d140bcc817afaad5065761566497c823fd736882cbf78fb92b1a5589b67e8067497c710a4cbb39dee2c5431bc45cfb96c9f8454385c9f2b3ef2d3d31a]
+[sha = SHA-384]
+
+# smallish r and s^-1
+msg = 313233343030
+result = valid
+sig = 303c02072d9b4d347952cd023100ce751512561b6f57c75342848a3ff98ccf9c3f0219b6b68d00449e6c971a85d2e2ce73554b59219d54d2083b46327351
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0fc6984dd6830d1485fb2581a45a791d8dca2c727c73d3d44c89f0082c1868af5ca74b4ca4ae22802640a9ebfe8c7ae12]
+[key.wy = 0998d63a5b5ad1b72b899f0b132e4952aaa19d41fdeea48b1ed6b8358dd1db207fd66e01453ad40f67b836adc802d5fe8]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fc6984dd6830d1485fb2581a45a791d8dca2c727c73d3d44c89f0082c1868af5ca74b4ca4ae22802640a9ebfe8c7ae12998d63a5b5ad1b72b899f0b132e4952aaa19d41fdeea48b1ed6b8358dd1db207fd66e01453ad40f67b836adc802d5fe8]
+[sha = SHA-384]
+
+# 100-bit r and small s^-1
+msg = 313233343030
+result = valid
+sig = 3041020d1033e67e37b32b445580bf4efb02302ad52ad52ad52ad52ad52ad52ad52ad52ad52ad52ad52ad5215c51b320e460542f9cc38968ccdf4263684004eb79a452
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 1b8def5922303d647e8eb07e3bad92f924b79b769eef168e7541de1f4e0d28ae9733eb98cf8a1fb6dd52ca02c8c75b51]
+[key.wy = 0c7aa4bf679d49d8114122074da8f6044a427371796a5654a6106162d5f686abb73ebd896ab08c7062687f12171fbe4a3]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200041b8def5922303d647e8eb07e3bad92f924b79b769eef168e7541de1f4e0d28ae9733eb98cf8a1fb6dd52ca02c8c75b51c7aa4bf679d49d8114122074da8f6044a427371796a5654a6106162d5f686abb73ebd896ab08c7062687f12171fbe4a3]
+[sha = SHA-384]
+
+# small r and 100 bit s^-1
+msg = 313233343030
+result = valid
+sig = 303602020100023077a172dfe37a2c53f0b92ab60f0a8f085f49dbfd930719d6f9e587ea68ae57cb49cd35a88cf8c6acec02f057a3807a5b
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 1734a039a88a16c2ff4aa97d2399121f56f52ef01ed5e50887f736f65b6e51d6e8786abb4e063da5d1ba812dff998403]
+[key.wy = 0ccd698e6c296d5cd69178f8a82481a865da331627f1c4b324fbc02b36e8b5ed58a31f728e904d203a388755302195765]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200041734a039a88a16c2ff4aa97d2399121f56f52ef01ed5e50887f736f65b6e51d6e8786abb4e063da5d1ba812dff998403ccd698e6c296d5cd69178f8a82481a865da331627f1c4b324fbc02b36e8b5ed58a31f728e904d203a388755302195765]
+[sha = SHA-384]
+
+# 100-bit r and s^-1
+msg = 313233343030
+result = valid
+sig = 3041020d062522bbd3ecbe7c39e93e7c24023077a172dfe37a2c53f0b92ab60f0a8f085f49dbfd930719d6f9e587ea68ae57cb49cd35a88cf8c6acec02f057a3807a5b
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 52ca47dda99172cb8321495acf988548295988ec973c1b4ea9462c53e5768a704a936410ee847b5dbf1e9d0c131da6c7]
+[key.wy = 087a47027e6655792eb002d4228ee72f7c814c9a0cecbff267948f81c9903ac10eb35f6cb86369224ed609811cdf390f4]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000452ca47dda99172cb8321495acf988548295988ec973c1b4ea9462c53e5768a704a936410ee847b5dbf1e9d0c131da6c787a47027e6655792eb002d4228ee72f7c814c9a0cecbff267948f81c9903ac10eb35f6cb86369224ed609811cdf390f4]
+[sha = SHA-384]
+
+# r and s^-1 are close to n
+msg = 313233343030
+result = valid
+sig = 3065023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f3023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0bd3d91f003e18adbea73079d4eba23b91fc17fcec14c9eb15a193fbc9ca39c8c747cd7a2c9623e05dd587ccbb8ab4c44]
+[key.wy = 3adb0a0706aa5ea7a68042082fccefc979612a7a1a3d694b00793b03f89bff866a8b97c8e77990c29360ce795036c764]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004bd3d91f003e18adbea73079d4eba23b91fc17fcec14c9eb15a193fbc9ca39c8c747cd7a2c9623e05dd587ccbb8ab4c443adb0a0706aa5ea7a68042082fccefc979612a7a1a3d694b00793b03f89bff866a8b97c8e77990c29360ce795036c764]
+[sha = SHA-384]
+
+# s == 1
+msg = 313233343030
+result = valid
+sig = 3035023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326020101
+
+# s == 0
+msg = 313233343030
+result = invalid
+sig = 3035023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326020100
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0f896353cc3a8afdd543ec3aef062ca97bc32ed1724ea38b940b8c0ea0e23b34187afbe70daf8dbaa5b511557e5d2bdda]
+[key.wy = 0c4bd265da67ceeafca636f6f4c0472f22a9d02e2289184f73bbb700ae8fc921eff4920f290bfcb49fbb232cc13a21028]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f896353cc3a8afdd543ec3aef062ca97bc32ed1724ea38b940b8c0ea0e23b34187afbe70daf8dbaa5b511557e5d2bddac4bd265da67ceeafca636f6f4c0472f22a9d02e2289184f73bbb700ae8fc921eff4920f290bfcb49fbb232cc13a21028]
+[sha = SHA-384]
+
+# point at infinity during verify
+msg = 313233343030
+result = invalid
+sig = 306402307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294b9023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 3ecfd58a3ce583866e0471d16eb3c10a411ec3b8671f3a04769b1ed8464a71cf1c76d8d9b7e3670bbe712d6f554a9383]
+[key.wy = 0d980d8bedf57470d6b45cc1ad0c6426dc70a0e4be901106a36663bfcab04fcb86008777b92445120d5e3641d97396362]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200043ecfd58a3ce583866e0471d16eb3c10a411ec3b8671f3a04769b1ed8464a71cf1c76d8d9b7e3670bbe712d6f554a9383d980d8bedf57470d6b45cc1ad0c6426dc70a0e4be901106a36663bfcab04fcb86008777b92445120d5e3641d97396362]
+[sha = SHA-384]
+
+# u1 == 1
+msg = 313233343030
+result = valid
+sig = 3065023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023100f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d38179023942871acb7002dfafdfffc8deace
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 4150ccd0fa45aa2ef6b5042ddbb1b87c5ffd1115a8fe5995641948acda82a7b190762d84352cd74d1ca01e79f68f9cb4]
+[key.wy = 0eb11be9d494c181c156e23e77e532bdf0a20c3cc74ba8c29b1f3eb2bd99129ee0d70ff0d593f0d7a6d6887e7c55930d2]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200044150ccd0fa45aa2ef6b5042ddbb1b87c5ffd1115a8fe5995641948acda82a7b190762d84352cd74d1ca01e79f68f9cb4eb11be9d494c181c156e23e77e532bdf0a20c3cc74ba8c29b1f3eb2bd99129ee0d70ff0d593f0d7a6d6887e7c55930d2]
+[sha = SHA-384]
+
+# u1 == n - 1
+msg = 313233343030
+result = valid
+sig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec63260230064ed80f27e1432e84845f15ece399f2cbf4fa31aa837de9b953d44413b9f5c7c7f67989d703f07abef11b6ad0373ea5
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0e78fe2c11beac7090ee0af7fed469a8ccebd3cccc4ee9fccc8ef3fc0455b69aaa082dc13e1d84f34026cb6f0af9e992f]
+[key.wy = 0f34ebba71bf3a4050bf28e4084b5c5f5d4098ec46f10a31b02fb4bf20cc9362f6f02a66e802f817507535fac3ec0b099]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e78fe2c11beac7090ee0af7fed469a8ccebd3cccc4ee9fccc8ef3fc0455b69aaa082dc13e1d84f34026cb6f0af9e992ff34ebba71bf3a4050bf28e4084b5c5f5d4098ec46f10a31b02fb4bf20cc9362f6f02a66e802f817507535fac3ec0b099]
+[sha = SHA-384]
+
+# u2 == 1
+msg = 313233343030
+result = valid
+sig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0ee24ab8a34d05af684939357f32759cc5a14f3c717529a20aea8e0c5965d8a41e68925f688471994b72021ba51b28c09]
+[key.wy = 0a55693c92ad0cbae9edcf515e2b4c060b888d82c81e4a3b6a173b62ed04a46fa95db1a2f3949980fba2e371263c4fa9]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ee24ab8a34d05af684939357f32759cc5a14f3c717529a20aea8e0c5965d8a41e68925f688471994b72021ba51b28c090a55693c92ad0cbae9edcf515e2b4c060b888d82c81e4a3b6a173b62ed04a46fa95db1a2f3949980fba2e371263c4fa9]
+[sha = SHA-384]
+
+# u2 == n - 1
+msg = 313233343030
+result = valid
+sig = 3065023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023100aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa84ecde56a2cf73ea3abc092185cb1a51f34810f1ddd8c64d
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 3d2e916055c92e1b36133f5937b37c1b0102834eb77008a3ba9c3da446e9065971d68ba913091851e10cff5b4cd875c1]
+[key.wy = 39aa7aadfc2caf7107b17ae1aea8b299d61bf15aca0cb3fd6f1ffde8192bfe58f0822bbbc1f55bddf6b4fe9c8f2b0eac]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200043d2e916055c92e1b36133f5937b37c1b0102834eb77008a3ba9c3da446e9065971d68ba913091851e10cff5b4cd875c139aa7aadfc2caf7107b17ae1aea8b299d61bf15aca0cb3fd6f1ffde8192bfe58f0822bbbc1f55bddf6b4fe9c8f2b0eac]
+[sha = SHA-384]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0230533b0d50480a3ef07e7e8af8b1097759bc03ac9a1c7ed6075a052869f57f12b285613162d08ee7aab9fe54aaa984a39a
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0ae596697427aa250156c05ac4338e48980a7f093ea1f1fe67098b43f6539c1b20ae74338f9bf270d33663c50abe8fd00]
+[key.wy = 1ca6a52732db74ab15d2f249a3d839080f898367dfd64992cdce2708deaad523a2a236b43400424241c91a35b530fa50]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ae596697427aa250156c05ac4338e48980a7f093ea1f1fe67098b43f6539c1b20ae74338f9bf270d33663c50abe8fd001ca6a52732db74ab15d2f249a3d839080f898367dfd64992cdce2708deaad523a2a236b43400424241c91a35b530fa50]
+[sha = SHA-384]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d49a253986bbaa8ce9c3d3808313d39c3b950a478372edc009bc0566b73be7b05dad0737e16960257cc16db6ec6c620f
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 088738f9981dd4d1fabb60ad83c2dd6dfc9da302209ae3e53498a883b6e39a38bead9b02709f352d3e6b6578154eab252]
+[key.wy = 09388a05c6b9f3a4028abb9950a51f5264ecd7580a423fdec9472faeeb57f92e31c46bef2a781fe5edad026009f198262]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000488738f9981dd4d1fabb60ad83c2dd6dfc9da302209ae3e53498a883b6e39a38bead9b02709f352d3e6b6578154eab2529388a05c6b9f3a4028abb9950a51f5264ecd7580a423fdec9472faeeb57f92e31c46bef2a781fe5edad026009f198262]
+[sha = SHA-384]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0230285090b0d6a6820bbba394efbee5c24a2281e825d2f6c55fb7a85b8251db00f75ab07cc993ceaf664f3c116baf34b021
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0f421541311c94fdd79fc298f8ab1a3adfd08029fdad439a94d4cea11f7e799bc439609f2fb7be3f349d55e484d0a0d36]
+[key.wy = 0b35330bbdbec1e75f2984483d96bf210d722c1830292ffc35a2f6a21a4b50519f565f024bbccc97228a2f8ad8fadc0d5]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f421541311c94fdd79fc298f8ab1a3adfd08029fdad439a94d4cea11f7e799bc439609f2fb7be3f349d55e484d0a0d36b35330bbdbec1e75f2984483d96bf210d722c1830292ffc35a2f6a21a4b50519f565f024bbccc97228a2f8ad8fadc0d5]
+[sha = SHA-384]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b39af4a81ee4ae79064ed80f27e1432e84845f15ece399f2a43d2505a0a8c72c5731f4fd967420b1000e3f75502ed7b7
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 399be4cfc439f94f2421cbd34c2cd90bae53eb60ddfafca52f7275d165d14fa659b636713b5d4b39e62fd48bae141d0e]
+[key.wy = 1b23e3b4f0c202ed7b59db78a35c12ac698c603eab144fd09ac2ed8f4495f607e4d2c87a23ce2ec33e410ca47ecc2555]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004399be4cfc439f94f2421cbd34c2cd90bae53eb60ddfafca52f7275d165d14fa659b636713b5d4b39e62fd48bae141d0e1b23e3b4f0c202ed7b59db78a35c12ac698c603eab144fd09ac2ed8f4495f607e4d2c87a23ce2ec33e410ca47ecc2555]
+[sha = SHA-384]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100af4a81ee4ae79064ed80f27e1432e84845f15ece399f2cbf28df829ccd30f5ef62ec23957b837d73fe4e156edccd4465
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 1578bbff72137c4bca33d7385a892be94cb059f9091ddfe890345f712a9fba5fc77084cec11084ed048491604a07f66c]
+[key.wy = 76bbaa872f0710d82a08d9dddd833c7be7c7e8e265f49145157eb4e8e8280076a37ee5873271db510034da19da24415b]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200041578bbff72137c4bca33d7385a892be94cb059f9091ddfe890345f712a9fba5fc77084cec11084ed048491604a07f66c76bbaa872f0710d82a08d9dddd833c7be7c7e8e265f49145157eb4e8e8280076a37ee5873271db510034da19da24415b]
+[sha = SHA-384]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02305e9503dc95cf20c9db01e4fc2865d0908be2bd9c733e597e8a5bb7b7a62abdff6dbe3978ae56536d0fb01172ecd55f57
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 33ba451c85e729058f83041077a4695eb47df93e718b09a4618c753ac803cd75c1a91290c2ff5a635389d07149571dab]
+[key.wy = 1fc7d8a71776851ff244ff632fe6f92e1652e5284893c4244fe775d8efc589d823dd03f3919027f004537bd8ee09f3a3]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000433ba451c85e729058f83041077a4695eb47df93e718b09a4618c753ac803cd75c1a91290c2ff5a635389d07149571dab1fc7d8a71776851ff244ff632fe6f92e1652e5284893c4244fe775d8efc589d823dd03f3919027f004537bd8ee09f3a3]
+[sha = SHA-384]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02301ee4ae79064ed80f27e1432e84845f15ece399f2cbf4fa31a3ae8edab84dc3330a39f70938e3912bd59753de5aed3088
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 40771e3390216fed2c6208bdf5bfea83ab1915b166e626569f12efd410a39b7e7c76f70f0012843a26debf4ccc33dda]
+[key.wy = 0e5bc5f7e62d054eac31cd022afdb71b7c638f24c30cbad0ef35ed2fc9917f356e9c3f04391b21d1035274b81537fcbf3]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004040771e3390216fed2c6208bdf5bfea83ab1915b166e626569f12efd410a39b7e7c76f70f0012843a26debf4ccc33ddae5bc5f7e62d054eac31cd022afdb71b7c638f24c30cbad0ef35ed2fc9917f356e9c3f04391b21d1035274b81537fcbf3]
+[sha = SHA-384]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100bb51cd3ba8eb201f53ddb4e34e08c0ff7dff9378106784d798d5a3440bd6dc34be3a0eaef8776619a0c97fefb15720b3
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 098d3f16e1c510a933e648e78d01588319f002e9475df8942a2a89db0666bb7c88b32bb248140e44ac4ab28111b2b7923]
+[key.wy = 099a926f4a66fbe28ff65c09f8306893aec094b89d0fe529e3577c5ecf30a7944caaf530f4575eb113fcf4c200d2dd4bd]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000498d3f16e1c510a933e648e78d01588319f002e9475df8942a2a89db0666bb7c88b32bb248140e44ac4ab28111b2b792399a926f4a66fbe28ff65c09f8306893aec094b89d0fe529e3577c5ecf30a7944caaf530f4575eb113fcf4c200d2dd4bd]
+[sha = SHA-384]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100e707e267ea635384a6da09823149f5cb7acbb29e910d2630c5fb5afbc42aa8436349b214a3b8fb9481ec999e005091f8
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0d1fd602feef80be9e55a19d1a9799c72a899110c6ac21fb3c21357069809d591a8775b64d1867a8cfff124f6a5e3a4f5]
+[key.wy = 0f9548064f01b9af8868705493a37a037193b48f53b7c7973023f53e6ceff6830ca2f7a14ef51536d453af43b3058d8a9]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d1fd602feef80be9e55a19d1a9799c72a899110c6ac21fb3c21357069809d591a8775b64d1867a8cfff124f6a5e3a4f5f9548064f01b9af8868705493a37a037193b48f53b7c7973023f53e6ceff6830ca2f7a14ef51536d453af43b3058d8a9]
+[sha = SHA-384]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100acc4f2afb7f5c10f818175074ef688a643fc5365e38129f86d5e2517feb81b2cd2b8dc4f7821bfd032edc4c0234085d9
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 082f37604f66664c2883dba6d98397c281045cbf59f1d16dddb1381126a246553a8b4d2aaea48ad9185a1645f65567d31]
+[key.wy = 08a4d7b19f1d2e4434c9a8ecad396304abc82221bbab0679935071c72fd975e7b021c04b1d16ea36fc2d051ef5a8e117c]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000482f37604f66664c2883dba6d98397c281045cbf59f1d16dddb1381126a246553a8b4d2aaea48ad9185a1645f65567d318a4d7b19f1d2e4434c9a8ecad396304abc82221bbab0679935071c72fd975e7b021c04b1d16ea36fc2d051ef5a8e117c]
+[sha = SHA-384]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02310083276c0793f0a19742422f8af671ccf965fa7d18d541bef4c05b90e303f891d39008439e0fda4bfad5ee9a6ace7e340c
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0f052dfc27bf8a6d36f3739f239b981f5b53fe08d999ec683b01e43e7596156206ba08b8b9f59229e2fbdce05f1e40f99]
+[key.wy = 090f0fdfb7029f9b3e8c6144dad0339208b7cdcb3820a554259db9d27afdd18f4a750296c59bad6b62df076f90d53be0d]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f052dfc27bf8a6d36f3739f239b981f5b53fe08d999ec683b01e43e7596156206ba08b8b9f59229e2fbdce05f1e40f9990f0fdfb7029f9b3e8c6144dad0339208b7cdcb3820a554259db9d27afdd18f4a750296c59bad6b62df076f90d53be0d]
+[sha = SHA-384]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100942848586b534105ddd1ca77df72e1251140f412e97b62afbf85d4822309176b5965453dee3fab709e14156b3dfcecca
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0f877bd6e2a9273e322a3298ea3add13d1104b32172283669ca6688f0cb591524a7f15dd41496681eda98939aae729fed]
+[key.wy = 0e85ca37c81ef19e3dc9ab16908a3720d86875a51a6a6d932e37492a6ec7a344eabc482377f14891fbd1da7faeffa1178]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004f877bd6e2a9273e322a3298ea3add13d1104b32172283669ca6688f0cb591524a7f15dd41496681eda98939aae729fede85ca37c81ef19e3dc9ab16908a3720d86875a51a6a6d932e37492a6ec7a344eabc482377f14891fbd1da7faeffa1178]
+[sha = SHA-384]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02307fffffffffffffffffffffffffffffffffffffffffffffffed2119d5fc12649fc808af3b6d9037d3a44eb32399970dd0
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 14249bbcfeeceab06c75654d361c0df8d56b320ea3bc1d4627ec0a2f4b8fa3577445694664f569a91f480741381e494a]
+[key.wy = 28479f2186d715a56788f67073056aa0cb0b6a7f7893e77b9a6976ef6663d80226896d7f43bb502e1b4d49558a27dd8b]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000414249bbcfeeceab06c75654d361c0df8d56b320ea3bc1d4627ec0a2f4b8fa3577445694664f569a91f480741381e494a28479f2186d715a56788f67073056aa0cb0b6a7f7893e77b9a6976ef6663d80226896d7f43bb502e1b4d49558a27dd8b]
+[sha = SHA-384]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023079b95c013b0472de04d8faeec3b779c39fe729ea84fb554cd091c7178c2f054eabbc62c3e1cfbac2c2e69d7aa45d9072
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 50a438c98ee94025ce13e27d36b8280d4843585836eb47011a070cd77729245684a0db31fde980620349c796832b2c6c]
+[key.wy = 0bdb72dba9f3f9cc878559f50b6bd1290f10a6bccbc1eeef7708b1b72059022987979e35221c51259f337c7288a2f86bc]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000450a438c98ee94025ce13e27d36b8280d4843585836eb47011a070cd77729245684a0db31fde980620349c796832b2c6cbdb72dba9f3f9cc878559f50b6bd1290f10a6bccbc1eeef7708b1b72059022987979e35221c51259f337c7288a2f86bc]
+[sha = SHA-384]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100bfd40d0caa4d9d42381f3d72a25683f52b03a1ed96fb72d03f08dcb9a8bc8f23c1a459deab03bcd39396c0d1e9053c81
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 4d3fc5dcfaf741113cda3ce2f8dff4c912143e4d36314c361d7ed5656b68448bcca114ba9e8124281234660b7726ddcd]
+[key.wy = 680ddfef7ea07bfbcede10803d38d7211631ca11466078819eb66e11921ab7ffa3c4560c732e77595fd408e917dd9afc]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200044d3fc5dcfaf741113cda3ce2f8dff4c912143e4d36314c361d7ed5656b68448bcca114ba9e8124281234660b7726ddcd680ddfef7ea07bfbcede10803d38d7211631ca11466078819eb66e11921ab7ffa3c4560c732e77595fd408e917dd9afc]
+[sha = SHA-384]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02304c7d219db9af94ce7fffffffffffffffffffffffffffffffef15cf1058c8d8ba1e634c4122db95ec1facd4bb13ebf09a
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 63d65cdfeb1f1a42000f43bd1ddd130537a7b6f635e8d2bd81a97da168221183da433ca78429fd2b33c5f94895a9c13a]
+[key.wy = 0a9d1d5ea328725653a5a9d00f85a5516236f3b1428a8629287d3b0487a2e82dd57f93bb2aa3d9783dc74131e13756034]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000463d65cdfeb1f1a42000f43bd1ddd130537a7b6f635e8d2bd81a97da168221183da433ca78429fd2b33c5f94895a9c13aa9d1d5ea328725653a5a9d00f85a5516236f3b1428a8629287d3b0487a2e82dd57f93bb2aa3d9783dc74131e13756034]
+[sha = SHA-384]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d219db9af94ce7ffffffffffffffffffffffffffffffffffd189bdb6d9ef7be8504ca374756ea5b8f15e44067d209b9b
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0d22c9c348b9745711f57debac3a07df90a527c06bd02a8454f41437d54224e071698f03fdc64b1d652414edc3f2239c4]
+[key.wy = 09ae9812a4b92f099d6659a659691768d57e530ed3c91d5455781605850997a58221f22a2451c3932470606c23f3ab1b8]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d22c9c348b9745711f57debac3a07df90a527c06bd02a8454f41437d54224e071698f03fdc64b1d652414edc3f2239c49ae9812a4b92f099d6659a659691768d57e530ed3c91d5455781605850997a58221f22a2451c3932470606c23f3ab1b8]
+[sha = SHA-384]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100a433b735f299cfffffffffffffffffffffffffffffffffffdbb02debbfa7c9f1487f3936a22ca3f6f5d06ea22d7c0dc3
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 31f05c0c29e9da49aa2fbbedee770c68d10f85e7f77e72ac3cfa9c8623a2bb42eeb2f24ac8f2aef7ab0c4b4782314003]
+[key.wy = 5bb32fc1ec04bbff5eab96e070c938ba1b53fe63970f649ae02e2a4ada420a249b6f7c525e2c4b9b0d5562ae26f2278c]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000431f05c0c29e9da49aa2fbbedee770c68d10f85e7f77e72ac3cfa9c8623a2bb42eeb2f24ac8f2aef7ab0c4b47823140035bb32fc1ec04bbff5eab96e070c938ba1b53fe63970f649ae02e2a4ada420a249b6f7c525e2c4b9b0d5562ae26f2278c]
+[sha = SHA-384]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b9af94ce7fffffffffffffffffffffffffffffffffffffffd6efeefc876c9f23217b443c80637ef939e911219f96c179
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0bc26eec95e26c980bc0334264cbcfc26b897c3571c96ce9ab2a67b49bb0f26a6272fdc27806d7a4c572ae0f78149f1f3]
+[key.wy = 0c8af5f41b99d2066018165513fb3b55e4255dcd0659647ed55e1e2602cae4efbd6eae1dfe2ff63e2c748d4acc7430139]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004bc26eec95e26c980bc0334264cbcfc26b897c3571c96ce9ab2a67b49bb0f26a6272fdc27806d7a4c572ae0f78149f1f3c8af5f41b99d2066018165513fb3b55e4255dcd0659647ed55e1e2602cae4efbd6eae1dfe2ff63e2c748d4acc7430139]
+[sha = SHA-384]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100a276276276276276276276276276276276276276276276273d7228d4f84b769be0fd57b97e4c1ebcae9a5f635e80e9df
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 6fa0964dd054250af176891c0c822b013b70f059c347172cafc6b36cd16cf3b0f9d19f2598bd0d580ac16c46acb167d4]
+[key.wy = 375bef701c002dcc040fd54824b14cc2df0154eb20e74464e1fe7b833426dd7d636bf2d79603fdde5ddaab23ab0cf426]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200046fa0964dd054250af176891c0c822b013b70f059c347172cafc6b36cd16cf3b0f9d19f2598bd0d580ac16c46acb167d4375bef701c002dcc040fd54824b14cc2df0154eb20e74464e1fe7b833426dd7d636bf2d79603fdde5ddaab23ab0cf426]
+[sha = SHA-384]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023073333333333333333333333333333333333333333333333316e4d9f42d4eca22df403a0c578b86f0a9a93fe89995c7ed
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0baa4e712ee0786a5ab0e5a5dafdcdcf87b38830ab2ec86faedda9fdf65332f6a9688269412f050356530d4664a7fb8cd]
+[key.wy = 0ecc46a901b016e6bb8a336ad9aa6f19abf9ada69705d1c905beafb95a44f52af43de4bf80c050cf996b7796dfcee8e1b]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004baa4e712ee0786a5ab0e5a5dafdcdcf87b38830ab2ec86faedda9fdf65332f6a9688269412f050356530d4664a7fb8cdecc46a901b016e6bb8a336ad9aa6f19abf9ada69705d1c905beafb95a44f52af43de4bf80c050cf996b7796dfcee8e1b]
+[sha = SHA-384]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02307fffffffffffffffffffffffffffffffffffffffffffffffda4233abf824c93f90115e76db206fa7489d6647332e1ba3
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 081e78a52ae0695583f7a601ab9b6fbfaf434f2befa1f8c833d59deb627a927c2f42d48eb617fe042f584e105c23c2317]
+[key.wy = 0cf22d565f5f3b425ef7937df629b6864dac71264b288c1a987210f523071319ce3f64411910ac23765c4266e615112bc]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000481e78a52ae0695583f7a601ab9b6fbfaf434f2befa1f8c833d59deb627a927c2f42d48eb617fe042f584e105c23c2317cf22d565f5f3b425ef7937df629b6864dac71264b288c1a987210f523071319ce3f64411910ac23765c4266e615112bc]
+[sha = SHA-384]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02303fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294bb
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 41fa8765b19d3108031e28c9a781a385c9c10b2bfd42e6437e5c4bd711cf2a031750847d17a82f9376a30ae182a6d6e7]
+[key.wy = 1c20af96324147d4155a4d0c867ca8e36eba204fbed2087e0fcbdc8baabe07bb3123f9f7259e771cd9f1ad17d1a23787]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000441fa8765b19d3108031e28c9a781a385c9c10b2bfd42e6437e5c4bd711cf2a031750847d17a82f9376a30ae182a6d6e71c20af96324147d4155a4d0c867ca8e36eba204fbed2087e0fcbdc8baabe07bb3123f9f7259e771cd9f1ad17d1a23787]
+[sha = SHA-384]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100dfea06865526cea11c0f9eb9512b41fa9581d0f6cb7db9680336151dce79de818cdf33c879da322740416d1e5ae532fa
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86b]
+[key.wy = 572c1e06dd2c7b94b873f0578fcb2b99d60e246e51245d0804edd44b32f0f000c8f8f88f1d4a65fea51dbbb4ab1e2823]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86b572c1e06dd2c7b94b873f0578fcb2b99d60e246e51245d0804edd44b32f0f000c8f8f88f1d4a65fea51dbbb4ab1e2823]
+[sha = SHA-384]
+
+# point duplication during verification
+msg = 313233343030
+result = valid
+sig = 3065023100b37699e0d518a4d370dbdaaaea3788850fa03f8186d1f78fdfbae6540aa670b31c8ada0fff3e737bd69520560fe0ce60023064adb4d51a93f96bed4665de2d4e1169cc95819ec6e9333edfd5c07ca134ceef7c95957b719ae349fc439eaa49fbbe34
+# Some implementations of ECDSA do not handle duplication and points at infinity
+# correctly. This is a test vector that has been specially crafted to check for
+# such an omission.
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86b]
+[key.wy = 0a8d3e1f922d3846b478c0fa87034d46629f1db91aedba2f7fb122bb4cd0f0ffe3707076fe2b59a015ae2444c54e1d7dc]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e585a067d6dff37ae7f17f81583119b61291597345f107acffe237a08f4886d4fdf94fe63182e6143c99be25a7b7d86ba8d3e1f922d3846b478c0fa87034d46629f1db91aedba2f7fb122bb4cd0f0ffe3707076fe2b59a015ae2444c54e1d7dc]
+[sha = SHA-384]
+
+# duplication bug
+msg = 313233343030
+result = invalid
+sig = 3065023100b37699e0d518a4d370dbdaaaea3788850fa03f8186d1f78fdfbae6540aa670b31c8ada0fff3e737bd69520560fe0ce60023064adb4d51a93f96bed4665de2d4e1169cc95819ec6e9333edfd5c07ca134ceef7c95957b719ae349fc439eaa49fbbe34
+# Some implementations of ECDSA do not handle duplication and points at infinity
+# correctly. This is a test vector that has been specially crafted to check for
+# such an omission.
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0b4d78cccbced8065c0ebdc330b4670ec99309273e442b9be341196c1043e4441fc57b914085595bfc755c64fc409f0ba]
+[key.wy = 1fee31cbbbaed5c1323f09c87df9b0712c12e99733fa23ef91b4e6ca666b09dd7540ebf1068a15155bc069e3d595c8c]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b4d78cccbced8065c0ebdc330b4670ec99309273e442b9be341196c1043e4441fc57b914085595bfc755c64fc409f0ba01fee31cbbbaed5c1323f09c87df9b0712c12e99733fa23ef91b4e6ca666b09dd7540ebf1068a15155bc069e3d595c8c]
+[sha = SHA-384]
+
+# point with x-coordinate 0
+msg = 313233343030
+result = invalid
+sig = 3035020101023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 6e3c68be53aade81ef89e096d841e2845a23331e7ec8a6a839d58d07fa016c0973ed75de4f99177bfdc74db566e9d15a]
+[key.wy = 4972ea08e577ce1f61c13a6ca1bad1deef2982ee01a2826f002b769f2c46098d3baff068a405d09ca3840d2fafe4e46e]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200046e3c68be53aade81ef89e096d841e2845a23331e7ec8a6a839d58d07fa016c0973ed75de4f99177bfdc74db566e9d15a4972ea08e577ce1f61c13a6ca1bad1deef2982ee01a2826f002b769f2c46098d3baff068a405d09ca3840d2fafe4e46e]
+[sha = SHA-384]
+
+# point with x-coordinate 0
+msg = 313233343030
+result = invalid
+sig = 3065023101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023033333333333333333333333333333333333333333333333327e0a919fda4a2c644d202bd41bcee4bc8fc05155c276eb0
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0b101cdb3eba20e112adbb4bbd2cb479a69e590a44ea902631832abfab8af2c3041b3df7f1665b2c6eb533f546217100a]
+[key.wy = 1a61aa9951578ad4f00ae17339a8a6f1359bbd0ac355678ed4df21338f08763c1d3702ec132b634c7bcc0118efb1d0dd]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b101cdb3eba20e112adbb4bbd2cb479a69e590a44ea902631832abfab8af2c3041b3df7f1665b2c6eb533f546217100a1a61aa9951578ad4f00ae17339a8a6f1359bbd0ac355678ed4df21338f08763c1d3702ec132b634c7bcc0118efb1d0dd]
+[sha = SHA-384]
+
+# comparison with point at infinity 
+msg = 313233343030
+result = invalid
+sig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023033333333333333333333333333333333333333333333333327e0a919fda4a2c644d202bd41bcee4bc8fc05155c276eb0
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 6761044a040a4979db269b4a377e42f11b4be0ce24611f677674dcf770f5887ca4db565303283809e6d65f7fc6bc2736]
+[key.wy = 5c7daa403fca53549f75ff3372909642d02b7fdcac1e68242814d6e925ab01a80836cfbb35581960079e2fb44c0d186]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200046761044a040a4979db269b4a377e42f11b4be0ce24611f677674dcf770f5887ca4db565303283809e6d65f7fc6bc273605c7daa403fca53549f75ff3372909642d02b7fdcac1e68242814d6e925ab01a80836cfbb35581960079e2fb44c0d186]
+[sha = SHA-384]
+
+# extreme value for k
+msg = 313233343030
+result = valid
+sig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df61023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 34d74ec088bab6c6323968d1f468993812f690d6edca5b97604d718e12b8cdfdd96d42e57d33afe312f0ee3c3d0a13f7]
+[key.wy = 086f4922bb2c13bdf7752a3ecb69393e997bd65461c46867ebeef6296b23f2c56df63acfde648f3f5002dbc239ffd1582]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000434d74ec088bab6c6323968d1f468993812f690d6edca5b97604d718e12b8cdfdd96d42e57d33afe312f0ee3c3d0a13f786f4922bb2c13bdf7752a3ecb69393e997bd65461c46867ebeef6296b23f2c56df63acfde648f3f5002dbc239ffd1582]
+[sha = SHA-384]
+
+# extreme value for k
+msg = 313233343030
+result = valid
+sig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]
+[key.wy = 3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]
+[sha = SHA-384]
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 3065023100f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d38179023942871acb7002dfafdfffc8deace02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 30640230064ed80f27e1432e84845f15ece399f2cbf4fa31aa837de9b953d44413b9f5c7c7f67989d703f07abef11b6ad0373ea502302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]
+[key.wy = 0c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]
+[sha = SHA-384]
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 3065023100f9b127f0d81ebcd17b7ba0ea131c660d340b05ce557c82160e0f793de07d38179023942871acb7002dfafdfffc8deace02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 30640230064ed80f27e1432e84845f15ece399f2cbf4fa31aa837de9b953d44413b9f5c7c7f67989d703f07abef11b6ad0373ea502302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 29bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc]
+[key.wy = 09a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]
+[sha = SHA-384]
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3064023032401249714e9091f05a5e109d5c1216fdc05e98614261aa0dbd9e9cd4415dee29238afbd3b103c1e40ee5c9144aee0f02304326756fb2c4fd726360dd6479b5849478c7a9d054a833a58c1631c33b63c3441336ddf2c7fe0ed129aae6d4ddfeb753
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3065023100b713d2bfbe31b816d8cd9664b96f3383ecaac5a4d1f7e1d9ae64e2b99f9bccac04749052b45d119a39f8b2c11a385b780230690dfcac264fd52f6b26207d74f9fa2bea2ca3d59e405140c94248fb2839eb42c502581b89a964c93cc2e1752dd8b145
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3066023100e16bf26ea4fff5d11027bcb3ef305991171e10056986fb03643c5b3c32e88a4f83ea290931fb30f99577ac0f18b733e802310080ff5982d87f575300940c106d84de8af66e16aae7fb31debcb06dfc61fae3f5dbddf6c91211f59f4f5b69962b1f554c
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3066023100c137d4933acbdce166768125db5e42d0764ccad43b0104870761086072cce89de2f3819ca305dc3073a941ae78dbbf55023100f990907818a7c67ecfedd56629cc6fb334edafa233f08a79d21be8653f012994e7736a060428b45deec34140c496302e
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3065023000f5579516d13ca92114bf230093f2462ef65e97b111051e62fbb73d06e0635a8d70e04b20f86e5e7ed211eebc653342023100e425e475ee6e27df44eeafbb268356bcd70aee82f0b971c994b49d1aae86fec12d3b7db4aaa2ff7de5b4bfb2eedcacc0
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 306502304e7989e8d6498df3d1b34d8f45fc922197dd023ef9f3594a7ec52dd575d24e3d93ef16e11bc77893dd341c8d1ab2c4b302310088a4178d2ba03c6acc79eda01e742dcd82fb2614cabd8bc586145c97da3d170b884678abdb2dc80b3b9bf6244e966ba1
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 306502302b1ff7fafd59899258d6b8c69bd3410f1d983e6b167674591d9c25387263e7e25438b30dcbd2c8ff76db8ebec2c77e2a0231008c44cf1a90610d9deefbf23c935741530f9f190dae4d7ba3d6efaef3bbb0e2d47296b65ef65241ef3b98934639fb50bd
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3066023100c0583e25c9298fdcc1695f04d3fc32de300ec5470c584b85b7d3c3c2915e9de3c22516907852dd801d7f1ef1645157bb023100c01f7df3954501aee191ead82e68a408549a09fb3a839325111b195938df984c9cf1383cfb88800757bade4d585ec906
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 306502304131dda169326aaac2714d0ff8a98d7439d2f353ab98e40bdde29d3b20dec87daef1358adc611280384a631f38c2cf70023100d72f8e5dbd73950cb6e941a563387ed1ae707db38f0f8a80518cf3d4885a56d8ecf7f278a1b24f0a973347b4a160bcf6
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3065023048e82f614523c83dfc873730d02541aab03214825d21aac689c3b851c20f9e4d563439999372fc781f4351202ddef8d1023100c54ceb0786726ce16d74d259813e6ab859e42a09639a39da77f412ab86c17a9b8b5add2bbcda564f650ca304c081be3f
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3066023100d7143a836608b25599a7f28dec6635494c2992ad1e2bbeecb7ef601a9c01746e710ce0d9c48accb38a79ede5b9638f3402310080f9e165e8c61035bf8aa7b5533960e46dd0e211c904a064edb6de41f797c0eae4e327612ee3f816f4157272bb4fabc9
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 306402307ff92abef367440ba54256a5fd5d679a9741d5a63fa0ef9ab34351239c67804eaff32f86d69b984096a1c0c76d36b79802301120223ea279522dbea4eb4297452fd9bdc723e0752b1fd7fdfcdb90d2a4e06ea3ac2e680e6823c57ddb5cbea22da451
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3066023100dc2a42181fac07068e0d3ee845d21f38c1464199009f99f4e88b99f540436401b514cd72ecdafd0e5b3808c9a9130928023100de979bef97b779c29b80e38fb17e8a3072f84560793d936051f5fca6013e11e743b4efc10f9bd45a9a0e5dc3d71c8f6a
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 30640230239542d8e4ee6f48e7d10657ba3d0a9a92c66f0e10c82b5919afba50c129b2d01124ae5bdc643bfa8bb3be67814f6b6502305d5a5a89149eefd34d1f00fe8922b06e62fca3d57d1c0a8daabd3f2160706830fdb3579cf6e64ed8ee635908239e8e6d
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3065023100929edc580377e5f1f0a6bed840a14ac1ac3fdd98f7d0cd56735583b521e9f6f2d7caabed6688fed3ffcaf0554e9aecf4023008e571b8052b5b59f2251b33b609681e7128d765b8b2b169eaccd7238f372c994c99aee46c8bf4fa039d0070b544c8d3
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 306602310091df8d8c1a2f4fedad280883f1d54b43e9bbbc1a626df57f58cfa020159c3f91571939f06e6d32748fbb3a224c7c0559023100ab40e8c6b98b16afdf556b16fe50d3baffaf742e56cd552d5efa7307bff708923c4e9080dc46d1c23b15bc3036982fd3
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3065023058a891b20baeb6430fc44e3684900d9eee4566ee90cb3a6f175e1963d9e1e706e753ab3be82e6ab438a61fece74e3788023100bcd637e78b7a944533525c9d51b045743381c778133a5ad9d95d5d0692bea05695ff1a72419ca2929a215bc769707c1e
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3066023100ec4fbd25bd38a23ce5c98c6e582d0810cd918fc04be2b78df107765baefe3783a8e917bf6d6768e8f8b79f67a6b6e023023100ee8b5d4b8c8b1b26960984c3226654a829d9c28d3b050ae464c8399c936be431ad0ac22b6df23589f77cf752b965e4de
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3065023100f2a9b27da3c72a037f3ff2fe5f4c776df8383c7955636260a66316525089bbbb1719f96bc4ed132923ec168e6f3143320230476e427ec28bc4a04c485dde1d34243f1fe283616e0b632195eb71950de75e61061ca7c522a305eaacf61294339eec11
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3065023100938c88f4937f8cab933d7879f04a316d2b6976d8bfb6b86742a2442839806726723dbed366f4004537e759e77fe07e2102306415396d8690b380b4eb1b4d78016cf6d407259bad568bee662dd594731fabae115534cc7db00b2ec46326926646d029
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 30650230234503fcca578121986d96be07fbc8da5d894ed8588c6dbcdbe974b4b813b21c52d20a8928f2e2fdac14705b0705498c023100cd7b9b766b97b53d1a80fc0b760af16a11bf4a59c7c367c6c7275dfb6e18a88091eed3734bf5cf41b3dc6fecd6d3baaf
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 3065023100ac5559ad224e76aa6637515357c5f0ac4ffef4f7e21297f8b65d72e6b5cc547511ddb2f0c36125b6b11c0a82308c44d20230542aea18bf5fe640d5e94fc27d69176e21cd15f0f817741e982f51e7a9d5bd4f33cd8846fbd9f6cd1ae7d0cff31de2e4
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 3065023100d48578efe0200370eb3dba190629c584f4505b3d18dcb7176e81c94eaaba9be4b35f16b2f558cf42f6e49bb13a8c52a3023062d7450e411ce64d8349a9e90a07fc09e5521efec1b9739cc9f68d0877b4a4b4d50a5f5647ef6dc3e6a9495ccabbeae4
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 3064023019a87de40615da310fbc062ab5954a4a5d538f7bb18407e9c9e852fead9d03fed7c7fbd6034e1ad8c30b978bfed75a3202304e0c8a9da62e78c60c417fa8870cc879e4d5ec92b6ec8648fd6ce4e576f1e09eaad3867f5441d800e659207c8a1bba86
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 306402306e6c0aed8fb6d30d7fd6064ad34316c9cfb4eb4a0c5bef44660a3b993ab199a934fc8e69cdf764abf05639cc16ef2e1d0230758560ba98b0b522327e2ae8a8ba843e4255c1742eb69174d3ce806c8a91ef330d186311c99062626a81fe38ad6d10c0
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 306502305acb49557723224e81e2a58e633d38cd78dcc1c905e61e2a16ade32420e198b9cd6120fcc3a57c0c986f80658dc4c4a0023100addee5259c644f68219827a73ddeb4d46123b3afd9c5812d2c6738f7e46f69115923464b7dcf214388e37a62bf2b6e8e
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 306502310083ae547fe0e176a792cb77ca7af6acdd7670f168565c7d918e8f90cbaafe59d57a425dd33d1140167446f34067fc276f0230384ce801465758c5c4b1c1684f51c36a70a844aa9b0607a4cef6e16cf59298c281cf01c712d1022d22b24cb21ebb326b
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 3066023100ef29e1a82a785f06532f48954482c53677d2dbf6b2b1e7d1b3869a846bde4d12e03ae0d873dc36a9ac8a00c4560760e7023100de7f161069409d8c66842ee3cd9564703565c533027f12a4ca1dd6d3f276e46d42b712789b3426a36741bbe989d2dfa2
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 306602310087c8bd783eef6a4c6d7fa736f04988ff9f8c0c5dbcc217dbd1ec581d19e0f0febf5e00ae17d8c06002c8819922f3bdc4023100d678c7b67e2e915a8d082374d0f881bea2bec6ddd588835fed0dc4fc22589104330904ff877f88e43c3b4370dd7e8534
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 3066023100baac6d6ce7f04ae4c4c857ef84b15fa80fc65ae28094039b9650e519770725bb9a025b9ae11a01af606b05bc821fe5ec023100e4f63ca843015dbe2b5b0d416eeffde83c3551c577fae2e51439c3914e25c3bfb88926189d8bae17914d5da25fd95d4d
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 306502305cad9ae1565f2588f86d821c2cc1b4d0fdf874331326568f5b0e130e4e0c0ec497f8f5f564212bd2a26ecb782cf0a18d023100bf2e9d0980fbb00696673e7fbb03e1f854b9d7596b759a17bf6e6e67a95ea6c1664f82dc449ae5ea779abd99c78e6840
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 306402306c8c296baf417e4a24df7461c2de9e9cf5d571bf5385b638fddb79fb085df7649b2f92302bc2c5fd5f5e5329b66cbf59023053757b85d794471f605b02fb5ff537b745b743cab0ebd9d23719fd287c35fc76db0faae9acd714387ade4598afbcfe7f
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 306502302790f0cc0c6b246039e10903c8fc31b422ae1556828211f0d161d0faebdf2c2de291aa27eb0e4e77acdf9c26c9b93ecf023100f3ae4e3438d6ec9b2226b2fbfc91531c84ee662f373fb0758d037878e389e1d41a72e79deea65566769f1a6517a5bd3d
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 306402305acf4d0f3774877235bdb1451bab6b9213afafbf0167d0344b759ba7a25585108d47a800ff16fe931fb015fa5905554f02304b23183cf53319e1520e5b27b3329494e1a2f293095b6fa5e0246ae2541348fadcbfee925b28892edda4d05eac5e5c69
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 306402301bc3589fc58f43ef7d7361cf0d1f0b89214e151ebd2a9757b1af0c753b19e7459ec0d83b2c030e19e56eb010ff28ca5802303943d4aabfa9f3705bfd5d544b0347e5b41651c1b5b58ba6d1d200d868193a31ccc45d955fddbb869bd0a8c16530c61e
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3064023024f9ee63092fd4ea83bddecb5f120d41b61ec39a5faf037b24c8fdd4036ab3ecc3368a60b82b735321ce91c23b5ea69a02306495015984abae9ab9335d0ea705b93cad15f1df84bc73a47ae38fd338f1a9a89bbd8a0dff83ff69e93c4f5ac5fb2032
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3066023100e8ec3ba983144d851f617b28a76097335f4cdaa2d08af546f6ef13863c2293138e2d049661c671565f9fb507cfd200e40231008614ed1d49c27fce7798537a6f5ca13a25183787941aefd2282269e3a86d444742a3b546ce474d6f916a57d9ab63b6ad
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 306502310080a7f5589456796f2287b8d875bca222907b9cc30f0d667e126f56bae9e758da271d10624ac2b2b7ef472614c06530de02303beaf667ddacecf76d6ca6a5fff559c0a3099a267f84f0f29eb481c3b2e719c14373c90218670f0dca5fa77bf95ad294
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3066023100e3aa89289f644082c98a80aacae011381bcbc6056007b4d81a180b3681da2e3f1fc0808b018d14fbd6afd09880e6f168023100ef6f95647ba3db06a703af6836b2fea8f1a02248d55621d0fb8b6dada63926a0a93a71a75283929f67082977cb1158b6
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3065023071c7c3bf3ce2d458c047f91ba180930fddf878c0f8dae3cdd9fd6d2da516c47265f9c3e3f51a33ef38b63c5a39de0f1e023100c080c819a34b8968bd36a60251d75464910039cdcc0ea8d18d681144960b8a566aecf27d23b47ce2b38e7ed0a4d27bf4
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aac]
+[key.wy = 0acbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]
+[sha = SHA-384]
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 3065023007648b6660d01ba2520a09d298adf3b1a02c32744bd2877208f5a4162f6c984373139d800a4cdc1ffea15bce4871a0ed02310099fd367012cb9e02cde2749455e0d495c52818f3c14f6e6aad105b0925e2a7290ac4a06d9fadf4b15b578556fe332a5f
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 3065023100a049dcd96c72e4f36144a51bba30417b451a305dd01c9e30a5e04df94342617dc383f17727708e3277cd7246ca44074102303970e264d85b228bf9e9b9c4947c5dd041ea8b5bde30b93aa59fedf2c428d3e2540a54e0530688acccb83ac7b29b79a2
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 30650230441800ea9377c27865be000ad008eb3d7502bdd105824b26d15cf3d06452969a9d0607a915a8fe989215fc4d61af6e05023100dce29faa5137f75ad77e03918c8ee6747cc7a39b0a69f8b915654cac4cf4bfd9c87cc46ae1631b5c6baebd4fc08ff8fd
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422]
+[key.wy = 0c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]
+[sha = SHA-384]
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 306402303244768016457c463b74f2097f216d9670b191f76281c74bc6a1a1971d19f209bf4696468f5eb75d6326a0a43c0a65290230501e0ad985ed9f95697bd17fdbe3f9ca92e0f76426d3664e6896648d9c750bf588d0ce7d011c1a1e8d6c2e082422dc93
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 306402305e1af40f2480e3d97c4ae4bfd34a9f45269241356f3a46becd86a4a7c9716d73ca5aebdb3db1a7765650666683bc856b02307e7c4b473a2baaa4953785be8aa2a10006f6d36b400ab981864d69cecec046718d0404b9647454b159aa5a92d76d7955
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 306502306688e36a26f15bdc1c3f91367f8a7667f7bb3e30a335d6f0900e9534eb88b260cb29344c723fedfbe7ac9c5a33f4bf0d023100aa35fddf0fdc9017860b378f801cd806f3e2d754cd2fd94eb7bb36a46ce828cef87e9ebbf447068e630b87fee385ad8f
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 1099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000]
+[key.wy = 0e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]
+[sha = SHA-384]
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 3065023100d4a8f3b0b4d3a5769e3a0bbc644b35f1d509355ed1fe401e170f667b661f693b32598e8c143a817a958982845042bb48023004cc07578bbd1981dbf6e8a97a354c98d41b8b6f6e8a2c2b1763c7c2a29d79e24f8476075c9aed9aec6c64dff50461ae
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 3065023100c286d1928e9c79fdd3bebdf22a1dbd37c8105e8ecf41e9e3777fe341b6b8d5a89b9d986827d6d1dbb381cd8239484a220230201119ae305b9360aa9b5e5d1567e0674c09e4f025556ebf81b987466b0f421b8d31f72bbe95f3ce2aa9874a84edfd40
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 3065023100d9c678550167f10c511e62acb4bd0a3f7f336bc090c94e6c6b02622439c348a2159c5f41f9b5aa4b470590d40dcd7cc202301fd5eaee295abb4081cb626745f4ad279ceb44604062830b58e6c0465c562d41f02ba588fc0db1ebbe339cdc008d7a1b
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 2b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69]
+[key.wy = 0d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]
+[sha = SHA-384]
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 3065023020fee7c71b6cb0d1da3641ec6622c055a3b16a1f596c64b34da1b2d0b868b66a8f0a0d0db983b3dc7e53bb7295da81970231008141a931d3579aec1cac9887d2fff9c6f12d47a27e4aab8cf262a9d14a715bca0b2057cbc3f18b6fd3d1df76f7410f16
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 3065023100913eecc559b3cf7108a65d6cc3076bfdf36c6f94dcc6693d06690470f34a2e81564241e1de5f5f51421de30af467f10f0230649bd3717244e8ef3c6b0eda983f84dca5ea86d1bec15386b9c473ec43a8cd0ba558eee819f791d9ff9272b9afd59551
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 3064023023855c46403a97b76cbb316ec3fe7e2c422b818387604bda8c3d91121b4f20179d9107c5f92dedc8b620d7db87fccccd023050f57343ab148e50662320c4161e44543c35bc992011ea5b1680b94382cf224ea0ec5da511e102f566cb67201f30a2ee
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]
+[key.wy = 208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]
+[sha = SHA-384]
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 3066023100d200958d491fcebde667cd736c9dba0961c70db2ecaf573c31dd7fa41ecca32b40b5896f9a0ddf272110e3d21e84593a023100c2ecf73943b9adce596bac14fce62495ae93825c5ff6f61c247d1d8afcba52082fc96f63a26e55bccfc3779f88cfd799
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 306402306ac17d71260c79f81a7566124738cb3ee5d0aa690e73a98ae9e766f1336691e500cad51ba1302366c09cc06b8f7049e0023032ca965d6d7012ec187c7cab9544334d66c2a7658ddefa67e4ad40429815518ecc87b1492ddd57333bd2300b4660a835
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 3065023100e19a4646f0ed8a271fe86ba533f8be4fd81bbf4674716f668efa89a40cac51eec2a6cfbd92327d25efe91ca4ff712bc502304a86b2e8e12378e633dec2691e3b1eed4e932cc48b28e45fa3d464cc0e948c02cc9decf2bb43b25937fcf37e9ad86ef0
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]
+[key.wy = 0ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]
+[sha = SHA-384]
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 3064023015aac6c0f435cb662d110db5cf686caee53c64fe2d6d600a83ebe505a0e6fc62dc5705160477c47528c8c903fa865b5d02307f94ddc01a603f9bec5d10c9f2c89fb23b3ffab6b2b68d0f04336d499085e32d22bf3ab67a49a74c743f72473172b59f
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 306602310090b95a7d194b73498fba5afc95c1aea9be073162a9edc57c4d12f459f0a1730baf2f87d7d6624aea7b931ec53370fe47023100cbc1ef470e666010604c609384b872db7fa7b8a5a9f20fdefd656be2fcc75db53948102f7ab203ea1860a6a32af246a1
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 3066023100dd4391ce7557cbd005e3d5d727cd264399dcc3c6501e4547505b6d57b40bbf0a7fac794dcc8d4233159dd0aa40d4e0b9023100a77fa1374fd60aa91600912200fc83c6aa447f8171ecea72ae322df32dccd68951dc5caf6c50380e400e45bf5c0e626b
+
diff --git a/third_party/wycheproof/ecdsa_secp384r1_sha512_test.txt b/third_party/wycheproof/ecdsa_secp384r1_sha512_test.txt
new file mode 100644
index 0000000..da3eebb
--- /dev/null
+++ b/third_party/wycheproof/ecdsa_secp384r1_sha512_test.txt
@@ -0,0 +1,2302 @@
+# Imported from Wycheproof's ecdsa_secp384r1_sha512_test.json.
+# This file is generated by convert_wycheproof.go. Do not edit by hand.
+#
+# Algorithm: ECDSA
+# Generator version: 0.4
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 2da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa]
+[key.wy = 4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200042da57dda1089276a543f9ffdac0bff0d976cad71eb7280e7d9bfd9fee4bdb2f20f47ff888274389772d98cc5752138aa4b6d054d69dcf3e25ec49df870715e34883b1836197d76f8ad962e78f6571bbc7407b0d6091f9e4d88f014274406174f]
+[sha = SHA-512]
+
+# signature malleability
+msg = 313233343030
+result = valid
+sig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202307b0a10ee2dd0dd2fab75095af240d095e446faba7a50a19fbb197e4c4250926e30c5303a2c2d34250f17fcf5ab3181a6
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 306402301d526c8b0d7b0858c58e843fd9d7c779a519f0c34aa789f36cdbb6f0820a506b3631ccc2b335f78350f7c50337d0f5190230454ccaa7aec6e4bec81886203e5a8743a67a265dd9c048f47b7b6a4d2a18e27992e727757788e0c4b22ef0c16ec0643a
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 3065023100e2cc9ba64c14225cee38c83c0f060e4df6977efafde3df2abeddb0a6b55f68e29a3842c5064540f020c940c14cb066ab0230504f4d0fd25a10f866bb15c5bbfd2a56a157e01a67530d02f737f62f2cb661e5e133569d5f870ac1c629b2edd010a19e
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 3066023100cd5d45c993e29a8dfab724cfd83eec1da56a101dc12ab26242c72c8196db8b07e5cba3e84d720d0120b38c25a938e4ec02310088f6d024d7a40232b81816246ca44e69ad0f2dee19312c3937028a91e843d386e649923059c28025a3017e1228b7a2eb
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 30640230425ebeaf08d3a75c61e193b6fd0d27ab04cecc4f35a9cf1e1d1420795ec34bc7301216248f265d759fdc39e687bd49ff0230500819b4abc358e7139eb3c481bb73d88322e7467e617a47143989844b5d95b7c79b3192075faa7a157ca8278376b109
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 306402300b1d031c018d70070d27e3b0c565c2c887206711567d35b79060c9273a03e2cc022c2711a983fee92a24d81ec1269cdb02303df76cc45d142a5ef8f1c4fae7ef1d10f267606089dc4b53aaac719835a2768e9a7a0e85649a22f0e50aae7cb52149cc
+
+# Legacy:ASN encoding of r misses leading 0
+msg = 313233343030
+result = acceptable
+sig = 30650230814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+# Some implementations of ECDSA and DSA incorrectly encode r and s by not
+# including leading zeros in the ASN encoding of integers when necessary. Hence,
+# some implementations (e.g. jdk) allow signatures with incorrect ASN encodings
+# assuming that the signature is otherwise valid.
+
+# Legacy:ASN encoding of s misses leading 0
+msg = 313233343030
+result = acceptable
+sig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2023084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+# Some implementations of ECDSA and DSA incorrectly encode r and s by not
+# including leading zeros in the ASN encoding of integers when necessary. Hence,
+# some implementations (e.g. jdk) allow signatures with incorrect ASN encodings
+# assuming that the signature is otherwise valid.
+
+# valid
+msg = 313233343030
+result = valid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 308166023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 306702813100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# long form encoding of length
+msg = 313233343030
+result = invalid
+sig = 3067023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20281310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 30820066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 30680282003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2028200310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 3067023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 3066023200814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 3066023000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202320084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202300084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 30850100000066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 306b0285010000003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 306b023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2028501000000310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3089010000000000000066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 306f028901000000000000003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 306f023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202890100000000000000310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 30847fffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 306a02847fffffff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202847fffffff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 3084ffffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 306a0284ffffffff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20284ffffffff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 3085ffffffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 306b0285ffffffffff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 306b023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20285ffffffffff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 3088ffffffffffffffff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 306e0288ffffffffffffffff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 306e023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20288ffffffffffffffff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 30ff023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 306602ff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202ff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 3066028000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202800084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# removing sequence
+msg = 313233343030
+result = invalid
+sig = 
+
+# appending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000
+
+# prepending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 30680000023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0500
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 3068023300814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2050002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202330084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0500
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306b4981773066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306a25003066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30683066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0004deadbeef
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306b2236498177023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306a22352500023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306e2233023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20004deadbeef02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306b023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2223649817702310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22235250002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 306e023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2223302310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0004deadbeef
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 306eaa00bb00cd003066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 306caa02aabb3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 306e2239aa00bb00cd00023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 306c2237aa02aabb023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 306e023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22239aa00bb00cd0002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 306c023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22237aa02aabb02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 30803066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 306a2280023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2228002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 30803166023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 306a2280033100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2228003310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000
+
+# Replacing sequence with NULL
+msg = 313233343030
+result = invalid
+sig = 0500
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2e66023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2f66023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3166023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3266023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = ff66023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3066003100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3066013100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3066033100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3066043100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3066ff3100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e200310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e201310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e203310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e204310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2ff310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# dropping value of sequence
+msg = 313233343030
+result = invalid
+sig = 3000
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 306a30010230653100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 306a22350201000230814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 306a023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e22235020100023084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 30653100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# indefinite length
+msg = 313233343030
+result = invalid
+sig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000
+
+# indefinite length with truncated delimiter
+msg = 313233343030
+result = invalid
+sig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd00
+
+# indefinite length with additional element
+msg = 313233343030
+result = invalid
+sig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd05000000
+
+# indefinite length with truncated element
+msg = 313233343030
+result = invalid
+sig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd060811220000
+
+# indefinite length with garbage
+msg = 313233343030
+result = invalid
+sig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000fe02beef
+
+# indefinite length with nonempty EOC
+msg = 313233343030
+result = invalid
+sig = 3080023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0002beef
+
+# prepend empty sequence
+msg = 313233343030
+result = invalid
+sig = 30683000023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# append empty sequence
+msg = 313233343030
+result = invalid
+sig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd3000
+
+# sequence of sequence
+msg = 313233343030
+result = invalid
+sig = 30683066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# truncated sequence
+msg = 313233343030
+result = invalid
+sig = 3033023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2
+
+# repeat element in sequence
+msg = 313233343030
+result = invalid
+sig = 308199023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# removing integer
+msg = 313233343030
+result = invalid
+sig = 303302310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# appending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 3068023300814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2000002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# appending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202330084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd0000
+
+# prepending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 30680233000000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# prepending 0's to integer
+msg = 313233343030
+result = invalid
+sig = 3068023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2023300000084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# Replacing integer with NULL
+msg = 313233343030
+result = invalid
+sig = 3035050002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# Replacing integer with NULL
+msg = 313233343030
+result = invalid
+sig = 3035023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20500
+
+# dropping value of integer
+msg = 313233343030
+result = invalid
+sig = 3035020002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# dropping value of integer
+msg = 313233343030
+result = invalid
+sig = 3035023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20200
+
+# modify first byte of integer
+msg = 313233343030
+result = invalid
+sig = 3066023102814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# modify first byte of integer
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310284f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# modify last byte of integer
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a156202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# modify last byte of integer
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a74d
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 3065023000814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a1502310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 30650230814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202300084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7
+
+# truncate integer
+msg = 313233343030
+result = invalid
+sig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2023084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# leading ff in integer
+msg = 313233343030
+result = invalid
+sig = 30670232ff00814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# leading ff in integer
+msg = 313233343030
+result = invalid
+sig = 3067023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20232ff0084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# infinity
+msg = 313233343030
+result = invalid
+sig = 303609018002310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# infinity
+msg = 313233343030
+result = invalid
+sig = 3036023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2090180
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3066023101814cc9a70febda342d4ada87fc39426f403d5e8980842845d38217e2bcceedb5caa7aef8bc35edeec4beb155610f3f5502310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 30650230814cc9a70febda342d4ada87fc39426f403d5e898084284644bb7cded46091f71a7393942ad49ef8eae67e7fc784ec6f02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 30660231ff7eb33658f01425cbd2b5257803c6bd90bfc2a1767f7bd7b9f3e1359f376840298d725eb98c7ab98c282d68156bb5ea1e02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 306502307eb33658f01425cbd2b5257803c6bd90bfc2a1767f7bd7b9bb4483212b9f6e08e58c6c6bd52b610715198180387b139102310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 30660231fe7eb33658f01425cbd2b5257803c6bd90bfc2a1767f7bd7ba2c7de81d4331124a3558510743ca12113b414eaa9ef0c0ab02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3066023101814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 306502307eb33658f01425cbd2b5257803c6bd90bfc2a1767f7bd7b9f3e1359f376840298d725eb98c7ab98c282d68156bb5ea1e02310084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310184f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e5fd3ad1cb7a61dc9507f6eeb2a65341ad0cac035dfee58d140
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e2023084f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e6044e681b3bdaf6d91cf3acfc5d3d2cbdaf0e8030a54ce7e5a
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20231ff7b0a10ee2dd0dd2fab75095af240d095e446faba7a50a19ff3b630ca4e19648ed8ab2287e37c8caa222be38ade6c5833
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e20231fe7b0a10ee2dd0dd2fab75095af240d095e446faba7a50a1a02c52e34859e236af809114d59acbe52f353fca2011a72ec0
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3066023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202310184f5ef11d22f22d0548af6a50dbf2f6a1bb9054585af5e600c49cf35b1e69b712754dd781c837355ddd41c752193a7cd
+
+# Modified r or s, e.g. by adding or subtracting the order of the group
+msg = 313233343030
+result = invalid
+sig = 3065023100814cc9a70febda342d4ada87fc39426f403d5e89808428460c1eca60c897bfd6728da14673854673d7d297ea944a15e202307b0a10ee2dd0dd2fab75095af240d095e446faba7a50a19ff3b630ca4e19648ed8ab2287e37c8caa222be38ade6c5833
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020100020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020100020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201000201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020100023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020100023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020100023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3008020100090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020101020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3006020101020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201010201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020101023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036020101023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3008020101090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30060201ff0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30360201ff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30360201ff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30360201ff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 30080201ff090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529730201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529720201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc529740201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3038023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff0201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3038023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000020100
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000020101
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3036023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000001000000000201ff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52974
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Signature with special case values for r and s
+msg = 313233343030
+result = invalid
+sig = 3038023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff000000000000000100000000090380fe01
+# Edge case values such as r=1 and s=0 can lead to forgeries if the ECDSA
+# implementation does not check boundaries and computes s^(-1)==0.
+
+# Edge case for Shamir multiplication
+msg = 3637323636
+result = valid
+sig = 3066023100ac042e13ab83394692019170707bc21dd3d7b8d233d11b651757085bdd5767eabbb85322984f14437335de0cdf5656840231008f8a277dde5282671af958e3315e795a20e2885157b77663a67a77ef2379020c5d12be6c732fd725402cb9ee8c345284
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0ca5ee479ad6624ab5870539a56a23b3816eef7bbc67156836dfb58c425fdb7213e31770f12b43152e887d88a3afb4b18]
+[key.wy = 2aceec92b3139aca8396402a8f81bb5014e748eab2e2059f8656a883e62d78b9dc988b98332627f95232d37df26585d3]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ca5ee479ad6624ab5870539a56a23b3816eef7bbc67156836dfb58c425fdb7213e31770f12b43152e887d88a3afb4b182aceec92b3139aca8396402a8f81bb5014e748eab2e2059f8656a883e62d78b9dc988b98332627f95232d37df26585d3]
+[sha = SHA-512]
+
+# k*G has a large x-coordinate
+msg = 313233343030
+result = valid
+sig = 304d0218389cb27e0bc8d21fa7e5f24cb74f58851313e696333ad68b023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970
+
+# r too large
+msg = 313233343030
+result = invalid
+sig = 3066023100fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffe023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 70e6a90b4e076bf51dfa01fa44de49b448f7afa0f3d07677f1682ca776d404b2a0feef66b005ea28ba99b6ce21d0ca12]
+[key.wy = 424f7d179951fb89156cdf04aed6db056c98592c651b5a881abc34e2401127fb81c64e90cee83269c5141f9a3c7bce78]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000470e6a90b4e076bf51dfa01fa44de49b448f7afa0f3d07677f1682ca776d404b2a0feef66b005ea28ba99b6ce21d0ca12424f7d179951fb89156cdf04aed6db056c98592c651b5a881abc34e2401127fb81c64e90cee83269c5141f9a3c7bce78]
+[sha = SHA-512]
+
+# r,s are large
+msg = 313233343030
+result = valid
+sig = 3066023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 5a568474805fbf9acc1e5756d296696290b73d4d1c3b197f48aff03b919f0111823f90ea024af1c78e7c803e2297662d]
+[key.wy = 4c1c79edc9c694620c1f5b5cc7dd9ff89a42442747857cace26b6ebc99962ec3a68a8e4072226d6d98a2a866dd97c203]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200045a568474805fbf9acc1e5756d296696290b73d4d1c3b197f48aff03b919f0111823f90ea024af1c78e7c803e2297662d4c1c79edc9c694620c1f5b5cc7dd9ff89a42442747857cace26b6ebc99962ec3a68a8e4072226d6d98a2a866dd97c203]
+[sha = SHA-512]
+
+# r and s^-1 have a large Hamming weight
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d1aee55fdc2a716ba2fabcb57020b72e539bf05c7902f98e105bf83d4cc10c2a159a3cf7e01d749d2205f4da6bd8fcf1
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 088531382963bfe4e179f0b457ecd446528b98d349edbd8e7d0f6c1673b4ae2a7629b3345a7eae2e7c48358c13bdbe038]
+[key.wy = 09375c849dd571d91f2a3bf8994f53f82261f38172806c4d725de2029e887bfe036f38d6985ea5a22c52169db6e4213da]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000488531382963bfe4e179f0b457ecd446528b98d349edbd8e7d0f6c1673b4ae2a7629b3345a7eae2e7c48358c13bdbe0389375c849dd571d91f2a3bf8994f53f82261f38172806c4d725de2029e887bfe036f38d6985ea5a22c52169db6e4213da]
+[sha = SHA-512]
+
+# r and s^-1 have a large Hamming weight
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b6b681dc484f4f020fd3f7e626d88edc6ded1b382ef3e143d60887b51394260832d4d8f2ef70458f9fa90e38c2e19e4f
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 080da57d67dba48eb50eef484cf668d981e1bf30c357c3fd21a43cdc41f267c3f186bf87e3680239bac09930f144263c]
+[key.wy = 5f28777ad8bcbfc3eb0369e0f7b18392a12397a4fbe15a2a1f6e2e5b4067c82681c89c73db25eca18c6b25768429cef0]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004080da57d67dba48eb50eef484cf668d981e1bf30c357c3fd21a43cdc41f267c3f186bf87e3680239bac09930f144263c5f28777ad8bcbfc3eb0369e0f7b18392a12397a4fbe15a2a1f6e2e5b4067c82681c89c73db25eca18c6b25768429cef0]
+[sha = SHA-512]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020102020101
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0e74a096d7f6ee1be9b4160d6b79baba4d25b4fb6fbdd38f5a9ed5cc1ac79943be71ede093e504c7dc0832daeb898a05]
+[key.wy = 0a8d005b30c894686f6ecb2bc696e25effaccd3c9e4b48122db567c0118a0b983b757c2f40082dc374f8f6117a8e76fc0]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200040e74a096d7f6ee1be9b4160d6b79baba4d25b4fb6fbdd38f5a9ed5cc1ac79943be71ede093e504c7dc0832daeb898a05a8d005b30c894686f6ecb2bc696e25effaccd3c9e4b48122db567c0118a0b983b757c2f40082dc374f8f6117a8e76fc0]
+[sha = SHA-512]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020102020102
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0a2ad0e27b40410d16077ddc5e415f109d328bf75e73a0f56876fef731285f83188b207a68690a40e76ed23e2c5e49fcf]
+[key.wy = 604f1c5d7d7df365005d40e209f4da7bb06f310d5a1660ad6236577fbb47955261f507d23b83013ffb951bd76908e76c]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a2ad0e27b40410d16077ddc5e415f109d328bf75e73a0f56876fef731285f83188b207a68690a40e76ed23e2c5e49fcf604f1c5d7d7df365005d40e209f4da7bb06f310d5a1660ad6236577fbb47955261f507d23b83013ffb951bd76908e76c]
+[sha = SHA-512]
+
+# small r and s
+msg = 313233343030
+result = valid
+sig = 3006020102020103
+
+# r is larger than n
+msg = 313233343030
+result = invalid
+sig = 3036023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52975020103
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0a233025c12d20f49dc50dc802e79f03c7ce1750b9204b51325d90b5ade08f4a74ef6efb081ed3156d64a0110d60fffab]
+[key.wy = 0b924881891ee984cf51949dee96cfd7c9759b1ff00f0dbdc718d52117079d5d8bd6c86c6f532276af38b779bf2350d7f]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a233025c12d20f49dc50dc802e79f03c7ce1750b9204b51325d90b5ade08f4a74ef6efb081ed3156d64a0110d60fffabb924881891ee984cf51949dee96cfd7c9759b1ff00f0dbdc718d52117079d5d8bd6c86c6f532276af38b779bf2350d7f]
+[sha = SHA-512]
+
+# s is larger than n
+msg = 313233343030
+result = invalid
+sig = 3036020102023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accd7fffa
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 3c9bb63607cdea0585f38d9780c9ac3e9a5a58153e2aacc4bc7a1d638d12e32c4d3a90c0c114b232c6f16e23e4bebb24]
+[key.wy = 0da2ac2ccedc5494fe534a9abaea3013de0176f1b0e91bcd62154bdf3f604091a5008b2466702d0e2f93e4a4b6c601a54]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200043c9bb63607cdea0585f38d9780c9ac3e9a5a58153e2aacc4bc7a1d638d12e32c4d3a90c0c114b232c6f16e23e4bebb24da2ac2ccedc5494fe534a9abaea3013de0176f1b0e91bcd62154bdf3f604091a5008b2466702d0e2f93e4a4b6c601a54]
+[sha = SHA-512]
+
+# small r and s^-1
+msg = 313233343030
+result = valid
+sig = 3036020201000230489122448912244891224489122448912244891224489122347ce79bc437f4d071aaa92c7d6c882ae8734dc18cb0d553
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 559a66ef77752fd856976f36ed315619932204599bd7ef91d1a53ac1e7c90b3969cab8143b7a53c4bf5a3fe39f649eb6]
+[key.wy = 1f00f86dd8b8556c4815b2a01c59eb6cc03c97b94b6db4318249fe489e36ac9635876b1ca2ec0999caef5e1a6a58a70d]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004559a66ef77752fd856976f36ed315619932204599bd7ef91d1a53ac1e7c90b3969cab8143b7a53c4bf5a3fe39f649eb61f00f86dd8b8556c4815b2a01c59eb6cc03c97b94b6db4318249fe489e36ac9635876b1ca2ec0999caef5e1a6a58a70d]
+[sha = SHA-512]
+
+# smallish r and s^-1
+msg = 313233343030
+result = valid
+sig = 303c02072d9b4d347952cd023100ce751512561b6f57c75342848a3ff98ccf9c3f0219b6b68d00449e6c971a85d2e2ce73554b59219d54d2083b46327351
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 548e79a17fd3a114d830ea88f218ee1ef7aa3f8dc139e0a8b9b60e25049a816ef449e8bd5dae867446495fdf20f4770]
+[key.wy = 363a1e8afefb02ebfd59df90b6d23ff7d5f706f9b26daebae1d4657ac342844ee9c2e0e9269f7efe7ab91e0303c115d]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200040548e79a17fd3a114d830ea88f218ee1ef7aa3f8dc139e0a8b9b60e25049a816ef449e8bd5dae867446495fdf20f47700363a1e8afefb02ebfd59df90b6d23ff7d5f706f9b26daebae1d4657ac342844ee9c2e0e9269f7efe7ab91e0303c115d]
+[sha = SHA-512]
+
+# 100-bit r and small s^-1
+msg = 313233343030
+result = valid
+sig = 3041020d1033e67e37b32b445580bf4efb02302ad52ad52ad52ad52ad52ad52ad52ad52ad52ad52ad52ad5215c51b320e460542f9cc38968ccdf4263684004eb79a452
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0a0eb670630f9bbbd963c5750de7bcbae4ddfd37b13fe7690eec6861a3c56c8efb87dbbf85ccd953c659d382c3d7df76a]
+[key.wy = 0fb08840635a16ac7ecf3de2dc28a77c8af9d49e5a832551e3354a2b311e52be86720d9b2fbb78d11a8aec61606a29f0d]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a0eb670630f9bbbd963c5750de7bcbae4ddfd37b13fe7690eec6861a3c56c8efb87dbbf85ccd953c659d382c3d7df76afb08840635a16ac7ecf3de2dc28a77c8af9d49e5a832551e3354a2b311e52be86720d9b2fbb78d11a8aec61606a29f0d]
+[sha = SHA-512]
+
+# small r and 100 bit s^-1
+msg = 313233343030
+result = valid
+sig = 303602020100023077a172dfe37a2c53f0b92ab60f0a8f085f49dbfd930719d6f9e587ea68ae57cb49cd35a88cf8c6acec02f057a3807a5b
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 254bce3041b00468445cb9ae597bc76c1279a8506142ce2427185b1d7f753d1c0aad94156b531a2071aa61c83ec842a3]
+[key.wy = 710d6c8c96766ae8b63396133e5872805e47d9ba39113e122d676d54dbb2460b59d986bdd33be346c021e8a71bb41ba9]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004254bce3041b00468445cb9ae597bc76c1279a8506142ce2427185b1d7f753d1c0aad94156b531a2071aa61c83ec842a3710d6c8c96766ae8b63396133e5872805e47d9ba39113e122d676d54dbb2460b59d986bdd33be346c021e8a71bb41ba9]
+[sha = SHA-512]
+
+# 100-bit r and s^-1
+msg = 313233343030
+result = valid
+sig = 3041020d062522bbd3ecbe7c39e93e7c24023077a172dfe37a2c53f0b92ab60f0a8f085f49dbfd930719d6f9e587ea68ae57cb49cd35a88cf8c6acec02f057a3807a5b
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 09129db4446c2c598c4f81070f70f66c37c39323e01418c095de9902e0e1b20f26bc3e011ba84c10626ffdce836690c9f]
+[key.wy = 08e4a104fec4aaa4350c238617ee50456accc49efc3b73eb9548e1600c2483f1c4bae9ddf3ff92af17afd19f86274589c]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200049129db4446c2c598c4f81070f70f66c37c39323e01418c095de9902e0e1b20f26bc3e011ba84c10626ffdce836690c9f8e4a104fec4aaa4350c238617ee50456accc49efc3b73eb9548e1600c2483f1c4bae9ddf3ff92af17afd19f86274589c]
+[sha = SHA-512]
+
+# r and s^-1 are close to n
+msg = 313233343030
+result = valid
+sig = 3065023100ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc528f3023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0a701a8111cdf97ced74a00a4514b2b526be8113e7df6cf7163aaee465880d26275b833b186d80f1862dc67ff768dde43]
+[key.wy = 0e5a991f16f8f777311b17eabdc90b6ece3b5da776cfbebbc504382ca1abae1c6aa6a64d9c41110d97950514e99578ed8]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a701a8111cdf97ced74a00a4514b2b526be8113e7df6cf7163aaee465880d26275b833b186d80f1862dc67ff768dde43e5a991f16f8f777311b17eabdc90b6ece3b5da776cfbebbc504382ca1abae1c6aa6a64d9c41110d97950514e99578ed8]
+[sha = SHA-512]
+
+# s == 1
+msg = 313233343030
+result = valid
+sig = 3035023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326020101
+
+# s == 0
+msg = 313233343030
+result = invalid
+sig = 3035023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326020100
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0b6815ba05413bcf34f4c0704af590c1998d7fcd169541e1efe1567ca1dd71a22e35ac838b20c75281582044a57b58f45]
+[key.wy = 6cdceb10612062779abadd8742c6e93ed74adf306f3b3a0f96b70dd1134b7558b64b55b200c5732c50f05aa032ae7c00]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b6815ba05413bcf34f4c0704af590c1998d7fcd169541e1efe1567ca1dd71a22e35ac838b20c75281582044a57b58f456cdceb10612062779abadd8742c6e93ed74adf306f3b3a0f96b70dd1134b7558b64b55b200c5732c50f05aa032ae7c00]
+[sha = SHA-512]
+
+# point at infinity during verify
+msg = 313233343030
+result = invalid
+sig = 306402307fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294b9023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0b4b2d5a8b50ffabd34748e94498c1d4728d084f943fbddd4b3b6ee16eaa4da91613a82c98017132c94cd6fe4b87232f1]
+[key.wy = 6d612228ed5d7d08bf0c8699677e3b8f3e718073b945a6c108d97a3b1433c79052b2655a18a3b2e621baa88198cb5f3c]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b4b2d5a8b50ffabd34748e94498c1d4728d084f943fbddd4b3b6ee16eaa4da91613a82c98017132c94cd6fe4b87232f16d612228ed5d7d08bf0c8699677e3b8f3e718073b945a6c108d97a3b1433c79052b2655a18a3b2e621baa88198cb5f3c]
+[sha = SHA-512]
+
+# u1 == 1
+msg = 313233343030
+result = valid
+sig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158ca
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0842b3d89e54d9a4b5694d9251bba20ae4854c510dc0b6ef7033e4045ba4e64b6ddcd36299aac554dbac6db3e27c98123]
+[key.wy = 0868258190297e1d6bae648a6dee2285886233afd1c3d6f196ad1db14262a579d74cf7855fffc65f5abd242b135ae87df]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004842b3d89e54d9a4b5694d9251bba20ae4854c510dc0b6ef7033e4045ba4e64b6ddcd36299aac554dbac6db3e27c98123868258190297e1d6bae648a6dee2285886233afd1c3d6f196ad1db14262a579d74cf7855fffc65f5abd242b135ae87df]
+[sha = SHA-512]
+
+# u1 == n - 1
+msg = 313233343030
+result = valid
+sig = 3065023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023100bc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d322ff6d1d1162b5de29edcd0b69803fe2f8af8e3d103d0a9
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 09ab73dcfffc820e739a3ed9c316c6f15d27a032f8aa59325f7842cf4a34198ac6ff09eb1a311ce226bf1abb49d808511]
+[key.wy = 135f4b0c2b6b195da9bbe1993e985b8607664f1a4b3d499ea1a112b6afc7e6b88357c9348b614ddfdc846a3f38bbdca]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200049ab73dcfffc820e739a3ed9c316c6f15d27a032f8aa59325f7842cf4a34198ac6ff09eb1a311ce226bf1abb49d8085110135f4b0c2b6b195da9bbe1993e985b8607664f1a4b3d499ea1a112b6afc7e6b88357c9348b614ddfdc846a3f38bbdca]
+[sha = SHA-512]
+
+# u2 == 1
+msg = 313233343030
+result = valid
+sig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 28771b137fb7d74c0ed0290416f47c8118997923c7b3b717fbbd5308a4bb0e494714bd3f1ff5e9e368887377284272eb]
+[key.wy = 0f92e5df476a2fa0906ce4fad121c641abb539ab4ef270cd8f0497cc3e6e05b18561b730670f010741238a5d07b077045]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000428771b137fb7d74c0ed0290416f47c8118997923c7b3b717fbbd5308a4bb0e494714bd3f1ff5e9e368887377284272ebf92e5df476a2fa0906ce4fad121c641abb539ab4ef270cd8f0497cc3e6e05b18561b730670f010741238a5d07b077045]
+[sha = SHA-512]
+
+# u2 == n - 1
+msg = 313233343030
+result = valid
+sig = 3065023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023100aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa84ecde56a2cf73ea3abc092185cb1a51f34810f1ddd8c64d
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 09d1baad217829d5f2d7db5bd085e9126232e8c49c58707cb153db1d1e20a109c90f7bcbae4f2c74d6595207cb0e5dd27]
+[key.wy = 1eea30752a1425905d0811d0f42019e5088142b41945bee03948f206f2e7c3c1081ba9a297180e36b247ee9e70832035]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200049d1baad217829d5f2d7db5bd085e9126232e8c49c58707cb153db1d1e20a109c90f7bcbae4f2c74d6595207cb0e5dd271eea30752a1425905d0811d0f42019e5088142b41945bee03948f206f2e7c3c1081ba9a297180e36b247ee9e70832035]
+[sha = SHA-512]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100c152aafea3a8612ec83a7dc9448f01941899d7041319bbd60bfdfb3c03da74c00c8fc4176128a6263268711edc6e8e90
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 08e39e1e44f782b810ea93037c344371c4fb141c8bf196ea618f3a176547139a6d02121d2794cbe6481061694db579315]
+[key.wy = 0c3184e8cd9b6c16b37699633d87f5600654b44cbcb5ab50ba872dfa001769eb765b2d1902e01d2e8af4e1fd6e9c0f30f]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200048e39e1e44f782b810ea93037c344371c4fb141c8bf196ea618f3a176547139a6d02121d2794cbe6481061694db579315c3184e8cd9b6c16b37699633d87f5600654b44cbcb5ab50ba872dfa001769eb765b2d1902e01d2e8af4e1fd6e9c0f30f]
+[sha = SHA-512]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02304764eeac3e7a08daacfad7d1e1e3696042164b06f77bd78c3213ddea6f9fd449a34c97b9e560a6bf7195da41333c7565
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0b96fca0e3f6ebf7326f0a8ce8bdf226a2560c22526bf154f7b467010f3a46baca73414070db0f7ab039f345548452ae2]
+[key.wy = 6f7b744274e9bd6c791f47513e6b51eb42fea3816b3032b33a81695f04d4e775be06484cf7e6a69cba8bacbcb597b3e3]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004b96fca0e3f6ebf7326f0a8ce8bdf226a2560c22526bf154f7b467010f3a46baca73414070db0f7ab039f345548452ae26f7b744274e9bd6c791f47513e6b51eb42fea3816b3032b33a81695f04d4e775be06484cf7e6a69cba8bacbcb597b3e3]
+[sha = SHA-512]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100cb4d5c0ff0abe29b2771fe9f179a5614e2e4c3cc1134a7aad08d8ec3fd8fcd07fd34b3473ca65ead1c7bb20bcf3ea5c9
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 4fd52b11ff747b59ef609e065a462cd85b73172d20f406fdd845d4eaa3ec173e06ee58a58e1810f051b275bbaa47ccb4]
+[key.wy = 084d2382b9e72c526dc3764a11a4a962a7a4c7355e6f057fc976ab73cc384f9a29da50769809ecbf37358dd83c74fc25f]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200044fd52b11ff747b59ef609e065a462cd85b73172d20f406fdd845d4eaa3ec173e06ee58a58e1810f051b275bbaa47ccb484d2382b9e72c526dc3764a11a4a962a7a4c7355e6f057fc976ab73cc384f9a29da50769809ecbf37358dd83c74fc25f]
+[sha = SHA-512]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02306e441db253bf798dbc07ff041506dc73a75086a43252fb439dd016110475d8381f65f7f27f9e1cfc9b48f06a2dfa8eb6
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 7d123e3dbab9913d698891023e28654cba2a94dc408a0dc386e63d8d22ff0f33358a231860b7c2e4f8429e9e8c9a1c5b]
+[key.wy = 0e7c95d1875f24ecdfeffc6136cf56f800f5434490f234f14d78505c2d4aea51e2a3a6a5d1693e72c4b1dd2a8746b875a]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200047d123e3dbab9913d698891023e28654cba2a94dc408a0dc386e63d8d22ff0f33358a231860b7c2e4f8429e9e8c9a1c5be7c95d1875f24ecdfeffc6136cf56f800f5434490f234f14d78505c2d4aea51e2a3a6a5d1693e72c4b1dd2a8746b875a]
+[sha = SHA-512]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023041db253bf798dbc07ff041506dc73a75086a43252fb43b63191efcd0914b6afb4bf8c77d008dbeac04277ef4aa59c394
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 608ce23a383452f8f4dcc5c0085d6793ec518985f0276a3409a23d7b7ca7e7dcb163601aca73840c3bd470aff70250bf]
+[key.wy = 674005a0be08939339363e314dca7ea67adfb60cd530628fe35f05416da8f20d5fb3b0ccd183a21dbb41c4e195d6303d]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004608ce23a383452f8f4dcc5c0085d6793ec518985f0276a3409a23d7b7ca7e7dcb163601aca73840c3bd470aff70250bf674005a0be08939339363e314dca7ea67adfb60cd530628fe35f05416da8f20d5fb3b0ccd183a21dbb41c4e195d6303d]
+[sha = SHA-512]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02310083b64a77ef31b780ffe082a0db8e74ea10d4864a5f6876c6323df9a12296d5f697f18efa011b7d58084efde954b38728
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 48d23de1869475a1de532399da1240bab560eb74a6c7b0871bf8ac8fb6cc17cf7b34fcd7c79fd99c76c605bdf3fcbe18]
+[key.wy = 0e15b66ab91d0a03e203c2ff914d4bedc38c1ec5dcd1d12db9b43ef6f44581632683bf785aa4326566227ece3c16be796]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000448d23de1869475a1de532399da1240bab560eb74a6c7b0871bf8ac8fb6cc17cf7b34fcd7c79fd99c76c605bdf3fcbe18e15b66ab91d0a03e203c2ff914d4bedc38c1ec5dcd1d12db9b43ef6f44581632683bf785aa4326566227ece3c16be796]
+[sha = SHA-512]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023053bf798dbc07ff041506dc73a75086a43252fb43b6327af3b42da6d3e9a72cde0b5c2de6bf072e780e94ad12dcab270a
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 5d5eb470f9c6a0bb18e8960b67011acf9f01df405ac5b4bf9f4611d6a8af1a26b11b0790e93ae2361525dde51bacac94]
+[key.wy = 0d42ce151793b80cee679c848362ec272000316590ebc91547b3b6608dfbade21e04de1548ebb45cc4721eb64a16b8318]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200045d5eb470f9c6a0bb18e8960b67011acf9f01df405ac5b4bf9f4611d6a8af1a26b11b0790e93ae2361525dde51bacac94d42ce151793b80cee679c848362ec272000316590ebc91547b3b6608dfbade21e04de1548ebb45cc4721eb64a16b8318]
+[sha = SHA-512]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023024c53b0a00cf087a9a20a2b78bc81d5b383d04ba9b55a567405239d224387344c41cceff0f68ffc930dbaa0b3d346f45
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 1da34a149ed562c8ec13e84cb067107bc28b50bfa47575d5a9948cde5a3d7357c38ea41fcfcdd1ab1a1bd9b6592b33d9]
+[key.wy = 0e14aedfd0cfffcfecbdc21276e6a2c78b8729412c48339ae538b799b7d8e61163047a64cfcec9018aa00f99ae740e3f3]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200041da34a149ed562c8ec13e84cb067107bc28b50bfa47575d5a9948cde5a3d7357c38ea41fcfcdd1ab1a1bd9b6592b33d9e14aedfd0cfffcfecbdc21276e6a2c78b8729412c48339ae538b799b7d8e61163047a64cfcec9018aa00f99ae740e3f3]
+[sha = SHA-512]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100c600ccb39bb3e2d85d880d76d1d519205f050c4b93deae0c5d63e8898ca8d7a5babbb944debe0f3c44332aae5770cb7b
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 08b8675211b321f8b318ba60337cde32a6b04243979546383127a068a8749cb5e98c4231b198de62a2b069d3a94d1c7b1]
+[key.wy = 09d33468a130b4fef66a59d4aee00ca40bdbeaf044b8b22841bb4c8ba419f891b3855f4bddf8dae3577d97120b9d3fa44]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200048b8675211b321f8b318ba60337cde32a6b04243979546383127a068a8749cb5e98c4231b198de62a2b069d3a94d1c7b19d33468a130b4fef66a59d4aee00ca40bdbeaf044b8b22841bb4c8ba419f891b3855f4bddf8dae3577d97120b9d3fa44]
+[sha = SHA-512]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02303ead55015c579ed137c58236bb70fe6be76628fbece64429bb655245f05cb91f4b8a499ae7880154ba83a84bf0569ae3
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 442766bdb8b2cf4fef5f65d5d86b61681ec89220c983b51f15bfe12fb0bf9780e0c38bbcc888afb3c55ee828774b86f7]
+[key.wy = 56b7f399c534c7acd46be4bc8bb38f087b0023b8f5166ab34192ca0b1cad62d663aa474c6f9286c8a054ef94ea42e3c7]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004442766bdb8b2cf4fef5f65d5d86b61681ec89220c983b51f15bfe12fb0bf9780e0c38bbcc888afb3c55ee828774b86f756b7f399c534c7acd46be4bc8bb38f087b0023b8f5166ab34192ca0b1cad62d663aa474c6f9286c8a054ef94ea42e3c7]
+[sha = SHA-512]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100de03ff820a836e39d3a8435219297da1db193d79e359663e7cc9a229e2a6ac9e9d5c75417fa455bc8e3b89274ee47d0e
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 11342b314f31648931abb897c1371dd3a23e91f2405c4a81744be18e753919752208779de2d54e865eeefbb0bfb4998a]
+[key.wy = 0f533d7a4d6fc6cb5cb98915ce08d0f656e37a502e78f8c1b8baca728c2ecb05a2156f01cff16595b363cdb49c00c1aa2]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000411342b314f31648931abb897c1371dd3a23e91f2405c4a81744be18e753919752208779de2d54e865eeefbb0bfb4998af533d7a4d6fc6cb5cb98915ce08d0f656e37a502e78f8c1b8baca728c2ecb05a2156f01cff16595b363cdb49c00c1aa2]
+[sha = SHA-512]
+
+# edge case for u1
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100e5a6ae07f855f14d93b8ff4f8bcd2b0a717261e6089a53d54bf86e22f8e37d73aaa7607cc2ab831404b3e5bb4e01e79e
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 3c96b49ff60ff05951b7b1aca65664f13128b714da620697ef0d90bfc01ef643baa5c608f16ca885038322a443aed3e6]
+[key.wy = 169a27f2ea7a36376ef92a900e5389a7b441fd051d693ce65250b881cfdd6487370372292c84369742b18106188b05c0]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200043c96b49ff60ff05951b7b1aca65664f13128b714da620697ef0d90bfc01ef643baa5c608f16ca885038322a443aed3e6169a27f2ea7a36376ef92a900e5389a7b441fd051d693ce65250b881cfdd6487370372292c84369742b18106188b05c0]
+[sha = SHA-512]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02307fffffffffffffffffffffffffffffffffffffffffffffffed2119d5fc12649fc808af3b6d9037d3a44eb32399970dd0
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 388dae49ea48afb558456fdb1d0b04d4f8f1c46f14d22de25862d35069a28ae9284d7a8074546e779ad2c5f17ce9b89b]
+[key.wy = 0b353298f3c526aa0a10ed23bcb1ed9788812c8a3a6cbea82a3d9d8d465a4cca59dbd3d3d8a36098d644f1b45d36df537]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004388dae49ea48afb558456fdb1d0b04d4f8f1c46f14d22de25862d35069a28ae9284d7a8074546e779ad2c5f17ce9b89bb353298f3c526aa0a10ed23bcb1ed9788812c8a3a6cbea82a3d9d8d465a4cca59dbd3d3d8a36098d644f1b45d36df537]
+[sha = SHA-512]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023079b95c013b0472de04d8faeec3b779c39fe729ea84fb554cd091c7178c2f054eabbc62c3e1cfbac2c2e69d7aa45d9072
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0c85200ac6411423573e3ebc1b7aea95e74add5ce3b41282baa885972acc085c8365c05c539ce47e799afc353d6788ce8]
+[key.wy = 68cfce1eb2bfe009990084fb03c0919ab892313d7a12efc3514e8273685b9071892faefca4306adf7854afcebafffbf4]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004c85200ac6411423573e3ebc1b7aea95e74add5ce3b41282baa885972acc085c8365c05c539ce47e799afc353d6788ce868cfce1eb2bfe009990084fb03c0919ab892313d7a12efc3514e8273685b9071892faefca4306adf7854afcebafffbf4]
+[sha = SHA-512]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100bfd40d0caa4d9d42381f3d72a25683f52b03a1ed96fb72d03f08dcb9a8bc8f23c1a459deab03bcd39396c0d1e9053c81
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0e63ae2881ed60884ef1aef52178a297bdfedf67f4e3c1d876ad10b42c03b5e67f7f8cfaf4dfea4def7ab82fde3ed9b91]
+[key.wy = 0e2be22bc3fa46a2ed094ebd7c86a9512c8c40cd542fb539c34347ef2be4e7f1543af960fd2347354a7a1df71a237d51]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e63ae2881ed60884ef1aef52178a297bdfedf67f4e3c1d876ad10b42c03b5e67f7f8cfaf4dfea4def7ab82fde3ed9b910e2be22bc3fa46a2ed094ebd7c86a9512c8c40cd542fb539c34347ef2be4e7f1543af960fd2347354a7a1df71a237d51]
+[sha = SHA-512]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02304c7d219db9af94ce7fffffffffffffffffffffffffffffffef15cf1058c8d8ba1e634c4122db95ec1facd4bb13ebf09a
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0e9c415f8a72055239570c3c370cf9380cdfabb6ebdbd8058e2fc65193080707895ea1566eeb26149603f4b4d4c1e79d4]
+[key.wy = 096ae17a001424d21eae4eaa01067048bcd919625fdd7efd896d980633a0e2ca1f8c9b02c99b69a1e4fa53468a2fe244d]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004e9c415f8a72055239570c3c370cf9380cdfabb6ebdbd8058e2fc65193080707895ea1566eeb26149603f4b4d4c1e79d496ae17a001424d21eae4eaa01067048bcd919625fdd7efd896d980633a0e2ca1f8c9b02c99b69a1e4fa53468a2fe244d]
+[sha = SHA-512]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100d219db9af94ce7ffffffffffffffffffffffffffffffffffd189bdb6d9ef7be8504ca374756ea5b8f15e44067d209b9b
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 637223a93dd63af6b348f246e7b3bcb30beaa1dcc888af8e12e5086aa00f7792fbe457463c52422d435f430ad1bb4b21]
+[key.wy = 0f9a1e01758d1e025b162d09d3df8b403226ed3b35e414c41651740d509d8cf6b5e558118607d10669902abebda3ca28d]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004637223a93dd63af6b348f246e7b3bcb30beaa1dcc888af8e12e5086aa00f7792fbe457463c52422d435f430ad1bb4b21f9a1e01758d1e025b162d09d3df8b403226ed3b35e414c41651740d509d8cf6b5e558118607d10669902abebda3ca28d]
+[sha = SHA-512]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100a433b735f299cfffffffffffffffffffffffffffffffffffdbb02debbfa7c9f1487f3936a22ca3f6f5d06ea22d7c0dc3
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 7f4dc23982ecc8b84f54241715c7e94e950f596ce033237639a15fefa5eb5c37cb2e562d6d5b3051ea15600e3341a565]
+[key.wy = 0fed2b55b89d2793321374887b78827ee4ca2216eac2993b1b095844db76adc560450135c072ac1a2c4167520237fbc9d]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200047f4dc23982ecc8b84f54241715c7e94e950f596ce033237639a15fefa5eb5c37cb2e562d6d5b3051ea15600e3341a565fed2b55b89d2793321374887b78827ee4ca2216eac2993b1b095844db76adc560450135c072ac1a2c4167520237fbc9d]
+[sha = SHA-512]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100b9af94ce7fffffffffffffffffffffffffffffffffffffffd6efeefc876c9f23217b443c80637ef939e911219f96c179
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0a0ae8c949f63f1b6a5d024c99e0a296ecd12d196d3b1625d4a76600082a14d455aab267c68f571d89ad0619cb8e476a1]
+[key.wy = 34634336611e1fd1d728bcea588d0e1b652bbca0e52c1bfbd4387a6337ff41ce13a65c8306915d2a39897b985d909b36]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a0ae8c949f63f1b6a5d024c99e0a296ecd12d196d3b1625d4a76600082a14d455aab267c68f571d89ad0619cb8e476a134634336611e1fd1d728bcea588d0e1b652bbca0e52c1bfbd4387a6337ff41ce13a65c8306915d2a39897b985d909b36]
+[sha = SHA-512]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100a276276276276276276276276276276276276276276276273d7228d4f84b769be0fd57b97e4c1ebcae9a5f635e80e9df
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 7cad1637721f5988cb7967238b1f47fd0b63f30f207a165951fc6fb74ba868e5b462628595edc80f75182e564a89c7a0]
+[key.wy = 0fc04c405938aab3d6828e72e86bc59a400719270f8ee3cb5ef929ab53287bb308b51abd2e3ffbc3d93b87471bc2e3730]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200047cad1637721f5988cb7967238b1f47fd0b63f30f207a165951fc6fb74ba868e5b462628595edc80f75182e564a89c7a0fc04c405938aab3d6828e72e86bc59a400719270f8ee3cb5ef929ab53287bb308b51abd2e3ffbc3d93b87471bc2e3730]
+[sha = SHA-512]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023073333333333333333333333333333333333333333333333316e4d9f42d4eca22df403a0c578b86f0a9a93fe89995c7ed
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 2024ecde0e61262955b0301ae6b0a4fbd7771762feb2de35eed1823d2636c6e001f7bfcdbc4e65b1ea40224090411906]
+[key.wy = 0d55362a570e80a2126f01d919b608440294039be03419d518b13cca6a1595414717f1b4ddb842b2c9d4f543e683b86a0]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200042024ecde0e61262955b0301ae6b0a4fbd7771762feb2de35eed1823d2636c6e001f7bfcdbc4e65b1ea40224090411906d55362a570e80a2126f01d919b608440294039be03419d518b13cca6a1595414717f1b4ddb842b2c9d4f543e683b86a0]
+[sha = SHA-512]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02307fffffffffffffffffffffffffffffffffffffffffffffffda4233abf824c93f90115e76db206fa7489d6647332e1ba3
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 40c5f2608956380c39695c7457ddce0880b5e8fab0a9a3726d0c8535b2ff6ca15814d83ed82c0ab33aba76e05e5c0476]
+[key.wy = 0c9d15a2a0b2041237ff61c26519d1d74b141d7a4499fbdefc414a900937a8faf6ef560550c73cdb7edfe9314c480bb2b]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000440c5f2608956380c39695c7457ddce0880b5e8fab0a9a3726d0c8535b2ff6ca15814d83ed82c0ab33aba76e05e5c0476c9d15a2a0b2041237ff61c26519d1d74b141d7a4499fbdefc414a900937a8faf6ef560550c73cdb7edfe9314c480bb2b]
+[sha = SHA-512]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306402307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd02303fffffffffffffffffffffffffffffffffffffffffffffffe3b1a6c0fa1b96efac0d06d9245853bd76760cb5666294bb
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 74acdfd2ab763c593bca30d248f2bf26f1843acf9eb89b4dfcb8451d59683812cf3cbe9a264ea435912a8969c53d7cb8]
+[key.wy = 496dcb0a4efed69b87110fda20e68eb6feed2d5101a4955d43759f10b73e8ffc3131e0c12a765b68bd216ed1ec4f5d2f]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000474acdfd2ab763c593bca30d248f2bf26f1843acf9eb89b4dfcb8451d59683812cf3cbe9a264ea435912a8969c53d7cb8496dcb0a4efed69b87110fda20e68eb6feed2d5101a4955d43759f10b73e8ffc3131e0c12a765b68bd216ed1ec4f5d2f]
+[sha = SHA-512]
+
+# edge case for u2
+msg = 313233343030
+result = valid
+sig = 306502307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd023100dfea06865526cea11c0f9eb9512b41fa9581d0f6cb7db9680336151dce79de818cdf33c879da322740416d1e5ae532fa
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a3991734]
+[key.wy = 0945baab27ca6383737b7dd45023f997aff5e165f0fd7d8e5c0b5f9c5e731588af2fe5bd8976a0b871c132edf21f363af]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a3991734945baab27ca6383737b7dd45023f997aff5e165f0fd7d8e5c0b5f9c5e731588af2fe5bd8976a0b871c132edf21f363af]
+[sha = SHA-512]
+
+# point duplication during verification
+msg = 313233343030
+result = valid
+sig = 3066023100b37699e0d518a4d370dbdaaaea3788850fa03f8186d1f78fdfbae6540aa670b31c8ada0fff3e737bd69520560fe0ce60023100e16043c2face20228dba6366e19ecc6db71b918bbe8a890b9dad2fcead184e071c9ac4acaee2f831a1e4cc337994f5ec
+# Some implementations of ECDSA do not handle duplication and points at infinity
+# correctly. This is a test vector that has been specially crafted to check for
+# such an omission.
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a3991734]
+[key.wy = 6ba4554d8359c7c8c84822bafdc0668500a1e9a0f028271a3f4a063a18cea7740d01a4266895f478e3ecd121de0c9c50]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004da35d6a82818ae5254cb65fc86ac42a47873ab247a5ca664e9f095e8de9a57fe721860e66cbc6bd499431a48a39917346ba4554d8359c7c8c84822bafdc0668500a1e9a0f028271a3f4a063a18cea7740d01a4266895f478e3ecd121de0c9c50]
+[sha = SHA-512]
+
+# duplication bug
+msg = 313233343030
+result = invalid
+sig = 3066023100b37699e0d518a4d370dbdaaaea3788850fa03f8186d1f78fdfbae6540aa670b31c8ada0fff3e737bd69520560fe0ce60023100e16043c2face20228dba6366e19ecc6db71b918bbe8a890b9dad2fcead184e071c9ac4acaee2f831a1e4cc337994f5ec
+# Some implementations of ECDSA do not handle duplication and points at infinity
+# correctly. This is a test vector that has been specially crafted to check for
+# such an omission.
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0820064193c71c7141fe41e711fe843a7474be6b05f50cb0be411cdf7fc78ea7ec96aeb3991ef7646bbde59152d381a32]
+[key.wy = 631c5adf93d488b45e67cc9890d8e779f63960193dc16bd1cc136b3e28cf499dfa8e7bff482a0115e6083987f7c042fc]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004820064193c71c7141fe41e711fe843a7474be6b05f50cb0be411cdf7fc78ea7ec96aeb3991ef7646bbde59152d381a32631c5adf93d488b45e67cc9890d8e779f63960193dc16bd1cc136b3e28cf499dfa8e7bff482a0115e6083987f7c042fc]
+[sha = SHA-512]
+
+# point with x-coordinate 0
+msg = 313233343030
+result = invalid
+sig = 3035020101023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 52fabc58eacfd3a4828f51c413205c20888941ee45ecac076ffc23145d83542034aa01253d6ebf34eeefaa371d6cee11]
+[key.wy = 09f340712cd78155712746578f5632ded2b2e5afb43b085f81732792108e331a4b50d27f3578252ffb0daa9d78655a0ab]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000452fabc58eacfd3a4828f51c413205c20888941ee45ecac076ffc23145d83542034aa01253d6ebf34eeefaa371d6cee119f340712cd78155712746578f5632ded2b2e5afb43b085f81732792108e331a4b50d27f3578252ffb0daa9d78655a0ab]
+[sha = SHA-512]
+
+# point with x-coordinate 0
+msg = 313233343030
+result = invalid
+sig = 3065023101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023033333333333333333333333333333333333333333333333327e0a919fda4a2c644d202bd41bcee4bc8fc05155c276eb0
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0a8fdb1a022d4e3a7ee29612bb110acbea27daecb827d344cb6c6a7acad61d371ddc7842147b74a18767e618712f04c1c]
+[key.wy = 64ac6daf8e08cd7b90a0c9d9123884c7a7abb4664a75b0897064c3c8956b0ca9c417237f8d5a7dd8421b0d48c9d52c7c]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004a8fdb1a022d4e3a7ee29612bb110acbea27daecb827d344cb6c6a7acad61d371ddc7842147b74a18767e618712f04c1c64ac6daf8e08cd7b90a0c9d9123884c7a7abb4664a75b0897064c3c8956b0ca9c417237f8d5a7dd8421b0d48c9d52c7c]
+[sha = SHA-512]
+
+# comparison with point at infinity 
+msg = 313233343030
+result = invalid
+sig = 3064023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326023033333333333333333333333333333333333333333333333327e0a919fda4a2c644d202bd41bcee4bc8fc05155c276eb0
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0878e414a5d6a0e0d1ab3c5563c44e80c3b2ef265f27a33ed5cac109ad664c1269beae9031d8d178cbfdb1bfa7cc3cc79]
+[key.wy = 0fabbb2b6f7ce54026863b0f297a4fe3de82d5044dacafede49d5afc60bc875f4b659c06c19bb74c7c27351687f52b411]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004878e414a5d6a0e0d1ab3c5563c44e80c3b2ef265f27a33ed5cac109ad664c1269beae9031d8d178cbfdb1bfa7cc3cc79fabbb2b6f7ce54026863b0f297a4fe3de82d5044dacafede49d5afc60bc875f4b659c06c19bb74c7c27351687f52b411]
+[sha = SHA-512]
+
+# extreme value for k
+msg = 313233343030
+result = valid
+sig = 3064023008d999057ba3d2d969260045c55b97f089025959a6f434d651d207d19fb96e9e4fe0e86ebe0e64f85b96a9c75295df61023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0984a1c04446a52ad6a54d64f2c6c49b61f23abe7dc6f33714896aefb0befb9a52b95b048561132c28c9850e851a6d00e]
+[key.wy = 0b4e19f9de59d30ca26801f2789a3330b081e6bf57f84f3c6107defd05a959cef5f298acea5a6b87b38e22c5409ec9f71]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004984a1c04446a52ad6a54d64f2c6c49b61f23abe7dc6f33714896aefb0befb9a52b95b048561132c28c9850e851a6d00eb4e19f9de59d30ca26801f2789a3330b081e6bf57f84f3c6107defd05a959cef5f298acea5a6b87b38e22c5409ec9f71]
+[sha = SHA-512]
+
+# extreme value for k
+msg = 313233343030
+result = valid
+sig = 3065023100aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7023055555555555555555555555555555555555555555555555542766f2b5167b9f51d5e0490c2e58d28f9a40878eeec6326
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]
+[key.wy = 3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab73617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f]
+[sha = SHA-512]
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 3064023043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158ca02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 3065023100bc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d322ff6d1d1162b5de29edcd0b69803fe2f8af8e3d103d0a902302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7]
+[key.wy = 0c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7c9e821b569d9d390a26167406d6d23d6070be242d765eb831625ceec4a0f473ef59f4e30e2817e6285bce2846f15f1a0]
+[sha = SHA-512]
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 3064023043f800fbeaf9238c58af795bcdad04bc49cd850c394d3382953356b023210281757b30e19218a37cbd612086fbc158ca02302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e
+
+# testing point duplication
+msg = 313233343030
+result = invalid
+sig = 3065023100bc07ff041506dc73a75086a43252fb43b6327af3c6b2cc7d322ff6d1d1162b5de29edcd0b69803fe2f8af8e3d103d0a902302492492492492492492492492492492492492492492492491c7be680477598d6c3716fabc13dcec86afd2833d41c2a7e
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 29bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc]
+[key.wy = 09a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]
+[keyDer = 3076301006072a8648ce3d020106052b810400220362000429bdb76d5fa741bfd70233cb3a66cc7d44beb3b0663d92a8136650478bcefb61ef182e155a54345a5e8e5e88f064e5bc9a525ab7f764dad3dae1468c2b419f3b62b9ba917d5e8c4fb1ec47404a3fc76474b2713081be9db4c00e043ada9fc4a3]
+[sha = SHA-512]
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 306402302290c886bbad8f53089583d543a269a727665626d6b94a3796324c62d08988f66f6011e845811a03589e92abe1f17faf023066e2cb4380997f4e7f85022541adb22d24d1196be68a3db888b03eb3d2d40b0d9a3a6a00a1a4782ee0a00e8410ba2d86
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3066023100a3f1102e92ebe46d67e47c61e54a109347ddd7dced3721bffab6847607678f1d15bc1cb5b39b43ee52b02d684bf37850023100eeebb277b55c8748c47675f5e1cf85c1634cea8ce043040de5e76b1bd72e8067a7c6bfa6813b21396348dd01ac7ab61c
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3065023100f290946361f7b733316210d91fc06c1459893f5dbfcf1e086183e5d7730661ef9b3587a9b690438e92d2278779a4d3fd02307b8bdc03bd4cc0026befb1551c75cd6f6b962a80b96fa5b2bbe135cd7b37580501b931b273b298b2ae0ab1198c920e1a
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 306502304da0ba312f61a16a1c9878408ba142b9809a25a089d53089e852d13670fe5050898105af571e1c02c32617a7b77e16e0023100ce54b6ba8d60e21ca6e3bbbc305dc946a92b72f167c412088ab77c08273c2cabe1cd4c89d1f508ffd420e1dae2efdaad
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 306602310087e01c452f47c3a87bf083ed5f8db2fccf89722b56f8cd7a39fc850172f3033ec08c8dcde6015c032084aef34b3638bf023100f3676ef5f43ff23f303fddc5f59bdd0362c3953d48c383f950ef62e88f72e93138c0dbca4b933fa78f94cf3ce5da5cfc
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 30650230557a8ad54ec9ea3806071f75621ed1c4bc3c9fda897066d7b3c827c1832dfc2520d6598265a89208241b852ce932e2e8023100c6629483a2a00da078aa35177833fdaa9956925dc10eca31d358c5403a0ab003858b7c08f383b44c0c658b1b18d354e9
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 3065023100db72e945913b3f8b421f2e87893a119e4de350fa899017efa7afa709e3c898972ffa70413d70de6dab9738ffb82a89920230767853ae338f0f0405eaf8a59302200a6bc291edd3a0355c8844c01e7aa59a0b39691d15b94827b07ebb3175584a7d58
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 30650231008c1b2c1610665be24f03b47527dced5cc82d8991e13b906f22c9847b73c066934e1457afc14465761c61ca3a4cb144ed023046f7127854b68a76efa6ec4cda7929d20bff808e624fcb824d544cdf322ff21df61d737631965360a3a198a457aa33e1
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 306502303a8ddef86bfbf861d75ecbf8e8a3612decc043252538286b15af1a87fda64142dd1f139af7678ae7f7104e5090724e3f0231009933cd18a87341a94f1dbee88044cd8b72b394693d2503dc7cf9337aa3f6f83662c61b374a27fa45c4b3fbef9aff29fe
+
+# pseudorandom signature
+msg = 
+result = valid
+sig = 306402306a28f6e429413f3f03c20f3c7841b83adade75054c2237a060787646712d09df8b7283eda1c2bfc039d0453639aab5a602306c3837367c65397024a0dc910735132219c1c1ed9e127528c3549efc6f897806416f9c41296175c61cd70d06e90e003e
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 30650231008071d8cf9df9efef696ebafc59f74db90c1f1ecf5ccde18858de22fe4d7df2a25cb3001695d706dfd7984b39df65a0f4023027291e6339c2a7fed7a174bb97ffe41d8cfdc20c1260c6ec85d7259f0cc7781bf2ae7a6e6fb4c08e0d75b7381bb7d9b8
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3065023100c89ec4718c55edfdb5ba2ecf4cb12277b49e59f5f3ee3f57b8905f585ce04f79ba0032380ea35922d7ea63f064c93d2002306d212828521c0cae11ae4a8c89a996a3557e10f975b1837f401622c257e3a3cb72b38cc6bb0ee595e5c876a1646441fe
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3065023100d01de802b92ea4ca0baa4c14cfb491ca03f2fe3905b6a8d02fac21d8f0d65fe0743776d1473195f0e2f021361db83a490230791231dc4382dcded690ee9edf8d0ccfc90704dcf1bd211a873b6d6c704e745cabd305a51f9238d0f406998e735895b8
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3065023100b2623abbdc4e5d0cf47b4d629734fd39171cd2e1cfc231ad467f8470e0bc83fcf9e391c68409d3421d7492a7d25d72a90230167750548143e8239b73ce6f7ff2eddb14b8290fc7a92deae483c112d111d04cf4c0ae55ca65f9aa27fb36bc16b64a55
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3065023100ad08aa6dcbcec824cb6c92d6506b1ea7b0228185a446e0cad5961a36272755845a12f8300984f3a9f55004204d17b87b023003dd40f67bfe14a875a453321d84645273420bc16c4ac3e237035740c5712f837afcc5329eeb4adcfa1ef2bcd53c09b9
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3066023100a6f16b617020bcf0f31ded86fcb8001acfe856bb5267baf7cdb862d396b7619432559240e471f80f506b186eabf84bb3023100bd748eea34293676c7cb21a7aea1871aad4e06363d5ed33abebc6c9dd72160c24c0f15d807f3a435fe4c8fcbe63a6f25
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3066023100f72891f7c26020b0487c60d58d0f9663d4e508045268937c23f84b023f991ce92d33fe33dc78083b53a6da02cfb10faf023100f17ea544d497229b54cd49194a6c9d68db6b4db2d0e024daaaf4d19c200d7687cad5e33c893ed59d7627418211dde679
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 30640230773332032272abf6efb4f91947af3503433003149807d95a6d318541835aa93cc2e41b6b8735b7a5ed4028ab6b3c4d80023068316b3263a5e34c32c338b9cf329f6b64cebe6e4d73bef9ac4b12013027cf6db87b31ed6128a47525b72a139c10752d
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3066023100fa0c7636f79cd35e1af317354adb4ce9aaddc6b70a89c972ead222b48dfff4a320fc62d90ef737a642b347c752d5e468023100fafaaa2b3f7e92ea0b0f2b89088ec1adcbd3b9c7b97e8893ad9ca07e9ced7fd37b1aabab68114fe42a4abbeaa32d84ae
+
+# pseudorandom signature
+msg = 4d7367
+result = valid
+sig = 3065023017fbfd972e166d5a788d9af84160f6ecfcd86f5287945bc816bfc644f9849bc1608095de69533699fc465f4e4f074fb7023100d0c71ce90c5ffaef356a1d28ebe6b4e047c678c489f219e12e353a94fbd6478d2fd8bc8f363614cb532b7669943aefd8
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 30650230470014ccd7a1a5e5333d301c8ea528ac3b07b01944af30cec60f4bad94db108509e45ba381818b5bdfaf9daf0d372301023100e3d49d6a05a755aa871d7cb96fffb79fed7625f83f69498ba07c0d65166a67107c9a17ae6e1028e244377a44096217b2
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 3066023100fb766fd8f8d4142b57252b38e958fbcc802031776f5a2ed33a089b150d57f1e5b61820c9db9429b9d4a0d0dac0724779023100ab4dd8ed8989bb38a33a90e898383dc01d5e93f283700890f9c52fb18ef5c82304dfb6b719fcfcf4911ec7c5c2fc8bdb
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 30640230455a32ff77b60c69cef3660a8372d82b3ea3f5ae39151c481e8aceb7d0ebed159a6f2981c00e2db7b0961452b400f35c02305774e8505bfcb77f3a3d751c31d7e19b3d172228826d1d7ea177d418c58f792d36e13ebd14202197c2070e0223fd3900
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 306502302ff98892d18cc048dbb9e5dafebc222300b3ae8a8364f9d2f98ffd4a336fc1ee8bcb89bfe28d9c3e8abac7d153370d760231009045438e28185061d05fdff63cd314d9fc59891bf616bf5e001d313a560d49714dd7864099a09b8032ea870d31d451b6
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 30660231009cafe84002716b7aa1bc76517177e6188f031c066f41cc5e4e4429ef11b855070e91ad94299d7df1e66457336d40774902310094a341146eb31c97759199cada842bf4f9c5e205ef49663939dcce2d40db7f947b91d8e9b0c8398e2f7028cf1e529b8c
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 3065023100a1a5d4820fe5226f2f547b238c96eb62c299ad17bb43298fbf39607cbd908256351a41f44a62d0f20eba1001f22f7b5e02307431dc7ead3664a8aea70efb317af12947e7b49e41e660e522295a0a04c1f6a526158ead5644d82ac4cca618bf01becd
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 306502302c14d1df832aa0eb10e7ce221735ad7584ac0887531b32402e3c1e57fc863be5bc5a2bb87b86165df64f3a4233e761c5023100bdfc8c3579e2417f49d5628dc8286b32663188e017d936e10d61cd3f6edb97919b109c5567b46f4708106fe671f1d5fb
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 3065023009a8643aee4ec1119c836373e167064a53888ef7abe5faeed250c1f9960c6c06bcd42a11f13181d3aab8246767dc5368023100bbb6dd94750e6656babd4e159e27a2fa986bc7e4441771ef87b2280f93056dc5a4a38d1c45b8bc2aa20a4b0c5945b57b
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 3066023100841721e96c44524e86c56d84a5aaea1ac439b060aa11d3e2a1961babd4778075f138dfc0189d3ceac0caccf5bbc1943d023100c9b0df9963daa9b2fe5d75edad22a9316af0132bbda41f7b6754425e9378fa12af0111baabcd37b43714171fcadd978b
+
+# pseudorandom signature
+msg = 313233343030
+result = valid
+sig = 306402300a453df160ea5a79926517f16dba255826b87aebabd6fe9f0332100f94ca5cce86f1a528cf4e0010add0eaa7d86b84be023023a1fae44f99681c9b7b2495fb056e206a0e8c4b60a065a576d0bac6f867ef06c402bc8e8584392a3c97accaa0a36cbc
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 30640230377044d343f900175ac6833071be74964cd636417039e10e837da94b6919bffc3f5a517b945a450852af3259f5cbf108023032ea25006375c153581e80c09f53ad585c736f823c70147aba4fb47bb0a224fae4d8819adad80d4c144ecc2380954a9e
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3065023002881912e33e93b3d6d4daaffbb8bdc421240934f006be89d918ef43a82ea072921f940748c59d1368511355e936c5360231008a77df61061022893e15a793a6a5e332bf4c963b2f8ccd4e1a3193ce196b09afac6740a32118adafffcab61cbc96b5df
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3065023100d55902bc90b4ba98054c751746a0109edb8c2ca928585c5c847bc4abf65482ecac190541248e905e7ce5ca313341c6d8023063bd0c665fd69f43ad50417b5bfd2c669f10d12b33e119c605978069f45457beaff125e3492ffa3d166fbc6735d996c4
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3065023100867551b1271ca957a4f71a645ec14be9973633efbb5d23fb7adaa234b47ad618c6dca48301d8791baf9eaa69155a8cb202301623c18f1a4cd4703756418e6d8bc4868de44f170b094700d6b73e5b9b8a461598f8d0c7041e2cef0411b16f0b5485ed
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3065023100b0f8b43879c5241e40981335abbc66cce82868a2ded3d9dd40a7ed882d59ad8bda1f51f382608380917a92d99e45380602301fc0128240724d16b8cb1cc481f4b5fb972b2f7fc984e488550313443b409151c93171da08222253d0c46bb121f0c418
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3065023100a04b68197390cacb812b47c28158689f11df11f61029b0cfb4989aa4faa7ee4a15c0837642c24d450ca6ea05a79b914102304a243a2491b8f54e5cdf34ee80b2571956e7df6ea0680443a2da089db84c5bd68e489e108e1064fd291c9fb23603469d
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3064023047bc5ab70e4fc533f42fb58ab387f7444d2c655093e47fc988b64ba279fa03a93191eae120b7642795c50a9be44216590230347ad7008ba5f47043858e5a6bc04f05cffb91045cc9a29d6b224cd4e1f50bda10449a2d2e054581a00f1f65062223c0
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3065023008fb1f88f24104bc8d0f3c5ff573d9e714fa87856255503da7a13a2cce87ae4cc383000eb3940374f2b09fcd152e8097023100e86fa46404216031e00a0df4360d49feed084eb7a88a8d1264a4842c802d60bae44b117cba233cc567360c4626913f0b
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 3066023100d4353b7c73abaaefdb11321f374ac8584d9d1fd72836300d8353bf9fe35f269f9225e58630a4182f16c07b00efce32e502310082e4180a271b4571835ebe0299ac13a2053500be7f31747e30318d6dd69e95a59b7f3e1fb457c6929f3e7c84ba6fdd43
+
+# pseudorandom signature
+msg = 0000000000000000000000000000000000000000
+result = valid
+sig = 30650231009d124af0982f176a7f7ac202861a8e3eec892956f0987d8a6c141cf8073b27eeca265bd668ced4280c4a64408cdc38e9023065dd8e11cc71ba60a492fe03b35a8dcec34ff47e99bc3e258e877784ebe0ee77b1d0b67ebc9d2c4b37257fa30bdfaa87
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aac]
+[key.wy = 0acbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004ffffffffaa63f1a239ac70197c6ebfcea5756dc012123f82c51fa874d66028be00e976a1080606737cc75c40bdfe4aacacbd85389088a62a6398384c22b52d492f23f46e4a27a4724ad55551da5c483438095a247cb0c3378f1f52c3425ff9f1]
+[sha = SHA-512]
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 3066023100ccb13c4dc9805a9b4e06ee25ef8c7593eaff7326c432d4b12b923163cf1cbe5fe1cfd3546c1d0761d8874e83ffd2e15d023100db1b0c082ae314b539f05e8a14ad51e5db37f29cacea9b2aab63a04917d58d008cf3f7ba41d5ea280f3b6a67be3ae8f8
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 3065023100c79a30e36d2126b348dd9eb2f5db6aa98f79d80214027e51bcf3cabec188a7ebaf25cb7bbe9ec6bfed135e2a3b70e9160230241338ee2ac931adea9a56e7bfe909947128d54d5122a47b00c278e684e10102740d26e89e343290a5b2fa8b401faec6
+
+# x-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 306402300df82e4ec2960e3df614f8b49cec9a4ee1054365414241361feec9d9d9b6909d8775f222ec385a14afab46266db390c302300968485e854addba0f8354e677e955e1ef2df973d564c49f65f2562cb2a2b80d75e92f8784042955f7b8765f609ce221
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422]
+[key.wy = 0c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004d1827fc6f6f12f21992c5a409a0653b121d2ef02b2b0ab01a9161ce956280740b1e356b255701b0a6ddc9ec2ca8a9422c6ed5d2ced8d8ab7560fa5bb88c738e74541883d8a2b1c0e2ba7e36d030fc4d9bfb8b22f24db897ebac49dd400000000]
+[sha = SHA-512]
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 306402301fafd83d728422e1485f1e52e5b631548647cc3c76c109c3177a73751d91a19012fa4628b218f2229fc4d55f105fe00102304474f9af7b4b0bb96fdb05ae918f799024e8d5b864e49ccd047cf97e7b9f8763cce015c11cf1f461c9027cb901055101
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 3066023100e6025bb957ab197fb4c080d0a5c647e428afb0d7cc235c605ae97545494fd31a9979790bb2da6e1cf186789422b15c970231008ae9872291430d1bb371ef72360dad5afbb6fb001f403d9aaa1445f0326eb1eef775c9dfe1d7ef8bf4e744822108d27e
+
+# y-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 3066023100877d5567c18fa568259005a89c2300d1b3825b732fa14964c1477d4b3098afd09384b97d497464adba41e9df8a74d339023100c40f0760717b4b3bae75742b6dc3dcf04cc22a449cfea19d305e0658cb705fda75163e7399e0b3125ca7d1919c13851e
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 1099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000]
+[key.wy = 0e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]
+[keyDer = 3076301006072a8648ce3d020106052b81040022036200041099bb45100f55f5a85cca3de2b3bd5e250f4f6fad6631a3156c2e52a33d7d615dd279f79f8b4baff7c713ac00000000e6c9b736a8929f2ed7be0c753a54cbb48b8469e0411eaf93a4a82459ba0b681bba8f5fb383b4906d4901a3303e2f1557]
+[sha = SHA-512]
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 3065023100e706b0045a6f54bd175e2437b48767b0204f93d8a4d9d3d00838278137e5b670de4305c5c55e49059b8b5f6e264654c90230405741adff94afd9a88e08d0b1021911fa4cedb2466b1a8fd302a5b5d96566ada63ccb82b6c5e8452fde860c545e0a19
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 306502300c57ce2bc579fbd3a759dfbf5e84c3cef2414846a2e300453e1e4c5188f24432b14ca647a733b6ad35c980a880d36145023100f12a119e22d48b82049df611f1c851fb22795056498a873c730fcb9fd8f314728de0298b9b22c348abc6de2aba97e972
+
+# x-coordinate of the public key has many trailing 0's
+msg = 4d657373616765
+result = valid
+sig = 30660231009a8f80697ccf2e0617612027d861a3a3a657fb75cc82810b40dd5072d39ff37eca29008390da356137e2c9babd814198023100a86537a83c3d57da50e4b29b47dcc3717c5a1ed0fff18ade8dcce4220eac63aab60b9bfed5f1bdd241dab655a9bdd75f
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 2b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69]
+[key.wy = 0d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004000000002b089edd754169010145f263f334fc167cc19dae8225970ae19cc8cb7ec73593d6a465c370f5478b0e539d69d1951d597b56a67345acb25809581f07cd0eb78d9538a3f8a65f300e68a1eb78507df76de650e8f8ee63a5f0c5687c98]
+[sha = SHA-512]
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 306602310093718f6f8542725f62de7039fc193d3fcc81d622230ccc94e9e265390b385af3a3ba50c91a9d6a5b1e07d79af2bd80b2023100d08499f3d298e8afecea122265a36dbf337259020654739783c8ec8ef783d072555b5907285ce83fc8ced9c8398c6269
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 3066023100ce26e42c490dec92cf59d6b1ba75c9a1400d6e5c3fd7c47e1eeb1cded30a3a3d18c81cdfdcbad2742a97293369ce21c202310094671085d941fd27d495452a4c8559a1fe24f3225f5b8ef75faf9d3fb01372c586e23b82714359d0e47144ff5d946161
+
+# x-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 3066023100ffc4738acf71f04a13104c328c138b331fb7202aef66f583ba543ed490d12993c18f724c81ad0f7ea18dae352e5c6480023100e67d4ccdeb68a9a731f06f77eae00175be076d92529b109a62542692c8749ddfde03bed1c119a5901a4e852f2115578f
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]
+[key.wy = 208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b33600000000208b3f5ad3b3937acc9d606cc5ececab4a701f75ed42957ea4d7858d33f5c26c6ae20a9cccda56996700d6b4]
+[sha = SHA-512]
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 3065023100e6fa8455bc14e730e4ca1eb5faf6c8180f2f231069b93a0bb17d33ad5513d93a36214f5ce82ca6bd785ccbacf7249a4c02303979b4b480f496357c25aa3fc850c67ff1c5a2aabd80b6020d2eac3dd7833cf2387d0be64df54a0e9b59f12c3bebf886
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 306502301b49b037783838867fbaa57305b2aa28df1b0ec40f43140067fafdea63f87c02dfb0e6f41b760fbdf51005e90c0c3715023100e7d4eb6ee61611264ea8a668a70287e3d63489273da2b30ad0c221f1893feaea3e878c9a81c6cec865899dbda4fa79ae
+
+# y-coordinate of the public key is small
+msg = 4d657373616765
+result = valid
+sig = 306502310091d9da3d577408189dcaae33d95ed0a0118afd460d5228fa352b6ea671b172eb413816a70621ddaf23c5e2ef79df0c110230053dadbfcd564bddbe44e0ecb4d1e608dbd35d4e83b6634cc72afb87a2d61675ee13960c243f6be70519e167b1d3ceb0
+
+[key.curve = secp384r1]
+[key.keySize = 384]
+[key.type = ECPublicKey]
+[key.wx = 0fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336]
+[key.wy = 0ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]
+[keyDer = 3076301006072a8648ce3d020106052b8104002203620004fb01baad5f0b8f79b9cd104d12aab9310146add7d6b4c022d87ae6711178b94d618ca7b3af13854b1c588879e877b336ffffffffdf74c0a52c4c6c8533629f933a131354b58fe08a12bd6a815b287a71cc0a3d92951df5633325a96798ff294b]
+[sha = SHA-512]
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 3065023100af0ed6ce6419662db80f02a2b632675445c7bf8a34bbacdc81cc5dd306c657ca4c5a3fb1b05f358d8f36fda8ae238806023046b472c0badb17e089c8f9697fd0b4ce71f0f4471b235483d4c8dd3d00aa282cde990253df38ba733b2ad82a601c7508
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 3066023100e2aa9468ccaaadad8b9f43a429c97f0c6a7eedcb4d4af72d639df0fe53f610b953408a8e24e8db138551770750680f7a023100d81020846d1c50ee9ae23601dd638cb71b38d37fb555268c2fa1ad8a761fa7b27afcab2fa69224d1f976699914e09de2
+
+# y-coordinate of the public key is large
+msg = 4d657373616765
+result = valid
+sig = 306402306bf6fa7a663802c3382cc5fd02004ec71e5a031e3d9bfc0858fa994e88497a7782308bc265b8237a6bbbdd38658b36fc02303a9d5941a013bf70d99cc3ff255ce85573688dac40344b5db7144b19bf57bb2701e6850a8f819796b67f7d0b6aea7e50
+
diff --git a/third_party/wycheproof/ecdsa_secp521r1_sha512_test.txt b/third_party/wycheproof/ecdsa_secp521r1_sha512_test.txt
new file mode 100644
index 0000000..03abdde
--- /dev/null
+++ b/third_party/wycheproof/ecdsa_secp521r1_sha512_test.txt
@@ -0,0 +1,2318 @@
+# Imported from Wycheproof's ecdsa_secp521r1_sha512_test.json.
+# This file is generated by convert_wycheproof.go. Do not edit by hand.
+#
+# Algorithm: ECDSA
+# Generator version: 0.4
+
+[key.curve = secp521r1]
+[key.keySize = 521]
+[key.type = ECPublicKey]
+[key.wx = 5c6457ec088d532f482093965ae53ccd07e556ed59e2af945cd8c7a95c1c644f8a56a8a8a3cd77392ddd861e8a924dac99c69069093bd52a52fa6c56004a074508]
+[key.wy = 7878d6d42e4b4dd1e9c0696cb3e19f63033c3db4e60d473259b3ebe079aaf0a986ee6177f8217a78c68b813f7e149a4e56fd9562c07fed3d895942d7d101cb83f6]
+[keyDer = 30819b301006072a8648ce3d020106052b810400230381860004005c6457ec088d532f482093965ae53ccd07e556ed59e2af945cd8c7a95c1c644f8a56a8a8a3cd77392ddd861e8a924dac99c69069093bd52a52fa6c56004a074508007878d6d42e4b4dd1e9c0696cb3e19f63033c3db4e60d473259b3ebe079aaf0a986ee6177f8217a78c68b813f7e149a4e56fd9562c07fed3d895942d7d101cb83f6]
+[sha = SHA-512]
+
+# signature malleability
+msg = 313233343030
+result = valid
+sig = 30818702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024201d74a2f6d95be8d4cb64f02d16d6b785a1246b4ebd206dc596818bb953253245f5a27a24a1aae1e218fdccd8cd7d4990b666d4bf4902b84fdad123f941fe906d948
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 30818802420081d7b378e361fe518b0afc37ffb88f0dcc62be9a9e03d23412efb8c799b803a96ccb37886a57c4f61b228ae2609cb6f14033494846f79aeb2c4fc70c9c020bc1530242010b2471c2a7ebbc5e48f03d2dbbbf89c847a44dedc7ffcddd073f1f814cb0fd1418bd524ba1ec74abef8e4a27f19eab93db20d4553a603f04a0c3719430d80e1197
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 308188024200e819b543589aa13fddef2531dd1c67caa775493b2d307e8130a765f7772d5056d3a5eb6bb37979d9606c1b36862e8397d38d7aae666c558705ce13667cc832d4af02420162398631365bde51182b0b8869b2d924defff46abcbb5fd07dd90240644f623c15f5ed7ad32f6f9a2b81db7f9eb4e8b25ca53e30f1ffc21cdfed6c437b8b03fcbb
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 308188024201ac089cee6fceeb3c00cf74492744b63121d94e7a3d480e59627d64afba97b8745b724ec54f9bf1d4601acdca547404771d06213e3357ebdb729bcfd70cd069fc2d024201ce834aedf2bda5e7fc97aad2df904b9f4ed7a6c26aed152e46de2eda517704fe8d2955a9c1a5790e2f86a4b3c09ac61aff8bc8dfe000cd0e016891806065e51f4a
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 308186024156b7aa356f1584b4c209aa24eadb3de60775e1273bee4f0e9d247ceae97e3d6f701798e883be932cd60d95fb0e659a7f3e2a8291b757f851a0a284b28932f6cf28024127aa41b0bf9ed8202f46f7eb312574601028831cef64d9e1dc7a4e553e8d3c0d5a837baaccfe065bff0bc4e8d389fc1335edaeecc7862bec41af6ed5bb4bc8a19f
+
+# random signature
+msg = 313233343030
+result = valid
+sig = 308188024200bb73df934eef063702468f828c2338cbdc4f9cb71b07334f68f44f9189322cfe0a1c499545bab1195e4b6f9368a848cbead4c77fee1aa4edd0b617a51dd075a604024201171cf378b95cd4032e42c789a315b51632be03620dae45d58f024b9f3cb90b2bdb15b3ebddb89f2f811d06482962adab8d31b2894296846e28f520efe63d725f7c
+
+# valid
+msg = 313233343030
+result = valid
+sig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 3082008602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 308188028200414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length contains leading 0
+msg = 313233343030
+result = invalid
+sig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450282004128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 308702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 308502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 30818602424e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 30818602404e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024228b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# wrong length
+msg = 313233343030
+result = invalid
+sig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024028b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 3085010000008602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 30818b028501000000414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# uint32 overflow in length
+msg = 313233343030
+result = invalid
+sig = 30818b02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450285010000004128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 308901000000000000008602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 30818f02890100000000000000414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# uint64 overflow in length
+msg = 313233343030
+result = invalid
+sig = 30818f02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645028901000000000000004128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 30847fffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 30818a02847fffffff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length = 2**31 - 1
+msg = 313233343030
+result = invalid
+sig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502847fffffff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 3084ffffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 30818a0284ffffffff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length = 2**32 - 1
+msg = 313233343030
+result = invalid
+sig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450284ffffffff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 3085ffffffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 30818b0285ffffffffff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length = 2**40 - 1
+msg = 313233343030
+result = invalid
+sig = 30818b02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450285ffffffffff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 3088ffffffffffffffff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 30818e0288ffffffffffffffff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# length = 2**64 - 1
+msg = 313233343030
+result = invalid
+sig = 30818e02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450288ffffffffffffffff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 30ff02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 30818602ff4e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# incorrect length
+msg = 313233343030
+result = invalid
+sig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864502ff28b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 308002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 30818602804e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# indefinite length without termination
+msg = 313233343030
+result = invalid
+sig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645028028b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# removing sequence
+msg = 313233343030
+result = invalid
+sig = 
+
+# appending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000
+
+# prepending 0's to sequence
+msg = 313233343030
+result = invalid
+sig = 308188000002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000
+
+# appending unused 0's
+msg = 313233343030
+result = invalid
+sig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450000024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10500
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 30818802434e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450500024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# appending null value
+msg = 313233343030
+result = invalid
+sig = 30818802414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024328b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10500
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30818c49817730818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30818b250030818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30818930818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10004deadbeef
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30818b224649817702414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30818a2245250002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30818e224302414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450004deadbeef024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30818b02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452246498177024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864522452500024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# including garbage
+msg = 313233343030
+result = invalid
+sig = 30818e02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452243024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10004deadbeef
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 30818faa00bb00cd0030818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 30818daa02aabb30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 30818e2249aa00bb00cd0002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 30818c2247aa02aabb02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 30818e02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452249aa00bb00cd00024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# including undefined tags
+msg = 313233343030
+result = invalid
+sig = 30818c02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452247aa02aabb024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 308030818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 30818a228002414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450000024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# using composition with indefinite length
+msg = 313233343030
+result = invalid
+sig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452280024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 308031818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 30818a228003414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86450000024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# using composition with wrong tag
+msg = 313233343030
+result = invalid
+sig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf86452280034128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac10000
+
+# Replacing sequence with NULL
+msg = 313233343030
+result = invalid
+sig = 0500
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2e818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 2f818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 31818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 32818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = ff818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 30818600414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 30818601414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 30818603414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 30818604414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 308186ff414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645004128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645014128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645034128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645044128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# changing tag value
+msg = 313233343030
+result = invalid
+sig = 30818602414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645ff4128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# dropping value of sequence
+msg = 313233343030
+result = invalid
+sig = 3000
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 30818b300102308185414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 30818a224502014e02404223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# using composition
+msg = 313233343030
+result = invalid
+sig = 30818a02414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf864522450201280240b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318ac1
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 30818502414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce69d5285e174a01a93022fea8318a
+
+# truncate sequence
+msg = 313233343030
+result = invalid
+sig = 308185414e4223ee43e8cb89de3b1339ffc279e582f82c7ab0f71bbde43dbe374ac75ffbef29acdf8e70750b9a04f66fda48351de7bbfd515720b0ec5cd736f9b73bdf8645024128b5d0926a4172b349b0fd2e929487a5edb94b142df923a697e7446acdacdba0a029e43d69111174dba2fe747122709a69ce