Merge branch '2.4.x' into 2.5.x
[catacomb] / symm / t / salsa20.local
1 ### Salsa20 stream cipher
2
3 salsa20-core {
4 ## From Daniel J. Bernstein, `Salsa20 specification',
5 ## http://cr.yp.to/snuffle/spec.pdf
6 ##
7 ## I've converted the tedious decimal matrices to hex.
8
9 ## From Section 8, `The Salsa20 hash function'.
10 1
11 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
12 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000;
13 1
14 d39f0d734c3752b70375de25bfbbea8831edb330016ab2dbafc7a6305610b3cf1ff0203f0f535da174933071ee37cc244fc9eb4f03519c2fcb1af4f358766836
15 6d2ab2a89cf0f8eea8c4becb1a6eaa9a1d1d961a961eebf9bea3fb30459033397628989db4391b5e6b2aec231b6f7272dbece8876f9b6e1218e85f9eb31330ca;
16 1
17 587668364fc9eb4f03519c2fcb1af4f3bfbbea88d39f0d734c3752b70375de255610b3cf31edb330016ab2dbafc7a630ee37cc241ff0203f0f535da174933071
18 b31330cadbece8876f9b6e1218e85f9e1a6eaa9a6d2ab2a89cf0f8eea8c4becb459033391d1d961a961eebf9bea3fb301b6f72727628989db4391b5e6b2aec23;
19 1000000
20 067c539226bf093204a12fde7ab6dfb94b1b00d8107a0759a2686593d515365fe1fd8bb0698417744c29b0cfdd229d6c5e5e63345a755bdc92beef8fc4b082ba
21 081226c7774cd743ad7f90a267d4b0d9c013e9219fc59aa080f3db41ab8887e17b0b4456ed52149b85bd0953a774c24e7a7fc3b9b9ccbc5af509b7f8e255f568;
22
23 ## From Section 9, `The Salsa20 expansion function', using the explicit
24 ## applications of the Salsa20 hash.
25 1
26 657870610102030405060708090a0b0c0d0e0f106e64203365666768696a6b6c6d6e6f7071727374322d6279c9cacbcccdcecfd0d1d2d3d4d5d6d7d87465206b
27 45254427290f6bc1ff8b7a06aae9d9625990b66a1533c841ef31de22d772287e68c507e1c5991f02664e4cb054f5f6b8b1a0858206489577c0c384ecea67f64a;
28 1
29 657870610102030405060708090a0b0c0d0e0f106e64203165666768696a6b6c6d6e6f7071727374362d62790102030405060708090a0b0c0d0e0f107465206b
30 27ad2ef81ec852113043feef25120df7f1c83d900a3732b9062ff6fd8f56bbe186556ef6a1a32bebe75eab3391d6701d0ee80510978cb78dab097ab568b6b1c1;
31 }
32
33 salsa20 {
34 ## From Daniel J. Bernstein, `Salsa20 specification',
35 ## http://cr.yp.to/snuffle/spec.pdf
36 ##
37 ## I've converted the tedious decimal matrices to hex.
38
39 ## From Section 9, `The Salsa20 expansion function'. The position
40 ## indicator is shown big endian here, because it's semantically an
41 ## integer.
42 0102030405060708090a0b0c0d0e0f10c9cacbcccdcecfd0d1d2d3d4d5d6d7d8
43 65666768696a6b6c 74737271706f6e6d 0 ""
44 45254427290f6bc1ff8b7a06aae9d9625990b66a1533c841ef31de22d772287e68c507e1c5991f02664e4cb054f5f6b8b1a0858206489577c0c384ecea67f64a;
45 0102030405060708090a0b0c0d0e0f10
46 65666768696a6b6c 74737271706f6e6d 0 ""
47 27ad2ef81ec852113043feef25120df7f1c83d900a3732b9062ff6fd8f56bbe186556ef6a1a32bebe75eab3391d6701d0ee80510978cb78dab097ab568b6b1c1;
48 }
49
50 salsa20 {
51 ## A homemade test to make sure buffering is working properly. Since
52 ## there's only one implementation actually doing the encryption work for
53 ## all of the variants, this will give us confidence that everything OK.
54 0558abfe51a4f74a9df04396e93c8fe23588db2e81d4277acd2073c6196cbf12
55 167de44bb21980e7 "" 0
56 3944f6dc9f85b128083879fdf190f7dee4053a07bc09896d51d0690bd4da4ac1062f1e47d3d0716f80a9b4d85e6d6085ee06947601c85f1a27a2f76e45a6aa87a5f0ca9e687204403219a8c898c48f7dd4db29c0028a23fa168ccdf44a282109b5010e9023afc1fc30a012d8ce2ea2e5f2fa39f94c27435ce4166b660bd80119585dca86ecd6b45e55519b56f2050a2e488640f788c812f76a81bc40de06dd992edd1c536db7bcafbef6f98b246e3bdabb3202d62f3f354909eab893e0f815e209eeec485e91c0ae60d76ed124ed41c78a915194557f79c5f188c43150747dd032470618bc4339ae9984c209af5ce268f27407e5de151877b9ad7b31ae0c29df3f1243cb247d15760e06807de3a8765620ebff483b4cf92a4ba2842cdf09d880d244e7ef62b8bd5ed9c224d817e14d3eead96b6ab2716e94f5172636030867afc8f7f057e7c760881c1ce51ab1d64fb5545529f60da0db15ffd677adc3f30ca3be8b0c37110893ccea7678c331bcbfef4f116f1ea13344a56b38074f532053517d5cc49e3a026e125cd395f298743816dc5d057d1acb3f0407f341b0547adcb7f21882943dbc9de021a583ca4debf38e79a0e102c5d7ff2de52b1477633744dd4ff20d744c0453fd979ddbf6e62fc0cc0be5c1172e3593d44ac03bec93e87d3deb693374e5d2e3bba55055c24011934112489b0d5ea9d4c92bfb1850e97280d9e3d7d2799b631c18965d77925333dcd6e06aae3d574b7b8c4391ad62d06aa363f35c1b8e963131d83543f0074f35ee8b52fb86e01de3a38f09a74f5c71e46d1fe26be0684db71926f4a111411793131cbf895fa6a9df36096336cb017c939995655206b6765eaa101486a0f850fe58f3e9d62d9edf84804a1b285ffc1603e7b613b1a29bcdd19255319004ff32abbf8eee5b71f31ace330ed1098b164c44aa1e4f5a10d940dd4f4c94c4e11de8ce577549437c1ce11c3e37233a42eea66d2434f7c4b80a82066dfa3f03f881f7b03d5e5558068d54a069cbc58e1109b87514a5f44c644fa616bac111097c3f535c40f6820ccd3ec76b5184a34a4a97377bce7d781f756fd9c963d2d6ac1466b9c8277b20578ce296d8a156675e616bae68616b8d2cda1f90e30296cb600a98084140f7baec97bb8b4b574af3930d1fd771f05478773cec801ca5734fcf89eb59811b9ff1cc6a032d5b1c76a9b12b2b00d47edbea6d3d5b5e30a858a2744bc77e17dbc56125b68ec538af8e37e3ce4a26cdd70bc95686e02ebdca733272a141eeebce416044b775055eccd87b0f0063d480d0d7bb315a3839277e10932b657b50c4a7793fc6304f96cb7db18e6f50971e1c7d7a1d543f0331ebe79684ec7cf70a1e0e2d0db7d90dd2f855f98115821a4c25e67ab4585584f01f97ff0b751516c3ef547eb1f2f3ab6992753bede283574d197eea
57 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000;
58
59 ## Homemade tests for skipping.
60 0f62b5085bae0154a7fa4da0f34699ec3f92e5388bde3184d72a7dd02376c91c
61 288ff65dc42b92f9 "" 131025 "" 36de843cccab0390b8b5862f1e4596ae;
62
63 ## Homemade test of IETF-style 12-byte nonces.
64 0102030405060708090a0b0c0d0e0f10c9cacbcccdcecfd0d1d2d3d4d5d6d7d8
65 7172737465666768696a6b6c 706f6e6d 0 ""
66 45254427290f6bc1ff8b7a06aae9d9625990b66a1533c841ef31de22d772287e68c507e1c5991f02664e4cb054f5f6b8b1a0858206489577c0c384ecea67f64a;
67 0102030405060708090a0b0c0d0e0f10
68 7172737465666768696a6b6c 706f6e6d 0 ""
69 27ad2ef81ec852113043feef25120df7f1c83d900a3732b9062ff6fd8f56bbe186556ef6a1a32bebe75eab3391d6701d0ee80510978cb78dab097ab568b6b1c1;
70 }
71
72 xsalsa20 {
73 ## Taken from http://gopkgs.com/doc/src/gopkgs.com/gc/go.crypto.r225/salsa20/salsa20_test.go
74 746869732069732033322d62797465206b657920666f72207873616c73613230
75 32342d62797465206e6f6e636520666f72207873616c7361 0 ""
76 48656c6c6f20776f726c6421 002d4513843fc240c401e541;
77 746869732069732033322d62797465206b657920666f72207873616c73613230
78 32342d62797465206e6f6e636520666f72207873616c7361 "" 0 ""
79 4848297feb1fb52fb66d81609bd547fabcbe7026edc8b5e5e449d088bfa69c088f5d8da1d791267c2c195a7f8cae9c4b4050d08ce6d3a151ec265f3a58e47648;
80
81 ## Taken from libsodium.
82 1b27556473e985d462cd51197a9a46c76009549eac6474f206c4ee0844f68389
83 69696ee955b62b73cd62bda875fc73d68219e0036b7a0b37 "" 0 ""
84 eea6a7251c1e72916d11c2cb214d3c252539121d8e234e652d651fa4c8cff880;
85 1b27556473e985d462cd51197a9a46c76009549eac6474f206c4ee0844f68389
86 69696ee955b62b73cd62bda875fc73d68219e0036b7a0b37 "" 32
87 be075fc53c81f2d5cf141316ebeb0c7b5228c52a4c62cbd44b66849b64244ffce5ecbaaf33bd751a1ac728d45e6c61296cdc3c01233561f41db66cce314adb310e3be8250c46f06dceea3a7fa1348057e2f6556ad6b1318a024a838f21af1fde048977eb48f59ffd4924ca1c60902e52f0a089bc76897040e082f937763848645e0705
88 8e993b9f48681273c29650ba32fc76ce48332ea7164d96a4476fb8c531a1186ac0dfc17c98dce87b4da7f011ec48c97271d2c20f9b928fe2270d6fb863d51738b48eeee314a7cc8ab932164548e526ae90224368517acfeabd6bb3732bc0e9da99832b61ca01b6de56244a9e88d5f9b37973f622a43d14a6599b1f654cb45a74e355a5;
89 }
90
91 salsa20-naclbox {
92 ## Taken from Daniel J. Bernstein, `Cryptography in NaCl',
93 ## https://cr.yp.to/highspeed/naclcrypto-20090310.pdf
94
95 1b27556473e985d462cd51197a9a46c76009549eac6474f206c4ee0844f68389
96 69696ee955b62b73cd62bda875fc73d68219e0036b7a0b37
97 ""
98 be075fc53c81f2d5cf141316ebeb0c7b5228c52a4c62cbd44b66849b64244ffce5ecbaaf33bd751a1ac728d45e6c61296cdc3c01233561f41db66cce314adb310e3be8250c46f06dceea3a7fa1348057e2f6556ad6b1318a024a838f21af1fde048977eb48f59ffd4924ca1c60902e52f0a089bc76897040e082f937763848645e0705
99 8e993b9f48681273c29650ba32fc76ce48332ea7164d96a4476fb8c531a1186ac0dfc17c98dce87b4da7f011ec48c97271d2c20f9b928fe2270d6fb863d51738b48eeee314a7cc8ab932164548e526ae90224368517acfeabd6bb3732bc0e9da99832b61ca01b6de56244a9e88d5f9b37973f622a43d14a6599b1f654cb45a74e355a5
100 f3ffc7703f9400e52a7dfb4b3d3305d9;
101 }