summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/des/fcrypt_b.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/des/fcrypt_b.c')
-rw-r--r--src/lib/libcrypto/des/fcrypt_b.c119
1 files changed, 60 insertions, 59 deletions
diff --git a/src/lib/libcrypto/des/fcrypt_b.c b/src/lib/libcrypto/des/fcrypt_b.c
index 903c6de947..193ea34957 100644
--- a/src/lib/libcrypto/des/fcrypt_b.c
+++ b/src/lib/libcrypto/des/fcrypt_b.c
@@ -1,25 +1,25 @@
1/* $OpenBSD: fcrypt_b.c,v 1.10 2022/11/26 16:08:51 tb Exp $ */ 1/* $OpenBSD: fcrypt_b.c,v 1.11 2023/07/08 07:11:07 beck 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 *
5 * This package is an SSL implementation written 5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com). 6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL. 7 * The implementation was written so as to conform with Netscapes SSL.
8 * 8 *
9 * This library is free for commercial and non-commercial use as long as 9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions 10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA, 11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms 13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 * 15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in 16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed. 17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution 18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used. 19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or 20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package. 21 * in documentation (online or textual) provided with the package.
22 * 22 *
23 * Redistribution and use in source and binary forms, with or without 23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions 24 * modification, are permitted provided that the following conditions
25 * are met: 25 * are met:
@@ -34,10 +34,10 @@
34 * Eric Young (eay@cryptsoft.com)" 34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library 35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-). 36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from 37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement: 38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 * 40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,7 +49,7 @@
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE. 51 * SUCH DAMAGE.
52 * 52 *
53 * The licence and distribution terms for any publically available version or 53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be 54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence 55 * copied and put under another distribution licence
@@ -71,76 +71,77 @@
71#ifndef OPENBSD_DES_ASM 71#ifndef OPENBSD_DES_ASM
72 72
73#undef PERM_OP 73#undef PERM_OP
74#define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\ 74#define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)), \
75 (b)^=(t),\ 75 (b)^=(t), \
76 (a)^=((t)<<(n))) 76 (a)^=((t)<<(n)))
77 77
78#undef HPERM_OP 78#undef HPERM_OP
79#define HPERM_OP(a,t,n,m) ((t)=((((a)<<(16-(n)))^(a))&(m)),\ 79#define HPERM_OP(a,t,n,m) ((t)=((((a)<<(16-(n)))^(a))&(m)), \
80 (a)=(a)^(t)^(t>>(16-(n))))\ 80 (a)=(a)^(t)^(t>>(16-(n)))) \
81 81
82void fcrypt_body(DES_LONG *out, DES_key_schedule *ks, DES_LONG Eswap0, 82void
83 DES_LONG Eswap1) 83fcrypt_body(DES_LONG *out, DES_key_schedule *ks, DES_LONG Eswap0,
84 { 84 DES_LONG Eswap1)
85 DES_LONG l,r,t,u; 85{
86 DES_LONG l, r, t, u;
86#ifdef DES_PTR 87#ifdef DES_PTR
87 const unsigned char *des_SP=(const unsigned char *)DES_SPtrans; 88 const unsigned char *des_SP = (const unsigned char *)DES_SPtrans;
88#endif 89#endif
89 DES_LONG *s; 90 DES_LONG *s;
90 int j; 91 int j;
91 DES_LONG E0,E1; 92 DES_LONG E0, E1;
92 93
93 l=0; 94 l = 0;
94 r=0; 95 r = 0;
95 96
96 s=(DES_LONG *)ks; 97 s = (DES_LONG *)ks;
97 E0=Eswap0; 98 E0 = Eswap0;
98 E1=Eswap1; 99 E1 = Eswap1;
99 100
100 for (j=0; j<25; j++) 101 for (j = 0; j < 25; j++)
101 { 102 {
102#ifndef DES_UNROLL 103#ifndef DES_UNROLL
103 int i; 104 int i;
104 105
105 for (i=0; i<32; i+=4) 106 for (i = 0; i < 32; i += 4)
106 { 107 {
107 D_ENCRYPT(l,r,i+0); /* 1 */ 108 D_ENCRYPT(l, r, i + 0); /* 1 */
108 D_ENCRYPT(r,l,i+2); /* 2 */ 109 D_ENCRYPT(r, l, i + 2); /* 2 */
109 } 110 }
110#else 111#else
111 D_ENCRYPT(l,r, 0); /* 1 */ 112 D_ENCRYPT(l, r, 0); /* 1 */
112 D_ENCRYPT(r,l, 2); /* 2 */ 113 D_ENCRYPT(r, l, 2); /* 2 */
113 D_ENCRYPT(l,r, 4); /* 3 */ 114 D_ENCRYPT(l, r, 4); /* 3 */
114 D_ENCRYPT(r,l, 6); /* 4 */ 115 D_ENCRYPT(r, l, 6); /* 4 */
115 D_ENCRYPT(l,r, 8); /* 5 */ 116 D_ENCRYPT(l, r, 8); /* 5 */
116 D_ENCRYPT(r,l,10); /* 6 */ 117 D_ENCRYPT(r, l, 10); /* 6 */
117 D_ENCRYPT(l,r,12); /* 7 */ 118 D_ENCRYPT(l, r, 12); /* 7 */
118 D_ENCRYPT(r,l,14); /* 8 */ 119 D_ENCRYPT(r, l, 14); /* 8 */
119 D_ENCRYPT(l,r,16); /* 9 */ 120 D_ENCRYPT(l, r, 16); /* 9 */
120 D_ENCRYPT(r,l,18); /* 10 */ 121 D_ENCRYPT(r, l, 18); /* 10 */
121 D_ENCRYPT(l,r,20); /* 11 */ 122 D_ENCRYPT(l, r, 20); /* 11 */
122 D_ENCRYPT(r,l,22); /* 12 */ 123 D_ENCRYPT(r, l, 22); /* 12 */
123 D_ENCRYPT(l,r,24); /* 13 */ 124 D_ENCRYPT(l, r, 24); /* 13 */
124 D_ENCRYPT(r,l,26); /* 14 */ 125 D_ENCRYPT(r, l, 26); /* 14 */
125 D_ENCRYPT(l,r,28); /* 15 */ 126 D_ENCRYPT(l, r, 28); /* 15 */
126 D_ENCRYPT(r,l,30); /* 16 */ 127 D_ENCRYPT(r, l, 30); /* 16 */
127#endif 128#endif
128 129
129 t=l; 130 t = l;
130 l=r; 131 l = r;
131 r=t; 132 r = t;
132 } 133 }
133 l=ROTATE(l,3)&0xffffffffL; 134 l = ROTATE(l, 3) & 0xffffffffL;
134 r=ROTATE(r,3)&0xffffffffL; 135 r = ROTATE(r, 3) & 0xffffffffL;
135 136
136 PERM_OP(l,r,t, 1,0x55555555L); 137 PERM_OP(l, r, t, 1, 0x55555555L);
137 PERM_OP(r,l,t, 8,0x00ff00ffL); 138 PERM_OP(r, l, t, 8, 0x00ff00ffL);
138 PERM_OP(l,r,t, 2,0x33333333L); 139 PERM_OP(l, r, t, 2, 0x33333333L);
139 PERM_OP(r,l,t,16,0x0000ffffL); 140 PERM_OP(r, l, t, 16, 0x0000ffffL);
140 PERM_OP(l,r,t, 4,0x0f0f0f0fL); 141 PERM_OP(l, r, t, 4, 0x0f0f0f0fL);
141 142
142 out[0]=r; 143 out[0] = r;
143 out[1]=l; 144 out[1] = l;
144 } 145}
145 146
146#endif /* OPENBSD_DES_ASM */ 147#endif /* OPENBSD_DES_ASM */