[PATCH 04/27] tests: check decoding of NETLINK_CRYPTO messages

JingPiao Chen chenjingpiao at gmail.com
Sat Jul 22 12:43:34 UTC 2017


* tests/netlink_crypto.c: Include "test_netlink.h"
instead of "netlink.h".
(test_crypto_msg_newalg, test_crypto_msg_delrng): New functions.
(main): Use them.
---
 tests/netlink_crypto.c | 45 ++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 44 insertions(+), 1 deletion(-)

diff --git a/tests/netlink_crypto.c b/tests/netlink_crypto.c
index 376baa8..a0586dd 100644
--- a/tests/netlink_crypto.c
+++ b/tests/netlink_crypto.c
@@ -34,7 +34,7 @@
 # include <unistd.h>
 # include <sys/socket.h>
 # include <linux/cryptouser.h>
-# include "netlink.h"
+# include "test_netlink.h"
 
 static void
 test_nlmsg_type(const int fd)
@@ -87,6 +87,45 @@ test_nlmsg_flags(const int fd)
 	       (unsigned) sizeof(nlh), sprintrc(rc));
 }
 
+static void
+test_crypto_msg_newalg(const int fd)
+{
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+
+	static const struct crypto_user_alg alg = {
+		.cru_name = "abcd",
+		.cru_driver_name = "efgh",
+		.cru_module_name = "ijkl",
+		.cru_type = 0xabcdfabc,
+		.cru_mask = 0xfedabacd,
+		.cru_refcnt = 0xbcacfacd,
+		.cru_flags = 0xefacdbad
+	};
+	TEST_NETLINK_OBJECT_EX(fd, nlh0,
+			       CRYPTO_MSG_NEWALG, NLM_F_REQUEST,
+			       alg, print_quoted_memory,
+			       printf("{cru_name=\"abcd\""
+				      ", cru_driver_name=\"efgh\""
+				      ", cru_module_name=\"ijkl\"");
+			       PRINT_FIELD_X(", ", alg, cru_type);
+			       PRINT_FIELD_X(", ", alg, cru_mask);
+			       PRINT_FIELD_U(", ", alg, cru_refcnt);
+			       PRINT_FIELD_X(", ", alg, cru_flags);
+			       printf("}"));
+}
+
+#ifdef HAVE_CRYPTO_MSG_DELRNG
+static void
+test_crypto_msg_delrng(const int fd)
+{
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+
+	TEST_NETLINK(fd, nlh0,
+		     CRYPTO_MSG_DELRNG, NLM_F_REQUEST,
+		     4, "abcd", 4, printf("\"\\x61\\x62\\x63\\x64\""));
+}
+#endif
+
 int
 main(void)
 {
@@ -96,6 +135,10 @@ main(void)
 
 	test_nlmsg_type(fd);
 	test_nlmsg_flags(fd);
+	test_crypto_msg_newalg(fd);
+#ifdef HAVE_CRYPTO_MSG_DELRNG
+	test_crypto_msg_delrng(fd);
+#endif
 
 	printf("+++ exited with 0 +++\n");
 
-- 
2.7.4





More information about the Strace-devel mailing list