   dhm.update message
   d_msg = dhm.digest('hex')
 
-  test.deepEqual d_msg, n_msg
+  test.deepEqual d_msg, n_msg, 'HMAC Interop equal failure'
   test.done()
 
+testIssue7_ecdsa_sha1 = (test) ->
+  keys = dcrypt.keypair.newECDSA()
+  s = dcrypt.sign.createSign("SHA1")
+  s.update('test message')
+  signature = s.sign(keys.pem_priv, output='hex')
+
+  v = dcrypt.verify.createVerify("SHA1")
+  v.update('test message')
+  passed = v.verify(keys.pem_pub, signature, signature_format='hex')
+  test.same(passed, true, 'ECDSA Signature Verification failed')
+  test.done()
+
+exports.testIssue7_ecdsa_sha1 = testIssue7_ecdsa_sha1
 exports.testKeyPairs = testKeyPairs
 exports.testRandomBytes = testRandBytes
 exports.testHash = testHash

  signer = dcrypt.sign.createSign algo
  signer.update message
  sig = signer.sign priv, output_format='hex'
  test.deepEqual nsig, sig

  nverif = crypto.createVerify algo
  nverif.update message

  test.expect 3
  r = dcrypt.random.randomBytes size 
  test.equal "object", typeof r
  test.notEqual r, [], 'Random bytes are empty'
  test.equal size, r.length, 'Size does not match expected size'
  test.done()

testKeyPairs = (test) ->
  test.expect(8)
  test.notDeepEqual(dcrypt.keypair.newRSA(), {}, 'Keypair is empty')
  test.notDeepEqual(dcrypt.keypair.newRSA(1024), {}, 'Keypair is empty')
  test.notDeepEqual(dcrypt.keypair.newRSA(2048, 3), {}, 'Keypair is empty')
  test.throws(dcrypt.keypair.newRSA(2048, 3), 'Creating a bad RSA keypair should throw an error')

  test.notDeepEqual(dcrypt.keypair.newECDSA(), {}, 'Keypair is empty')
  test.notDeepEqual(dcrypt.keypair.newECDSA('prime192v1'), {}, 'Keypair is empty')
  test.notDeepEqual(dcrypt.keypair.newECDSA('prime256v1'), {}, 'Keypair is empty')
  #for some reason nodeunit wont treat test.throws as working with newECDSA with a bad curve
  try
    dcrypt.keypair.newECDSA('1234')
