   signer = dcrypt.sign.createSign algo
   signer.update message
   sig = signer.sign priv, output_format='hex'
-  test.deepEqual nsig, sig
+  test.deepEqual nsig, sig, 'RSA Signature Interop failure'
 
   nverif = crypto.createVerify algo
   nverif.update message

  test.expect 3
  r = dcrypt.random.randomBytes size 
  test.equal "object", typeof r
  test.notEqual r, []
  test.equal size, r.length
  test.done()

testKeyPairs = (test) ->
  test.expect(8)
  test.notDeepEqual(dcrypt.keypair.newRSA(), {})
  test.notDeepEqual(dcrypt.keypair.newRSA(1024))
  test.notDeepEqual(dcrypt.keypair.newRSA(2048, 3), {})
  test.throws(dcrypt.keypair.newRSA(2048, 3))

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


  enc = dcrypt.rsa.encrypt(pub, message, 'RSA_PKCS1_PADDING', 'hex')
  clear_msg = dcrypt.rsa.decrypt(priv, enc, 'RSA_PKCS1_PADDING', 'hex')
  test.deepEqual clear_msg, message, 'RSA with PKCS1 PADDING encryption and decryption failure'
  test.done()

testHMAC = (test) ->
