diff options
Diffstat (limited to 'src/lib/libcrypto/des/des_enc.c')
-rw-r--r-- | src/lib/libcrypto/des/des_enc.c | 151 |
1 files changed, 149 insertions, 2 deletions
diff --git a/src/lib/libcrypto/des/des_enc.c b/src/lib/libcrypto/des/des_enc.c index 86fab01fcb..90b15d68c8 100644 --- a/src/lib/libcrypto/des/des_enc.c +++ b/src/lib/libcrypto/des/des_enc.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: des_enc.c,v 1.17 2024/08/31 14:29:15 jsing Exp $ */ | 1 | /* $OpenBSD: des_enc.c,v 1.18 2024/08/31 16:01:18 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 | * |
@@ -57,7 +57,154 @@ | |||
57 | */ | 57 | */ |
58 | 58 | ||
59 | #include "des_local.h" | 59 | #include "des_local.h" |
60 | #include "spr.h" | 60 | |
61 | const DES_LONG DES_SPtrans[8][64] = { | ||
62 | { | ||
63 | /* nibble 0 */ | ||
64 | 0x02080800L, 0x00080000L, 0x02000002L, 0x02080802L, | ||
65 | 0x02000000L, 0x00080802L, 0x00080002L, 0x02000002L, | ||
66 | 0x00080802L, 0x02080800L, 0x02080000L, 0x00000802L, | ||
67 | 0x02000802L, 0x02000000L, 0x00000000L, 0x00080002L, | ||
68 | 0x00080000L, 0x00000002L, 0x02000800L, 0x00080800L, | ||
69 | 0x02080802L, 0x02080000L, 0x00000802L, 0x02000800L, | ||
70 | 0x00000002L, 0x00000800L, 0x00080800L, 0x02080002L, | ||
71 | 0x00000800L, 0x02000802L, 0x02080002L, 0x00000000L, | ||
72 | 0x00000000L, 0x02080802L, 0x02000800L, 0x00080002L, | ||
73 | 0x02080800L, 0x00080000L, 0x00000802L, 0x02000800L, | ||
74 | 0x02080002L, 0x00000800L, 0x00080800L, 0x02000002L, | ||
75 | 0x00080802L, 0x00000002L, 0x02000002L, 0x02080000L, | ||
76 | 0x02080802L, 0x00080800L, 0x02080000L, 0x02000802L, | ||
77 | 0x02000000L, 0x00000802L, 0x00080002L, 0x00000000L, | ||
78 | 0x00080000L, 0x02000000L, 0x02000802L, 0x02080800L, | ||
79 | 0x00000002L, 0x02080002L, 0x00000800L, 0x00080802L, | ||
80 | }, { | ||
81 | /* nibble 1 */ | ||
82 | 0x40108010L, 0x00000000L, 0x00108000L, 0x40100000L, | ||
83 | 0x40000010L, 0x00008010L, 0x40008000L, 0x00108000L, | ||
84 | 0x00008000L, 0x40100010L, 0x00000010L, 0x40008000L, | ||
85 | 0x00100010L, 0x40108000L, 0x40100000L, 0x00000010L, | ||
86 | 0x00100000L, 0x40008010L, 0x40100010L, 0x00008000L, | ||
87 | 0x00108010L, 0x40000000L, 0x00000000L, 0x00100010L, | ||
88 | 0x40008010L, 0x00108010L, 0x40108000L, 0x40000010L, | ||
89 | 0x40000000L, 0x00100000L, 0x00008010L, 0x40108010L, | ||
90 | 0x00100010L, 0x40108000L, 0x40008000L, 0x00108010L, | ||
91 | 0x40108010L, 0x00100010L, 0x40000010L, 0x00000000L, | ||
92 | 0x40000000L, 0x00008010L, 0x00100000L, 0x40100010L, | ||
93 | 0x00008000L, 0x40000000L, 0x00108010L, 0x40008010L, | ||
94 | 0x40108000L, 0x00008000L, 0x00000000L, 0x40000010L, | ||
95 | 0x00000010L, 0x40108010L, 0x00108000L, 0x40100000L, | ||
96 | 0x40100010L, 0x00100000L, 0x00008010L, 0x40008000L, | ||
97 | 0x40008010L, 0x00000010L, 0x40100000L, 0x00108000L, | ||
98 | }, { | ||
99 | /* nibble 2 */ | ||
100 | 0x04000001L, 0x04040100L, 0x00000100L, 0x04000101L, | ||
101 | 0x00040001L, 0x04000000L, 0x04000101L, 0x00040100L, | ||
102 | 0x04000100L, 0x00040000L, 0x04040000L, 0x00000001L, | ||
103 | 0x04040101L, 0x00000101L, 0x00000001L, 0x04040001L, | ||
104 | 0x00000000L, 0x00040001L, 0x04040100L, 0x00000100L, | ||
105 | 0x00000101L, 0x04040101L, 0x00040000L, 0x04000001L, | ||
106 | 0x04040001L, 0x04000100L, 0x00040101L, 0x04040000L, | ||
107 | 0x00040100L, 0x00000000L, 0x04000000L, 0x00040101L, | ||
108 | 0x04040100L, 0x00000100L, 0x00000001L, 0x00040000L, | ||
109 | 0x00000101L, 0x00040001L, 0x04040000L, 0x04000101L, | ||
110 | 0x00000000L, 0x04040100L, 0x00040100L, 0x04040001L, | ||
111 | 0x00040001L, 0x04000000L, 0x04040101L, 0x00000001L, | ||
112 | 0x00040101L, 0x04000001L, 0x04000000L, 0x04040101L, | ||
113 | 0x00040000L, 0x04000100L, 0x04000101L, 0x00040100L, | ||
114 | 0x04000100L, 0x00000000L, 0x04040001L, 0x00000101L, | ||
115 | 0x04000001L, 0x00040101L, 0x00000100L, 0x04040000L, | ||
116 | }, { | ||
117 | /* nibble 3 */ | ||
118 | 0x00401008L, 0x10001000L, 0x00000008L, 0x10401008L, | ||
119 | 0x00000000L, 0x10400000L, 0x10001008L, 0x00400008L, | ||
120 | 0x10401000L, 0x10000008L, 0x10000000L, 0x00001008L, | ||
121 | 0x10000008L, 0x00401008L, 0x00400000L, 0x10000000L, | ||
122 | 0x10400008L, 0x00401000L, 0x00001000L, 0x00000008L, | ||
123 | 0x00401000L, 0x10001008L, 0x10400000L, 0x00001000L, | ||
124 | 0x00001008L, 0x00000000L, 0x00400008L, 0x10401000L, | ||
125 | 0x10001000L, 0x10400008L, 0x10401008L, 0x00400000L, | ||
126 | 0x10400008L, 0x00001008L, 0x00400000L, 0x10000008L, | ||
127 | 0x00401000L, 0x10001000L, 0x00000008L, 0x10400000L, | ||
128 | 0x10001008L, 0x00000000L, 0x00001000L, 0x00400008L, | ||
129 | 0x00000000L, 0x10400008L, 0x10401000L, 0x00001000L, | ||
130 | 0x10000000L, 0x10401008L, 0x00401008L, 0x00400000L, | ||
131 | 0x10401008L, 0x00000008L, 0x10001000L, 0x00401008L, | ||
132 | 0x00400008L, 0x00401000L, 0x10400000L, 0x10001008L, | ||
133 | 0x00001008L, 0x10000000L, 0x10000008L, 0x10401000L, | ||
134 | }, { | ||
135 | /* nibble 4 */ | ||
136 | 0x08000000L, 0x00010000L, 0x00000400L, 0x08010420L, | ||
137 | 0x08010020L, 0x08000400L, 0x00010420L, 0x08010000L, | ||
138 | 0x00010000L, 0x00000020L, 0x08000020L, 0x00010400L, | ||
139 | 0x08000420L, 0x08010020L, 0x08010400L, 0x00000000L, | ||
140 | 0x00010400L, 0x08000000L, 0x00010020L, 0x00000420L, | ||
141 | 0x08000400L, 0x00010420L, 0x00000000L, 0x08000020L, | ||
142 | 0x00000020L, 0x08000420L, 0x08010420L, 0x00010020L, | ||
143 | 0x08010000L, 0x00000400L, 0x00000420L, 0x08010400L, | ||
144 | 0x08010400L, 0x08000420L, 0x00010020L, 0x08010000L, | ||
145 | 0x00010000L, 0x00000020L, 0x08000020L, 0x08000400L, | ||
146 | 0x08000000L, 0x00010400L, 0x08010420L, 0x00000000L, | ||
147 | 0x00010420L, 0x08000000L, 0x00000400L, 0x00010020L, | ||
148 | 0x08000420L, 0x00000400L, 0x00000000L, 0x08010420L, | ||
149 | 0x08010020L, 0x08010400L, 0x00000420L, 0x00010000L, | ||
150 | 0x00010400L, 0x08010020L, 0x08000400L, 0x00000420L, | ||
151 | 0x00000020L, 0x00010420L, 0x08010000L, 0x08000020L, | ||
152 | }, { | ||
153 | /* nibble 5 */ | ||
154 | 0x80000040L, 0x00200040L, 0x00000000L, 0x80202000L, | ||
155 | 0x00200040L, 0x00002000L, 0x80002040L, 0x00200000L, | ||
156 | 0x00002040L, 0x80202040L, 0x00202000L, 0x80000000L, | ||
157 | 0x80002000L, 0x80000040L, 0x80200000L, 0x00202040L, | ||
158 | 0x00200000L, 0x80002040L, 0x80200040L, 0x00000000L, | ||
159 | 0x00002000L, 0x00000040L, 0x80202000L, 0x80200040L, | ||
160 | 0x80202040L, 0x80200000L, 0x80000000L, 0x00002040L, | ||
161 | 0x00000040L, 0x00202000L, 0x00202040L, 0x80002000L, | ||
162 | 0x00002040L, 0x80000000L, 0x80002000L, 0x00202040L, | ||
163 | 0x80202000L, 0x00200040L, 0x00000000L, 0x80002000L, | ||
164 | 0x80000000L, 0x00002000L, 0x80200040L, 0x00200000L, | ||
165 | 0x00200040L, 0x80202040L, 0x00202000L, 0x00000040L, | ||
166 | 0x80202040L, 0x00202000L, 0x00200000L, 0x80002040L, | ||
167 | 0x80000040L, 0x80200000L, 0x00202040L, 0x00000000L, | ||
168 | 0x00002000L, 0x80000040L, 0x80002040L, 0x80202000L, | ||
169 | 0x80200000L, 0x00002040L, 0x00000040L, 0x80200040L, | ||
170 | }, { | ||
171 | /* nibble 6 */ | ||
172 | 0x00004000L, 0x00000200L, 0x01000200L, 0x01000004L, | ||
173 | 0x01004204L, 0x00004004L, 0x00004200L, 0x00000000L, | ||
174 | 0x01000000L, 0x01000204L, 0x00000204L, 0x01004000L, | ||
175 | 0x00000004L, 0x01004200L, 0x01004000L, 0x00000204L, | ||
176 | 0x01000204L, 0x00004000L, 0x00004004L, 0x01004204L, | ||
177 | 0x00000000L, 0x01000200L, 0x01000004L, 0x00004200L, | ||
178 | 0x01004004L, 0x00004204L, 0x01004200L, 0x00000004L, | ||
179 | 0x00004204L, 0x01004004L, 0x00000200L, 0x01000000L, | ||
180 | 0x00004204L, 0x01004000L, 0x01004004L, 0x00000204L, | ||
181 | 0x00004000L, 0x00000200L, 0x01000000L, 0x01004004L, | ||
182 | 0x01000204L, 0x00004204L, 0x00004200L, 0x00000000L, | ||
183 | 0x00000200L, 0x01000004L, 0x00000004L, 0x01000200L, | ||
184 | 0x00000000L, 0x01000204L, 0x01000200L, 0x00004200L, | ||
185 | 0x00000204L, 0x00004000L, 0x01004204L, 0x01000000L, | ||
186 | 0x01004200L, 0x00000004L, 0x00004004L, 0x01004204L, | ||
187 | 0x01000004L, 0x01004200L, 0x01004000L, 0x00004004L, | ||
188 | }, { | ||
189 | /* nibble 7 */ | ||
190 | 0x20800080L, 0x20820000L, 0x00020080L, 0x00000000L, | ||
191 | 0x20020000L, 0x00800080L, 0x20800000L, 0x20820080L, | ||
192 | 0x00000080L, 0x20000000L, 0x00820000L, 0x00020080L, | ||
193 | 0x00820080L, 0x20020080L, 0x20000080L, 0x20800000L, | ||
194 | 0x00020000L, 0x00820080L, 0x00800080L, 0x20020000L, | ||
195 | 0x20820080L, 0x20000080L, 0x00000000L, 0x00820000L, | ||
196 | 0x20000000L, 0x00800000L, 0x20020080L, 0x20800080L, | ||
197 | 0x00800000L, 0x00020000L, 0x20820000L, 0x00000080L, | ||
198 | 0x00800000L, 0x00020000L, 0x20000080L, 0x20820080L, | ||
199 | 0x00020080L, 0x20000000L, 0x00000000L, 0x00820000L, | ||
200 | 0x20800080L, 0x20020080L, 0x20020000L, 0x00800080L, | ||
201 | 0x20820000L, 0x00000080L, 0x00800080L, 0x20020000L, | ||
202 | 0x20820080L, 0x00800000L, 0x20800000L, 0x20000080L, | ||
203 | 0x00820000L, 0x00020080L, 0x20020080L, 0x20800000L, | ||
204 | 0x00000080L, 0x20820000L, 0x00820080L, 0x00000000L, | ||
205 | 0x20000000L, 0x20800080L, 0x00020000L, 0x00820080L, | ||
206 | }, | ||
207 | }; | ||
61 | 208 | ||
62 | #ifndef OPENBSD_DES_ASM | 209 | #ifndef OPENBSD_DES_ASM |
63 | 210 | ||