Browse Source

[trac782] Add more hash algorithm to tsigkey python binding and related unit test

feng 14 years ago
parent
commit
75340e4d29

+ 3 - 0
src/lib/dns/python/tests/tsigkey_python_test.py

@@ -25,6 +25,9 @@ class TSIGKeyTest(unittest.TestCase):
                          TSIGKey.HMACMD5_NAME)
         self.assertEqual(Name('hmac-sha1'), TSIGKey.HMACSHA1_NAME)
         self.assertEqual(Name('hmac-sha256'), TSIGKey.HMACSHA256_NAME)
+        self.assertEqual(Name('hmac-sha224'), TSIGKey.HMACSHA224_NAME)
+        self.assertEqual(Name('hmac-sha384'), TSIGKey.HMACSHA384_NAME)
+        self.assertEqual(Name('hmac-sha512'), TSIGKey.HMACSHA512_NAME)
 
     def test_init(self):
         key = TSIGKey(self.key_name, TSIGKey.HMACMD5_NAME, self.secret)

+ 13 - 0
src/lib/dns/python/tsigkey_python.cc

@@ -244,6 +244,19 @@ initModulePart_TSIGKey(PyObject* mod) {
         goto cleanup;
     }
     addClassVariable(tsigkey_type, "HMACSHA256_NAME", name);
+    if ((name = createNameObject(TSIGKey::HMACSHA224_NAME())) == NULL) {
+        goto cleanup;
+    }
+    addClassVariable(tsigkey_type, "HMACSHA224_NAME", name);
+    if ((name = createNameObject(TSIGKey::HMACSHA384_NAME())) == NULL) {
+        goto cleanup;
+    }
+    addClassVariable(tsigkey_type, "HMACSHA384_NAME", name);
+    if ((name = createNameObject(TSIGKey::HMACSHA512_NAME())) == NULL) {
+        goto cleanup;
+    }
+    addClassVariable(tsigkey_type, "HMACSHA512_NAME", name);
+
 
     return (true);
 

+ 3 - 0
src/lib/dns/tsigkey.h

@@ -185,6 +185,9 @@ public:
     static const Name& HMACMD5_NAME();    ///< HMAC-MD5 (RFC2845)
     static const Name& HMACSHA1_NAME();   ///< HMAC-SHA1 (RFC4635)
     static const Name& HMACSHA256_NAME(); ///< HMAC-SHA256 (RFC4635)
+    static const Name& HMACSHA224_NAME(); ///< HMAC-SHA256 (RFC4635)
+    static const Name& HMACSHA384_NAME(); ///< HMAC-SHA256 (RFC4635)
+    static const Name& HMACSHA512_NAME(); ///< HMAC-SHA256 (RFC4635)
     //@}
 
 private: