aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libstrongswan/plugins/test_vectors/test_vectors.h9
-rw-r--r--src/libstrongswan/plugins/test_vectors/test_vectors/sha2_hmac.c93
2 files changed, 101 insertions, 1 deletions
diff --git a/src/libstrongswan/plugins/test_vectors/test_vectors.h b/src/libstrongswan/plugins/test_vectors/test_vectors.h
index d91ffaf8d..66915e7ea 100644
--- a/src/libstrongswan/plugins/test_vectors/test_vectors.h
+++ b/src/libstrongswan/plugins/test_vectors/test_vectors.h
@@ -34,6 +34,15 @@ TEST_VECTOR_SIGNER(sha1_hmac_s3)
TEST_VECTOR_SIGNER(sha1_hmac_s4)
TEST_VECTOR_SIGNER(sha1_hmac_s5)
TEST_VECTOR_SIGNER(sha1_hmac_s6)
+TEST_VECTOR_SIGNER(sha256_hmac_s1)
+TEST_VECTOR_SIGNER(sha256_hmac_s2)
+TEST_VECTOR_SIGNER(sha256_hmac_s3)
+TEST_VECTOR_SIGNER(sha384_hmac_s1)
+TEST_VECTOR_SIGNER(sha384_hmac_s2)
+TEST_VECTOR_SIGNER(sha384_hmac_s3)
+TEST_VECTOR_SIGNER(sha512_hmac_s1)
+TEST_VECTOR_SIGNER(sha512_hmac_s2)
+TEST_VECTOR_SIGNER(sha512_hmac_s3)
TEST_VECTOR_HASHER(md5_1)
TEST_VECTOR_HASHER(md5_2)
diff --git a/src/libstrongswan/plugins/test_vectors/test_vectors/sha2_hmac.c b/src/libstrongswan/plugins/test_vectors/test_vectors/sha2_hmac.c
index caba4720c..536eba8f6 100644
--- a/src/libstrongswan/plugins/test_vectors/test_vectors/sha2_hmac.c
+++ b/src/libstrongswan/plugins/test_vectors/test_vectors/sha2_hmac.c
@@ -16,7 +16,7 @@
#include <crypto/crypto_tester.h>
/**
- * SHA-256, SHA384, SHA512 hmac test vectors from RFC 4231
+ * SHA-256, SHA384, SHA512 hmac test vectors from RFC 4868
*/
prf_test_vector_t sha256_hmac_p1 = {
.alg = PRF_HMAC_SHA2_256, .key_size = 20, .len = 8,
@@ -27,6 +27,14 @@ prf_test_vector_t sha256_hmac_p1 = {
"\x88\x1d\xc2\x00\xc9\x83\x3d\xa7\x26\xe9\x37\x6c\x2e\x32\xcf\xf7"
};
+signer_test_vector_t sha256_hmac_s1 = {
+ .alg = AUTH_HMAC_SHA2_256_128, .len = 8,
+ .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
+ "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
+ .data = "Hi There",
+ .mac = "\x19\x8a\x60\x7e\xb4\x4b\xfb\xc6\x99\x03\xa0\xf1\xcf\x2b\xbd\xc5"
+};
+
prf_test_vector_t sha384_hmac_p1 = {
.alg = PRF_HMAC_SHA2_384, .key_size = 20, .len = 8,
.key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
@@ -37,6 +45,16 @@ prf_test_vector_t sha384_hmac_p1 = {
"\xfa\xea\x9e\xa9\x07\x6e\xde\x7f\x4a\xf1\x52\xe8\xb2\xfa\x9c\xb6"
};
+signer_test_vector_t sha384_hmac_s1 = {
+ .alg = AUTH_HMAC_SHA2_384_192, .len = 8,
+ .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
+ "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
+ "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
+ .data = "Hi There",
+ .mac = "\xb6\xa8\xd5\x63\x6f\x5c\x6a\x72\x24\xf9\x97\x7d\xcf\x7e\xe6\xc7"
+ "\xfb\x6d\x0c\x48\xcb\xde\xe9\x73"
+};
+
prf_test_vector_t sha512_hmac_p1 = {
.alg = PRF_HMAC_SHA2_512, .key_size = 20, .len = 8,
.key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
@@ -48,6 +66,17 @@ prf_test_vector_t sha512_hmac_p1 = {
"\xbe\x9d\x91\x4e\xeb\x61\xf1\x70\x2e\x69\x6c\x20\x3a\x12\x68\x54"
};
+signer_test_vector_t sha512_hmac_s1 = {
+ .alg = AUTH_HMAC_SHA2_512_256, .len = 8,
+ .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
+ "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
+ "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
+ "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
+ .data = "Hi There",
+ .mac = "\x63\x7e\xdc\x6e\x01\xdc\xe7\xe6\x74\x2a\x99\x45\x1a\xae\x82\xdf"
+ "\x23\xda\x3e\x92\x43\x9e\x59\x0e\x43\xe7\x61\xb3\x3e\x91\x0f\xb8"
+};
+
prf_test_vector_t sha256_hmac_p2 = {
.alg = PRF_HMAC_SHA2_256, .key_size = 4, .len = 28,
.key = "Jefe",
@@ -56,6 +85,13 @@ prf_test_vector_t sha256_hmac_p2 = {
"\x5a\x00\x3f\x08\x9d\x27\x39\x83\x9d\xec\x58\xb9\x64\xec\x38\x43"
};
+signer_test_vector_t sha256_hmac_s2 = {
+ .alg = AUTH_HMAC_SHA2_256_128, .len = 28,
+ .key = "JefeJefeJefeJefeJefeJefeJefeJefe",
+ .data = "what do ya want for nothing?",
+ .mac = "\x16\x7f\x92\x85\x88\xc5\xcc\x2e\xef\x8e\x30\x93\xca\xa0\xe8\x7c"
+};
+
prf_test_vector_t sha384_hmac_p2 = {
.alg = PRF_HMAC_SHA2_384, .key_size = 4, .len = 28,
.key = "Jefe",
@@ -65,6 +101,14 @@ prf_test_vector_t sha384_hmac_p2 = {
"\x8e\x22\x40\xca\x5e\x69\xe2\xc7\x8b\x32\x39\xec\xfa\xb2\x16\x49"
};
+signer_test_vector_t sha384_hmac_s2 = {
+ .alg = AUTH_HMAC_SHA2_384_192, .len = 28,
+ .key = "JefeJefeJefeJefeJefeJefeJefeJefeJefeJefeJefeJefe",
+ .data = "what do ya want for nothing?",
+ .mac = "\x2c\x73\x53\x97\x4f\x18\x42\xfd\x66\xd5\x3c\x45\x2c\xa4\x21\x22"
+ "\xb2\x8c\x0b\x59\x4c\xfb\x18\x4d"
+};
+
prf_test_vector_t sha512_hmac_p2 = {
.alg = PRF_HMAC_SHA2_512, .key_size = 4, .len = 28,
.key = "Jefe",
@@ -75,6 +119,14 @@ prf_test_vector_t sha512_hmac_p2 = {
"\xca\xea\xb1\xa3\x4d\x4a\x6b\x4b\x63\x6e\x07\x0a\x38\xbc\xe7\x37"
};
+signer_test_vector_t sha512_hmac_s2 = {
+ .alg = AUTH_HMAC_SHA2_512_256, .len = 28,
+ .key = "JefeJefeJefeJefeJefeJefeJefeJefeJefeJefeJefeJefeJefeJefeJefeJefe",
+ .data = "what do ya want for nothing?",
+ .mac = "\xcb\x37\x09\x17\xae\x8a\x7c\xe2\x8c\xfd\x1d\x8f\x47\x05\xd6\x14"
+ "\x1c\x17\x3b\x2a\x93\x62\xc1\x5d\xf2\x35\xdf\xb2\x51\xb1\x54\x54"
+};
+
prf_test_vector_t sha256_hmac_p3 = {
.alg = PRF_HMAC_SHA2_256, .key_size = 20, .len = 50,
.key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
@@ -86,6 +138,18 @@ prf_test_vector_t sha256_hmac_p3 = {
.out = "\x77\x3e\xa9\x1e\x36\x80\x0e\x46\x85\x4d\xb8\xeb\xd0\x91\x81\xa7"
"\x29\x59\x09\x8b\x3e\xf8\xc1\x22\xd9\x63\x55\x14\xce\xd5\x65\xfe"
};
+
+signer_test_vector_t sha256_hmac_s3 = {
+ .alg = AUTH_HMAC_SHA2_256_128, .len = 50,
+ .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
+ "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa",
+ .data = "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
+ "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
+ "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
+ "\xdd\xdd",
+ .mac = "\xcd\xcb\x12\x20\xd1\xec\xcc\xea\x91\xe5\x3a\xba\x30\x92\xf9\x62"
+};
+
prf_test_vector_t sha384_hmac_p3 = {
.alg = PRF_HMAC_SHA2_384, .key_size = 20, .len = 50,
.key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
@@ -99,6 +163,19 @@ prf_test_vector_t sha384_hmac_p3 = {
"\x2a\x5a\xb3\x9d\xc1\x38\x14\xb9\x4e\x3a\xb6\xe1\x01\xa3\x4f\x27"
};
+signer_test_vector_t sha384_hmac_s3 = {
+ .alg = AUTH_HMAC_SHA2_384_192, .len = 50,
+ .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
+ "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
+ "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa",
+ .data = "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
+ "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
+ "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
+ "\xdd\xdd",
+ .mac = "\x80\x9f\x43\x9b\xe0\x02\x74\x32\x1d\x4a\x53\x86\x52\x16\x4b\x53"
+ "\x55\x4a\x50\x81\x84\xa0\xc3\x16"
+};
+
prf_test_vector_t sha512_hmac_p3 = {
.alg = PRF_HMAC_SHA2_512, .key_size = 20, .len = 50,
.key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
@@ -113,6 +190,20 @@ prf_test_vector_t sha512_hmac_p3 = {
"\xb9\x46\xa3\x37\xbe\xe8\x94\x26\x74\x27\x88\x59\xe1\x32\x92\xfb"
};
+signer_test_vector_t sha512_hmac_s3 = {
+ .alg = AUTH_HMAC_SHA2_512_256, .len = 50,
+ .key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
+ "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
+ "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
+ "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa",
+ .data = "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
+ "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
+ "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
+ "\xdd\xdd",
+ .mac = "\x2e\xe7\xac\xd7\x83\x62\x4c\xa9\x39\x87\x10\xf3\xee\x05\xae\x41"
+ "\xb9\xf9\xb0\x51\x0c\x87\xe4\x9e\x58\x6c\xc9\xbf\x96\x17\x33\xd8"
+};
+
prf_test_vector_t sha256_hmac_p4 = {
.alg = PRF_HMAC_SHA2_256, .key_size = 25, .len = 50,
.key = "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"