From c0b6581b3454f56124a02588a4907448e0af4529 Mon Sep 17 00:00:00 2001
From: Jan Vcelak <jan.vcelak@nic.cz>
Date: Wed, 27 Nov 2013 13:26:09 +0100
Subject: [PATCH] DNSSEC: add unit tests for GOST algorithm

ref #121
---
 tests/dnssec_sign.c | 40 +++++++++++++++++++++++-----------------
 1 file changed, 23 insertions(+), 17 deletions(-)

diff --git a/tests/dnssec_sign.c b/tests/dnssec_sign.c
index aade0d4722..f754c8ab60 100644
--- a/tests/dnssec_sign.c
+++ b/tests/dnssec_sign.c
@@ -24,12 +24,6 @@
 #include "libknot/dnssec/crypto.h"
 #include "libknot/dnssec/sign.h"
 
-#ifdef KNOT_ENABLE_ECDSA
-static const int ecdsa_supported = 1;
-#else
-static const int ecdsa_supported = 0;
-#endif
-
 static void test_algorithm(const char *alg, const knot_key_params_t *kp)
 {
 	int result;
@@ -94,7 +88,7 @@ static void test_algorithm(const char *alg, const knot_key_params_t *kp)
 
 int main(int argc, char *argv[])
 {
-	plan(42);
+	plan(4 * 14);
 
 	knot_key_params_t kp = { 0 };
 
@@ -129,17 +123,29 @@ int main(int argc, char *argv[])
 
 	// ECDSA
 
-	if (!ecdsa_supported) {
-		skip_block(14, "ECDSA: not supported on this system");
-	} else {
-		kp.name = knot_dname_from_str("example.com");
-		kp.algorithm = 13;
-		knot_binary_from_base64("1N/PvpB8jZcvv+zr3Q987RKK1cBxDKULzEc5F/nnpSg=", &kp.private_key);
-		knot_binary_from_base64("AAAAAH3t6EfkvHK5fQMGslhWcCfMF6Q3oNbol2f19DGAb8r49ZX7iQ12sFIyrs2CiwDxFR9Y7fF2zOZ005VV1LA3m1Q=", &kp.rdata);
+#ifdef KNOT_ENABLE_ECDSA
+	kp.name = knot_dname_from_str("example.com");
+	kp.algorithm = 13;
+	knot_binary_from_base64("1N/PvpB8jZcvv+zr3Q987RKK1cBxDKULzEc5F/nnpSg=", &kp.private_key);
+	knot_binary_from_base64("AAAAAH3t6EfkvHK5fQMGslhWcCfMF6Q3oNbol2f19DGAb8r49ZX7iQ12sFIyrs2CiwDxFR9Y7fF2zOZ005VV1LA3m1Q=", &kp.rdata);
 
-		test_algorithm("ECDSA", &kp);
-		knot_free_key_params(&kp);
-	}
+	test_algorithm("ECDSA", &kp);
+	knot_free_key_params(&kp);
+#else
+	skip_block(14, "ECDSA: not supported on this system");
+#endif
+
+#if KNOT_ENABLE_GOST
+	kp.name = knot_dname_from_str("example.com");
+	kp.algorithm = 12;
+	knot_binary_from_base64("MEUCAQAwHAYGKoUDAgITMBIGByqFAwICIwEGByqFAwICHgEEIgIgN2CMRL538HmFM9+GHYM54rEDYO+tLDV3q7AtK1nZ4iA=", &kp.private_key);
+	knot_binary_from_base64("eHh4eOJ4YHvlasoDRc4ZnvRzldoTUgwWSW0bPv7r9xJ074Dn8KzM4yU9fJgTwIT1TsaHmejYopDnVdjxZyrKNra8Keo=", &kp.rdata);
+
+	test_algorithm("GOST", &kp);
+	knot_free_key_params(&kp);
+#else
+	skip_block(14, "GOST: not supported on this system");
+#endif
 
 	knot_crypto_cleanup();
 
-- 
GitLab