1 1.1 christos /* 2 1.1 christos * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. 3 1.1 christos * 4 1.1 christos * Licensed under the Apache License 2.0 (the "License"). You may not use 5 1.1 christos * this file except in compliance with the License. You can obtain a copy 6 1.1 christos * in the file LICENSE in the source distribution or at 7 1.1 christos * https://www.openssl.org/source/license.html 8 1.1 christos */ 9 1.1 christos 10 1.1 christos /* Internal tests for the poly1305 module */ 11 1.1 christos 12 1.1 christos #include <stdio.h> 13 1.1 christos #include <string.h> 14 1.1 christos 15 1.1 christos #include "testutil.h" 16 1.1 christos #include "crypto/poly1305.h" 17 1.1 christos #include "internal/nelem.h" 18 1.1 christos 19 1.1 christos typedef struct { 20 1.1 christos size_t size; 21 1.1 christos const unsigned char data[1024]; 22 1.1 christos } SIZED_DATA; 23 1.1 christos 24 1.1 christos typedef struct { 25 1.1 christos SIZED_DATA input; 26 1.1 christos SIZED_DATA key; 27 1.1 christos SIZED_DATA expected; 28 1.1 christos } TESTDATA; 29 1.1 christos 30 1.1 christos /********************************************************************** 31 1.1 christos * 32 1.1 christos * Test of poly1305 internal functions 33 1.1 christos * 34 1.1 christos ***/ 35 1.1 christos 36 1.1 christos static TESTDATA tests[] = { 37 1.1 christos /* 38 1.1 christos * RFC7539 39 1.1 christos */ 40 1.1 christos { 41 1.1.1.2 christos { 34, 42 1.1.1.2 christos { 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 43 1.1 christos 0x61, 0x70, 0x68, 0x69, 0x63, 0x20, 0x46, 0x6f, 44 1.1 christos 0x72, 0x75, 0x6d, 0x20, 0x52, 0x65, 0x73, 0x65, 45 1.1 christos 0x61, 0x72, 0x63, 0x68, 0x20, 0x47, 0x72, 0x6f, 46 1.1 christos 47 1.1.1.2 christos 0x75, 0x70 } }, 48 1.1.1.2 christos { 32, 49 1.1.1.2 christos { 0x85, 0xd6, 0xbe, 0x78, 0x57, 0x55, 0x6d, 0x33, 50 1.1 christos 0x7f, 0x44, 0x52, 0xfe, 0x42, 0xd5, 0x06, 0xa8, 51 1.1 christos 0x01, 0x03, 0x80, 0x8a, 0xfb, 0x0d, 0xb2, 0xfd, 52 1.1.1.2 christos 0x4a, 0xbf, 0xf6, 0xaf, 0x41, 0x49, 0xf5, 0x1b } }, 53 1.1.1.2 christos { 16, 54 1.1.1.2 christos { 0xa8, 0x06, 0x1d, 0xc1, 0x30, 0x51, 0x36, 0xc6, 55 1.1.1.2 christos 0xc2, 0x2b, 0x8b, 0xaf, 0x0c, 0x01, 0x27, 0xa9 } } }, 56 1.1 christos /* 57 1.1 christos * test vectors from "The Poly1305-AES message-authentication code" 58 1.1 christos */ 59 1.1 christos { 60 1.1.1.2 christos { 2, 61 1.1.1.2 christos { 0xf3, 0xf6 } }, 62 1.1.1.2 christos { 32, 63 1.1.1.2 christos { 0x85, 0x1f, 0xc4, 0x0c, 0x34, 0x67, 0xac, 0x0b, 64 1.1 christos 0xe0, 0x5c, 0xc2, 0x04, 0x04, 0xf3, 0xf7, 0x00, 65 1.1 christos 0x58, 0x0b, 0x3b, 0x0f, 0x94, 0x47, 0xbb, 0x1e, 66 1.1.1.2 christos 0x69, 0xd0, 0x95, 0xb5, 0x92, 0x8b, 0x6d, 0xbc } }, 67 1.1.1.2 christos { 16, 68 1.1.1.2 christos { 0xf4, 0xc6, 0x33, 0xc3, 0x04, 0x4f, 0xc1, 0x45, 69 1.1.1.2 christos 0xf8, 0x4f, 0x33, 0x5c, 0xb8, 0x19, 0x53, 0xde } } }, 70 1.1.1.2 christos { { 0, 71 1.1.1.2 christos { 0 } }, 72 1.1.1.2 christos { 32, 73 1.1.1.2 christos { 0xa0, 0xf3, 0x08, 0x00, 0x00, 0xf4, 0x64, 0x00, 74 1.1 christos 0xd0, 0xc7, 0xe9, 0x07, 0x6c, 0x83, 0x44, 0x03, 75 1.1 christos 0xdd, 0x3f, 0xab, 0x22, 0x51, 0xf1, 0x1a, 0xc7, 76 1.1.1.2 christos 0x59, 0xf0, 0x88, 0x71, 0x29, 0xcc, 0x2e, 0xe7 } }, 77 1.1.1.2 christos { 16, 78 1.1.1.2 christos { 0xdd, 0x3f, 0xab, 0x22, 0x51, 0xf1, 0x1a, 0xc7, 79 1.1.1.2 christos 0x59, 0xf0, 0x88, 0x71, 0x29, 0xcc, 0x2e, 0xe7 } } }, 80 1.1.1.2 christos { { 32, 81 1.1.1.2 christos { 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8, 82 1.1.1.2 christos 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24, 83 1.1.1.2 christos 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb, 84 1.1.1.2 christos 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36 } }, 85 1.1.1.2 christos { 32, 86 1.1.1.2 christos { 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09, 87 1.1 christos 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08, 88 1.1 christos 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88, 89 1.1.1.2 christos 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef } }, 90 1.1.1.2 christos { 16, 91 1.1.1.2 christos { 0x0e, 0xe1, 0xc1, 0x6b, 0xb7, 0x3f, 0x0f, 0x4f, 92 1.1.1.2 christos 0xd1, 0x98, 0x81, 0x75, 0x3c, 0x01, 0xcd, 0xbe } } }, 93 1.1 christos { 94 1.1.1.2 christos { 63, 95 1.1.1.2 christos { 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34, 96 1.1 christos 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1, 97 1.1 christos 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81, 98 1.1 christos 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0, 99 1.1 christos 100 1.1 christos 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2, 101 1.1 christos 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67, 102 1.1 christos 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61, 103 1.1.1.2 christos 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9 } }, 104 1.1.1.2 christos { 32, 105 1.1.1.2 christos { 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c, 106 1.1 christos 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07, 107 1.1 christos 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1, 108 1.1.1.2 christos 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57 } }, 109 1.1.1.2 christos { 16, 110 1.1.1.2 christos { 0x51, 0x54, 0xad, 0x0d, 0x2c, 0xb2, 0x6e, 0x01, 111 1.1.1.2 christos 0x27, 0x4f, 0xc5, 0x11, 0x48, 0x49, 0x1f, 0x1b } }, 112 1.1 christos }, 113 1.1 christos /* 114 1.1 christos * self-generated vectors exercise "significant" lengths, such that 115 1.1 christos * are handled by different code paths 116 1.1 christos */ 117 1.1 christos { 118 1.1.1.2 christos { 64, 119 1.1.1.2 christos { 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34, 120 1.1 christos 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1, 121 1.1 christos 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81, 122 1.1 christos 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0, 123 1.1 christos 124 1.1 christos 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2, 125 1.1 christos 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67, 126 1.1 christos 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61, 127 1.1.1.2 christos 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf } }, 128 1.1.1.2 christos { 32, 129 1.1.1.2 christos { 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c, 130 1.1 christos 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07, 131 1.1 christos 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1, 132 1.1.1.2 christos 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57 } }, 133 1.1.1.2 christos { 16, 134 1.1.1.2 christos { 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37, 135 1.1.1.2 christos 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66 } }, 136 1.1 christos }, 137 1.1 christos { 138 1.1.1.2 christos { 48, 139 1.1.1.2 christos { 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34, 140 1.1 christos 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1, 141 1.1 christos 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81, 142 1.1 christos 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0, 143 1.1 christos 144 1.1 christos 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2, 145 1.1.1.2 christos 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67 } }, 146 1.1.1.2 christos { 32, 147 1.1.1.2 christos { 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c, 148 1.1 christos 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07, 149 1.1 christos 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1, 150 1.1 christos 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57 151 1.1 christos 152 1.1.1.2 christos } }, 153 1.1.1.2 christos { 16, 154 1.1.1.2 christos { 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2, 155 1.1.1.2 christos 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61 } }, 156 1.1 christos }, 157 1.1 christos { 158 1.1.1.2 christos { 96, 159 1.1.1.2 christos { 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34, 160 1.1 christos 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1, 161 1.1 christos 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81, 162 1.1 christos 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0, 163 1.1 christos 164 1.1 christos 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2, 165 1.1 christos 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67, 166 1.1 christos 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61, 167 1.1 christos 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf, 168 1.1 christos 169 1.1 christos 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8, 170 1.1 christos 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24, 171 1.1 christos 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb, 172 1.1.1.2 christos 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36 } }, 173 1.1.1.2 christos { 32, 174 1.1.1.2 christos { 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c, 175 1.1 christos 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07, 176 1.1 christos 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1, 177 1.1.1.2 christos 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57 } }, 178 1.1.1.2 christos { 16, 179 1.1.1.2 christos { 0xbb, 0xb6, 0x13, 0xb2, 0xb6, 0xd7, 0x53, 0xba, 180 1.1.1.2 christos 0x07, 0x39, 0x5b, 0x91, 0x6a, 0xae, 0xce, 0x15 } }, 181 1.1 christos }, 182 1.1 christos { 183 1.1.1.2 christos { 112, 184 1.1.1.2 christos { 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34, 185 1.1 christos 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1, 186 1.1 christos 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81, 187 1.1 christos 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0, 188 1.1 christos 189 1.1 christos 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2, 190 1.1 christos 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67, 191 1.1 christos 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61, 192 1.1 christos 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf, 193 1.1 christos 194 1.1 christos 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09, 195 1.1 christos 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08, 196 1.1 christos 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88, 197 1.1 christos 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef, 198 1.1 christos 199 1.1 christos 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8, 200 1.1.1.2 christos 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24 } }, 201 1.1.1.2 christos { 32, 202 1.1.1.2 christos { 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c, 203 1.1 christos 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07, 204 1.1 christos 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1, 205 1.1.1.2 christos 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57 } }, 206 1.1.1.2 christos { 16, 207 1.1.1.2 christos { 0xc7, 0x94, 0xd7, 0x05, 0x7d, 0x17, 0x78, 0xc4, 208 1.1.1.2 christos 0xbb, 0xee, 0x0a, 0x39, 0xb3, 0xd9, 0x73, 0x42 } }, 209 1.1 christos }, 210 1.1 christos { 211 1.1.1.2 christos { 128, 212 1.1.1.2 christos { 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34, 213 1.1 christos 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1, 214 1.1 christos 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81, 215 1.1 christos 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0, 216 1.1 christos 217 1.1 christos 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2, 218 1.1 christos 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67, 219 1.1 christos 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61, 220 1.1 christos 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf, 221 1.1 christos 222 1.1 christos 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09, 223 1.1 christos 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08, 224 1.1 christos 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88, 225 1.1 christos 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef, 226 1.1 christos 227 1.1 christos 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8, 228 1.1 christos 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24, 229 1.1 christos 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb, 230 1.1.1.2 christos 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36 } }, 231 1.1.1.2 christos { 32, 232 1.1.1.2 christos { 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c, 233 1.1 christos 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07, 234 1.1 christos 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1, 235 1.1.1.2 christos 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57 } }, 236 1.1.1.2 christos { 16, 237 1.1.1.2 christos { 0xff, 0xbc, 0xb9, 0xb3, 0x71, 0x42, 0x31, 0x52, 238 1.1.1.2 christos 0xd7, 0xfc, 0xa5, 0xad, 0x04, 0x2f, 0xba, 0xa9 } }, 239 1.1 christos }, 240 1.1 christos { 241 1.1.1.2 christos { 144, 242 1.1.1.2 christos { 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34, 243 1.1 christos 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1, 244 1.1 christos 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81, 245 1.1 christos 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0, 246 1.1 christos 247 1.1 christos 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2, 248 1.1 christos 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67, 249 1.1 christos 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61, 250 1.1 christos 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf, 251 1.1 christos 252 1.1 christos 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09, 253 1.1 christos 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08, 254 1.1 christos 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88, 255 1.1 christos 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef, 256 1.1 christos 257 1.1 christos 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8, 258 1.1 christos 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24, 259 1.1 christos 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb, 260 1.1 christos 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36, 261 1.1 christos 262 1.1 christos 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37, 263 1.1.1.2 christos 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66 } }, 264 1.1.1.2 christos { 32, 265 1.1.1.2 christos { 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c, 266 1.1 christos 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07, 267 1.1 christos 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1, 268 1.1.1.2 christos 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57 } }, 269 1.1.1.2 christos { 16, 270 1.1.1.2 christos { 0x06, 0x9e, 0xd6, 0xb8, 0xef, 0x0f, 0x20, 0x7b, 271 1.1.1.2 christos 0x3e, 0x24, 0x3b, 0xb1, 0x01, 0x9f, 0xe6, 0x32 } }, 272 1.1 christos }, 273 1.1 christos { 274 1.1.1.2 christos { 160, 275 1.1.1.2 christos { 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34, 276 1.1 christos 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1, 277 1.1 christos 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81, 278 1.1 christos 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0, 279 1.1 christos 280 1.1 christos 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2, 281 1.1 christos 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67, 282 1.1 christos 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61, 283 1.1 christos 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf, 284 1.1 christos 285 1.1 christos 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09, 286 1.1 christos 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08, 287 1.1 christos 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88, 288 1.1 christos 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef, 289 1.1 christos 290 1.1 christos 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8, 291 1.1 christos 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24, 292 1.1 christos 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb, 293 1.1 christos 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36, 294 1.1 christos 295 1.1 christos 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37, 296 1.1 christos 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66, 297 1.1 christos 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2, 298 1.1.1.2 christos 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61 } }, 299 1.1.1.2 christos { 32, 300 1.1.1.2 christos { 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c, 301 1.1 christos 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07, 302 1.1 christos 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1, 303 1.1.1.2 christos 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57 } }, 304 1.1.1.2 christos { 16, 305 1.1.1.2 christos { 0xcc, 0xa3, 0x39, 0xd9, 0xa4, 0x5f, 0xa2, 0x36, 306 1.1.1.2 christos 0x8c, 0x2c, 0x68, 0xb3, 0xa4, 0x17, 0x91, 0x33 } }, 307 1.1 christos }, 308 1.1 christos { 309 1.1.1.2 christos { 288, 310 1.1.1.2 christos { 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34, 311 1.1 christos 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1, 312 1.1 christos 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81, 313 1.1 christos 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0, 314 1.1 christos 315 1.1 christos 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2, 316 1.1 christos 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67, 317 1.1 christos 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61, 318 1.1 christos 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf, 319 1.1 christos 320 1.1 christos 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09, 321 1.1 christos 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08, 322 1.1 christos 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88, 323 1.1 christos 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef, 324 1.1 christos 325 1.1 christos 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8, 326 1.1 christos 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24, 327 1.1 christos 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb, 328 1.1 christos 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36, 329 1.1 christos 330 1.1 christos 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37, 331 1.1 christos 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66, 332 1.1 christos 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2, 333 1.1 christos 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61, 334 1.1 christos 335 1.1 christos 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34, 336 1.1 christos 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1, 337 1.1 christos 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81, 338 1.1 christos 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0, 339 1.1 christos 340 1.1 christos 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2, 341 1.1 christos 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67, 342 1.1 christos 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61, 343 1.1 christos 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf, 344 1.1 christos 345 1.1 christos 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09, 346 1.1 christos 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08, 347 1.1 christos 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88, 348 1.1 christos 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef, 349 1.1 christos 350 1.1 christos 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8, 351 1.1 christos 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24, 352 1.1 christos 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb, 353 1.1.1.2 christos 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36 } }, 354 1.1.1.2 christos { 32, 355 1.1.1.2 christos { 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c, 356 1.1 christos 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07, 357 1.1 christos 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1, 358 1.1.1.2 christos 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57 } }, 359 1.1.1.2 christos { 16, 360 1.1.1.2 christos { 0x53, 0xf6, 0xe8, 0x28, 0xa2, 0xf0, 0xfe, 0x0e, 361 1.1.1.2 christos 0xe8, 0x15, 0xbf, 0x0b, 0xd5, 0x84, 0x1a, 0x34 } }, 362 1.1 christos }, 363 1.1 christos { 364 1.1.1.2 christos { 320, 365 1.1.1.2 christos { 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34, 366 1.1 christos 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1, 367 1.1 christos 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81, 368 1.1 christos 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0, 369 1.1 christos 370 1.1 christos 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2, 371 1.1 christos 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67, 372 1.1 christos 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61, 373 1.1 christos 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf, 374 1.1 christos 375 1.1 christos 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09, 376 1.1 christos 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08, 377 1.1 christos 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88, 378 1.1 christos 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef, 379 1.1 christos 380 1.1 christos 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8, 381 1.1 christos 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24, 382 1.1 christos 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb, 383 1.1 christos 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36, 384 1.1 christos 385 1.1 christos 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37, 386 1.1 christos 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66, 387 1.1 christos 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2, 388 1.1 christos 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61, 389 1.1 christos 390 1.1 christos 0xab, 0x08, 0x12, 0x72, 0x4a, 0x7f, 0x1e, 0x34, 391 1.1 christos 0x27, 0x42, 0xcb, 0xed, 0x37, 0x4d, 0x94, 0xd1, 392 1.1 christos 0x36, 0xc6, 0xb8, 0x79, 0x5d, 0x45, 0xb3, 0x81, 393 1.1 christos 0x98, 0x30, 0xf2, 0xc0, 0x44, 0x91, 0xfa, 0xf0, 394 1.1 christos 395 1.1 christos 0x99, 0x0c, 0x62, 0xe4, 0x8b, 0x80, 0x18, 0xb2, 396 1.1 christos 0xc3, 0xe4, 0xa0, 0xfa, 0x31, 0x34, 0xcb, 0x67, 397 1.1 christos 0xfa, 0x83, 0xe1, 0x58, 0xc9, 0x94, 0xd9, 0x61, 398 1.1 christos 0xc4, 0xcb, 0x21, 0x09, 0x5c, 0x1b, 0xf9, 0xaf, 399 1.1 christos 400 1.1 christos 0x48, 0x44, 0x3d, 0x0b, 0xb0, 0xd2, 0x11, 0x09, 401 1.1 christos 0xc8, 0x9a, 0x10, 0x0b, 0x5c, 0xe2, 0xc2, 0x08, 402 1.1 christos 0x83, 0x14, 0x9c, 0x69, 0xb5, 0x61, 0xdd, 0x88, 403 1.1 christos 0x29, 0x8a, 0x17, 0x98, 0xb1, 0x07, 0x16, 0xef, 404 1.1 christos 405 1.1 christos 0x66, 0x3c, 0xea, 0x19, 0x0f, 0xfb, 0x83, 0xd8, 406 1.1 christos 0x95, 0x93, 0xf3, 0xf4, 0x76, 0xb6, 0xbc, 0x24, 407 1.1 christos 0xd7, 0xe6, 0x79, 0x10, 0x7e, 0xa2, 0x6a, 0xdb, 408 1.1 christos 0x8c, 0xaf, 0x66, 0x52, 0xd0, 0x65, 0x61, 0x36, 409 1.1 christos 410 1.1 christos 0x81, 0x20, 0x59, 0xa5, 0xda, 0x19, 0x86, 0x37, 411 1.1 christos 0xca, 0xc7, 0xc4, 0xa6, 0x31, 0xbe, 0xe4, 0x66, 412 1.1 christos 0x5b, 0x88, 0xd7, 0xf6, 0x22, 0x8b, 0x11, 0xe2, 413 1.1.1.2 christos 0xe2, 0x85, 0x79, 0xa5, 0xc0, 0xc1, 0xf7, 0x61 } }, 414 1.1.1.2 christos { 32, 415 1.1.1.2 christos { 0x12, 0x97, 0x6a, 0x08, 0xc4, 0x42, 0x6d, 0x0c, 416 1.1 christos 0xe8, 0xa8, 0x24, 0x07, 0xc4, 0xf4, 0x82, 0x07, 417 1.1 christos 0x80, 0xf8, 0xc2, 0x0a, 0xa7, 0x12, 0x02, 0xd1, 418 1.1.1.2 christos 0xe2, 0x91, 0x79, 0xcb, 0xcb, 0x55, 0x5a, 0x57 } }, 419 1.1.1.2 christos { 16, 420 1.1.1.2 christos { 0xb8, 0x46, 0xd4, 0x4e, 0x9b, 0xbd, 0x53, 0xce, 421 1.1.1.2 christos 0xdf, 0xfb, 0xfb, 0xb6, 0xb7, 0xfa, 0x49, 0x33 } }, 422 1.1 christos }, 423 1.1 christos /* 424 1.1 christos * 4th power of the key spills to 131th bit in SIMD key setup 425 1.1 christos */ 426 1.1 christos { 427 1.1.1.2 christos { 256, 428 1.1.1.2 christos { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 429 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 430 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 431 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 432 1.1 christos 433 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 434 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 435 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 436 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 437 1.1 christos 438 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 439 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 440 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 441 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 442 1.1 christos 443 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 444 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 445 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 446 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 447 1.1 christos 448 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 449 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 450 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 451 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 452 1.1 christos 453 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 454 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 455 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 456 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 457 1.1 christos 458 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 459 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 460 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 461 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 462 1.1 christos 463 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 464 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 465 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 466 1.1.1.2 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } }, 467 1.1.1.2 christos { 32, 468 1.1.1.2 christos { 0xad, 0x62, 0x81, 0x07, 0xe8, 0x35, 0x1d, 0x0f, 469 1.1 christos 0x2c, 0x23, 0x1a, 0x05, 0xdc, 0x4a, 0x41, 0x06, 470 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 471 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 472 1.1.1.2 christos { 16, 473 1.1.1.2 christos { 0x07, 0x14, 0x5a, 0x4c, 0x02, 0xfe, 0x5f, 0xa3, 474 1.1.1.2 christos 0x20, 0x36, 0xde, 0x68, 0xfa, 0xbe, 0x90, 0x66 } }, 475 1.1 christos }, 476 1.1 christos /* 477 1.1 christos * poly1305_ieee754.c failed this in final stage 478 1.1 christos */ 479 1.1 christos { 480 1.1.1.2 christos { 252, 481 1.1.1.2 christos { 0x84, 0x23, 0x64, 0xe1, 0x56, 0x33, 0x6c, 0x09, 482 1.1 christos 0x98, 0xb9, 0x33, 0xa6, 0x23, 0x77, 0x26, 0x18, 483 1.1 christos 0x0d, 0x9e, 0x3f, 0xdc, 0xbd, 0xe4, 0xcd, 0x5d, 484 1.1 christos 0x17, 0x08, 0x0f, 0xc3, 0xbe, 0xb4, 0x96, 0x14, 485 1.1 christos 486 1.1 christos 0xd7, 0x12, 0x2c, 0x03, 0x74, 0x63, 0xff, 0x10, 487 1.1 christos 0x4d, 0x73, 0xf1, 0x9c, 0x12, 0x70, 0x46, 0x28, 488 1.1 christos 0xd4, 0x17, 0xc4, 0xc5, 0x4a, 0x3f, 0xe3, 0x0d, 489 1.1 christos 0x3c, 0x3d, 0x77, 0x14, 0x38, 0x2d, 0x43, 0xb0, 490 1.1 christos 491 1.1 christos 0x38, 0x2a, 0x50, 0xa5, 0xde, 0xe5, 0x4b, 0xe8, 492 1.1 christos 0x44, 0xb0, 0x76, 0xe8, 0xdf, 0x88, 0x20, 0x1a, 493 1.1 christos 0x1c, 0xd4, 0x3b, 0x90, 0xeb, 0x21, 0x64, 0x3f, 494 1.1 christos 0xa9, 0x6f, 0x39, 0xb5, 0x18, 0xaa, 0x83, 0x40, 495 1.1 christos 496 1.1 christos 0xc9, 0x42, 0xff, 0x3c, 0x31, 0xba, 0xf7, 0xc9, 497 1.1 christos 0xbd, 0xbf, 0x0f, 0x31, 0xae, 0x3f, 0xa0, 0x96, 498 1.1 christos 0xbf, 0x8c, 0x63, 0x03, 0x06, 0x09, 0x82, 0x9f, 499 1.1 christos 0xe7, 0x2e, 0x17, 0x98, 0x24, 0x89, 0x0b, 0xc8, 500 1.1 christos 501 1.1 christos 0xe0, 0x8c, 0x31, 0x5c, 0x1c, 0xce, 0x2a, 0x83, 502 1.1 christos 0x14, 0x4d, 0xbb, 0xff, 0x09, 0xf7, 0x4e, 0x3e, 503 1.1 christos 0xfc, 0x77, 0x0b, 0x54, 0xd0, 0x98, 0x4a, 0x8f, 504 1.1 christos 0x19, 0xb1, 0x47, 0x19, 0xe6, 0x36, 0x35, 0x64, 505 1.1 christos 506 1.1 christos 0x1d, 0x6b, 0x1e, 0xed, 0xf6, 0x3e, 0xfb, 0xf0, 507 1.1 christos 0x80, 0xe1, 0x78, 0x3d, 0x32, 0x44, 0x54, 0x12, 508 1.1 christos 0x11, 0x4c, 0x20, 0xde, 0x0b, 0x83, 0x7a, 0x0d, 509 1.1 christos 0xfa, 0x33, 0xd6, 0xb8, 0x28, 0x25, 0xff, 0xf4, 510 1.1 christos 511 1.1 christos 0x4c, 0x9a, 0x70, 0xea, 0x54, 0xce, 0x47, 0xf0, 512 1.1 christos 0x7d, 0xf6, 0x98, 0xe6, 0xb0, 0x33, 0x23, 0xb5, 513 1.1 christos 0x30, 0x79, 0x36, 0x4a, 0x5f, 0xc3, 0xe9, 0xdd, 514 1.1 christos 0x03, 0x43, 0x92, 0xbd, 0xde, 0x86, 0xdc, 0xcd, 515 1.1 christos 516 1.1 christos 0xda, 0x94, 0x32, 0x1c, 0x5e, 0x44, 0x06, 0x04, 517 1.1 christos 0x89, 0x33, 0x6c, 0xb6, 0x5b, 0xf3, 0x98, 0x9c, 518 1.1 christos 0x36, 0xf7, 0x28, 0x2c, 0x2f, 0x5d, 0x2b, 0x88, 519 1.1.1.2 christos 0x2c, 0x17, 0x1e, 0x74 } }, 520 1.1.1.2 christos { 32, 521 1.1.1.2 christos { 0x95, 0xd5, 0xc0, 0x05, 0x50, 0x3e, 0x51, 0x0d, 522 1.1 christos 0x8c, 0xd0, 0xaa, 0x07, 0x2c, 0x4a, 0x4d, 0x06, 523 1.1 christos 0x6e, 0xab, 0xc5, 0x2d, 0x11, 0x65, 0x3d, 0xf4, 524 1.1.1.2 christos 0x7f, 0xbf, 0x63, 0xab, 0x19, 0x8b, 0xcc, 0x26 } }, 525 1.1.1.2 christos { 16, 526 1.1.1.2 christos { 0xf2, 0x48, 0x31, 0x2e, 0x57, 0x8d, 0x9d, 0x58, 527 1.1.1.2 christos 0xf8, 0xb7, 0xbb, 0x4d, 0x19, 0x10, 0x54, 0x31 } }, 528 1.1 christos }, 529 1.1 christos /* 530 1.1 christos * AVX2 in poly1305-x86.pl failed this with 176+32 split 531 1.1 christos */ 532 1.1 christos { 533 1.1.1.2 christos { 208, 534 1.1.1.2 christos { 0x24, 0x8a, 0xc3, 0x10, 0x85, 0xb6, 0xc2, 0xad, 535 1.1 christos 0xaa, 0xa3, 0x82, 0x59, 0xa0, 0xd7, 0x19, 0x2c, 536 1.1 christos 0x5c, 0x35, 0xd1, 0xbb, 0x4e, 0xf3, 0x9a, 0xd9, 537 1.1 christos 0x4c, 0x38, 0xd1, 0xc8, 0x24, 0x79, 0xe2, 0xdd, 538 1.1 christos 539 1.1 christos 0x21, 0x59, 0xa0, 0x77, 0x02, 0x4b, 0x05, 0x89, 540 1.1 christos 0xbc, 0x8a, 0x20, 0x10, 0x1b, 0x50, 0x6f, 0x0a, 541 1.1 christos 0x1a, 0xd0, 0xbb, 0xab, 0x76, 0xe8, 0x3a, 0x83, 542 1.1 christos 0xf1, 0xb9, 0x4b, 0xe6, 0xbe, 0xae, 0x74, 0xe8, 543 1.1 christos 544 1.1 christos 0x74, 0xca, 0xb6, 0x92, 0xc5, 0x96, 0x3a, 0x75, 545 1.1 christos 0x43, 0x6b, 0x77, 0x61, 0x21, 0xec, 0x9f, 0x62, 546 1.1 christos 0x39, 0x9a, 0x3e, 0x66, 0xb2, 0xd2, 0x27, 0x07, 547 1.1 christos 0xda, 0xe8, 0x19, 0x33, 0xb6, 0x27, 0x7f, 0x3c, 548 1.1 christos 549 1.1 christos 0x85, 0x16, 0xbc, 0xbe, 0x26, 0xdb, 0xbd, 0x86, 550 1.1 christos 0xf3, 0x73, 0x10, 0x3d, 0x7c, 0xf4, 0xca, 0xd1, 551 1.1 christos 0x88, 0x8c, 0x95, 0x21, 0x18, 0xfb, 0xfb, 0xd0, 552 1.1 christos 0xd7, 0xb4, 0xbe, 0xdc, 0x4a, 0xe4, 0x93, 0x6a, 553 1.1 christos 554 1.1 christos 0xff, 0x91, 0x15, 0x7e, 0x7a, 0xa4, 0x7c, 0x54, 555 1.1 christos 0x44, 0x2e, 0xa7, 0x8d, 0x6a, 0xc2, 0x51, 0xd3, 556 1.1 christos 0x24, 0xa0, 0xfb, 0xe4, 0x9d, 0x89, 0xcc, 0x35, 557 1.1 christos 0x21, 0xb6, 0x6d, 0x16, 0xe9, 0xc6, 0x6a, 0x37, 558 1.1 christos 559 1.1 christos 0x09, 0x89, 0x4e, 0x4e, 0xb0, 0xa4, 0xee, 0xdc, 560 1.1 christos 0x4a, 0xe1, 0x94, 0x68, 0xe6, 0x6b, 0x81, 0xf2, 561 1.1 christos 562 1.1 christos 0x71, 0x35, 0x1b, 0x1d, 0x92, 0x1e, 0xa5, 0x51, 563 1.1 christos 0x04, 0x7a, 0xbc, 0xc6, 0xb8, 0x7a, 0x90, 0x1f, 564 1.1 christos 0xde, 0x7d, 0xb7, 0x9f, 0xa1, 0x81, 0x8c, 0x11, 565 1.1.1.2 christos 0x33, 0x6d, 0xbc, 0x07, 0x24, 0x4a, 0x40, 0xeb } }, 566 1.1.1.2 christos { 32, 567 1.1.1.2 christos { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 568 1.1 christos 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 569 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 570 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 571 1.1.1.2 christos { 16, 572 1.1.1.2 christos { 0xbc, 0x93, 0x9b, 0xc5, 0x28, 0x14, 0x80, 0xfa, 573 1.1.1.2 christos 0x99, 0xc6, 0xd6, 0x8c, 0x25, 0x8e, 0xc4, 0x2f } }, 574 1.1 christos }, 575 1.1 christos /* 576 1.1 christos * test vectors from Google 577 1.1 christos */ 578 1.1 christos { 579 1.1.1.2 christos { 0, 580 1.1 christos { 581 1.1 christos 0x00, 582 1.1.1.2 christos } }, 583 1.1.1.2 christos { 32, 584 1.1.1.2 christos { 0xc8, 0xaf, 0xaa, 0xc3, 0x31, 0xee, 0x37, 0x2c, 585 1.1 christos 0xd6, 0x08, 0x2d, 0xe1, 0x34, 0x94, 0x3b, 0x17, 586 1.1 christos 0x47, 0x10, 0x13, 0x0e, 0x9f, 0x6f, 0xea, 0x8d, 587 1.1.1.2 christos 0x72, 0x29, 0x38, 0x50, 0xa6, 0x67, 0xd8, 0x6c } }, 588 1.1.1.2 christos { 16, 589 1.1.1.2 christos { 0x47, 0x10, 0x13, 0x0e, 0x9f, 0x6f, 0xea, 0x8d, 590 1.1.1.2 christos 0x72, 0x29, 0x38, 0x50, 0xa6, 0x67, 0xd8, 0x6c } }, 591 1.1 christos }, 592 1.1 christos { 593 1.1.1.2 christos { 12, 594 1.1.1.2 christos { 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 595 1.1.1.2 christos 0x72, 0x6c, 0x64, 0x21 } }, 596 1.1.1.2 christos { 32, 597 1.1.1.2 christos { 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 598 1.1 christos 0x33, 0x32, 0x2d, 0x62, 0x79, 0x74, 0x65, 0x20, 599 1.1 christos 0x6b, 0x65, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 600 1.1.1.2 christos 0x50, 0x6f, 0x6c, 0x79, 0x31, 0x33, 0x30, 0x35 } }, 601 1.1.1.2 christos { 16, 602 1.1.1.2 christos { 0xa6, 0xf7, 0x45, 0x00, 0x8f, 0x81, 0xc9, 0x16, 603 1.1.1.2 christos 0xa2, 0x0d, 0xcc, 0x74, 0xee, 0xf2, 0xb2, 0xf0 } }, 604 1.1 christos }, 605 1.1 christos { 606 1.1.1.2 christos { 32, 607 1.1.1.2 christos { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 608 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 609 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 610 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 611 1.1.1.2 christos { 32, 612 1.1.1.2 christos { 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 613 1.1 christos 0x33, 0x32, 0x2d, 0x62, 0x79, 0x74, 0x65, 0x20, 614 1.1 christos 0x6b, 0x65, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 615 1.1.1.2 christos 0x50, 0x6f, 0x6c, 0x79, 0x31, 0x33, 0x30, 0x35 } }, 616 1.1.1.2 christos { 16, 617 1.1.1.2 christos { 0x49, 0xec, 0x78, 0x09, 0x0e, 0x48, 0x1e, 0xc6, 618 1.1.1.2 christos 0xc2, 0x6b, 0x33, 0xb9, 0x1c, 0xcc, 0x03, 0x07 } }, 619 1.1 christos }, 620 1.1 christos { 621 1.1.1.2 christos { 128, 622 1.1.1.2 christos { 0x89, 0xda, 0xb8, 0x0b, 0x77, 0x17, 0xc1, 0xdb, 623 1.1 christos 0x5d, 0xb4, 0x37, 0x86, 0x0a, 0x3f, 0x70, 0x21, 624 1.1 christos 0x8e, 0x93, 0xe1, 0xb8, 0xf4, 0x61, 0xfb, 0x67, 625 1.1 christos 0x7f, 0x16, 0xf3, 0x5f, 0x6f, 0x87, 0xe2, 0xa9, 626 1.1 christos 627 1.1 christos 0x1c, 0x99, 0xbc, 0x3a, 0x47, 0xac, 0xe4, 0x76, 628 1.1 christos 0x40, 0xcc, 0x95, 0xc3, 0x45, 0xbe, 0x5e, 0xcc, 629 1.1 christos 0xa5, 0xa3, 0x52, 0x3c, 0x35, 0xcc, 0x01, 0x89, 630 1.1 christos 0x3a, 0xf0, 0xb6, 0x4a, 0x62, 0x03, 0x34, 0x27, 631 1.1 christos 632 1.1 christos 0x03, 0x72, 0xec, 0x12, 0x48, 0x2d, 0x1b, 0x1e, 633 1.1 christos 0x36, 0x35, 0x61, 0x69, 0x8a, 0x57, 0x8b, 0x35, 634 1.1 christos 0x98, 0x03, 0x49, 0x5b, 0xb4, 0xe2, 0xef, 0x19, 635 1.1 christos 0x30, 0xb1, 0x7a, 0x51, 0x90, 0xb5, 0x80, 0xf1, 636 1.1 christos 637 1.1 christos 0x41, 0x30, 0x0d, 0xf3, 0x0a, 0xdb, 0xec, 0xa2, 638 1.1 christos 0x8f, 0x64, 0x27, 0xa8, 0xbc, 0x1a, 0x99, 0x9f, 639 1.1 christos 0xd5, 0x1c, 0x55, 0x4a, 0x01, 0x7d, 0x09, 0x5d, 640 1.1.1.2 christos 0x8c, 0x3e, 0x31, 0x27, 0xda, 0xf9, 0xf5, 0x95 } }, 641 1.1.1.2 christos { 32, 642 1.1.1.2 christos { 0x2d, 0x77, 0x3b, 0xe3, 0x7a, 0xdb, 0x1e, 0x4d, 643 1.1 christos 0x68, 0x3b, 0xf0, 0x07, 0x5e, 0x79, 0xc4, 0xee, 644 1.1 christos 0x03, 0x79, 0x18, 0x53, 0x5a, 0x7f, 0x99, 0xcc, 645 1.1.1.2 christos 0xb7, 0x04, 0x0f, 0xb5, 0xf5, 0xf4, 0x3a, 0xea } }, 646 1.1.1.2 christos { 16, 647 1.1.1.2 christos { 0xc8, 0x5d, 0x15, 0xed, 0x44, 0xc3, 0x78, 0xd6, 648 1.1.1.2 christos 0xb0, 0x0e, 0x23, 0x06, 0x4c, 0x7b, 0xcd, 0x51 } }, 649 1.1 christos }, 650 1.1 christos { 651 1.1.1.2 christos { 528, 652 1.1.1.2 christos { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 653 1.1 christos 0x17, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 654 1.1 christos 655 1.1 christos 0x06, 0xdb, 0x1f, 0x1f, 0x36, 0x8d, 0x69, 0x6a, 656 1.1 christos 0x81, 0x0a, 0x34, 0x9c, 0x0c, 0x71, 0x4c, 0x9a, 657 1.1 christos 0x5e, 0x78, 0x50, 0xc2, 0x40, 0x7d, 0x72, 0x1a, 658 1.1 christos 0xcd, 0xed, 0x95, 0xe0, 0x18, 0xd7, 0xa8, 0x52, 659 1.1 christos 660 1.1 christos 0x66, 0xa6, 0xe1, 0x28, 0x9c, 0xdb, 0x4a, 0xeb, 661 1.1 christos 0x18, 0xda, 0x5a, 0xc8, 0xa2, 0xb0, 0x02, 0x6d, 662 1.1 christos 0x24, 0xa5, 0x9a, 0xd4, 0x85, 0x22, 0x7f, 0x3e, 663 1.1 christos 0xae, 0xdb, 0xb2, 0xe7, 0xe3, 0x5e, 0x1c, 0x66, 664 1.1 christos 665 1.1 christos 0xcd, 0x60, 0xf9, 0xab, 0xf7, 0x16, 0xdc, 0xc9, 666 1.1 christos 0xac, 0x42, 0x68, 0x2d, 0xd7, 0xda, 0xb2, 0x87, 667 1.1 christos 0xa7, 0x02, 0x4c, 0x4e, 0xef, 0xc3, 0x21, 0xcc, 668 1.1 christos 0x05, 0x74, 0xe1, 0x67, 0x93, 0xe3, 0x7c, 0xec, 669 1.1 christos 670 1.1 christos 0x03, 0xc5, 0xbd, 0xa4, 0x2b, 0x54, 0xc1, 0x14, 671 1.1 christos 0xa8, 0x0b, 0x57, 0xaf, 0x26, 0x41, 0x6c, 0x7b, 672 1.1 christos 0xe7, 0x42, 0x00, 0x5e, 0x20, 0x85, 0x5c, 0x73, 673 1.1 christos 0xe2, 0x1d, 0xc8, 0xe2, 0xed, 0xc9, 0xd4, 0x35, 674 1.1 christos 675 1.1 christos 0xcb, 0x6f, 0x60, 0x59, 0x28, 0x00, 0x11, 0xc2, 676 1.1 christos 0x70, 0xb7, 0x15, 0x70, 0x05, 0x1c, 0x1c, 0x9b, 677 1.1 christos 0x30, 0x52, 0x12, 0x66, 0x20, 0xbc, 0x1e, 0x27, 678 1.1 christos 0x30, 0xfa, 0x06, 0x6c, 0x7a, 0x50, 0x9d, 0x53, 679 1.1 christos 680 1.1 christos 0xc6, 0x0e, 0x5a, 0xe1, 0xb4, 0x0a, 0xa6, 0xe3, 681 1.1 christos 0x9e, 0x49, 0x66, 0x92, 0x28, 0xc9, 0x0e, 0xec, 682 1.1 christos 0xb4, 0xa5, 0x0d, 0xb3, 0x2a, 0x50, 0xbc, 0x49, 683 1.1 christos 0xe9, 0x0b, 0x4f, 0x4b, 0x35, 0x9a, 0x1d, 0xfd, 684 1.1 christos 685 1.1 christos 0x11, 0x74, 0x9c, 0xd3, 0x86, 0x7f, 0xcf, 0x2f, 686 1.1 christos 0xb7, 0xbb, 0x6c, 0xd4, 0x73, 0x8f, 0x6a, 0x4a, 687 1.1 christos 0xd6, 0xf7, 0xca, 0x50, 0x58, 0xf7, 0x61, 0x88, 688 1.1 christos 0x45, 0xaf, 0x9f, 0x02, 0x0f, 0x6c, 0x3b, 0x96, 689 1.1 christos 690 1.1 christos 0x7b, 0x8f, 0x4c, 0xd4, 0xa9, 0x1e, 0x28, 0x13, 691 1.1 christos 0xb5, 0x07, 0xae, 0x66, 0xf2, 0xd3, 0x5c, 0x18, 692 1.1 christos 0x28, 0x4f, 0x72, 0x92, 0x18, 0x60, 0x62, 0xe1, 693 1.1 christos 0x0f, 0xd5, 0x51, 0x0d, 0x18, 0x77, 0x53, 0x51, 694 1.1 christos 695 1.1 christos 0xef, 0x33, 0x4e, 0x76, 0x34, 0xab, 0x47, 0x43, 696 1.1 christos 0xf5, 0xb6, 0x8f, 0x49, 0xad, 0xca, 0xb3, 0x84, 697 1.1 christos 0xd3, 0xfd, 0x75, 0xf7, 0x39, 0x0f, 0x40, 0x06, 698 1.1 christos 0xef, 0x2a, 0x29, 0x5c, 0x8c, 0x7a, 0x07, 0x6a, 699 1.1 christos 700 1.1 christos 0xd5, 0x45, 0x46, 0xcd, 0x25, 0xd2, 0x10, 0x7f, 701 1.1 christos 0xbe, 0x14, 0x36, 0xc8, 0x40, 0x92, 0x4a, 0xae, 702 1.1 christos 0xbe, 0x5b, 0x37, 0x08, 0x93, 0xcd, 0x63, 0xd1, 703 1.1 christos 0x32, 0x5b, 0x86, 0x16, 0xfc, 0x48, 0x10, 0x88, 704 1.1 christos 705 1.1 christos 0x6b, 0xc1, 0x52, 0xc5, 0x32, 0x21, 0xb6, 0xdf, 706 1.1 christos 0x37, 0x31, 0x19, 0x39, 0x32, 0x55, 0xee, 0x72, 707 1.1 christos 0xbc, 0xaa, 0x88, 0x01, 0x74, 0xf1, 0x71, 0x7f, 708 1.1 christos 0x91, 0x84, 0xfa, 0x91, 0x64, 0x6f, 0x17, 0xa2, 709 1.1 christos 710 1.1 christos 0x4a, 0xc5, 0x5d, 0x16, 0xbf, 0xdd, 0xca, 0x95, 711 1.1 christos 0x81, 0xa9, 0x2e, 0xda, 0x47, 0x92, 0x01, 0xf0, 712 1.1 christos 0xed, 0xbf, 0x63, 0x36, 0x00, 0xd6, 0x06, 0x6d, 713 1.1 christos 0x1a, 0xb3, 0x6d, 0x5d, 0x24, 0x15, 0xd7, 0x13, 714 1.1 christos 715 1.1 christos 0x51, 0xbb, 0xcd, 0x60, 0x8a, 0x25, 0x10, 0x8d, 716 1.1 christos 0x25, 0x64, 0x19, 0x92, 0xc1, 0xf2, 0x6c, 0x53, 717 1.1 christos 0x1c, 0xf9, 0xf9, 0x02, 0x03, 0xbc, 0x4c, 0xc1, 718 1.1 christos 0x9f, 0x59, 0x27, 0xd8, 0x34, 0xb0, 0xa4, 0x71, 719 1.1 christos 720 1.1 christos 0x16, 0xd3, 0x88, 0x4b, 0xbb, 0x16, 0x4b, 0x8e, 721 1.1 christos 0xc8, 0x83, 0xd1, 0xac, 0x83, 0x2e, 0x56, 0xb3, 722 1.1 christos 0x91, 0x8a, 0x98, 0x60, 0x1a, 0x08, 0xd1, 0x71, 723 1.1 christos 0x88, 0x15, 0x41, 0xd5, 0x94, 0xdb, 0x39, 0x9c, 724 1.1 christos 725 1.1 christos 0x6a, 0xe6, 0x15, 0x12, 0x21, 0x74, 0x5a, 0xec, 726 1.1 christos 0x81, 0x4c, 0x45, 0xb0, 0xb0, 0x5b, 0x56, 0x54, 727 1.1 christos 0x36, 0xfd, 0x6f, 0x13, 0x7a, 0xa1, 0x0a, 0x0c, 728 1.1 christos 0x0b, 0x64, 0x37, 0x61, 0xdb, 0xd6, 0xf9, 0xa9, 729 1.1 christos 730 1.1 christos 0xdc, 0xb9, 0x9b, 0x1a, 0x6e, 0x69, 0x08, 0x54, 731 1.1 christos 0xce, 0x07, 0x69, 0xcd, 0xe3, 0x97, 0x61, 0xd8, 732 1.1 christos 0x2f, 0xcd, 0xec, 0x15, 0xf0, 0xd9, 0x2d, 0x7d, 733 1.1.1.2 christos 0x8e, 0x94, 0xad, 0xe8, 0xeb, 0x83, 0xfb, 0xe0 } }, 734 1.1.1.2 christos { 32, 735 1.1.1.2 christos { 0x99, 0xe5, 0x82, 0x2d, 0xd4, 0x17, 0x3c, 0x99, 736 1.1 christos 0x5e, 0x3d, 0xae, 0x0d, 0xde, 0xfb, 0x97, 0x74, 737 1.1 christos 0x3f, 0xde, 0x3b, 0x08, 0x01, 0x34, 0xb3, 0x9f, 738 1.1.1.2 christos 0x76, 0xe9, 0xbf, 0x8d, 0x0e, 0x88, 0xd5, 0x46 } }, 739 1.1.1.2 christos { 16, 740 1.1.1.2 christos { 0x26, 0x37, 0x40, 0x8f, 0xe1, 0x30, 0x86, 0xea, 741 1.1.1.2 christos 0x73, 0xf9, 0x71, 0xe3, 0x42, 0x5e, 0x28, 0x20 } }, 742 1.1 christos }, 743 1.1 christos /* 744 1.1 christos * test vectors from Hanno Bck 745 1.1 christos */ 746 1.1 christos { 747 1.1.1.2 christos { 257, 748 1.1.1.2 christos { 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 749 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 750 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 751 1.1 christos 0xcc, 0x80, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 752 1.1 christos 753 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 754 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 755 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 756 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xce, 0xcc, 0xcc, 0xcc, 757 1.1 christos 758 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 759 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc5, 760 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 761 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 762 1.1 christos 763 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xe3, 0xcc, 0xcc, 764 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 765 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 766 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 767 1.1 christos 768 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xac, 0xcc, 0xcc, 0xcc, 769 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xe6, 770 1.1 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x00, 0x00, 0x00, 771 1.1 christos 0xaf, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 772 1.1 christos 773 1.1 christos 0xcc, 0xcc, 0xff, 0xff, 0xff, 0xf5, 0x00, 0x00, 774 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 775 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 776 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 777 1.1 christos 778 1.1 christos 0x00, 0xff, 0xff, 0xff, 0xe7, 0x00, 0x00, 0x00, 779 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 780 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 781 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 782 1.1 christos 783 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 784 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 785 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 786 1.1 christos 0x00, 0x00, 0x71, 0x92, 0x05, 0xa8, 0x52, 0x1d, 787 1.1 christos 788 1.1.1.2 christos 0xfc } }, 789 1.1.1.2 christos { 32, 790 1.1.1.2 christos { 0x7f, 0x1b, 0x02, 0x64, 0x00, 0x00, 0x00, 0x00, 791 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 792 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 793 1.1.1.2 christos 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc } }, 794 1.1.1.2 christos { 16, 795 1.1.1.2 christos { 0x85, 0x59, 0xb8, 0x76, 0xec, 0xee, 0xd6, 0x6e, 796 1.1.1.2 christos 0xb3, 0x77, 0x98, 0xc0, 0x45, 0x7b, 0xaf, 0xf9 } }, 797 1.1 christos }, 798 1.1 christos { 799 1.1.1.2 christos { 39, 800 1.1.1.2 christos { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 801 1.1 christos 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 802 1.1 christos 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 803 1.1 christos 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 804 1.1 christos 805 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x64 } }, 806 1.1.1.2 christos { 32, 807 1.1.1.2 christos { 0xe0, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 808 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 809 1.1 christos 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 810 1.1.1.2 christos 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa } }, 811 1.1.1.2 christos { 16, 812 1.1.1.2 christos { 0x00, 0xbd, 0x12, 0x58, 0x97, 0x8e, 0x20, 0x54, 813 1.1.1.2 christos 0x44, 0xc9, 0xaa, 0xaa, 0x82, 0x00, 0x6f, 0xed } }, 814 1.1 christos }, 815 1.1 christos { 816 1.1.1.2 christos { 2, 817 1.1.1.2 christos { 0x02, 0xfc } }, 818 1.1.1.2 christos { 32, 819 1.1.1.2 christos { 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 820 1.1 christos 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 821 1.1 christos 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 822 1.1.1.2 christos 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c } }, 823 1.1.1.2 christos { 16, 824 1.1.1.2 christos { 0x06, 0x12, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 825 1.1.1.2 christos 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c } }, 826 1.1 christos }, 827 1.1 christos { 828 1.1.1.2 christos { 415, 829 1.1.1.2 christos { 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 830 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 831 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 832 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 833 1.1 christos 834 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 835 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 836 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 837 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 838 1.1 christos 839 1.1 christos 0x7b, 0x7b, 0x5c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 840 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 841 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 842 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 843 1.1 christos 844 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 845 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 846 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x6e, 0x7b, 0x00, 0x7b, 847 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 848 1.1 christos 849 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 850 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 851 1.1 christos 0x7b, 0x7b, 0x7b, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 852 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 853 1.1 christos 854 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 855 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x5c, 856 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 857 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 858 1.1 christos 859 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 860 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 861 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 862 1.1 christos 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 863 1.1 christos 864 1.1 christos 0x7b, 0x6e, 0x7b, 0x00, 0x13, 0x00, 0x00, 0x00, 865 1.1 christos 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 866 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 867 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 868 1.1 christos 869 1.1 christos 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 870 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 871 1.1 christos 0x00, 0x00, 0x00, 0x20, 0x00, 0xef, 0xff, 0x00, 872 1.1 christos 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 873 1.1 christos 874 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 875 1.1 christos 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x64, 0x00, 876 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 877 1.1 christos 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 878 1.1 christos 879 1.1 christos 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 880 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 881 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 882 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 883 1.1 christos 884 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 885 1.1 christos 0x00, 0x00, 0x20, 0x00, 0xef, 0xff, 0x00, 0x09, 886 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 887 1.1 christos 0x00, 0x7a, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 888 1.1 christos 889 1.1 christos 0x00, 0x09, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 890 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 891 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 892 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc } }, 893 1.1.1.2 christos { 32, 894 1.1.1.2 christos { 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 895 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 896 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 897 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x7b } }, 898 1.1.1.2 christos { 16, 899 1.1.1.2 christos { 0x33, 0x20, 0x5b, 0xbf, 0x9e, 0x9f, 0x8f, 0x72, 900 1.1.1.2 christos 0x12, 0xab, 0x9e, 0x2a, 0xb9, 0xb7, 0xe4, 0xa5 } }, 901 1.1 christos }, 902 1.1 christos { 903 1.1.1.2 christos { 118, 904 1.1.1.2 christos { 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 905 1.1 christos 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 906 1.1 christos 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 907 1.1 christos 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 908 1.1 christos 909 1.1 christos 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 910 1.1 christos 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 911 1.1 christos 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 912 1.1 christos 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 913 1.1 christos 914 1.1 christos 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 915 1.1 christos 0x77, 0x77, 0x77, 0x77, 0xff, 0xff, 0xff, 0xe9, 916 1.1 christos 0xe9, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 917 1.1 christos 0xac, 0xac, 0xac, 0xac, 0x00, 0x00, 0xac, 0xac, 918 1.1 christos 919 1.1 christos 0xec, 0x01, 0x00, 0xac, 0xac, 0xac, 0x2c, 0xac, 920 1.1 christos 0xa2, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 921 1.1.1.2 christos 0xac, 0xac, 0xac, 0xac, 0x64, 0xf2 } }, 922 1.1.1.2 christos { 32, 923 1.1.1.2 christos { 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f, 924 1.1 christos 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 925 1.1 christos 0x00, 0x00, 0xcf, 0x77, 0x77, 0x77, 0x77, 0x77, 926 1.1.1.2 christos 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77 } }, 927 1.1.1.2 christos { 16, 928 1.1.1.2 christos { 0x02, 0xee, 0x7c, 0x8c, 0x54, 0x6d, 0xde, 0xb1, 929 1.1.1.2 christos 0xa4, 0x67, 0xe4, 0xc3, 0x98, 0x11, 0x58, 0xb9 } }, 930 1.1 christos }, 931 1.1 christos /* 932 1.1 christos * test vectors from Andrew Moon 933 1.1 christos */ 934 1.1.1.2 christos { 935 1.1.1.2 christos /* nacl */ 936 1.1 christos { 937 1.1 christos 131, 938 1.1.1.2 christos { 0x8e, 0x99, 0x3b, 0x9f, 0x48, 0x68, 0x12, 0x73, 939 1.1 christos 0xc2, 0x96, 0x50, 0xba, 0x32, 0xfc, 0x76, 0xce, 940 1.1 christos 0x48, 0x33, 0x2e, 0xa7, 0x16, 0x4d, 0x96, 0xa4, 941 1.1 christos 0x47, 0x6f, 0xb8, 0xc5, 0x31, 0xa1, 0x18, 0x6a, 942 1.1 christos 943 1.1 christos 0xc0, 0xdf, 0xc1, 0x7c, 0x98, 0xdc, 0xe8, 0x7b, 944 1.1 christos 0x4d, 0xa7, 0xf0, 0x11, 0xec, 0x48, 0xc9, 0x72, 945 1.1 christos 0x71, 0xd2, 0xc2, 0x0f, 0x9b, 0x92, 0x8f, 0xe2, 946 1.1 christos 0x27, 0x0d, 0x6f, 0xb8, 0x63, 0xd5, 0x17, 0x38, 947 1.1 christos 948 1.1 christos 0xb4, 0x8e, 0xee, 0xe3, 0x14, 0xa7, 0xcc, 0x8a, 949 1.1 christos 0xb9, 0x32, 0x16, 0x45, 0x48, 0xe5, 0x26, 0xae, 950 1.1 christos 0x90, 0x22, 0x43, 0x68, 0x51, 0x7a, 0xcf, 0xea, 951 1.1 christos 0xbd, 0x6b, 0xb3, 0x73, 0x2b, 0xc0, 0xe9, 0xda, 952 1.1 christos 953 1.1 christos 0x99, 0x83, 0x2b, 0x61, 0xca, 0x01, 0xb6, 0xde, 954 1.1 christos 0x56, 0x24, 0x4a, 0x9e, 0x88, 0xd5, 0xf9, 0xb3, 955 1.1 christos 0x79, 0x73, 0xf6, 0x22, 0xa4, 0x3d, 0x14, 0xa6, 956 1.1 christos 0x59, 0x9b, 0x1f, 0x65, 0x4c, 0xb4, 0x5a, 0x74, 957 1.1 christos 958 1.1.1.2 christos 0xe3, 0x55, 0xa5 } }, 959 1.1.1.2 christos { 32, 960 1.1.1.2 christos { 0xee, 0xa6, 0xa7, 0x25, 0x1c, 0x1e, 0x72, 0x91, 961 1.1 christos 0x6d, 0x11, 0xc2, 0xcb, 0x21, 0x4d, 0x3c, 0x25, 962 1.1 christos 0x25, 0x39, 0x12, 0x1d, 0x8e, 0x23, 0x4e, 0x65, 963 1.1.1.2 christos 0x2d, 0x65, 0x1f, 0xa4, 0xc8, 0xcf, 0xf8, 0x80 } }, 964 1.1.1.2 christos { 16, 965 1.1.1.2 christos { 0xf3, 0xff, 0xc7, 0x70, 0x3f, 0x94, 0x00, 0xe5, 966 1.1.1.2 christos 0x2a, 0x7d, 0xfb, 0x4b, 0x3d, 0x33, 0x05, 0xd9 } }, 967 1.1 christos }, 968 1.1.1.2 christos { 969 1.1.1.2 christos /* wrap 2^130-5 */ 970 1.1 christos { 971 1.1 christos 16, 972 1.1.1.2 christos { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 973 1.1.1.2 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } }, 974 1.1.1.2 christos { 32, 975 1.1.1.2 christos { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 976 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 977 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 978 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 979 1.1.1.2 christos { 16, 980 1.1.1.2 christos { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 981 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 982 1.1 christos }, 983 1.1.1.2 christos { 984 1.1.1.2 christos /* wrap 2^128 */ 985 1.1 christos { 986 1.1 christos 16, 987 1.1.1.2 christos { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 988 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 989 1.1.1.2 christos { 32, 990 1.1.1.2 christos { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 991 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 992 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 993 1.1.1.2 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } }, 994 1.1.1.2 christos { 16, 995 1.1.1.2 christos { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 996 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 997 1.1 christos }, 998 1.1.1.2 christos { 999 1.1.1.2 christos /* limb carry */ 1000 1.1 christos { 1001 1.1 christos 48, 1002 1.1.1.2 christos { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1003 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1004 1.1 christos 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1005 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1006 1.1 christos 1007 1.1 christos 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1008 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 1009 1.1.1.2 christos { 32, 1010 1.1.1.2 christos { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1011 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1012 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1013 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 1014 1.1.1.2 christos { 16, 1015 1.1.1.2 christos { 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1016 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 1017 1.1 christos }, 1018 1.1.1.2 christos { 1019 1.1.1.2 christos /* 2^130-5 */ 1020 1.1 christos { 1021 1.1 christos 48, 1022 1.1.1.2 christos { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1023 1.1 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1024 1.1 christos 0xfb, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 1025 1.1 christos 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 1026 1.1 christos 1027 1.1 christos 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 1028 1.1.1.2 christos 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 } }, 1029 1.1.1.2 christos { 32, 1030 1.1.1.2 christos { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1031 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1032 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1033 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 1034 1.1.1.2 christos { 16, 1035 1.1.1.2 christos { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1036 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 1037 1.1 christos 1038 1.1.1.2 christos } }, 1039 1.1 christos }, 1040 1.1.1.2 christos { 1041 1.1.1.2 christos /* 2^130-6 */ 1042 1.1 christos { 1043 1.1 christos 16, 1044 1.1.1.2 christos { 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1045 1.1.1.2 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } }, 1046 1.1.1.2 christos { 32, 1047 1.1.1.2 christos { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1048 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1049 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1050 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 1051 1.1.1.2 christos { 16, 1052 1.1.1.2 christos { 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1053 1.1.1.2 christos 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } }, 1054 1.1 christos }, 1055 1.1.1.2 christos { 1056 1.1.1.2 christos /* 5*H+L reduction intermediate */ 1057 1.1 christos { 1058 1.1 christos 64, 1059 1.1.1.2 christos { 0xe3, 0x35, 0x94, 0xd7, 0x50, 0x5e, 0x43, 0xb9, 1060 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1061 1.1 christos 0x33, 0x94, 0xd7, 0x50, 0x5e, 0x43, 0x79, 0xcd, 1062 1.1 christos 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1063 1.1 christos 1064 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1065 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1066 1.1 christos 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1067 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 1068 1.1.1.2 christos { 32, 1069 1.1.1.2 christos { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1070 1.1 christos 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1071 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1072 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 1073 1.1.1.2 christos { 16, 1074 1.1.1.2 christos { 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1075 1.1.1.2 christos 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 1076 1.1 christos }, 1077 1.1 christos { /* 5*H+L reduction final */ 1078 1.1 christos { 1079 1.1 christos 48, 1080 1.1.1.2 christos { 0xe3, 0x35, 0x94, 0xd7, 0x50, 0x5e, 0x43, 0xb9, 1081 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1082 1.1 christos 0x33, 0x94, 0xd7, 0x50, 0x5e, 0x43, 0x79, 0xcd, 1083 1.1 christos 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1084 1.1 christos 1085 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1086 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 1087 1.1 christos 1088 1.1.1.2 christos } }, 1089 1.1.1.2 christos { 32, 1090 1.1.1.2 christos { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1091 1.1 christos 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1092 1.1 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1093 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, 1094 1.1.1.2 christos { 16, 1095 1.1.1.2 christos { 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1096 1.1.1.2 christos 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } } 1097 1.1 christos }; 1098 1.1 christos 1099 1.1 christos static int test_poly1305(int idx) 1100 1.1 christos { 1101 1.1 christos POLY1305 poly1305; 1102 1.1 christos const TESTDATA test = tests[idx]; 1103 1.1 christos const unsigned char *in = test.input.data; 1104 1.1 christos size_t inlen = test.input.size; 1105 1.1 christos const unsigned char *key = test.key.data; 1106 1.1 christos const unsigned char *expected = test.expected.data; 1107 1.1 christos size_t expectedlen = test.expected.size; 1108 1.1 christos unsigned char out[16]; 1109 1.1 christos 1110 1.1 christos if (!TEST_size_t_eq(expectedlen, sizeof(out))) 1111 1.1 christos return 0; 1112 1.1 christos 1113 1.1 christos Poly1305_Init(&poly1305, key); 1114 1.1 christos Poly1305_Update(&poly1305, in, inlen); 1115 1.1 christos Poly1305_Final(&poly1305, out); 1116 1.1 christos 1117 1.1 christos if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) { 1118 1.1 christos TEST_info("Poly1305 test #%d failed.", idx); 1119 1.1 christos return 0; 1120 1.1 christos } 1121 1.1 christos 1122 1.1 christos if (inlen > 16) { 1123 1.1 christos Poly1305_Init(&poly1305, key); 1124 1.1 christos Poly1305_Update(&poly1305, in, 1); 1125 1.1.1.2 christos Poly1305_Update(&poly1305, in + 1, inlen - 1); 1126 1.1 christos Poly1305_Final(&poly1305, out); 1127 1.1 christos 1128 1.1 christos if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) { 1129 1.1 christos TEST_info("Poly1305 test #%d/1+(N-1) failed.", idx); 1130 1.1 christos return 0; 1131 1.1 christos } 1132 1.1 christos } 1133 1.1 christos 1134 1.1 christos if (inlen > 32) { 1135 1.1 christos size_t half = inlen / 2; 1136 1.1 christos 1137 1.1 christos Poly1305_Init(&poly1305, key); 1138 1.1 christos Poly1305_Update(&poly1305, in, half); 1139 1.1.1.2 christos Poly1305_Update(&poly1305, in + half, inlen - half); 1140 1.1 christos Poly1305_Final(&poly1305, out); 1141 1.1 christos 1142 1.1 christos if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) { 1143 1.1 christos TEST_info("Poly1305 test #%d/2 failed.", idx); 1144 1.1 christos return 0; 1145 1.1 christos } 1146 1.1 christos 1147 1.1 christos for (half = 16; half < inlen; half += 16) { 1148 1.1 christos Poly1305_Init(&poly1305, key); 1149 1.1 christos Poly1305_Update(&poly1305, in, half); 1150 1.1.1.2 christos Poly1305_Update(&poly1305, in + half, inlen - half); 1151 1.1 christos Poly1305_Final(&poly1305, out); 1152 1.1 christos 1153 1.1 christos if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) { 1154 1.1 christos TEST_info("Poly1305 test #%d/%zu+%zu failed.", 1155 1.1.1.2 christos idx, half, inlen - half); 1156 1.1 christos return 0; 1157 1.1 christos } 1158 1.1 christos } 1159 1.1 christos } 1160 1.1 christos 1161 1.1 christos return 1; 1162 1.1 christos } 1163 1.1 christos 1164 1.1 christos int setup_tests(void) 1165 1.1 christos { 1166 1.1 christos ADD_ALL_TESTS(test_poly1305, OSSL_NELEM(tests)); 1167 1.1 christos return 1; 1168 1.1 christos } 1169