diff options
author | jsing <> | 2024-03-27 11:54:29 +0000 |
---|---|---|
committer | jsing <> | 2024-03-27 11:54:29 +0000 |
commit | b82df59d7eb9e971471210b81fa7a41f3d834638 (patch) | |
tree | 14ee39aaf143eed25a20e017c2614e6ddbd029eb /src | |
parent | c2eb04ad52795aefaabc7e43e3bd7f7fe8b1802b (diff) | |
download | openbsd-b82df59d7eb9e971471210b81fa7a41f3d834638.tar.gz openbsd-b82df59d7eb9e971471210b81fa7a41f3d834638.tar.bz2 openbsd-b82df59d7eb9e971471210b81fa7a41f3d834638.zip |
Unifdef BF_PTR2.
This removes the unused Intel special version of BF_ENC().
ok tb@
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/bf/bf_local.h | 25 | ||||
-rw-r--r-- | src/lib/libcrypto/bf/blowfish.c | 74 |
2 files changed, 4 insertions, 95 deletions
diff --git a/src/lib/libcrypto/bf/bf_local.h b/src/lib/libcrypto/bf/bf_local.h index f463dda360..8fc5a5dbd8 100644 --- a/src/lib/libcrypto/bf/bf_local.h +++ b/src/lib/libcrypto/bf/bf_local.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bf_local.h,v 1.2 2024/03/27 11:44:39 jsing Exp $ */ | 1 | /* $OpenBSD: bf_local.h,v 1.3 2024/03/27 11:54:29 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -56,7 +56,7 @@ | |||
56 | * [including the GNU Public Licence.] | 56 | * [including the GNU Public Licence.] |
57 | */ | 57 | */ |
58 | 58 | ||
59 | #include <openssl/opensslconf.h> /* BF_PTR, BF_PTR2 */ | 59 | #include <openssl/opensslconf.h> /* BF_PTR */ |
60 | 60 | ||
61 | #ifndef HEADER_BF_LOCL_H | 61 | #ifndef HEADER_BF_LOCL_H |
62 | #define HEADER_BF_LOCL_H | 62 | #define HEADER_BF_LOCL_H |
@@ -107,26 +107,7 @@ | |||
107 | /* This is actually a big endian algorithm, the most significant byte | 107 | /* This is actually a big endian algorithm, the most significant byte |
108 | * is used to lookup array 0 */ | 108 | * is used to lookup array 0 */ |
109 | 109 | ||
110 | #if defined(BF_PTR2) | 110 | #if defined(BF_PTR) |
111 | |||
112 | /* | ||
113 | * This is basically a special Intel version. Point is that Intel | ||
114 | * doesn't have many registers, but offers a reach choice of addressing | ||
115 | * modes. So we spare some registers by directly traversing BF_KEY | ||
116 | * structure and hiring the most decorated addressing mode. The code | ||
117 | * generated by EGCS is *perfectly* competitive with assembler | ||
118 | * implementation! | ||
119 | */ | ||
120 | #define BF_ENC(LL,R,KEY,Pi) (\ | ||
121 | LL^=KEY[Pi], \ | ||
122 | t= KEY[BF_ROUNDS+2 + 0 + ((R>>24)&0xFF)], \ | ||
123 | t+= KEY[BF_ROUNDS+2 + 256 + ((R>>16)&0xFF)], \ | ||
124 | t^= KEY[BF_ROUNDS+2 + 512 + ((R>>8 )&0xFF)], \ | ||
125 | t+= KEY[BF_ROUNDS+2 + 768 + ((R )&0xFF)], \ | ||
126 | LL^=t \ | ||
127 | ) | ||
128 | |||
129 | #elif defined(BF_PTR) | ||
130 | 111 | ||
131 | #ifndef BF_LONG_LOG2 | 112 | #ifndef BF_LONG_LOG2 |
132 | #define BF_LONG_LOG2 2 /* default to BF_LONG being 32 bits */ | 113 | #define BF_LONG_LOG2 2 /* default to BF_LONG being 32 bits */ |
diff --git a/src/lib/libcrypto/bf/blowfish.c b/src/lib/libcrypto/bf/blowfish.c index 4fa8a563f1..fa6d66fcea 100644 --- a/src/lib/libcrypto/bf/blowfish.c +++ b/src/lib/libcrypto/bf/blowfish.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: blowfish.c,v 1.1 2024/03/27 11:24:15 jsing Exp $ */ | 1 | /* $OpenBSD: blowfish.c,v 1.2 2024/03/27 11:54:29 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -344,7 +344,6 @@ static const BF_KEY bf_init = { | |||
344 | void | 344 | void |
345 | BF_encrypt(BF_LONG *data, const BF_KEY *key) | 345 | BF_encrypt(BF_LONG *data, const BF_KEY *key) |
346 | { | 346 | { |
347 | #ifndef BF_PTR2 | ||
348 | BF_LONG l, r; | 347 | BF_LONG l, r; |
349 | const BF_LONG *p, *s; | 348 | const BF_LONG *p, *s; |
350 | 349 | ||
@@ -380,41 +379,6 @@ BF_encrypt(BF_LONG *data, const BF_KEY *key) | |||
380 | 379 | ||
381 | data[1] = l&0xffffffffL; | 380 | data[1] = l&0xffffffffL; |
382 | data[0] = r&0xffffffffL; | 381 | data[0] = r&0xffffffffL; |
383 | #else | ||
384 | BF_LONG l, r,t, *k; | ||
385 | |||
386 | l = data[0]; | ||
387 | r = data[1]; | ||
388 | k = (BF_LONG*)key; | ||
389 | |||
390 | l ^= k[0]; | ||
391 | BF_ENC(r, l, k, 1); | ||
392 | BF_ENC(l, r, k, 2); | ||
393 | BF_ENC(r, l, k, 3); | ||
394 | BF_ENC(l, r, k, 4); | ||
395 | BF_ENC(r, l, k, 5); | ||
396 | BF_ENC(l, r, k, 6); | ||
397 | BF_ENC(r, l, k, 7); | ||
398 | BF_ENC(l, r, k, 8); | ||
399 | BF_ENC(r, l, k, 9); | ||
400 | BF_ENC(l, r,k, 10); | ||
401 | BF_ENC(r, l,k, 11); | ||
402 | BF_ENC(l, r,k, 12); | ||
403 | BF_ENC(r, l,k, 13); | ||
404 | BF_ENC(l, r,k, 14); | ||
405 | BF_ENC(r, l,k, 15); | ||
406 | BF_ENC(l, r,k, 16); | ||
407 | #if BF_ROUNDS == 20 | ||
408 | BF_ENC(r, l,k, 17); | ||
409 | BF_ENC(l, r,k, 18); | ||
410 | BF_ENC(r, l,k, 19); | ||
411 | BF_ENC(l, r,k, 20); | ||
412 | #endif | ||
413 | r ^= k[BF_ROUNDS + 1]; | ||
414 | |||
415 | data[1] = l&0xffffffffL; | ||
416 | data[0] = r&0xffffffffL; | ||
417 | #endif | ||
418 | } | 382 | } |
419 | 383 | ||
420 | #ifndef BF_DEFAULT_OPTIONS | 384 | #ifndef BF_DEFAULT_OPTIONS |
@@ -422,7 +386,6 @@ BF_encrypt(BF_LONG *data, const BF_KEY *key) | |||
422 | void | 386 | void |
423 | BF_decrypt(BF_LONG *data, const BF_KEY *key) | 387 | BF_decrypt(BF_LONG *data, const BF_KEY *key) |
424 | { | 388 | { |
425 | #ifndef BF_PTR2 | ||
426 | BF_LONG l, r; | 389 | BF_LONG l, r; |
427 | const BF_LONG *p, *s; | 390 | const BF_LONG *p, *s; |
428 | 391 | ||
@@ -458,41 +421,6 @@ BF_decrypt(BF_LONG *data, const BF_KEY *key) | |||
458 | 421 | ||
459 | data[1] = l&0xffffffffL; | 422 | data[1] = l&0xffffffffL; |
460 | data[0] = r&0xffffffffL; | 423 | data[0] = r&0xffffffffL; |
461 | #else | ||
462 | BF_LONG l, r,t, *k; | ||
463 | |||
464 | l = data[0]; | ||
465 | r = data[1]; | ||
466 | k = (BF_LONG *)key; | ||
467 | |||
468 | l ^= k[BF_ROUNDS + 1]; | ||
469 | #if BF_ROUNDS == 20 | ||
470 | BF_ENC(r, l,k, 20); | ||
471 | BF_ENC(l, r,k, 19); | ||
472 | BF_ENC(r, l,k, 18); | ||
473 | BF_ENC(l, r,k, 17); | ||
474 | #endif | ||
475 | BF_ENC(r, l,k, 16); | ||
476 | BF_ENC(l, r,k, 15); | ||
477 | BF_ENC(r, l,k, 14); | ||
478 | BF_ENC(l, r,k, 13); | ||
479 | BF_ENC(r, l,k, 12); | ||
480 | BF_ENC(l, r,k, 11); | ||
481 | BF_ENC(r, l,k, 10); | ||
482 | BF_ENC(l, r, k, 9); | ||
483 | BF_ENC(r, l, k, 8); | ||
484 | BF_ENC(l, r, k, 7); | ||
485 | BF_ENC(r, l, k, 6); | ||
486 | BF_ENC(l, r, k, 5); | ||
487 | BF_ENC(r, l, k, 4); | ||
488 | BF_ENC(l, r, k, 3); | ||
489 | BF_ENC(r, l, k, 2); | ||
490 | BF_ENC(l, r, k, 1); | ||
491 | r ^= k[0]; | ||
492 | |||
493 | data[1] = l&0xffffffffL; | ||
494 | data[0] = r&0xffffffffL; | ||
495 | #endif | ||
496 | } | 424 | } |
497 | 425 | ||
498 | void | 426 | void |