]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: Module test for hmac_sha256_kdf() maximum output length
authorJouni Malinen <j@w1.fi>
Sat, 10 Oct 2015 15:55:19 +0000 (18:55 +0300)
committerJouni Malinen <j@w1.fi>
Sat, 10 Oct 2015 15:57:14 +0000 (18:57 +0300)
Signed-off-by: Jouni Malinen <j@w1.fi>
src/crypto/crypto_module_tests.c

index 581005df3e39ec00b9e2b87e12b6c076c6a3cd33..2d508c1c08ed6f3303a973de343819804e548021 100644 (file)
@@ -1503,6 +1503,7 @@ static int test_sha256(void)
        const u8 *addr[2];
        size_t len[2];
        int errors = 0;
+       u8 *key;
 
        for (i = 0; i < ARRAY_SIZE(tests); i++) {
                wpa_printf(MSG_INFO, "SHA256 test case %d:", i + 1);
@@ -1573,6 +1574,29 @@ static int test_sha256(void)
                   hash, sizeof(hash));
        /* TODO: add proper test case for this */
 
+       key = os_malloc(8161);
+       if (key) {
+               int res;
+
+               res = hmac_sha256_kdf((u8 *) "secret", 6, "label",
+                                     (u8 *) "seed", 4, key, 8160);
+               if (res) {
+                       wpa_printf(MSG_INFO,
+                                  "Unexpected hmac_sha256_kdf(outlen=8160) failure");
+                       errors++;
+               }
+
+               res = hmac_sha256_kdf((u8 *) "secret", 6, "label",
+                                     (u8 *) "seed", 4, key, 8161);
+               if (res == 0) {
+                       wpa_printf(MSG_INFO,
+                                  "Unexpected hmac_sha256_kdf(outlen=8161) success");
+                       errors++;
+               }
+
+               os_free(key);
+       }
+
        if (!errors)
                wpa_printf(MSG_INFO, "SHA256 test cases passed");
        return errors;