diff options
| author | jsing <> | 2025-05-21 03:57:59 +0000 |
|---|---|---|
| committer | jsing <> | 2025-05-21 03:57:59 +0000 |
| commit | 20b5e366eb1fe07ca9058ceb8374719b69068015 (patch) | |
| tree | daa43e2e7e8a26de22c7e4363e2b7546eabc10b1 /src | |
| parent | 4db1ecb865af08af076b8b5a429aee1f1f7d64ec (diff) | |
| download | openbsd-20b5e366eb1fe07ca9058ceb8374719b69068015.tar.gz openbsd-20b5e366eb1fe07ca9058ceb8374719b69068015.tar.bz2 openbsd-20b5e366eb1fe07ca9058ceb8374719b69068015.zip | |
Remove more unused code.
Discussed with tb@
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/modes/gcm128.c | 96 |
1 files changed, 1 insertions, 95 deletions
diff --git a/src/lib/libcrypto/modes/gcm128.c b/src/lib/libcrypto/modes/gcm128.c index eeb7f921e6..84366234d6 100644 --- a/src/lib/libcrypto/modes/gcm128.c +++ b/src/lib/libcrypto/modes/gcm128.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: gcm128.c,v 1.41 2025/05/20 18:21:34 tb Exp $ */ | 1 | /* $OpenBSD: gcm128.c,v 1.42 2025/05/21 03:57:59 jsing Exp $ */ |
| 2 | /* ==================================================================== | 2 | /* ==================================================================== |
| 3 | * Copyright (c) 2010 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 2010 The OpenSSL Project. All rights reserved. |
| 4 | * | 4 | * |
| @@ -168,7 +168,6 @@ gcm_ghash_4bit(uint64_t Xi[2], const u128 Htable[16], | |||
| 168 | int cnt; | 168 | int cnt; |
| 169 | size_t rem, nlo, nhi; | 169 | size_t rem, nlo, nhi; |
| 170 | 170 | ||
| 171 | #if 1 | ||
| 172 | do { | 171 | do { |
| 173 | cnt = 15; | 172 | cnt = 15; |
| 174 | nlo = ((const uint8_t *)Xi)[15]; | 173 | nlo = ((const uint8_t *)Xi)[15]; |
| @@ -202,99 +201,6 @@ gcm_ghash_4bit(uint64_t Xi[2], const u128 Htable[16], | |||
| 202 | Z.hi ^= Htable[nlo].hi; | 201 | Z.hi ^= Htable[nlo].hi; |
| 203 | Z.lo ^= Htable[nlo].lo; | 202 | Z.lo ^= Htable[nlo].lo; |
| 204 | } | 203 | } |
| 205 | #else | ||
| 206 | /* | ||
| 207 | * Extra 256+16 bytes per-key plus 512 bytes shared tables | ||
| 208 | * [should] give ~50% improvement... One could have PACK()-ed | ||
| 209 | * the rem_8bit even here, but the priority is to minimize | ||
| 210 | * cache footprint... | ||
| 211 | */ | ||
| 212 | u128 Hshr4[16]; /* Htable shifted right by 4 bits */ | ||
| 213 | uint8_t Hshl4[16]; /* Htable shifted left by 4 bits */ | ||
| 214 | static const unsigned short rem_8bit[256] = { | ||
| 215 | 0x0000, 0x01C2, 0x0384, 0x0246, 0x0708, 0x06CA, 0x048C, 0x054E, | ||
| 216 | 0x0E10, 0x0FD2, 0x0D94, 0x0C56, 0x0918, 0x08DA, 0x0A9C, 0x0B5E, | ||
| 217 | 0x1C20, 0x1DE2, 0x1FA4, 0x1E66, 0x1B28, 0x1AEA, 0x18AC, 0x196E, | ||
| 218 | 0x1230, 0x13F2, 0x11B4, 0x1076, 0x1538, 0x14FA, 0x16BC, 0x177E, | ||
| 219 | 0x3840, 0x3982, 0x3BC4, 0x3A06, 0x3F48, 0x3E8A, 0x3CCC, 0x3D0E, | ||
| 220 | 0x3650, 0x3792, 0x35D4, 0x3416, 0x3158, 0x309A, 0x32DC, 0x331E, | ||
| 221 | 0x2460, 0x25A2, 0x27E4, 0x2626, 0x2368, 0x22AA, 0x20EC, 0x212E, | ||
| 222 | 0x2A70, 0x2BB2, 0x29F4, 0x2836, 0x2D78, 0x2CBA, 0x2EFC, 0x2F3E, | ||
| 223 | 0x7080, 0x7142, 0x7304, 0x72C6, 0x7788, 0x764A, 0x740C, 0x75CE, | ||
| 224 | 0x7E90, 0x7F52, 0x7D14, 0x7CD6, 0x7998, 0x785A, 0x7A1C, 0x7BDE, | ||
| 225 | 0x6CA0, 0x6D62, 0x6F24, 0x6EE6, 0x6BA8, 0x6A6A, 0x682C, 0x69EE, | ||
| 226 | 0x62B0, 0x6372, 0x6134, 0x60F6, 0x65B8, 0x647A, 0x663C, 0x67FE, | ||
| 227 | 0x48C0, 0x4902, 0x4B44, 0x4A86, 0x4FC8, 0x4E0A, 0x4C4C, 0x4D8E, | ||
| 228 | 0x46D0, 0x4712, 0x4554, 0x4496, 0x41D8, 0x401A, 0x425C, 0x439E, | ||
| 229 | 0x54E0, 0x5522, 0x5764, 0x56A6, 0x53E8, 0x522A, 0x506C, 0x51AE, | ||
| 230 | 0x5AF0, 0x5B32, 0x5974, 0x58B6, 0x5DF8, 0x5C3A, 0x5E7C, 0x5FBE, | ||
| 231 | 0xE100, 0xE0C2, 0xE284, 0xE346, 0xE608, 0xE7CA, 0xE58C, 0xE44E, | ||
| 232 | 0xEF10, 0xEED2, 0xEC94, 0xED56, 0xE818, 0xE9DA, 0xEB9C, 0xEA5E, | ||
| 233 | 0xFD20, 0xFCE2, 0xFEA4, 0xFF66, 0xFA28, 0xFBEA, 0xF9AC, 0xF86E, | ||
| 234 | 0xF330, 0xF2F2, 0xF0B4, 0xF176, 0xF438, 0xF5FA, 0xF7BC, 0xF67E, | ||
| 235 | 0xD940, 0xD882, 0xDAC4, 0xDB06, 0xDE48, 0xDF8A, 0xDDCC, 0xDC0E, | ||
| 236 | 0xD750, 0xD692, 0xD4D4, 0xD516, 0xD058, 0xD19A, 0xD3DC, 0xD21E, | ||
| 237 | 0xC560, 0xC4A2, 0xC6E4, 0xC726, 0xC268, 0xC3AA, 0xC1EC, 0xC02E, | ||
| 238 | 0xCB70, 0xCAB2, 0xC8F4, 0xC936, 0xCC78, 0xCDBA, 0xCFFC, 0xCE3E, | ||
| 239 | 0x9180, 0x9042, 0x9204, 0x93C6, 0x9688, 0x974A, 0x950C, 0x94CE, | ||
| 240 | 0x9F90, 0x9E52, 0x9C14, 0x9DD6, 0x9898, 0x995A, 0x9B1C, 0x9ADE, | ||
| 241 | 0x8DA0, 0x8C62, 0x8E24, 0x8FE6, 0x8AA8, 0x8B6A, 0x892C, 0x88EE, | ||
| 242 | 0x83B0, 0x8272, 0x8034, 0x81F6, 0x84B8, 0x857A, 0x873C, 0x86FE, | ||
| 243 | 0xA9C0, 0xA802, 0xAA44, 0xAB86, 0xAEC8, 0xAF0A, 0xAD4C, 0xAC8E, | ||
| 244 | 0xA7D0, 0xA612, 0xA454, 0xA596, 0xA0D8, 0xA11A, 0xA35C, 0xA29E, | ||
| 245 | 0xB5E0, 0xB422, 0xB664, 0xB7A6, 0xB2E8, 0xB32A, 0xB16C, 0xB0AE, | ||
| 246 | 0xBBF0, 0xBA32, 0xB874, 0xB9B6, 0xBCF8, 0xBD3A, 0xBF7C, 0xBEBE }; | ||
| 247 | /* | ||
| 248 | * This pre-processing phase slows down procedure by approximately | ||
| 249 | * same time as it makes each loop spin faster. In other words | ||
| 250 | * single block performance is approximately same as straightforward | ||
| 251 | * "4-bit" implementation, and then it goes only faster... | ||
| 252 | */ | ||
| 253 | for (cnt = 0; cnt < 16; ++cnt) { | ||
| 254 | Z.hi = Htable[cnt].hi; | ||
| 255 | Z.lo = Htable[cnt].lo; | ||
| 256 | Hshr4[cnt].lo = (Z.hi << 60)|(Z.lo >> 4); | ||
| 257 | Hshr4[cnt].hi = (Z.hi >> 4); | ||
| 258 | Hshl4[cnt] = (uint8_t)(Z.lo << 4); | ||
| 259 | } | ||
| 260 | |||
| 261 | do { | ||
| 262 | for (Z.lo = 0, Z.hi = 0, cnt = 15; cnt; --cnt) { | ||
| 263 | nlo = ((const uint8_t *)Xi)[cnt]; | ||
| 264 | nlo ^= inp[cnt]; | ||
| 265 | nhi = nlo >> 4; | ||
| 266 | nlo &= 0xf; | ||
| 267 | |||
| 268 | Z.hi ^= Htable[nlo].hi; | ||
| 269 | Z.lo ^= Htable[nlo].lo; | ||
| 270 | |||
| 271 | rem = (size_t)Z.lo & 0xff; | ||
| 272 | |||
| 273 | Z.lo = (Z.hi << 56)|(Z.lo >> 8); | ||
| 274 | Z.hi = (Z.hi >> 8); | ||
| 275 | |||
| 276 | Z.hi ^= Hshr4[nhi].hi; | ||
| 277 | Z.lo ^= Hshr4[nhi].lo; | ||
| 278 | Z.hi ^= (uint64_t)rem_8bit[rem ^ Hshl4[nhi]] << 48; | ||
| 279 | } | ||
| 280 | |||
| 281 | nlo = ((const uint8_t *)Xi)[0]; | ||
| 282 | nlo ^= inp[0]; | ||
| 283 | nhi = nlo >> 4; | ||
| 284 | nlo &= 0xf; | ||
| 285 | |||
| 286 | Z.hi ^= Htable[nlo].hi; | ||
| 287 | Z.lo ^= Htable[nlo].lo; | ||
| 288 | |||
| 289 | rem = (size_t)Z.lo & 0xf; | ||
| 290 | |||
| 291 | Z.lo = (Z.hi << 60)|(Z.lo >> 4); | ||
| 292 | Z.hi = (Z.hi >> 4); | ||
| 293 | |||
| 294 | Z.hi ^= Htable[nhi].hi; | ||
| 295 | Z.lo ^= Htable[nhi].lo; | ||
| 296 | Z.hi ^= ((uint64_t)rem_8bit[rem << 4]) << 48; | ||
| 297 | #endif | ||
| 298 | 204 | ||
| 299 | Xi[0] = htobe64(Z.hi); | 205 | Xi[0] = htobe64(Z.hi); |
| 300 | Xi[1] = htobe64(Z.lo); | 206 | Xi[1] = htobe64(Z.lo); |
