diff --git a/tests/test_utils.py b/tests/test_utils.py
index b196208..1c81764 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -13,6 +13,7 @@
 
 from __future__ import absolute_import, division, print_function
 
+from binascii import unhexlify
 import os
 import textwrap
 
@@ -28,8 +29,8 @@
 from .utils import (
     check_backend_support, check_for_iface, load_cryptrec_vectors,
     load_fips_dsa_key_pair_vectors, load_fips_ecdsa_key_pair_vectors,
-    load_hash_vectors, load_nist_vectors, load_pkcs1_vectors,
-    load_rsa_nist_vectors, load_vectors_from_file,
+    load_fips_ecdsa_signing_vectors, load_hash_vectors, load_nist_vectors,
+    load_pkcs1_vectors, load_rsa_nist_vectors, load_vectors_from_file,
     raises_unsupported_algorithm, select_backends
 )
 
@@ -1983,3 +1984,161 @@
     ]
 
     assert expected == load_fips_ecdsa_key_pair_vectors(vector_data)
+
+
+def test_load_fips_ecdsa_signing_vectors():
+    vector_data = textwrap.dedent("""
+    #  CAVS 11.2
+    #  "SigVer" information for "ecdsa_values"
+    #  Curves/SHAs selected: P-192, B-571,SHA-512
+    #  Generated on Tue Aug 16 15:27:42 2011
+
+    [P-192,SHA-1]
+
+    Msg = ebf748d748ebbca7d29fb473698a6e6b4fb10c865d4af024cc39ae3df3464ba4f1d6\
+d40f32bf9618a91bb5986fa1a2af048a0e14dc51e5267eb05e127d689d0ac6f1a7f156ce066316\
+b971cc7a11d0fd7a2093e27cf2d08727a4e6748cc32fd59c7810c5b9019df21cdcc0bca432c0a3\
+eed0785387508877114359cee4a071cf
+    d = e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3
+    Qx = 07008ea40b08dbe76432096e80a2494c94982d2d5bcf98e6
+    Qy = 76fab681d00b414ea636ba215de26d98c41bd7f2e4d65477
+    k = cb0abc7043a10783684556fb12c4154d57bc31a289685f25
+    R = 6994d962bdd0d793ffddf855ec5bf2f91a9698b46258a63e
+    S = 02ba6465a234903744ab02bc8521405b73cf5fc00e1a9f41
+
+    Msg = 0dcb3e96d77ee64e9d0a350d31563d525755fc675f0c833504e83fc69c030181b42f\
+e80c378e86274a93922c570d54a7a358c05755ec3ae91928e02236e81b43e596e4ccbf6a910488\
+9c388072bec4e1faeae11fe4eb24fa4f9573560dcf2e3abc703c526d46d502c7a7222583431cc8\
+178354ae7dbb84e3479917707bce0968
+    d = 7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244
+    Qx = 0ea3c1fa1f124f26530cbfddeb831eecc67df31e08889d1d
+    Qy = 7215a0cce0501b47903bd8fe1179c2dfe07bd076f89f5225
+    k = 3c646b0f03f5575e5fd463d4319817ce8bd3022eaf551cef
+    R = a3ba51c39c43991d87dff0f34d0bec7c883299e04f60f95e
+    S = 8a7f9c59c6d65ad390e4c19636ba92b53be5d0f848b4e1f7
+
+    [B-571,SHA-512]
+
+    Msg = 10d2e00ae57176c79cdfc746c0c887abe799ee445b151b008e3d9f81eb69be40298d\
+df37b5c45a9b6e5ff83785d8c140cf11e6a4c3879a2845796872363da24b10f1f8d9cc48f8af20\
+681dceb60dd62095d6d3b1779a4a805de3d74e38983b24c0748618e2f92ef7cac257ff4bd1f411\
+13f2891eb13c47930e69ddbe91f270fb
+    d = 03e1b03ffca4399d5b439fac8f87a5cb06930f00d304193d7daf83d5947d0c1e293f74\
+aef8e56849f16147133c37a6b3d1b1883e5d61d6b871ea036c5291d9a74541f28878cb986
+    Qx = 3b236fc135d849d50140fdaae1045e6ae35ef61091e98f5059b30eb16acdd0deb2bc0\
+d3544bc3a666e0014e50030134fe5466a9e4d3911ed580e28851f3747c0010888e819d3d1f
+    Qy = 3a8b6627a587d289032bd76374d16771188d7ff281c39542c8977f6872fa932e5daa1\
+4e13792dea9ffe8e9f68d6b525ec99b81a5a60cfb0590cc6f297cfff8d7ba1a8bb81fe2e16
+    k = 2e56a94cfbbcd293e242f0c2a2e9df289a9480e6ba52e0f00fa19bcf2a7769bd155e6b\
+79ddbd6a8646b0e69c8baea27f8034a18796e8eb4fe6e0e2358c383521d9375d2b6b437f9
+    R = 2eb1c5c1fc93cf3c8babed12c031cf1504e094174fd335104cbe4a2abd210b5a14b1c3\
+a455579f1ed0517c31822340e4dd3c1f967e1b4b9d071a1072afc1a199f8c548cd449a634
+    S = 22f97bb48641235826cf4e597fa8de849402d6bd6114ad2d7fbcf53a08247e5ee921f1\
+bd5994dffee36eedff5592bb93b8bb148214da3b7baebffbd96b4f86c55b3f6bbac142442
+
+    Msg = b61a0849a28672cb536fcf61ea2eb389d02ff7a09aa391744cae6597bd56703c40c5\
+0ca2dee5f7ee796acfd47322f03d8dbe4d99dc8eec588b4e5467f123075b2d74b2a0b0bbfd3ac5\
+487a905fad6d6ac1421c2e564c0cf15e1f0f10bc31c249b7b46edd2462a55f85560d99bde9d5b0\
+6b97817d1dbe0a67c701d6e6e7878272
+    d = 2e09ffd8b434bb7f67d1d3ccf482164f1653c6e4ec64dec2517aa21b7a93b2b21ea1ee\
+bb54734882f29303e489f02e3b741a87287e2dcdf3858eb6d2ec668f8b5b26f442ce513a2
+    Qx = 36f1be8738dd7dae4486b86a08fe90424f3673e76b10e739442e15f3bfafaf841842a\
+c98e490521b7e7bb94c127529f6ec6a42cc6f06fc80606f1210fe020ff508148f93301c9d3
+    Qy = 4d39666ebe99fe214336ad440d776c88eb916f2f4a3433548b87d2aebed840b424d15\
+c8341b4a0a657bf6a234d4fe78631c8e07ac1f4dc7474cd6b4545d536b7b17c160db4562d9
+    k = 378e7801566d7b77db7a474717ab2195b02957cc264a9449d4126a7cc574728ed5a476\
+9abd5dde987ca66cfe3d45b5fc52ffd266acb8a8bb3fcb4b60f7febbf48aebe33bd3efbdd
+    R = 3d8105f87fe3166046c08e80a28acc98a80b8b7a729623053c2a9e80afd06756edfe09\
+bdcf3035f6829ede041b745955d219dc5d30ddd8b37f6ba0f6d2857504cdc68a1ed812a10
+    S = 34db9998dc53527114518a7ce3783d674ca8cced823fa05e2942e7a0a20b3cc583dcd9\
+30c43f9b93079c5ee18a1f5a66e7c3527c18610f9b47a4da7e245ef803e0662e4d2ad721c
+    """).splitlines()
+
+    expected = [
+        {
+            "curve": "secp192r1",
+            "digest_algorithm": "SHA-1",
+            "message": unhexlify(
+                b"ebf748d748ebbca7d29fb473698a6e6b4fb10c865d4af024cc39ae3df346"
+                b"4ba4f1d6d40f32bf9618a91bb5986fa1a2af048a0e14dc51e5267eb05e12"
+                b"7d689d0ac6f1a7f156ce066316b971cc7a11d0fd7a2093e27cf2d08727a4"
+                b"e6748cc32fd59c7810c5b9019df21cdcc0bca432c0a3eed0785387508877"
+                b"114359cee4a071cf"
+            ),
+            "d": int("e14f37b3d1374ff8b03f41b9b3fdd2f0ebccf275d660d7f3", 16),
+            "x": int("7008ea40b08dbe76432096e80a2494c94982d2d5bcf98e6", 16),
+            "y": int("76fab681d00b414ea636ba215de26d98c41bd7f2e4d65477", 16),
+            "r": int("6994d962bdd0d793ffddf855ec5bf2f91a9698b46258a63e", 16),
+            "s": int("02ba6465a234903744ab02bc8521405b73cf5fc00e1a9f41", 16)
+        },
+        {
+            "curve": "secp192r1",
+            "digest_algorithm": "SHA-1",
+            "message": unhexlify(
+                b"0dcb3e96d77ee64e9d0a350d31563d525755fc675f0c833504e83fc69c03"
+                b"0181b42fe80c378e86274a93922c570d54a7a358c05755ec3ae91928e022"
+                b"36e81b43e596e4ccbf6a9104889c388072bec4e1faeae11fe4eb24fa4f95"
+                b"73560dcf2e3abc703c526d46d502c7a7222583431cc8178354ae7dbb84e3"
+                b"479917707bce0968"
+            ),
+            "d": int("7a0235bea3d70445f14d56f9b7fb80ec8ff4eb2f76865244", 16),
+            "x": int("ea3c1fa1f124f26530cbfddeb831eecc67df31e08889d1d", 16),
+            "y": int("7215a0cce0501b47903bd8fe1179c2dfe07bd076f89f5225", 16),
+            "r": int("a3ba51c39c43991d87dff0f34d0bec7c883299e04f60f95e", 16),
+            "s": int("8a7f9c59c6d65ad390e4c19636ba92b53be5d0f848b4e1f7", 16)
+        },
+        {
+            "curve": "sect571r1",
+            "digest_algorithm": "SHA-512",
+            "message": unhexlify(
+                b"10d2e00ae57176c79cdfc746c0c887abe799ee445b151b008e3d9f81eb69"
+                b"be40298ddf37b5c45a9b6e5ff83785d8c140cf11e6a4c3879a2845796872"
+                b"363da24b10f1f8d9cc48f8af20681dceb60dd62095d6d3b1779a4a805de3"
+                b"d74e38983b24c0748618e2f92ef7cac257ff4bd1f41113f2891eb13c4793"
+                b"0e69ddbe91f270fb"
+            ),
+            "d": int("3e1b03ffca4399d5b439fac8f87a5cb06930f00d304193d7daf83d59"
+                     "47d0c1e293f74aef8e56849f16147133c37a6b3d1b1883e5d61d6b87"
+                     "1ea036c5291d9a74541f28878cb986", 16),
+            "x": int("3b236fc135d849d50140fdaae1045e6ae35ef61091e98f5059b30eb1"
+                     "6acdd0deb2bc0d3544bc3a666e0014e50030134fe5466a9e4d3911ed"
+                     "580e28851f3747c0010888e819d3d1f", 16),
+            "y": int("3a8b6627a587d289032bd76374d16771188d7ff281c39542c8977f68"
+                     "72fa932e5daa14e13792dea9ffe8e9f68d6b525ec99b81a5a60cfb05"
+                     "90cc6f297cfff8d7ba1a8bb81fe2e16", 16),
+            "r": int("2eb1c5c1fc93cf3c8babed12c031cf1504e094174fd335104cbe4a2a"
+                     "bd210b5a14b1c3a455579f1ed0517c31822340e4dd3c1f967e1b4b9d"
+                     "071a1072afc1a199f8c548cd449a634", 16),
+            "s": int("22f97bb48641235826cf4e597fa8de849402d6bd6114ad2d7fbcf53a"
+                     "08247e5ee921f1bd5994dffee36eedff5592bb93b8bb148214da3b7b"
+                     "aebffbd96b4f86c55b3f6bbac142442", 16)
+        },
+        {
+            "curve": "sect571r1",
+            "digest_algorithm": "SHA-512",
+            "message": unhexlify(
+                b"b61a0849a28672cb536fcf61ea2eb389d02ff7a09aa391744cae6597bd56"
+                b"703c40c50ca2dee5f7ee796acfd47322f03d8dbe4d99dc8eec588b4e5467"
+                b"f123075b2d74b2a0b0bbfd3ac5487a905fad6d6ac1421c2e564c0cf15e1f"
+                b"0f10bc31c249b7b46edd2462a55f85560d99bde9d5b06b97817d1dbe0a67"
+                b"c701d6e6e7878272"
+            ),
+            "d": int("2e09ffd8b434bb7f67d1d3ccf482164f1653c6e4ec64dec2517aa21b"
+                     "7a93b2b21ea1eebb54734882f29303e489f02e3b741a87287e2dcdf3"
+                     "858eb6d2ec668f8b5b26f442ce513a2", 16),
+            "x": int("36f1be8738dd7dae4486b86a08fe90424f3673e76b10e739442e15f3"
+                     "bfafaf841842ac98e490521b7e7bb94c127529f6ec6a42cc6f06fc80"
+                     "606f1210fe020ff508148f93301c9d3", 16),
+            "y": int("4d39666ebe99fe214336ad440d776c88eb916f2f4a3433548b87d2ae"
+                     "bed840b424d15c8341b4a0a657bf6a234d4fe78631c8e07ac1f4dc74"
+                     "74cd6b4545d536b7b17c160db4562d9", 16),
+            "r": int("3d8105f87fe3166046c08e80a28acc98a80b8b7a729623053c2a9e80"
+                     "afd06756edfe09bdcf3035f6829ede041b745955d219dc5d30ddd8b3"
+                     "7f6ba0f6d2857504cdc68a1ed812a10", 16),
+            "s": int("34db9998dc53527114518a7ce3783d674ca8cced823fa05e2942e7a0"
+                     "a20b3cc583dcd930c43f9b93079c5ee18a1f5a66e7c3527c18610f9b"
+                     "47a4da7e245ef803e0662e4d2ad721c", 16)
+        }
+    ]
+
+    assert expected == load_fips_ecdsa_signing_vectors(vector_data)
diff --git a/tests/utils.py b/tests/utils.py
index 5fa7e7e..7799995 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -13,8 +13,10 @@
 
 from __future__ import absolute_import, division, print_function
 
+import binascii
 import collections
 from contextlib import contextmanager
+import re
 
 import pytest
 
@@ -429,39 +431,39 @@
     return vectors
 
 
+_ECDSA_CURVE_NAMES = {
+    "P-192": "secp192r1",
+    "P-224": "secp224r1",
+    "P-256": "secp192r1",
+    "P-384": "secp384r1",
+    "P-521": "secp521r1",
+    "K-163": "sect163k1",
+    "K-233": "sect233k1",
+    "K-283": "sect233k1",
+    "K-409": "sect409k1",
+    "K-571": "sect571k1",
+    "B-163": "sect163r2",
+    "B-233": "sect233r1",
+    "B-283": "sect283r1",
+    "B-409": "sect409r1",
+    "B-571": "sect571r1",
+}
+
+
 def load_fips_ecdsa_key_pair_vectors(vector_data):
     """
     Loads data out of the FIPS ECDSA KeyPair vector files.
     """
     vectors = []
     key_data = None
-
-    nist_name_map = {
-        "[P-192]": "secp192r1",
-        "[P-224]": "secp224r1",
-        "[P-256]": "secp192r1",
-        "[P-384]": "secp384r1",
-        "[P-521]": "secp521r1",
-        "[K-163]": "sect163k1",
-        "[K-233]": "sect233k1",
-        "[K-283]": "sect233k1",
-        "[K-409]": "sect409k1",
-        "[K-571]": "sect571k1",
-        "[B-163]": "sect163r2",
-        "[B-233]": "sect233r1",
-        "[B-283]": "sect283r1",
-        "[B-409]": "sect409r1",
-        "[B-571]": "sect571r1",
-    }
-
     for line in vector_data:
         line = line.strip()
 
         if not line or line.startswith("#"):
             continue
 
-        if line in nist_name_map:
-            curve_name = nist_name_map[line]
+        if line[1:-1] in _ECDSA_CURVE_NAMES:
+            curve_name = _ECDSA_CURVE_NAMES[line[1:-1]]
 
         elif line.startswith("d = "):
             if key_data is not None:
@@ -482,3 +484,55 @@
         vectors.append(key_data)
 
     return vectors
+
+
+def load_fips_ecdsa_signing_vectors(vector_data):
+    """
+    Loads data out of the FIPS ECDSA SigGen vector files.
+    """
+    vectors = []
+
+    curve_rx = re.compile(
+        r"\[(?P<curve>[PKB]-[0-9]{3}),SHA-(?P<sha>1|224|256|384|512)\]"
+    )
+
+    data = None
+    for line in vector_data:
+        line = line.strip()
+
+        if not line or line.startswith("#"):
+            continue
+
+        curve_match = curve_rx.match(line)
+        if curve_match:
+            curve_name = _ECDSA_CURVE_NAMES[curve_match.group("curve")]
+            digest_name = "SHA-{0}".format(curve_match.group("sha"))
+
+        elif line.startswith("Msg = "):
+            if data is not None:
+                vectors.append(data)
+
+            hexmsg = line.split("=")[1].strip().encode("ascii")
+
+            data = {
+                "curve": curve_name,
+                "digest_algorithm": digest_name,
+                "message": binascii.unhexlify(hexmsg)
+            }
+
+        elif data is not None:
+            if line.startswith("Qx = "):
+                data["x"] = int(line.split("=")[1], 16)
+            elif line.startswith("Qy = "):
+                data["y"] = int(line.split("=")[1], 16)
+            elif line.startswith("R = "):
+                data["r"] = int(line.split("=")[1], 16)
+            elif line.startswith("S = "):
+                data["s"] = int(line.split("=")[1], 16)
+            elif line.startswith("d = "):
+                data["d"] = int(line.split("=")[1], 16)
+
+    if data is not None:
+        vectors.append(data)
+
+    return vectors
