summaryrefslogtreecommitdiffstats
path: root/debian/vendor-h2o/deps/picotls/deps/cifra/src/testsalsa20.c
diff options
context:
space:
mode:
Diffstat (limited to 'debian/vendor-h2o/deps/picotls/deps/cifra/src/testsalsa20.c')
-rw-r--r--debian/vendor-h2o/deps/picotls/deps/cifra/src/testsalsa20.c210
1 files changed, 0 insertions, 210 deletions
diff --git a/debian/vendor-h2o/deps/picotls/deps/cifra/src/testsalsa20.c b/debian/vendor-h2o/deps/picotls/deps/cifra/src/testsalsa20.c
deleted file mode 100644
index 9d50b93..0000000
--- a/debian/vendor-h2o/deps/picotls/deps/cifra/src/testsalsa20.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * cifra - embedded cryptography library
- * Written in 2014 by Joseph Birr-Pixton <jpixton@gmail.com>
- *
- * To the extent possible under law, the author(s) have dedicated all
- * copyright and related and neighboring rights to this software to the
- * public domain worldwide. This software is distributed without any
- * warranty.
- *
- * You should have received a copy of the CC0 Public Domain Dedication
- * along with this software. If not, see
- * <http://creativecommons.org/publicdomain/zero/1.0/>.
- */
-
-#include "salsa20.h"
-
-#include "testutil.h"
-#include "handy.h"
-#include "cutest.h"
-
-static void test_salsa20_core(void)
-{
- uint8_t k0[16], k1[16], nonce[16], sigma[16], out[64], expect[64];
-
- /* From section 8. */
- memset(k0, 0, sizeof k0);
- memset(k1, 0, sizeof k1);
- memset(nonce, 0, sizeof nonce);
- memset(sigma, 0, sizeof sigma);
-
- cf_salsa20_core(k0, k1, nonce, sigma, out);
-
- unhex(expect, 64, "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
- TEST_CHECK(memcmp(expect, out, 64) == 0);
-
- /*
- d39f0d73
- 4c3752b70375de25bfbbea8831edb330
- 016ab2db
- afc7a6305610b3cf1ff0203f0f535da1
- 74933071
- ee37cc244fc9eb4f03519c2fcb1af4f3
- 58766836
- */
- unhex(k0, 16, "4c3752b70375de25bfbbea8831edb330");
- unhex(k1, 16, "ee37cc244fc9eb4f03519c2fcb1af4f3");
- unhex(nonce, 16, "afc7a6305610b3cf1ff0203f0f535da1");
- unhex(sigma, 16, "d39f0d73016ab2db7493307158766836");
-
- cf_salsa20_core(k0, k1, nonce, sigma, out);
-
- unhex(expect, 64, "6d2ab2a89cf0f8eea8c4becb1a6eaa9a1d1d961a961eebf9bea3fb30459033397628989db4391b5e6b2aec231b6f7272dbece8876f9b6e1218e85f9eb31330ca");
- TEST_CHECK(memcmp(expect, out, 64) == 0);
-
- /*
- 58766836
- 4fc9eb4f03519c2fcb1af4f3bfbbea88
- d39f0d73
- 4c3752b70375de255610b3cf31edb330
- 016ab2db
- afc7a630ee37cc241ff0203f0f535da1
- 74933071
- */
- unhex(k0, 16, "4fc9eb4f03519c2fcb1af4f3bfbbea88");
- unhex(k1, 16, "afc7a630ee37cc241ff0203f0f535da1");
- unhex(nonce, 16, "4c3752b70375de255610b3cf31edb330");
- unhex(sigma, 16, "58766836d39f0d73016ab2db74933071");
-
- cf_salsa20_core(k0, k1, nonce, sigma, out);
-
- unhex(expect, 64, "b31330cadbece8876f9b6e1218e85f9e1a6eaa9a6d2ab2a89cf0f8eea8c4becb459033391d1d961a961eebf9bea3fb301b6f72727628989db4391b5e6b2aec23");
- TEST_CHECK(memcmp(expect, out, 64) == 0);
-
- /* From section 9. */
- for (size_t i = 0; i < 16; i++)
- {
- k0[i] = 1 + i;
- k1[i] = 201 + i;
- nonce[i] = 101 + i;
- }
-
- cf_salsa20_core(k0, k1, nonce, (const uint8_t *) "expand 32-byte k", out);
-
- unhex(expect, 64, "45254427290f6bc1ff8b7a06aae9d9625990b66a1533c841ef31de22d772287e68c507e1c5991f02664e4cb054f5f6b8b1a0858206489577c0c384ecea67f64a");
- TEST_CHECK(memcmp(expect, out, 64) == 0);
-
- cf_salsa20_core(k0, k0, nonce, (const uint8_t *) "expand 16-byte k", out);
-
- unhex(expect, 64, "27ad2ef81ec852113043feef25120df7f1c83d900a3732b9062ff6fd8f56bbe186556ef6a1a32bebe75eab3391d6701d0ee80510978cb78dab097ab568b6b1c1");
- TEST_CHECK(memcmp(expect, out, 64) == 0);
-}
-
-static void test_salsa20(void)
-{
- cf_salsa20_ctx ctx;
- uint8_t key[32], nonce[8], cipher[64], expect[64];
-
- unhex(key, 32, "0102030405060708090a0b0c0d0e0f10c9cacbcccdcecfd0d1d2d3d4d5d6d7d8");
- memset(nonce, 0, 8);
-
- cf_salsa20_init(&ctx, key, sizeof key, nonce);
- unhex(ctx.nonce, 16, "65666768696a6b6c6d6e6f7071727374");
- memset(cipher, 0, 64);
- cf_salsa20_cipher(&ctx, cipher, cipher, 64);
-
- unhex(expect, 64, "45254427290f6bc1ff8b7a06aae9d9625990b66a1533c841ef31de22d772287e68c507e1c5991f02664e4cb054f5f6b8b1a0858206489577c0c384ecea67f64a");
- TEST_CHECK(memcmp(expect, cipher, 64) == 0);
-
- cf_salsa20_init(&ctx, key, 16, nonce);
- unhex(ctx.nonce, 16, "65666768696a6b6c6d6e6f7071727374");
- memset(cipher, 0, 64);
- cf_salsa20_cipher(&ctx, cipher, cipher, 64);
-
- unhex(expect, 64, "27ad2ef81ec852113043feef25120df7f1c83d900a3732b9062ff6fd8f56bbe186556ef6a1a32bebe75eab3391d6701d0ee80510978cb78dab097ab568b6b1c1");
- TEST_CHECK(memcmp(expect, cipher, 64) == 0);
-}
-
-static void test_chacha20_core(void)
-{
- uint8_t k0[16], k1[16], nonce[16], out[64], expect[64];
-
- /* From draft-agl-tls-chacha20poly1305-04 section 7. */
-
- memset(k0, 0, sizeof k0);
- memset(k1, 0, sizeof k1);
- memset(nonce, 0, sizeof nonce);
-
- cf_chacha20_core(k0, k1, nonce, (const uint8_t *) "expand 32-byte k", out);
-
- unhex(expect, 60, "76b8e0ada0f13d90405d6ae55386bd28bdd219b8a08ded1aa836efcc8b770dc7da41597c5157488d7724e03fb8d84a376a43b8f41518a11cc387b669");
- TEST_CHECK(memcmp(expect, out, 60) == 0);
-
- k1[15] = 0x01;
- cf_chacha20_core(k0, k1, nonce, (const uint8_t *) "expand 32-byte k", out);
-
- unhex(expect, 60, "4540f05a9f1fb296d7736e7b208e3c96eb4fe1834688d2604f450952ed432d41bbe2a0b6ea7566d2a5d1e7e20d42af2c53d792b1c43fea817e9ad275");
- TEST_CHECK(memcmp(expect, out, 60) == 0);
-
- memset(k1, 0, sizeof k1);
- nonce[15] = 0x01;
-
- cf_chacha20_core(k0, k1, nonce, (const uint8_t *) "expand 32-byte k", out);
-
- unhex(expect, 60, "de9cba7bf3d69ef5e786dc63973f653a0b49e015adbff7134fcb7df137821031e85a050278a7084527214f73efc7fa5b5277062eb7a0433e445f41e3");
- TEST_CHECK(memcmp(expect, out, 60) == 0);
-
- memset(nonce, 0, sizeof nonce);
- nonce[8] = 0x01;
-
- cf_chacha20_core(k0, k1, nonce, (const uint8_t *) "expand 32-byte k", out);
-
- unhex(expect, 64, "ef3fdfd6c61578fbf5cf35bd3dd33b8009631634d21e42ac33960bd138e50d32111e4caf237ee53ca8ad6426194a88545ddc497a0b466e7d6bbdb0041b2f586b");
- TEST_CHECK(memcmp(expect, out, 64) == 0);
-
- unhex(k0, 16, "000102030405060708090a0b0c0d0e0f");
- unhex(k1, 16, "101112131415161718191a1b1c1d1e1f");
- unhex(nonce, 16, "00000000000000000001020304050607");
-
- cf_chacha20_core(k0, k1, nonce, (const uint8_t *) "expand 32-byte k", out);
-
- unhex(expect, 64, "f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a");
- TEST_CHECK(memcmp(expect, out, 64) == 0);
-
- nonce[0]++;
- cf_chacha20_core(k0, k1, nonce, (const uint8_t *) "expand 32-byte k", out);
-
- unhex(expect, 64, "38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c7");
- TEST_CHECK(memcmp(expect, out, 64) == 0);
-
- nonce[0]++;
- cf_chacha20_core(k0, k1, nonce, (const uint8_t *) "expand 32-byte k", out);
-
- unhex(expect, 64, "9db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d7");
- TEST_CHECK(memcmp(expect, out, 64) == 0);
-
- nonce[0]++;
- cf_chacha20_core(k0, k1, nonce, (const uint8_t *) "expand 32-byte k", out);
-
- unhex(expect, 64, "0eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb3ab78fab78c9");
- TEST_CHECK(memcmp(expect, out, 64) == 0);
-}
-
-static void test_chacha20(void)
-{
- uint8_t key[32], nonce[8], block[256], expect[256];
-
- unhex(key, 32, "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f");
- unhex(nonce, 8, "0001020304050607");
- unhex(expect, 256, "f798a189f195e66982105ffb640bb7757f579da31602fc93ec01ac56f85ac3c134a4547b733b46413042c9440049176905d3be59ea1c53f15916155c2be8241a38008b9a26bc35941e2444177c8ade6689de95264986d95889fb60e84629c9bd9a5acb1cc118be563eb9b3a4a472f82e09a7e778492b562ef7130e88dfe031c79db9d4f7c7a899151b9a475032b63fc385245fe054e3dd5a97a5f576fe064025d3ce042c566ab2c507b138db853e3d6959660996546cc9c4a6eafdc777c040d70eaf46f76dad3979e5c5360c3317166a1c894c94a371876a94df7628fe4eaaf2ccb27d5aaae0ad7ad0f9d4b6ad3b54098746d4524d38407a6deb3ab78fab78c9");
- memset(block, 0, 256);
-
- cf_chacha20_ctx ctx;
- cf_chacha20_init(&ctx, key, sizeof key, nonce);
- cf_chacha20_cipher(&ctx, block, block, sizeof block);
-
- TEST_CHECK(memcmp(expect, block, sizeof expect) == 0);
-
- /* Check 128-bit mode works. */
- cf_chacha20_init(&ctx, key, 16, nonce);
- cf_chacha20_cipher(&ctx, block, block, sizeof block);
-}
-
-TEST_LIST = {
- { "salsa20-core", test_salsa20_core },
- { "chacha20-core", test_chacha20_core },
- { "salsa20", test_salsa20 },
- { "chacha20", test_chacha20 },
- { 0 }
-};
-