diff --git a/tests/unit-tests/security/transform/digest-filter.t.cpp b/tests/unit-tests/security/transform/digest-filter.t.cpp
index f00599c..c6e296f 100644
--- a/tests/unit-tests/security/transform/digest-filter.t.cpp
+++ b/tests/unit-tests/security/transform/digest-filter.t.cpp
@@ -65,7 +65,7 @@
   };
 
   OBufferStream os;
-  bufferSource(in, sizeof(in)) >> digestFilter(DIGEST_ALGORITHM_SHA256) >> streamSink(os);
+  bufferSource(in, sizeof(in)) >> digestFilter(DigestAlgorithm::SHA256) >> streamSink(os);
 
   ConstBufferPtr buf = os.buf();
   BOOST_CHECK_EQUAL_COLLECTIONS(out, out + sizeof(out), buf->begin(), buf->end());
@@ -101,7 +101,7 @@
 
   StepSource source;
   OBufferStream os;
-  source >> digestFilter(DIGEST_ALGORITHM_SHA256) >> streamSink(os);
+  source >> digestFilter(DigestAlgorithm::SHA256) >> streamSink(os);
   source.write(in, 32);
   source.write(in + 32, 1);
   source.write(in + 33, 2);
@@ -125,7 +125,7 @@
 
   OBufferStream os;
   StepSource source;
-  source >> digestFilter(DIGEST_ALGORITHM_SHA256) >> streamSink(os);
+  source >> digestFilter(DigestAlgorithm::SHA256) >> streamSink(os);
   source.end();
 
   ConstBufferPtr buf = os.buf();
@@ -135,7 +135,7 @@
 BOOST_AUTO_TEST_CASE(Error)
 {
   OBufferStream os;
-  BOOST_REQUIRE_THROW(stepSource() >> digestFilter(DIGEST_ALGORITHM_NONE) >> streamSink(os),
+  BOOST_REQUIRE_THROW(stepSource() >> digestFilter(DigestAlgorithm::NONE) >> streamSink(os),
                       transform::Error);
 }
 
diff --git a/tests/unit-tests/security/transform/hmac-filter.t.cpp b/tests/unit-tests/security/transform/hmac-filter.t.cpp
index 4ff6a15..ccb5feb 100644
--- a/tests/unit-tests/security/transform/hmac-filter.t.cpp
+++ b/tests/unit-tests/security/transform/hmac-filter.t.cpp
@@ -56,7 +56,7 @@
   };
 
   OBufferStream os;
-  bufferSource(data, sizeof(data)) >> hmacFilter(DIGEST_ALGORITHM_SHA256, key, sizeof(key)) >> streamSink(os);
+  bufferSource(data, sizeof(data)) >> hmacFilter(DigestAlgorithm::SHA256, key, sizeof(key)) >> streamSink(os);
 
   ConstBufferPtr buf = os.buf();
   BOOST_CHECK_EQUAL_COLLECTIONS(digest, digest + sizeof(digest), buf->begin(), buf->end());
@@ -83,7 +83,7 @@
 
   OBufferStream os;
   StepSource source;
-  source >> hmacFilter(DIGEST_ALGORITHM_SHA256, key, sizeof(key)) >> streamSink(os);
+  source >> hmacFilter(DigestAlgorithm::SHA256, key, sizeof(key)) >> streamSink(os);
   source.write(data, 1);
   source.write(data + 1, 2);
   source.write(data + 3, 3);
@@ -112,7 +112,7 @@
 
   OBufferStream os;
   StepSource source;
-  source >> hmacFilter(DIGEST_ALGORITHM_SHA256, key, sizeof(key)) >> streamSink(os);
+  source >> hmacFilter(DigestAlgorithm::SHA256, key, sizeof(key)) >> streamSink(os);
   source.end();
 
   ConstBufferPtr buf = os.buf();
@@ -127,7 +127,7 @@
   };
 
   OBufferStream os;
-  BOOST_REQUIRE_THROW(stepSource() >> hmacFilter(DIGEST_ALGORITHM_NONE, key, sizeof(key)) >> streamSink(os),
+  BOOST_REQUIRE_THROW(stepSource() >> hmacFilter(DigestAlgorithm::NONE, key, sizeof(key)) >> streamSink(os),
                       transform::Error);
 }
 
