summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorjsing <>2022-11-11 12:08:29 +0000
committerjsing <>2022-11-11 12:08:29 +0000
commit57b70d7ba6ec6499567b2f281f47b636282a2ecd (patch)
tree5b400e8c145bf12274317967d2b18caee9914a21 /src/lib
parent8162acf7813e6b117517a092921aebf84fb21de9 (diff)
downloadopenbsd-57b70d7ba6ec6499567b2f281f47b636282a2ecd.tar.gz
openbsd-57b70d7ba6ec6499567b2f281f47b636282a2ecd.tar.bz2
openbsd-57b70d7ba6ec6499567b2f281f47b636282a2ecd.zip
Whack blowfish with a style(9) bat.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/bf/bf_cbc.c160
-rw-r--r--src/lib/libcrypto/bf/bf_cfb64.c108
-rw-r--r--src/lib/libcrypto/bf/bf_ecb.c50
-rw-r--r--src/lib/libcrypto/bf/bf_enc.c406
-rw-r--r--src/lib/libcrypto/bf/bf_locl.h14
-rw-r--r--src/lib/libcrypto/bf/bf_ofb64.c84
-rw-r--r--src/lib/libcrypto/bf/bf_pi.h540
-rw-r--r--src/lib/libcrypto/bf/bf_skey.c91
-rw-r--r--src/lib/libcrypto/bf/blowfish.h28
9 files changed, 741 insertions, 740 deletions
diff --git a/src/lib/libcrypto/bf/bf_cbc.c b/src/lib/libcrypto/bf/bf_cbc.c
index 6f45f9ae4c..58e85b63c8 100644
--- a/src/lib/libcrypto/bf/bf_cbc.c
+++ b/src/lib/libcrypto/bf/bf_cbc.c
@@ -1,25 +1,25 @@
1/* $OpenBSD: bf_cbc.c,v 1.5 2014/10/28 07:35:58 jsg Exp $ */ 1/* $OpenBSD: bf_cbc.c,v 1.6 2022/11/11 12:08: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 *
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
@@ -59,85 +59,79 @@
59#include <openssl/blowfish.h> 59#include <openssl/blowfish.h>
60#include "bf_locl.h" 60#include "bf_locl.h"
61 61
62void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, 62void
63 const BF_KEY *schedule, unsigned char *ivec, int encrypt) 63BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
64 { 64 const BF_KEY *schedule, unsigned char *ivec, int encrypt)
65 BF_LONG tin0,tin1; 65{
66 BF_LONG tout0,tout1,xor0,xor1; 66 BF_LONG tin0, tin1;
67 long l=length; 67 BF_LONG tout0, tout1, xor0, xor1;
68 long l = length;
68 BF_LONG tin[2]; 69 BF_LONG tin[2];
69 70
70 if (encrypt) 71 if (encrypt) {
71 { 72 n2l(ivec, tout0);
72 n2l(ivec,tout0); 73 n2l(ivec, tout1);
73 n2l(ivec,tout1); 74 ivec -= 8;
74 ivec-=8; 75 for (l -= 8; l >= 0; l -= 8) {
75 for (l-=8; l>=0; l-=8) 76 n2l(in, tin0);
76 { 77 n2l(in, tin1);
77 n2l(in,tin0); 78 tin0 ^= tout0;
78 n2l(in,tin1); 79 tin1 ^= tout1;
79 tin0^=tout0; 80 tin[0] = tin0;
80 tin1^=tout1; 81 tin[1] = tin1;
81 tin[0]=tin0; 82 BF_encrypt(tin, schedule);
82 tin[1]=tin1; 83 tout0 = tin[0];
83 BF_encrypt(tin,schedule); 84 tout1 = tin[1];
84 tout0=tin[0]; 85 l2n(tout0, out);
85 tout1=tin[1]; 86 l2n(tout1, out);
86 l2n(tout0,out); 87 }
87 l2n(tout1,out); 88 if (l != -8) {
88 } 89 n2ln(in, tin0, tin1, l + 8);
89 if (l != -8) 90 tin0 ^= tout0;
90 { 91 tin1 ^= tout1;
91 n2ln(in,tin0,tin1,l+8); 92 tin[0] = tin0;
92 tin0^=tout0; 93 tin[1] = tin1;
93 tin1^=tout1; 94 BF_encrypt(tin, schedule);
94 tin[0]=tin0; 95 tout0 = tin[0];
95 tin[1]=tin1; 96 tout1 = tin[1];
96 BF_encrypt(tin,schedule); 97 l2n(tout0, out);
97 tout0=tin[0]; 98 l2n(tout1, out);
98 tout1=tin[1]; 99 }
99 l2n(tout0,out); 100 l2n(tout0, ivec);
100 l2n(tout1,out); 101 l2n(tout1, ivec);
101 } 102 } else {
102 l2n(tout0,ivec); 103 n2l(ivec, xor0);
103 l2n(tout1,ivec); 104 n2l(ivec, xor1);
105 ivec -= 8;
106 for (l -= 8; l >= 0; l -= 8) {
107 n2l(in, tin0);
108 n2l(in, tin1);
109 tin[0] = tin0;
110 tin[1] = tin1;
111 BF_decrypt(tin, schedule);
112 tout0 = tin[0]^xor0;
113 tout1 = tin[1]^xor1;
114 l2n(tout0, out);
115 l2n(tout1, out);
116 xor0 = tin0;
117 xor1 = tin1;
104 } 118 }
105 else 119 if (l != -8) {
106 { 120 n2l(in, tin0);
107 n2l(ivec,xor0); 121 n2l(in, tin1);
108 n2l(ivec,xor1); 122 tin[0] = tin0;
109 ivec-=8; 123 tin[1] = tin1;
110 for (l-=8; l>=0; l-=8) 124 BF_decrypt(tin, schedule);
111 { 125 tout0 = tin[0]^xor0;
112 n2l(in,tin0); 126 tout1 = tin[1]^xor1;
113 n2l(in,tin1); 127 l2nn(tout0, tout1, out, l + 8);
114 tin[0]=tin0; 128 xor0 = tin0;
115 tin[1]=tin1; 129 xor1 = tin1;
116 BF_decrypt(tin,schedule);
117 tout0=tin[0]^xor0;
118 tout1=tin[1]^xor1;
119 l2n(tout0,out);
120 l2n(tout1,out);
121 xor0=tin0;
122 xor1=tin1;
123 }
124 if (l != -8)
125 {
126 n2l(in,tin0);
127 n2l(in,tin1);
128 tin[0]=tin0;
129 tin[1]=tin1;
130 BF_decrypt(tin,schedule);
131 tout0=tin[0]^xor0;
132 tout1=tin[1]^xor1;
133 l2nn(tout0,tout1,out,l+8);
134 xor0=tin0;
135 xor1=tin1;
136 }
137 l2n(xor0,ivec);
138 l2n(xor1,ivec);
139 } 130 }
140 tin0=tin1=tout0=tout1=xor0=xor1=0; 131 l2n(xor0, ivec);
141 tin[0]=tin[1]=0; 132 l2n(xor1, ivec);
142 } 133 }
134 tin0 = tin1 = tout0 = tout1 = xor0 = xor1 = 0;
135 tin[0] = tin[1] = 0;
136}
143 137
diff --git a/src/lib/libcrypto/bf/bf_cfb64.c b/src/lib/libcrypto/bf/bf_cfb64.c
index 6cc0bb999b..4ef15b94c6 100644
--- a/src/lib/libcrypto/bf/bf_cfb64.c
+++ b/src/lib/libcrypto/bf/bf_cfb64.c
@@ -1,25 +1,25 @@
1/* $OpenBSD: bf_cfb64.c,v 1.5 2014/10/28 07:35:58 jsg Exp $ */ 1/* $OpenBSD: bf_cfb64.c,v 1.6 2022/11/11 12:08: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 *
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
@@ -64,58 +64,60 @@
64 * 64bit block we have used is contained in *num; 64 * 64bit block we have used is contained in *num;
65 */ 65 */
66 66
67void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, long length, 67void
68 const BF_KEY *schedule, unsigned char *ivec, int *num, int encrypt) 68BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, long length,
69 { 69 const BF_KEY *schedule, unsigned char *ivec, int *num, int encrypt)
70 BF_LONG v0,v1,t; 70{
71 BF_LONG v0, v1, t;
71 int n= *num; 72 int n= *num;
72 long l=length; 73 long l = length;
73 BF_LONG ti[2]; 74 BF_LONG ti[2];
74 unsigned char *iv,c,cc; 75 unsigned char *iv, c, cc;
75 76
76 iv=(unsigned char *)ivec; 77 iv = (unsigned char *)ivec;
77 if (encrypt) 78 if (encrypt) {
78 { 79 while (l--) {
79 while (l--) 80 if (n == 0) {
80 { 81 n2l(iv, v0);
81 if (n == 0) 82 ti[0] = v0;
82 { 83 n2l(iv, v1);
83 n2l(iv,v0); ti[0]=v0; 84 ti[1] = v1;
84 n2l(iv,v1); ti[1]=v1; 85 BF_encrypt((BF_LONG *)ti, schedule);
85 BF_encrypt((BF_LONG *)ti,schedule); 86 iv = (unsigned char *)ivec;
86 iv=(unsigned char *)ivec; 87 t = ti[0];
87 t=ti[0]; l2n(t,iv); 88 l2n(t, iv);
88 t=ti[1]; l2n(t,iv); 89 t = ti[1];
89 iv=(unsigned char *)ivec; 90 l2n(t, iv);
90 } 91 iv = (unsigned char *)ivec;
91 c= *(in++)^iv[n];
92 *(out++)=c;
93 iv[n]=c;
94 n=(n+1)&0x07;
95 } 92 }
93 c= *(in++)^iv[n];
94 *(out++) = c;
95 iv[n] = c;
96 n = (n + 1)&0x07;
96 } 97 }
97 else 98 } else {
98 { 99 while (l--) {
99 while (l--) 100 if (n == 0) {
100 { 101 n2l(iv, v0);
101 if (n == 0) 102 ti[0] = v0;
102 { 103 n2l(iv, v1);
103 n2l(iv,v0); ti[0]=v0; 104 ti[1] = v1;
104 n2l(iv,v1); ti[1]=v1; 105 BF_encrypt((BF_LONG *)ti, schedule);
105 BF_encrypt((BF_LONG *)ti,schedule); 106 iv = (unsigned char *)ivec;
106 iv=(unsigned char *)ivec; 107 t = ti[0];
107 t=ti[0]; l2n(t,iv); 108 l2n(t, iv);
108 t=ti[1]; l2n(t,iv); 109 t = ti[1];
109 iv=(unsigned char *)ivec; 110 l2n(t, iv);
110 } 111 iv = (unsigned char *)ivec;
111 cc= *(in++);
112 c=iv[n];
113 iv[n]=cc;
114 *(out++)=c^cc;
115 n=(n+1)&0x07;
116 } 112 }
113 cc= *(in++);
114 c = iv[n];
115 iv[n] = cc;
116 *(out++) = c^cc;
117 n = (n + 1)&0x07;
117 } 118 }
118 v0=v1=ti[0]=ti[1]=t=c=cc=0;
119 *num=n;
120 } 119 }
120 v0 = v1 = ti[0] = ti[1] = t=c = cc = 0;
121 *num = n;
122}
121 123
diff --git a/src/lib/libcrypto/bf/bf_ecb.c b/src/lib/libcrypto/bf/bf_ecb.c
index 305bd78260..3421b5f514 100644
--- a/src/lib/libcrypto/bf/bf_ecb.c
+++ b/src/lib/libcrypto/bf/bf_ecb.c
@@ -1,25 +1,25 @@
1/* $OpenBSD: bf_ecb.c,v 1.6 2014/07/09 11:10:50 bcook Exp $ */ 1/* $OpenBSD: bf_ecb.c,v 1.7 2022/11/11 12:08: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 *
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
@@ -65,8 +65,9 @@
65 * CAMBRIDGE SECURITY WORKSHOP, CAMBRIDGE, U.K., DECEMBER 9-11, 1993) 65 * CAMBRIDGE SECURITY WORKSHOP, CAMBRIDGE, U.K., DECEMBER 9-11, 1993)
66 */ 66 */
67 67
68const char *BF_options(void) 68const char *
69 { 69BF_options(void)
70{
70#ifdef BF_PTR 71#ifdef BF_PTR
71 return("blowfish(ptr)"); 72 return("blowfish(ptr)");
72#elif defined(BF_PTR2) 73#elif defined(BF_PTR2)
@@ -74,21 +75,26 @@ const char *BF_options(void)
74#else 75#else
75 return("blowfish(idx)"); 76 return("blowfish(idx)");
76#endif 77#endif
77 } 78}
78 79
79void BF_ecb_encrypt(const unsigned char *in, unsigned char *out, 80void
80 const BF_KEY *key, int encrypt) 81BF_ecb_encrypt(const unsigned char *in, unsigned char *out,
81 { 82 const BF_KEY *key, int encrypt)
82 BF_LONG l,d[2]; 83{
84 BF_LONG l, d[2];
83 85
84 n2l(in,l); d[0]=l; 86 n2l(in, l);
85 n2l(in,l); d[1]=l; 87 d[0] = l;
88 n2l(in, l);
89 d[1] = l;
86 if (encrypt) 90 if (encrypt)
87 BF_encrypt(d,key); 91 BF_encrypt(d, key);
88 else 92 else
89 BF_decrypt(d,key); 93 BF_decrypt(d, key);
90 l=d[0]; l2n(l,out); 94 l = d[0];
91 l=d[1]; l2n(l,out); 95 l2n(l, out);
92 l=d[0]=d[1]=0; 96 l = d[1];
93 } 97 l2n(l, out);
98 l = d[0] = d[1] = 0;
99}
94 100
diff --git a/src/lib/libcrypto/bf/bf_enc.c b/src/lib/libcrypto/bf/bf_enc.c
index 2cf1c86063..464d36d345 100644
--- a/src/lib/libcrypto/bf/bf_enc.c
+++ b/src/lib/libcrypto/bf/bf_enc.c
@@ -1,25 +1,25 @@
1/* $OpenBSD: bf_enc.c,v 1.6 2014/10/28 07:35:58 jsg Exp $ */ 1/* $OpenBSD: bf_enc.c,v 1.7 2022/11/11 12:08: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 *
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
@@ -69,238 +69,234 @@
69to modify the code. 69to modify the code.
70#endif 70#endif
71 71
72void BF_encrypt(BF_LONG *data, const BF_KEY *key) 72void
73 { 73BF_encrypt(BF_LONG *data, const BF_KEY *key)
74{
74#ifndef BF_PTR2 75#ifndef BF_PTR2
75 BF_LONG l,r; 76 BF_LONG l, r;
76 const BF_LONG *p,*s; 77 const BF_LONG *p, *s;
77 78
78 p=key->P; 79 p = key->P;
79 s= &(key->S[0]); 80 s = &(key->S[0]);
80 l=data[0]; 81 l = data[0];
81 r=data[1]; 82 r = data[1];
82 83
83 l^=p[0]; 84 l ^= p[0];
84 BF_ENC(r,l,s,p[ 1]); 85 BF_ENC(r, l,s, p[1]);
85 BF_ENC(l,r,s,p[ 2]); 86 BF_ENC(l, r,s, p[2]);
86 BF_ENC(r,l,s,p[ 3]); 87 BF_ENC(r, l,s, p[3]);
87 BF_ENC(l,r,s,p[ 4]); 88 BF_ENC(l, r,s, p[4]);
88 BF_ENC(r,l,s,p[ 5]); 89 BF_ENC(r, l,s, p[5]);
89 BF_ENC(l,r,s,p[ 6]); 90 BF_ENC(l, r,s, p[6]);
90 BF_ENC(r,l,s,p[ 7]); 91 BF_ENC(r, l,s, p[7]);
91 BF_ENC(l,r,s,p[ 8]); 92 BF_ENC(l, r,s, p[8]);
92 BF_ENC(r,l,s,p[ 9]); 93 BF_ENC(r, l,s, p[9]);
93 BF_ENC(l,r,s,p[10]); 94 BF_ENC(l, r,s, p[10]);
94 BF_ENC(r,l,s,p[11]); 95 BF_ENC(r, l,s, p[11]);
95 BF_ENC(l,r,s,p[12]); 96 BF_ENC(l, r,s, p[12]);
96 BF_ENC(r,l,s,p[13]); 97 BF_ENC(r, l,s, p[13]);
97 BF_ENC(l,r,s,p[14]); 98 BF_ENC(l, r,s, p[14]);
98 BF_ENC(r,l,s,p[15]); 99 BF_ENC(r, l,s, p[15]);
99 BF_ENC(l,r,s,p[16]); 100 BF_ENC(l, r,s, p[16]);
100#if BF_ROUNDS == 20 101#if BF_ROUNDS == 20
101 BF_ENC(r,l,s,p[17]); 102 BF_ENC(r, l,s, p[17]);
102 BF_ENC(l,r,s,p[18]); 103 BF_ENC(l, r,s, p[18]);
103 BF_ENC(r,l,s,p[19]); 104 BF_ENC(r, l,s, p[19]);
104 BF_ENC(l,r,s,p[20]); 105 BF_ENC(l, r,s, p[20]);
105#endif 106#endif
106 r^=p[BF_ROUNDS+1]; 107 r ^= p[BF_ROUNDS + 1];
107 108
108 data[1]=l&0xffffffffL; 109 data[1] = l&0xffffffffL;
109 data[0]=r&0xffffffffL; 110 data[0] = r&0xffffffffL;
110#else 111#else
111 BF_LONG l,r,t,*k; 112 BF_LONG l, r,t, *k;
112 113
113 l=data[0]; 114 l = data[0];
114 r=data[1]; 115 r = data[1];
115 k=(BF_LONG*)key; 116 k = (BF_LONG*)key;
116 117
117 l^=k[0]; 118 l ^= k[0];
118 BF_ENC(r,l,k, 1); 119 BF_ENC(r, l, k, 1);
119 BF_ENC(l,r,k, 2); 120 BF_ENC(l, r, k, 2);
120 BF_ENC(r,l,k, 3); 121 BF_ENC(r, l, k, 3);
121 BF_ENC(l,r,k, 4); 122 BF_ENC(l, r, k, 4);
122 BF_ENC(r,l,k, 5); 123 BF_ENC(r, l, k, 5);
123 BF_ENC(l,r,k, 6); 124 BF_ENC(l, r, k, 6);
124 BF_ENC(r,l,k, 7); 125 BF_ENC(r, l, k, 7);
125 BF_ENC(l,r,k, 8); 126 BF_ENC(l, r, k, 8);
126 BF_ENC(r,l,k, 9); 127 BF_ENC(r, l, k, 9);
127 BF_ENC(l,r,k,10); 128 BF_ENC(l, r,k, 10);
128 BF_ENC(r,l,k,11); 129 BF_ENC(r, l,k, 11);
129 BF_ENC(l,r,k,12); 130 BF_ENC(l, r,k, 12);
130 BF_ENC(r,l,k,13); 131 BF_ENC(r, l,k, 13);
131 BF_ENC(l,r,k,14); 132 BF_ENC(l, r,k, 14);
132 BF_ENC(r,l,k,15); 133 BF_ENC(r, l,k, 15);
133 BF_ENC(l,r,k,16); 134 BF_ENC(l, r,k, 16);
134#if BF_ROUNDS == 20 135#if BF_ROUNDS == 20
135 BF_ENC(r,l,k,17); 136 BF_ENC(r, l,k, 17);
136 BF_ENC(l,r,k,18); 137 BF_ENC(l, r,k, 18);
137 BF_ENC(r,l,k,19); 138 BF_ENC(r, l,k, 19);
138 BF_ENC(l,r,k,20); 139 BF_ENC(l, r,k, 20);
139#endif 140#endif
140 r^=k[BF_ROUNDS+1]; 141 r ^= k[BF_ROUNDS + 1];
141 142
142 data[1]=l&0xffffffffL; 143 data[1] = l&0xffffffffL;
143 data[0]=r&0xffffffffL; 144 data[0] = r&0xffffffffL;
144#endif 145#endif
145 } 146}
146 147
147#ifndef BF_DEFAULT_OPTIONS 148#ifndef BF_DEFAULT_OPTIONS
148 149
149void BF_decrypt(BF_LONG *data, const BF_KEY *key) 150void
150 { 151BF_decrypt(BF_LONG *data, const BF_KEY *key)
152{
151#ifndef BF_PTR2 153#ifndef BF_PTR2
152 BF_LONG l,r; 154 BF_LONG l, r;
153 const BF_LONG *p,*s; 155 const BF_LONG *p, *s;
154 156
155 p=key->P; 157 p = key->P;
156 s= &(key->S[0]); 158 s = &(key->S[0]);
157 l=data[0]; 159 l = data[0];
158 r=data[1]; 160 r = data[1];
159 161
160 l^=p[BF_ROUNDS+1]; 162 l ^= p[BF_ROUNDS + 1];
161#if BF_ROUNDS == 20 163#if BF_ROUNDS == 20
162 BF_ENC(r,l,s,p[20]); 164 BF_ENC(r, l,s, p[20]);
163 BF_ENC(l,r,s,p[19]); 165 BF_ENC(l, r,s, p[19]);
164 BF_ENC(r,l,s,p[18]); 166 BF_ENC(r, l,s, p[18]);
165 BF_ENC(l,r,s,p[17]); 167 BF_ENC(l, r,s, p[17]);
166#endif 168#endif
167 BF_ENC(r,l,s,p[16]); 169 BF_ENC(r, l,s, p[16]);
168 BF_ENC(l,r,s,p[15]); 170 BF_ENC(l, r,s, p[15]);
169 BF_ENC(r,l,s,p[14]); 171 BF_ENC(r, l,s, p[14]);
170 BF_ENC(l,r,s,p[13]); 172 BF_ENC(l, r,s, p[13]);
171 BF_ENC(r,l,s,p[12]); 173 BF_ENC(r, l,s, p[12]);
172 BF_ENC(l,r,s,p[11]); 174 BF_ENC(l, r,s, p[11]);
173 BF_ENC(r,l,s,p[10]); 175 BF_ENC(r, l,s, p[10]);
174 BF_ENC(l,r,s,p[ 9]); 176 BF_ENC(l, r,s, p[9]);
175 BF_ENC(r,l,s,p[ 8]); 177 BF_ENC(r, l,s, p[8]);
176 BF_ENC(l,r,s,p[ 7]); 178 BF_ENC(l, r,s, p[7]);
177 BF_ENC(r,l,s,p[ 6]); 179 BF_ENC(r, l,s, p[6]);
178 BF_ENC(l,r,s,p[ 5]); 180 BF_ENC(l, r,s, p[5]);
179 BF_ENC(r,l,s,p[ 4]); 181 BF_ENC(r, l,s, p[4]);
180 BF_ENC(l,r,s,p[ 3]); 182 BF_ENC(l, r,s, p[3]);
181 BF_ENC(r,l,s,p[ 2]); 183 BF_ENC(r, l,s, p[2]);
182 BF_ENC(l,r,s,p[ 1]); 184 BF_ENC(l, r,s, p[1]);
183 r^=p[0]; 185 r ^= p[0];
184 186
185 data[1]=l&0xffffffffL; 187 data[1] = l&0xffffffffL;
186 data[0]=r&0xffffffffL; 188 data[0] = r&0xffffffffL;
187#else 189#else
188 BF_LONG l,r,t,*k; 190 BF_LONG l, r,t, *k;
189 191
190 l=data[0]; 192 l = data[0];
191 r=data[1]; 193 r = data[1];
192 k=(BF_LONG *)key; 194 k = (BF_LONG *)key;
193 195
194 l^=k[BF_ROUNDS+1]; 196 l ^= k[BF_ROUNDS + 1];
195#if BF_ROUNDS == 20 197#if BF_ROUNDS == 20
196 BF_ENC(r,l,k,20); 198 BF_ENC(r, l,k, 20);
197 BF_ENC(l,r,k,19); 199 BF_ENC(l, r,k, 19);
198 BF_ENC(r,l,k,18); 200 BF_ENC(r, l,k, 18);
199 BF_ENC(l,r,k,17); 201 BF_ENC(l, r,k, 17);
200#endif 202#endif
201 BF_ENC(r,l,k,16); 203 BF_ENC(r, l,k, 16);
202 BF_ENC(l,r,k,15); 204 BF_ENC(l, r,k, 15);
203 BF_ENC(r,l,k,14); 205 BF_ENC(r, l,k, 14);
204 BF_ENC(l,r,k,13); 206 BF_ENC(l, r,k, 13);
205 BF_ENC(r,l,k,12); 207 BF_ENC(r, l,k, 12);
206 BF_ENC(l,r,k,11); 208 BF_ENC(l, r,k, 11);
207 BF_ENC(r,l,k,10); 209 BF_ENC(r, l,k, 10);
208 BF_ENC(l,r,k, 9); 210 BF_ENC(l, r, k, 9);
209 BF_ENC(r,l,k, 8); 211 BF_ENC(r, l, k, 8);
210 BF_ENC(l,r,k, 7); 212 BF_ENC(l, r, k, 7);
211 BF_ENC(r,l,k, 6); 213 BF_ENC(r, l, k, 6);
212 BF_ENC(l,r,k, 5); 214 BF_ENC(l, r, k, 5);
213 BF_ENC(r,l,k, 4); 215 BF_ENC(r, l, k, 4);
214 BF_ENC(l,r,k, 3); 216 BF_ENC(l, r, k, 3);
215 BF_ENC(r,l,k, 2); 217 BF_ENC(r, l, k, 2);
216 BF_ENC(l,r,k, 1); 218 BF_ENC(l, r, k, 1);
217 r^=k[0]; 219 r ^= k[0];
218 220
219 data[1]=l&0xffffffffL; 221 data[1] = l&0xffffffffL;
220 data[0]=r&0xffffffffL; 222 data[0] = r&0xffffffffL;
221#endif 223#endif
222 } 224}
223 225
224void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, 226void
225 const BF_KEY *schedule, unsigned char *ivec, int encrypt) 227BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
226 { 228 const BF_KEY *schedule, unsigned char *ivec, int encrypt)
227 BF_LONG tin0,tin1; 229{
228 BF_LONG tout0,tout1,xor0,xor1; 230 BF_LONG tin0, tin1;
229 long l=length; 231 BF_LONG tout0, tout1, xor0, xor1;
232 long l = length;
230 BF_LONG tin[2]; 233 BF_LONG tin[2];
231 234
232 if (encrypt) 235 if (encrypt) {
233 { 236 n2l(ivec, tout0);
234 n2l(ivec,tout0); 237 n2l(ivec, tout1);
235 n2l(ivec,tout1); 238 ivec -= 8;
236 ivec-=8; 239 for (l -= 8; l >= 0; l -= 8) {
237 for (l-=8; l>=0; l-=8) 240 n2l(in, tin0);
238 { 241 n2l(in, tin1);
239 n2l(in,tin0); 242 tin0 ^= tout0;
240 n2l(in,tin1); 243 tin1 ^= tout1;
241 tin0^=tout0; 244 tin[0] = tin0;
242 tin1^=tout1; 245 tin[1] = tin1;
243 tin[0]=tin0; 246 BF_encrypt(tin, schedule);
244 tin[1]=tin1; 247 tout0 = tin[0];
245 BF_encrypt(tin,schedule); 248 tout1 = tin[1];
246 tout0=tin[0]; 249 l2n(tout0, out);
247 tout1=tin[1]; 250 l2n(tout1, out);
248 l2n(tout0,out); 251 }
249 l2n(tout1,out); 252 if (l != -8) {
250 } 253 n2ln(in, tin0, tin1, l + 8);
251 if (l != -8) 254 tin0 ^= tout0;
252 { 255 tin1 ^= tout1;
253 n2ln(in,tin0,tin1,l+8); 256 tin[0] = tin0;
254 tin0^=tout0; 257 tin[1] = tin1;
255 tin1^=tout1; 258 BF_encrypt(tin, schedule);
256 tin[0]=tin0; 259 tout0 = tin[0];
257 tin[1]=tin1; 260 tout1 = tin[1];
258 BF_encrypt(tin,schedule); 261 l2n(tout0, out);
259 tout0=tin[0]; 262 l2n(tout1, out);
260 tout1=tin[1]; 263 }
261 l2n(tout0,out); 264 l2n(tout0, ivec);
262 l2n(tout1,out); 265 l2n(tout1, ivec);
263 } 266 } else {
264 l2n(tout0,ivec); 267 n2l(ivec, xor0);
265 l2n(tout1,ivec); 268 n2l(ivec, xor1);
269 ivec -= 8;
270 for (l -= 8; l >= 0; l -= 8) {
271 n2l(in, tin0);
272 n2l(in, tin1);
273 tin[0] = tin0;
274 tin[1] = tin1;
275 BF_decrypt(tin, schedule);
276 tout0 = tin[0]^xor0;
277 tout1 = tin[1]^xor1;
278 l2n(tout0, out);
279 l2n(tout1, out);
280 xor0 = tin0;
281 xor1 = tin1;
266 } 282 }
267 else 283 if (l != -8) {
268 { 284 n2l(in, tin0);
269 n2l(ivec,xor0); 285 n2l(in, tin1);
270 n2l(ivec,xor1); 286 tin[0] = tin0;
271 ivec-=8; 287 tin[1] = tin1;
272 for (l-=8; l>=0; l-=8) 288 BF_decrypt(tin, schedule);
273 { 289 tout0 = tin[0]^xor0;
274 n2l(in,tin0); 290 tout1 = tin[1]^xor1;
275 n2l(in,tin1); 291 l2nn(tout0, tout1, out, l + 8);
276 tin[0]=tin0; 292 xor0 = tin0;
277 tin[1]=tin1; 293 xor1 = tin1;
278 BF_decrypt(tin,schedule);
279 tout0=tin[0]^xor0;
280 tout1=tin[1]^xor1;
281 l2n(tout0,out);
282 l2n(tout1,out);
283 xor0=tin0;
284 xor1=tin1;
285 }
286 if (l != -8)
287 {
288 n2l(in,tin0);
289 n2l(in,tin1);
290 tin[0]=tin0;
291 tin[1]=tin1;
292 BF_decrypt(tin,schedule);
293 tout0=tin[0]^xor0;
294 tout1=tin[1]^xor1;
295 l2nn(tout0,tout1,out,l+8);
296 xor0=tin0;
297 xor1=tin1;
298 }
299 l2n(xor0,ivec);
300 l2n(xor1,ivec);
301 } 294 }
302 tin0=tin1=tout0=tout1=xor0=xor1=0; 295 l2n(xor0, ivec);
303 tin[0]=tin[1]=0; 296 l2n(xor1, ivec);
304 } 297 }
298 tin0 = tin1 = tout0 = tout1 = xor0 = xor1 = 0;
299 tin[0] = tin[1] = 0;
300}
305 301
306#endif 302#endif
diff --git a/src/lib/libcrypto/bf/bf_locl.h b/src/lib/libcrypto/bf/bf_locl.h
index 0b663622d8..f46ff499fb 100644
--- a/src/lib/libcrypto/bf/bf_locl.h
+++ b/src/lib/libcrypto/bf/bf_locl.h
@@ -1,25 +1,25 @@
1/* $OpenBSD: bf_locl.h,v 1.3 2014/06/12 15:49:28 deraadt Exp $ */ 1/* $OpenBSD: bf_locl.h,v 1.4 2022/11/11 12:08: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 *
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
diff --git a/src/lib/libcrypto/bf/bf_ofb64.c b/src/lib/libcrypto/bf/bf_ofb64.c
index 9e33162aab..83a76550f9 100644
--- a/src/lib/libcrypto/bf/bf_ofb64.c
+++ b/src/lib/libcrypto/bf/bf_ofb64.c
@@ -1,25 +1,25 @@
1/* $OpenBSD: bf_ofb64.c,v 1.5 2014/10/28 07:35:58 jsg Exp $ */ 1/* $OpenBSD: bf_ofb64.c,v 1.6 2022/11/11 12:08: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 *
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
@@ -63,48 +63,48 @@
63 * used. The extra state information to record how much of the 63 * used. The extra state information to record how much of the
64 * 64bit block we have used is contained in *num; 64 * 64bit block we have used is contained in *num;
65 */ 65 */
66void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, long length, 66void
67 const BF_KEY *schedule, unsigned char *ivec, int *num) 67BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, long length,
68 { 68 const BF_KEY *schedule, unsigned char *ivec, int *num)
69 BF_LONG v0,v1,t; 69{
70 BF_LONG v0, v1, t;
70 int n= *num; 71 int n= *num;
71 long l=length; 72 long l = length;
72 unsigned char d[8]; 73 unsigned char d[8];
73 char *dp; 74 char *dp;
74 BF_LONG ti[2]; 75 BF_LONG ti[2];
75 unsigned char *iv; 76 unsigned char *iv;
76 int save=0; 77 int save = 0;
77 78
78 iv=(unsigned char *)ivec; 79 iv = (unsigned char *)ivec;
79 n2l(iv,v0); 80 n2l(iv, v0);
80 n2l(iv,v1); 81 n2l(iv, v1);
81 ti[0]=v0; 82 ti[0] = v0;
82 ti[1]=v1; 83 ti[1] = v1;
83 dp=(char *)d; 84 dp = (char *)d;
84 l2n(v0,dp); 85 l2n(v0, dp);
85 l2n(v1,dp); 86 l2n(v1, dp);
86 while (l--) 87 while (l--) {
87 { 88 if (n == 0) {
88 if (n == 0) 89 BF_encrypt((BF_LONG *)ti, schedule);
89 { 90 dp = (char *)d;
90 BF_encrypt((BF_LONG *)ti,schedule); 91 t = ti[0];
91 dp=(char *)d; 92 l2n(t, dp);
92 t=ti[0]; l2n(t,dp); 93 t = ti[1];
93 t=ti[1]; l2n(t,dp); 94 l2n(t, dp);
94 save++; 95 save++;
95 }
96 *(out++)= *(in++)^d[n];
97 n=(n+1)&0x07;
98 }
99 if (save)
100 {
101 v0=ti[0];
102 v1=ti[1];
103 iv=(unsigned char *)ivec;
104 l2n(v0,iv);
105 l2n(v1,iv);
106 } 96 }
107 t=v0=v1=ti[0]=ti[1]=0; 97 *(out++)= *(in++)^d[n];
108 *num=n; 98 n = (n + 1)&0x07;
99 }
100 if (save) {
101 v0 = ti[0];
102 v1 = ti[1];
103 iv = (unsigned char *)ivec;
104 l2n(v0, iv);
105 l2n(v1, iv);
109 } 106 }
107 t = v0 = v1 = ti[0] = ti[1] = 0;
108 *num = n;
109}
110 110
diff --git a/src/lib/libcrypto/bf/bf_pi.h b/src/lib/libcrypto/bf/bf_pi.h
index ce4843a6b2..d8a4303664 100644
--- a/src/lib/libcrypto/bf/bf_pi.h
+++ b/src/lib/libcrypto/bf/bf_pi.h
@@ -1,25 +1,25 @@
1/* $OpenBSD: bf_pi.h,v 1.4 2016/12/21 15:49:29 jsing Exp $ */ 1/* $OpenBSD: bf_pi.h,v 1.5 2022/11/11 12:08: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 *
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
@@ -58,271 +58,271 @@
58 58
59__BEGIN_HIDDEN_DECLS 59__BEGIN_HIDDEN_DECLS
60 60
61static const BF_KEY bf_init= { 61static const BF_KEY bf_init = {
62 { 62 {
63 0x243f6a88L, 0x85a308d3L, 0x13198a2eL, 0x03707344L, 63 0x243f6a88L, 0x85a308d3L, 0x13198a2eL, 0x03707344L,
64 0xa4093822L, 0x299f31d0L, 0x082efa98L, 0xec4e6c89L, 64 0xa4093822L, 0x299f31d0L, 0x082efa98L, 0xec4e6c89L,
65 0x452821e6L, 0x38d01377L, 0xbe5466cfL, 0x34e90c6cL, 65 0x452821e6L, 0x38d01377L, 0xbe5466cfL, 0x34e90c6cL,
66 0xc0ac29b7L, 0xc97c50ddL, 0x3f84d5b5L, 0xb5470917L, 66 0xc0ac29b7L, 0xc97c50ddL, 0x3f84d5b5L, 0xb5470917L,
67 0x9216d5d9L, 0x8979fb1b 67 0x9216d5d9L, 0x8979fb1b
68 },{ 68 },{
69 0xd1310ba6L, 0x98dfb5acL, 0x2ffd72dbL, 0xd01adfb7L, 69 0xd1310ba6L, 0x98dfb5acL, 0x2ffd72dbL, 0xd01adfb7L,
70 0xb8e1afedL, 0x6a267e96L, 0xba7c9045L, 0xf12c7f99L, 70 0xb8e1afedL, 0x6a267e96L, 0xba7c9045L, 0xf12c7f99L,
71 0x24a19947L, 0xb3916cf7L, 0x0801f2e2L, 0x858efc16L, 71 0x24a19947L, 0xb3916cf7L, 0x0801f2e2L, 0x858efc16L,
72 0x636920d8L, 0x71574e69L, 0xa458fea3L, 0xf4933d7eL, 72 0x636920d8L, 0x71574e69L, 0xa458fea3L, 0xf4933d7eL,
73 0x0d95748fL, 0x728eb658L, 0x718bcd58L, 0x82154aeeL, 73 0x0d95748fL, 0x728eb658L, 0x718bcd58L, 0x82154aeeL,
74 0x7b54a41dL, 0xc25a59b5L, 0x9c30d539L, 0x2af26013L, 74 0x7b54a41dL, 0xc25a59b5L, 0x9c30d539L, 0x2af26013L,
75 0xc5d1b023L, 0x286085f0L, 0xca417918L, 0xb8db38efL, 75 0xc5d1b023L, 0x286085f0L, 0xca417918L, 0xb8db38efL,
76 0x8e79dcb0L, 0x603a180eL, 0x6c9e0e8bL, 0xb01e8a3eL, 76 0x8e79dcb0L, 0x603a180eL, 0x6c9e0e8bL, 0xb01e8a3eL,
77 0xd71577c1L, 0xbd314b27L, 0x78af2fdaL, 0x55605c60L, 77 0xd71577c1L, 0xbd314b27L, 0x78af2fdaL, 0x55605c60L,
78 0xe65525f3L, 0xaa55ab94L, 0x57489862L, 0x63e81440L, 78 0xe65525f3L, 0xaa55ab94L, 0x57489862L, 0x63e81440L,
79 0x55ca396aL, 0x2aab10b6L, 0xb4cc5c34L, 0x1141e8ceL, 79 0x55ca396aL, 0x2aab10b6L, 0xb4cc5c34L, 0x1141e8ceL,
80 0xa15486afL, 0x7c72e993L, 0xb3ee1411L, 0x636fbc2aL, 80 0xa15486afL, 0x7c72e993L, 0xb3ee1411L, 0x636fbc2aL,
81 0x2ba9c55dL, 0x741831f6L, 0xce5c3e16L, 0x9b87931eL, 81 0x2ba9c55dL, 0x741831f6L, 0xce5c3e16L, 0x9b87931eL,
82 0xafd6ba33L, 0x6c24cf5cL, 0x7a325381L, 0x28958677L, 82 0xafd6ba33L, 0x6c24cf5cL, 0x7a325381L, 0x28958677L,
83 0x3b8f4898L, 0x6b4bb9afL, 0xc4bfe81bL, 0x66282193L, 83 0x3b8f4898L, 0x6b4bb9afL, 0xc4bfe81bL, 0x66282193L,
84 0x61d809ccL, 0xfb21a991L, 0x487cac60L, 0x5dec8032L, 84 0x61d809ccL, 0xfb21a991L, 0x487cac60L, 0x5dec8032L,
85 0xef845d5dL, 0xe98575b1L, 0xdc262302L, 0xeb651b88L, 85 0xef845d5dL, 0xe98575b1L, 0xdc262302L, 0xeb651b88L,
86 0x23893e81L, 0xd396acc5L, 0x0f6d6ff3L, 0x83f44239L, 86 0x23893e81L, 0xd396acc5L, 0x0f6d6ff3L, 0x83f44239L,
87 0x2e0b4482L, 0xa4842004L, 0x69c8f04aL, 0x9e1f9b5eL, 87 0x2e0b4482L, 0xa4842004L, 0x69c8f04aL, 0x9e1f9b5eL,
88 0x21c66842L, 0xf6e96c9aL, 0x670c9c61L, 0xabd388f0L, 88 0x21c66842L, 0xf6e96c9aL, 0x670c9c61L, 0xabd388f0L,
89 0x6a51a0d2L, 0xd8542f68L, 0x960fa728L, 0xab5133a3L, 89 0x6a51a0d2L, 0xd8542f68L, 0x960fa728L, 0xab5133a3L,
90 0x6eef0b6cL, 0x137a3be4L, 0xba3bf050L, 0x7efb2a98L, 90 0x6eef0b6cL, 0x137a3be4L, 0xba3bf050L, 0x7efb2a98L,
91 0xa1f1651dL, 0x39af0176L, 0x66ca593eL, 0x82430e88L, 91 0xa1f1651dL, 0x39af0176L, 0x66ca593eL, 0x82430e88L,
92 0x8cee8619L, 0x456f9fb4L, 0x7d84a5c3L, 0x3b8b5ebeL, 92 0x8cee8619L, 0x456f9fb4L, 0x7d84a5c3L, 0x3b8b5ebeL,
93 0xe06f75d8L, 0x85c12073L, 0x401a449fL, 0x56c16aa6L, 93 0xe06f75d8L, 0x85c12073L, 0x401a449fL, 0x56c16aa6L,
94 0x4ed3aa62L, 0x363f7706L, 0x1bfedf72L, 0x429b023dL, 94 0x4ed3aa62L, 0x363f7706L, 0x1bfedf72L, 0x429b023dL,
95 0x37d0d724L, 0xd00a1248L, 0xdb0fead3L, 0x49f1c09bL, 95 0x37d0d724L, 0xd00a1248L, 0xdb0fead3L, 0x49f1c09bL,
96 0x075372c9L, 0x80991b7bL, 0x25d479d8L, 0xf6e8def7L, 96 0x075372c9L, 0x80991b7bL, 0x25d479d8L, 0xf6e8def7L,
97 0xe3fe501aL, 0xb6794c3bL, 0x976ce0bdL, 0x04c006baL, 97 0xe3fe501aL, 0xb6794c3bL, 0x976ce0bdL, 0x04c006baL,
98 0xc1a94fb6L, 0x409f60c4L, 0x5e5c9ec2L, 0x196a2463L, 98 0xc1a94fb6L, 0x409f60c4L, 0x5e5c9ec2L, 0x196a2463L,
99 0x68fb6fafL, 0x3e6c53b5L, 0x1339b2ebL, 0x3b52ec6fL, 99 0x68fb6fafL, 0x3e6c53b5L, 0x1339b2ebL, 0x3b52ec6fL,
100 0x6dfc511fL, 0x9b30952cL, 0xcc814544L, 0xaf5ebd09L, 100 0x6dfc511fL, 0x9b30952cL, 0xcc814544L, 0xaf5ebd09L,
101 0xbee3d004L, 0xde334afdL, 0x660f2807L, 0x192e4bb3L, 101 0xbee3d004L, 0xde334afdL, 0x660f2807L, 0x192e4bb3L,
102 0xc0cba857L, 0x45c8740fL, 0xd20b5f39L, 0xb9d3fbdbL, 102 0xc0cba857L, 0x45c8740fL, 0xd20b5f39L, 0xb9d3fbdbL,
103 0x5579c0bdL, 0x1a60320aL, 0xd6a100c6L, 0x402c7279L, 103 0x5579c0bdL, 0x1a60320aL, 0xd6a100c6L, 0x402c7279L,
104 0x679f25feL, 0xfb1fa3ccL, 0x8ea5e9f8L, 0xdb3222f8L, 104 0x679f25feL, 0xfb1fa3ccL, 0x8ea5e9f8L, 0xdb3222f8L,
105 0x3c7516dfL, 0xfd616b15L, 0x2f501ec8L, 0xad0552abL, 105 0x3c7516dfL, 0xfd616b15L, 0x2f501ec8L, 0xad0552abL,
106 0x323db5faL, 0xfd238760L, 0x53317b48L, 0x3e00df82L, 106 0x323db5faL, 0xfd238760L, 0x53317b48L, 0x3e00df82L,
107 0x9e5c57bbL, 0xca6f8ca0L, 0x1a87562eL, 0xdf1769dbL, 107 0x9e5c57bbL, 0xca6f8ca0L, 0x1a87562eL, 0xdf1769dbL,
108 0xd542a8f6L, 0x287effc3L, 0xac6732c6L, 0x8c4f5573L, 108 0xd542a8f6L, 0x287effc3L, 0xac6732c6L, 0x8c4f5573L,
109 0x695b27b0L, 0xbbca58c8L, 0xe1ffa35dL, 0xb8f011a0L, 109 0x695b27b0L, 0xbbca58c8L, 0xe1ffa35dL, 0xb8f011a0L,
110 0x10fa3d98L, 0xfd2183b8L, 0x4afcb56cL, 0x2dd1d35bL, 110 0x10fa3d98L, 0xfd2183b8L, 0x4afcb56cL, 0x2dd1d35bL,
111 0x9a53e479L, 0xb6f84565L, 0xd28e49bcL, 0x4bfb9790L, 111 0x9a53e479L, 0xb6f84565L, 0xd28e49bcL, 0x4bfb9790L,
112 0xe1ddf2daL, 0xa4cb7e33L, 0x62fb1341L, 0xcee4c6e8L, 112 0xe1ddf2daL, 0xa4cb7e33L, 0x62fb1341L, 0xcee4c6e8L,
113 0xef20cadaL, 0x36774c01L, 0xd07e9efeL, 0x2bf11fb4L, 113 0xef20cadaL, 0x36774c01L, 0xd07e9efeL, 0x2bf11fb4L,
114 0x95dbda4dL, 0xae909198L, 0xeaad8e71L, 0x6b93d5a0L, 114 0x95dbda4dL, 0xae909198L, 0xeaad8e71L, 0x6b93d5a0L,
115 0xd08ed1d0L, 0xafc725e0L, 0x8e3c5b2fL, 0x8e7594b7L, 115 0xd08ed1d0L, 0xafc725e0L, 0x8e3c5b2fL, 0x8e7594b7L,
116 0x8ff6e2fbL, 0xf2122b64L, 0x8888b812L, 0x900df01cL, 116 0x8ff6e2fbL, 0xf2122b64L, 0x8888b812L, 0x900df01cL,
117 0x4fad5ea0L, 0x688fc31cL, 0xd1cff191L, 0xb3a8c1adL, 117 0x4fad5ea0L, 0x688fc31cL, 0xd1cff191L, 0xb3a8c1adL,
118 0x2f2f2218L, 0xbe0e1777L, 0xea752dfeL, 0x8b021fa1L, 118 0x2f2f2218L, 0xbe0e1777L, 0xea752dfeL, 0x8b021fa1L,
119 0xe5a0cc0fL, 0xb56f74e8L, 0x18acf3d6L, 0xce89e299L, 119 0xe5a0cc0fL, 0xb56f74e8L, 0x18acf3d6L, 0xce89e299L,
120 0xb4a84fe0L, 0xfd13e0b7L, 0x7cc43b81L, 0xd2ada8d9L, 120 0xb4a84fe0L, 0xfd13e0b7L, 0x7cc43b81L, 0xd2ada8d9L,
121 0x165fa266L, 0x80957705L, 0x93cc7314L, 0x211a1477L, 121 0x165fa266L, 0x80957705L, 0x93cc7314L, 0x211a1477L,
122 0xe6ad2065L, 0x77b5fa86L, 0xc75442f5L, 0xfb9d35cfL, 122 0xe6ad2065L, 0x77b5fa86L, 0xc75442f5L, 0xfb9d35cfL,
123 0xebcdaf0cL, 0x7b3e89a0L, 0xd6411bd3L, 0xae1e7e49L, 123 0xebcdaf0cL, 0x7b3e89a0L, 0xd6411bd3L, 0xae1e7e49L,
124 0x00250e2dL, 0x2071b35eL, 0x226800bbL, 0x57b8e0afL, 124 0x00250e2dL, 0x2071b35eL, 0x226800bbL, 0x57b8e0afL,
125 0x2464369bL, 0xf009b91eL, 0x5563911dL, 0x59dfa6aaL, 125 0x2464369bL, 0xf009b91eL, 0x5563911dL, 0x59dfa6aaL,
126 0x78c14389L, 0xd95a537fL, 0x207d5ba2L, 0x02e5b9c5L, 126 0x78c14389L, 0xd95a537fL, 0x207d5ba2L, 0x02e5b9c5L,
127 0x83260376L, 0x6295cfa9L, 0x11c81968L, 0x4e734a41L, 127 0x83260376L, 0x6295cfa9L, 0x11c81968L, 0x4e734a41L,
128 0xb3472dcaL, 0x7b14a94aL, 0x1b510052L, 0x9a532915L, 128 0xb3472dcaL, 0x7b14a94aL, 0x1b510052L, 0x9a532915L,
129 0xd60f573fL, 0xbc9bc6e4L, 0x2b60a476L, 0x81e67400L, 129 0xd60f573fL, 0xbc9bc6e4L, 0x2b60a476L, 0x81e67400L,
130 0x08ba6fb5L, 0x571be91fL, 0xf296ec6bL, 0x2a0dd915L, 130 0x08ba6fb5L, 0x571be91fL, 0xf296ec6bL, 0x2a0dd915L,
131 0xb6636521L, 0xe7b9f9b6L, 0xff34052eL, 0xc5855664L, 131 0xb6636521L, 0xe7b9f9b6L, 0xff34052eL, 0xc5855664L,
132 0x53b02d5dL, 0xa99f8fa1L, 0x08ba4799L, 0x6e85076aL, 132 0x53b02d5dL, 0xa99f8fa1L, 0x08ba4799L, 0x6e85076aL,
133 0x4b7a70e9L, 0xb5b32944L, 0xdb75092eL, 0xc4192623L, 133 0x4b7a70e9L, 0xb5b32944L, 0xdb75092eL, 0xc4192623L,
134 0xad6ea6b0L, 0x49a7df7dL, 0x9cee60b8L, 0x8fedb266L, 134 0xad6ea6b0L, 0x49a7df7dL, 0x9cee60b8L, 0x8fedb266L,
135 0xecaa8c71L, 0x699a17ffL, 0x5664526cL, 0xc2b19ee1L, 135 0xecaa8c71L, 0x699a17ffL, 0x5664526cL, 0xc2b19ee1L,
136 0x193602a5L, 0x75094c29L, 0xa0591340L, 0xe4183a3eL, 136 0x193602a5L, 0x75094c29L, 0xa0591340L, 0xe4183a3eL,
137 0x3f54989aL, 0x5b429d65L, 0x6b8fe4d6L, 0x99f73fd6L, 137 0x3f54989aL, 0x5b429d65L, 0x6b8fe4d6L, 0x99f73fd6L,
138 0xa1d29c07L, 0xefe830f5L, 0x4d2d38e6L, 0xf0255dc1L, 138 0xa1d29c07L, 0xefe830f5L, 0x4d2d38e6L, 0xf0255dc1L,
139 0x4cdd2086L, 0x8470eb26L, 0x6382e9c6L, 0x021ecc5eL, 139 0x4cdd2086L, 0x8470eb26L, 0x6382e9c6L, 0x021ecc5eL,
140 0x09686b3fL, 0x3ebaefc9L, 0x3c971814L, 0x6b6a70a1L, 140 0x09686b3fL, 0x3ebaefc9L, 0x3c971814L, 0x6b6a70a1L,
141 0x687f3584L, 0x52a0e286L, 0xb79c5305L, 0xaa500737L, 141 0x687f3584L, 0x52a0e286L, 0xb79c5305L, 0xaa500737L,
142 0x3e07841cL, 0x7fdeae5cL, 0x8e7d44ecL, 0x5716f2b8L, 142 0x3e07841cL, 0x7fdeae5cL, 0x8e7d44ecL, 0x5716f2b8L,
143 0xb03ada37L, 0xf0500c0dL, 0xf01c1f04L, 0x0200b3ffL, 143 0xb03ada37L, 0xf0500c0dL, 0xf01c1f04L, 0x0200b3ffL,
144 0xae0cf51aL, 0x3cb574b2L, 0x25837a58L, 0xdc0921bdL, 144 0xae0cf51aL, 0x3cb574b2L, 0x25837a58L, 0xdc0921bdL,
145 0xd19113f9L, 0x7ca92ff6L, 0x94324773L, 0x22f54701L, 145 0xd19113f9L, 0x7ca92ff6L, 0x94324773L, 0x22f54701L,
146 0x3ae5e581L, 0x37c2dadcL, 0xc8b57634L, 0x9af3dda7L, 146 0x3ae5e581L, 0x37c2dadcL, 0xc8b57634L, 0x9af3dda7L,
147 0xa9446146L, 0x0fd0030eL, 0xecc8c73eL, 0xa4751e41L, 147 0xa9446146L, 0x0fd0030eL, 0xecc8c73eL, 0xa4751e41L,
148 0xe238cd99L, 0x3bea0e2fL, 0x3280bba1L, 0x183eb331L, 148 0xe238cd99L, 0x3bea0e2fL, 0x3280bba1L, 0x183eb331L,
149 0x4e548b38L, 0x4f6db908L, 0x6f420d03L, 0xf60a04bfL, 149 0x4e548b38L, 0x4f6db908L, 0x6f420d03L, 0xf60a04bfL,
150 0x2cb81290L, 0x24977c79L, 0x5679b072L, 0xbcaf89afL, 150 0x2cb81290L, 0x24977c79L, 0x5679b072L, 0xbcaf89afL,
151 0xde9a771fL, 0xd9930810L, 0xb38bae12L, 0xdccf3f2eL, 151 0xde9a771fL, 0xd9930810L, 0xb38bae12L, 0xdccf3f2eL,
152 0x5512721fL, 0x2e6b7124L, 0x501adde6L, 0x9f84cd87L, 152 0x5512721fL, 0x2e6b7124L, 0x501adde6L, 0x9f84cd87L,
153 0x7a584718L, 0x7408da17L, 0xbc9f9abcL, 0xe94b7d8cL, 153 0x7a584718L, 0x7408da17L, 0xbc9f9abcL, 0xe94b7d8cL,
154 0xec7aec3aL, 0xdb851dfaL, 0x63094366L, 0xc464c3d2L, 154 0xec7aec3aL, 0xdb851dfaL, 0x63094366L, 0xc464c3d2L,
155 0xef1c1847L, 0x3215d908L, 0xdd433b37L, 0x24c2ba16L, 155 0xef1c1847L, 0x3215d908L, 0xdd433b37L, 0x24c2ba16L,
156 0x12a14d43L, 0x2a65c451L, 0x50940002L, 0x133ae4ddL, 156 0x12a14d43L, 0x2a65c451L, 0x50940002L, 0x133ae4ddL,
157 0x71dff89eL, 0x10314e55L, 0x81ac77d6L, 0x5f11199bL, 157 0x71dff89eL, 0x10314e55L, 0x81ac77d6L, 0x5f11199bL,
158 0x043556f1L, 0xd7a3c76bL, 0x3c11183bL, 0x5924a509L, 158 0x043556f1L, 0xd7a3c76bL, 0x3c11183bL, 0x5924a509L,
159 0xf28fe6edL, 0x97f1fbfaL, 0x9ebabf2cL, 0x1e153c6eL, 159 0xf28fe6edL, 0x97f1fbfaL, 0x9ebabf2cL, 0x1e153c6eL,
160 0x86e34570L, 0xeae96fb1L, 0x860e5e0aL, 0x5a3e2ab3L, 160 0x86e34570L, 0xeae96fb1L, 0x860e5e0aL, 0x5a3e2ab3L,
161 0x771fe71cL, 0x4e3d06faL, 0x2965dcb9L, 0x99e71d0fL, 161 0x771fe71cL, 0x4e3d06faL, 0x2965dcb9L, 0x99e71d0fL,
162 0x803e89d6L, 0x5266c825L, 0x2e4cc978L, 0x9c10b36aL, 162 0x803e89d6L, 0x5266c825L, 0x2e4cc978L, 0x9c10b36aL,
163 0xc6150ebaL, 0x94e2ea78L, 0xa5fc3c53L, 0x1e0a2df4L, 163 0xc6150ebaL, 0x94e2ea78L, 0xa5fc3c53L, 0x1e0a2df4L,
164 0xf2f74ea7L, 0x361d2b3dL, 0x1939260fL, 0x19c27960L, 164 0xf2f74ea7L, 0x361d2b3dL, 0x1939260fL, 0x19c27960L,
165 0x5223a708L, 0xf71312b6L, 0xebadfe6eL, 0xeac31f66L, 165 0x5223a708L, 0xf71312b6L, 0xebadfe6eL, 0xeac31f66L,
166 0xe3bc4595L, 0xa67bc883L, 0xb17f37d1L, 0x018cff28L, 166 0xe3bc4595L, 0xa67bc883L, 0xb17f37d1L, 0x018cff28L,
167 0xc332ddefL, 0xbe6c5aa5L, 0x65582185L, 0x68ab9802L, 167 0xc332ddefL, 0xbe6c5aa5L, 0x65582185L, 0x68ab9802L,
168 0xeecea50fL, 0xdb2f953bL, 0x2aef7dadL, 0x5b6e2f84L, 168 0xeecea50fL, 0xdb2f953bL, 0x2aef7dadL, 0x5b6e2f84L,
169 0x1521b628L, 0x29076170L, 0xecdd4775L, 0x619f1510L, 169 0x1521b628L, 0x29076170L, 0xecdd4775L, 0x619f1510L,
170 0x13cca830L, 0xeb61bd96L, 0x0334fe1eL, 0xaa0363cfL, 170 0x13cca830L, 0xeb61bd96L, 0x0334fe1eL, 0xaa0363cfL,
171 0xb5735c90L, 0x4c70a239L, 0xd59e9e0bL, 0xcbaade14L, 171 0xb5735c90L, 0x4c70a239L, 0xd59e9e0bL, 0xcbaade14L,
172 0xeecc86bcL, 0x60622ca7L, 0x9cab5cabL, 0xb2f3846eL, 172 0xeecc86bcL, 0x60622ca7L, 0x9cab5cabL, 0xb2f3846eL,
173 0x648b1eafL, 0x19bdf0caL, 0xa02369b9L, 0x655abb50L, 173 0x648b1eafL, 0x19bdf0caL, 0xa02369b9L, 0x655abb50L,
174 0x40685a32L, 0x3c2ab4b3L, 0x319ee9d5L, 0xc021b8f7L, 174 0x40685a32L, 0x3c2ab4b3L, 0x319ee9d5L, 0xc021b8f7L,
175 0x9b540b19L, 0x875fa099L, 0x95f7997eL, 0x623d7da8L, 175 0x9b540b19L, 0x875fa099L, 0x95f7997eL, 0x623d7da8L,
176 0xf837889aL, 0x97e32d77L, 0x11ed935fL, 0x16681281L, 176 0xf837889aL, 0x97e32d77L, 0x11ed935fL, 0x16681281L,
177 0x0e358829L, 0xc7e61fd6L, 0x96dedfa1L, 0x7858ba99L, 177 0x0e358829L, 0xc7e61fd6L, 0x96dedfa1L, 0x7858ba99L,
178 0x57f584a5L, 0x1b227263L, 0x9b83c3ffL, 0x1ac24696L, 178 0x57f584a5L, 0x1b227263L, 0x9b83c3ffL, 0x1ac24696L,
179 0xcdb30aebL, 0x532e3054L, 0x8fd948e4L, 0x6dbc3128L, 179 0xcdb30aebL, 0x532e3054L, 0x8fd948e4L, 0x6dbc3128L,
180 0x58ebf2efL, 0x34c6ffeaL, 0xfe28ed61L, 0xee7c3c73L, 180 0x58ebf2efL, 0x34c6ffeaL, 0xfe28ed61L, 0xee7c3c73L,
181 0x5d4a14d9L, 0xe864b7e3L, 0x42105d14L, 0x203e13e0L, 181 0x5d4a14d9L, 0xe864b7e3L, 0x42105d14L, 0x203e13e0L,
182 0x45eee2b6L, 0xa3aaabeaL, 0xdb6c4f15L, 0xfacb4fd0L, 182 0x45eee2b6L, 0xa3aaabeaL, 0xdb6c4f15L, 0xfacb4fd0L,
183 0xc742f442L, 0xef6abbb5L, 0x654f3b1dL, 0x41cd2105L, 183 0xc742f442L, 0xef6abbb5L, 0x654f3b1dL, 0x41cd2105L,
184 0xd81e799eL, 0x86854dc7L, 0xe44b476aL, 0x3d816250L, 184 0xd81e799eL, 0x86854dc7L, 0xe44b476aL, 0x3d816250L,
185 0xcf62a1f2L, 0x5b8d2646L, 0xfc8883a0L, 0xc1c7b6a3L, 185 0xcf62a1f2L, 0x5b8d2646L, 0xfc8883a0L, 0xc1c7b6a3L,
186 0x7f1524c3L, 0x69cb7492L, 0x47848a0bL, 0x5692b285L, 186 0x7f1524c3L, 0x69cb7492L, 0x47848a0bL, 0x5692b285L,
187 0x095bbf00L, 0xad19489dL, 0x1462b174L, 0x23820e00L, 187 0x095bbf00L, 0xad19489dL, 0x1462b174L, 0x23820e00L,
188 0x58428d2aL, 0x0c55f5eaL, 0x1dadf43eL, 0x233f7061L, 188 0x58428d2aL, 0x0c55f5eaL, 0x1dadf43eL, 0x233f7061L,
189 0x3372f092L, 0x8d937e41L, 0xd65fecf1L, 0x6c223bdbL, 189 0x3372f092L, 0x8d937e41L, 0xd65fecf1L, 0x6c223bdbL,
190 0x7cde3759L, 0xcbee7460L, 0x4085f2a7L, 0xce77326eL, 190 0x7cde3759L, 0xcbee7460L, 0x4085f2a7L, 0xce77326eL,
191 0xa6078084L, 0x19f8509eL, 0xe8efd855L, 0x61d99735L, 191 0xa6078084L, 0x19f8509eL, 0xe8efd855L, 0x61d99735L,
192 0xa969a7aaL, 0xc50c06c2L, 0x5a04abfcL, 0x800bcadcL, 192 0xa969a7aaL, 0xc50c06c2L, 0x5a04abfcL, 0x800bcadcL,
193 0x9e447a2eL, 0xc3453484L, 0xfdd56705L, 0x0e1e9ec9L, 193 0x9e447a2eL, 0xc3453484L, 0xfdd56705L, 0x0e1e9ec9L,
194 0xdb73dbd3L, 0x105588cdL, 0x675fda79L, 0xe3674340L, 194 0xdb73dbd3L, 0x105588cdL, 0x675fda79L, 0xe3674340L,
195 0xc5c43465L, 0x713e38d8L, 0x3d28f89eL, 0xf16dff20L, 195 0xc5c43465L, 0x713e38d8L, 0x3d28f89eL, 0xf16dff20L,
196 0x153e21e7L, 0x8fb03d4aL, 0xe6e39f2bL, 0xdb83adf7L, 196 0x153e21e7L, 0x8fb03d4aL, 0xe6e39f2bL, 0xdb83adf7L,
197 0xe93d5a68L, 0x948140f7L, 0xf64c261cL, 0x94692934L, 197 0xe93d5a68L, 0x948140f7L, 0xf64c261cL, 0x94692934L,
198 0x411520f7L, 0x7602d4f7L, 0xbcf46b2eL, 0xd4a20068L, 198 0x411520f7L, 0x7602d4f7L, 0xbcf46b2eL, 0xd4a20068L,
199 0xd4082471L, 0x3320f46aL, 0x43b7d4b7L, 0x500061afL, 199 0xd4082471L, 0x3320f46aL, 0x43b7d4b7L, 0x500061afL,
200 0x1e39f62eL, 0x97244546L, 0x14214f74L, 0xbf8b8840L, 200 0x1e39f62eL, 0x97244546L, 0x14214f74L, 0xbf8b8840L,
201 0x4d95fc1dL, 0x96b591afL, 0x70f4ddd3L, 0x66a02f45L, 201 0x4d95fc1dL, 0x96b591afL, 0x70f4ddd3L, 0x66a02f45L,
202 0xbfbc09ecL, 0x03bd9785L, 0x7fac6dd0L, 0x31cb8504L, 202 0xbfbc09ecL, 0x03bd9785L, 0x7fac6dd0L, 0x31cb8504L,
203 0x96eb27b3L, 0x55fd3941L, 0xda2547e6L, 0xabca0a9aL, 203 0x96eb27b3L, 0x55fd3941L, 0xda2547e6L, 0xabca0a9aL,
204 0x28507825L, 0x530429f4L, 0x0a2c86daL, 0xe9b66dfbL, 204 0x28507825L, 0x530429f4L, 0x0a2c86daL, 0xe9b66dfbL,
205 0x68dc1462L, 0xd7486900L, 0x680ec0a4L, 0x27a18deeL, 205 0x68dc1462L, 0xd7486900L, 0x680ec0a4L, 0x27a18deeL,
206 0x4f3ffea2L, 0xe887ad8cL, 0xb58ce006L, 0x7af4d6b6L, 206 0x4f3ffea2L, 0xe887ad8cL, 0xb58ce006L, 0x7af4d6b6L,
207 0xaace1e7cL, 0xd3375fecL, 0xce78a399L, 0x406b2a42L, 207 0xaace1e7cL, 0xd3375fecL, 0xce78a399L, 0x406b2a42L,
208 0x20fe9e35L, 0xd9f385b9L, 0xee39d7abL, 0x3b124e8bL, 208 0x20fe9e35L, 0xd9f385b9L, 0xee39d7abL, 0x3b124e8bL,
209 0x1dc9faf7L, 0x4b6d1856L, 0x26a36631L, 0xeae397b2L, 209 0x1dc9faf7L, 0x4b6d1856L, 0x26a36631L, 0xeae397b2L,
210 0x3a6efa74L, 0xdd5b4332L, 0x6841e7f7L, 0xca7820fbL, 210 0x3a6efa74L, 0xdd5b4332L, 0x6841e7f7L, 0xca7820fbL,
211 0xfb0af54eL, 0xd8feb397L, 0x454056acL, 0xba489527L, 211 0xfb0af54eL, 0xd8feb397L, 0x454056acL, 0xba489527L,
212 0x55533a3aL, 0x20838d87L, 0xfe6ba9b7L, 0xd096954bL, 212 0x55533a3aL, 0x20838d87L, 0xfe6ba9b7L, 0xd096954bL,
213 0x55a867bcL, 0xa1159a58L, 0xcca92963L, 0x99e1db33L, 213 0x55a867bcL, 0xa1159a58L, 0xcca92963L, 0x99e1db33L,
214 0xa62a4a56L, 0x3f3125f9L, 0x5ef47e1cL, 0x9029317cL, 214 0xa62a4a56L, 0x3f3125f9L, 0x5ef47e1cL, 0x9029317cL,
215 0xfdf8e802L, 0x04272f70L, 0x80bb155cL, 0x05282ce3L, 215 0xfdf8e802L, 0x04272f70L, 0x80bb155cL, 0x05282ce3L,
216 0x95c11548L, 0xe4c66d22L, 0x48c1133fL, 0xc70f86dcL, 216 0x95c11548L, 0xe4c66d22L, 0x48c1133fL, 0xc70f86dcL,
217 0x07f9c9eeL, 0x41041f0fL, 0x404779a4L, 0x5d886e17L, 217 0x07f9c9eeL, 0x41041f0fL, 0x404779a4L, 0x5d886e17L,
218 0x325f51ebL, 0xd59bc0d1L, 0xf2bcc18fL, 0x41113564L, 218 0x325f51ebL, 0xd59bc0d1L, 0xf2bcc18fL, 0x41113564L,
219 0x257b7834L, 0x602a9c60L, 0xdff8e8a3L, 0x1f636c1bL, 219 0x257b7834L, 0x602a9c60L, 0xdff8e8a3L, 0x1f636c1bL,
220 0x0e12b4c2L, 0x02e1329eL, 0xaf664fd1L, 0xcad18115L, 220 0x0e12b4c2L, 0x02e1329eL, 0xaf664fd1L, 0xcad18115L,
221 0x6b2395e0L, 0x333e92e1L, 0x3b240b62L, 0xeebeb922L, 221 0x6b2395e0L, 0x333e92e1L, 0x3b240b62L, 0xeebeb922L,
222 0x85b2a20eL, 0xe6ba0d99L, 0xde720c8cL, 0x2da2f728L, 222 0x85b2a20eL, 0xe6ba0d99L, 0xde720c8cL, 0x2da2f728L,
223 0xd0127845L, 0x95b794fdL, 0x647d0862L, 0xe7ccf5f0L, 223 0xd0127845L, 0x95b794fdL, 0x647d0862L, 0xe7ccf5f0L,
224 0x5449a36fL, 0x877d48faL, 0xc39dfd27L, 0xf33e8d1eL, 224 0x5449a36fL, 0x877d48faL, 0xc39dfd27L, 0xf33e8d1eL,
225 0x0a476341L, 0x992eff74L, 0x3a6f6eabL, 0xf4f8fd37L, 225 0x0a476341L, 0x992eff74L, 0x3a6f6eabL, 0xf4f8fd37L,
226 0xa812dc60L, 0xa1ebddf8L, 0x991be14cL, 0xdb6e6b0dL, 226 0xa812dc60L, 0xa1ebddf8L, 0x991be14cL, 0xdb6e6b0dL,
227 0xc67b5510L, 0x6d672c37L, 0x2765d43bL, 0xdcd0e804L, 227 0xc67b5510L, 0x6d672c37L, 0x2765d43bL, 0xdcd0e804L,
228 0xf1290dc7L, 0xcc00ffa3L, 0xb5390f92L, 0x690fed0bL, 228 0xf1290dc7L, 0xcc00ffa3L, 0xb5390f92L, 0x690fed0bL,
229 0x667b9ffbL, 0xcedb7d9cL, 0xa091cf0bL, 0xd9155ea3L, 229 0x667b9ffbL, 0xcedb7d9cL, 0xa091cf0bL, 0xd9155ea3L,
230 0xbb132f88L, 0x515bad24L, 0x7b9479bfL, 0x763bd6ebL, 230 0xbb132f88L, 0x515bad24L, 0x7b9479bfL, 0x763bd6ebL,
231 0x37392eb3L, 0xcc115979L, 0x8026e297L, 0xf42e312dL, 231 0x37392eb3L, 0xcc115979L, 0x8026e297L, 0xf42e312dL,
232 0x6842ada7L, 0xc66a2b3bL, 0x12754cccL, 0x782ef11cL, 232 0x6842ada7L, 0xc66a2b3bL, 0x12754cccL, 0x782ef11cL,
233 0x6a124237L, 0xb79251e7L, 0x06a1bbe6L, 0x4bfb6350L, 233 0x6a124237L, 0xb79251e7L, 0x06a1bbe6L, 0x4bfb6350L,
234 0x1a6b1018L, 0x11caedfaL, 0x3d25bdd8L, 0xe2e1c3c9L, 234 0x1a6b1018L, 0x11caedfaL, 0x3d25bdd8L, 0xe2e1c3c9L,
235 0x44421659L, 0x0a121386L, 0xd90cec6eL, 0xd5abea2aL, 235 0x44421659L, 0x0a121386L, 0xd90cec6eL, 0xd5abea2aL,
236 0x64af674eL, 0xda86a85fL, 0xbebfe988L, 0x64e4c3feL, 236 0x64af674eL, 0xda86a85fL, 0xbebfe988L, 0x64e4c3feL,
237 0x9dbc8057L, 0xf0f7c086L, 0x60787bf8L, 0x6003604dL, 237 0x9dbc8057L, 0xf0f7c086L, 0x60787bf8L, 0x6003604dL,
238 0xd1fd8346L, 0xf6381fb0L, 0x7745ae04L, 0xd736fcccL, 238 0xd1fd8346L, 0xf6381fb0L, 0x7745ae04L, 0xd736fcccL,
239 0x83426b33L, 0xf01eab71L, 0xb0804187L, 0x3c005e5fL, 239 0x83426b33L, 0xf01eab71L, 0xb0804187L, 0x3c005e5fL,
240 0x77a057beL, 0xbde8ae24L, 0x55464299L, 0xbf582e61L, 240 0x77a057beL, 0xbde8ae24L, 0x55464299L, 0xbf582e61L,
241 0x4e58f48fL, 0xf2ddfda2L, 0xf474ef38L, 0x8789bdc2L, 241 0x4e58f48fL, 0xf2ddfda2L, 0xf474ef38L, 0x8789bdc2L,
242 0x5366f9c3L, 0xc8b38e74L, 0xb475f255L, 0x46fcd9b9L, 242 0x5366f9c3L, 0xc8b38e74L, 0xb475f255L, 0x46fcd9b9L,
243 0x7aeb2661L, 0x8b1ddf84L, 0x846a0e79L, 0x915f95e2L, 243 0x7aeb2661L, 0x8b1ddf84L, 0x846a0e79L, 0x915f95e2L,
244 0x466e598eL, 0x20b45770L, 0x8cd55591L, 0xc902de4cL, 244 0x466e598eL, 0x20b45770L, 0x8cd55591L, 0xc902de4cL,
245 0xb90bace1L, 0xbb8205d0L, 0x11a86248L, 0x7574a99eL, 245 0xb90bace1L, 0xbb8205d0L, 0x11a86248L, 0x7574a99eL,
246 0xb77f19b6L, 0xe0a9dc09L, 0x662d09a1L, 0xc4324633L, 246 0xb77f19b6L, 0xe0a9dc09L, 0x662d09a1L, 0xc4324633L,
247 0xe85a1f02L, 0x09f0be8cL, 0x4a99a025L, 0x1d6efe10L, 247 0xe85a1f02L, 0x09f0be8cL, 0x4a99a025L, 0x1d6efe10L,
248 0x1ab93d1dL, 0x0ba5a4dfL, 0xa186f20fL, 0x2868f169L, 248 0x1ab93d1dL, 0x0ba5a4dfL, 0xa186f20fL, 0x2868f169L,
249 0xdcb7da83L, 0x573906feL, 0xa1e2ce9bL, 0x4fcd7f52L, 249 0xdcb7da83L, 0x573906feL, 0xa1e2ce9bL, 0x4fcd7f52L,
250 0x50115e01L, 0xa70683faL, 0xa002b5c4L, 0x0de6d027L, 250 0x50115e01L, 0xa70683faL, 0xa002b5c4L, 0x0de6d027L,
251 0x9af88c27L, 0x773f8641L, 0xc3604c06L, 0x61a806b5L, 251 0x9af88c27L, 0x773f8641L, 0xc3604c06L, 0x61a806b5L,
252 0xf0177a28L, 0xc0f586e0L, 0x006058aaL, 0x30dc7d62L, 252 0xf0177a28L, 0xc0f586e0L, 0x006058aaL, 0x30dc7d62L,
253 0x11e69ed7L, 0x2338ea63L, 0x53c2dd94L, 0xc2c21634L, 253 0x11e69ed7L, 0x2338ea63L, 0x53c2dd94L, 0xc2c21634L,
254 0xbbcbee56L, 0x90bcb6deL, 0xebfc7da1L, 0xce591d76L, 254 0xbbcbee56L, 0x90bcb6deL, 0xebfc7da1L, 0xce591d76L,
255 0x6f05e409L, 0x4b7c0188L, 0x39720a3dL, 0x7c927c24L, 255 0x6f05e409L, 0x4b7c0188L, 0x39720a3dL, 0x7c927c24L,
256 0x86e3725fL, 0x724d9db9L, 0x1ac15bb4L, 0xd39eb8fcL, 256 0x86e3725fL, 0x724d9db9L, 0x1ac15bb4L, 0xd39eb8fcL,
257 0xed545578L, 0x08fca5b5L, 0xd83d7cd3L, 0x4dad0fc4L, 257 0xed545578L, 0x08fca5b5L, 0xd83d7cd3L, 0x4dad0fc4L,
258 0x1e50ef5eL, 0xb161e6f8L, 0xa28514d9L, 0x6c51133cL, 258 0x1e50ef5eL, 0xb161e6f8L, 0xa28514d9L, 0x6c51133cL,
259 0x6fd5c7e7L, 0x56e14ec4L, 0x362abfceL, 0xddc6c837L, 259 0x6fd5c7e7L, 0x56e14ec4L, 0x362abfceL, 0xddc6c837L,
260 0xd79a3234L, 0x92638212L, 0x670efa8eL, 0x406000e0L, 260 0xd79a3234L, 0x92638212L, 0x670efa8eL, 0x406000e0L,
261 0x3a39ce37L, 0xd3faf5cfL, 0xabc27737L, 0x5ac52d1bL, 261 0x3a39ce37L, 0xd3faf5cfL, 0xabc27737L, 0x5ac52d1bL,
262 0x5cb0679eL, 0x4fa33742L, 0xd3822740L, 0x99bc9bbeL, 262 0x5cb0679eL, 0x4fa33742L, 0xd3822740L, 0x99bc9bbeL,
263 0xd5118e9dL, 0xbf0f7315L, 0xd62d1c7eL, 0xc700c47bL, 263 0xd5118e9dL, 0xbf0f7315L, 0xd62d1c7eL, 0xc700c47bL,
264 0xb78c1b6bL, 0x21a19045L, 0xb26eb1beL, 0x6a366eb4L, 264 0xb78c1b6bL, 0x21a19045L, 0xb26eb1beL, 0x6a366eb4L,
265 0x5748ab2fL, 0xbc946e79L, 0xc6a376d2L, 0x6549c2c8L, 265 0x5748ab2fL, 0xbc946e79L, 0xc6a376d2L, 0x6549c2c8L,
266 0x530ff8eeL, 0x468dde7dL, 0xd5730a1dL, 0x4cd04dc6L, 266 0x530ff8eeL, 0x468dde7dL, 0xd5730a1dL, 0x4cd04dc6L,
267 0x2939bbdbL, 0xa9ba4650L, 0xac9526e8L, 0xbe5ee304L, 267 0x2939bbdbL, 0xa9ba4650L, 0xac9526e8L, 0xbe5ee304L,
268 0xa1fad5f0L, 0x6a2d519aL, 0x63ef8ce2L, 0x9a86ee22L, 268 0xa1fad5f0L, 0x6a2d519aL, 0x63ef8ce2L, 0x9a86ee22L,
269 0xc089c2b8L, 0x43242ef6L, 0xa51e03aaL, 0x9cf2d0a4L, 269 0xc089c2b8L, 0x43242ef6L, 0xa51e03aaL, 0x9cf2d0a4L,
270 0x83c061baL, 0x9be96a4dL, 0x8fe51550L, 0xba645bd6L, 270 0x83c061baL, 0x9be96a4dL, 0x8fe51550L, 0xba645bd6L,
271 0x2826a2f9L, 0xa73a3ae1L, 0x4ba99586L, 0xef5562e9L, 271 0x2826a2f9L, 0xa73a3ae1L, 0x4ba99586L, 0xef5562e9L,
272 0xc72fefd3L, 0xf752f7daL, 0x3f046f69L, 0x77fa0a59L, 272 0xc72fefd3L, 0xf752f7daL, 0x3f046f69L, 0x77fa0a59L,
273 0x80e4a915L, 0x87b08601L, 0x9b09e6adL, 0x3b3ee593L, 273 0x80e4a915L, 0x87b08601L, 0x9b09e6adL, 0x3b3ee593L,
274 0xe990fd5aL, 0x9e34d797L, 0x2cf0b7d9L, 0x022b8b51L, 274 0xe990fd5aL, 0x9e34d797L, 0x2cf0b7d9L, 0x022b8b51L,
275 0x96d5ac3aL, 0x017da67dL, 0xd1cf3ed6L, 0x7c7d2d28L, 275 0x96d5ac3aL, 0x017da67dL, 0xd1cf3ed6L, 0x7c7d2d28L,
276 0x1f9f25cfL, 0xadf2b89bL, 0x5ad6b472L, 0x5a88f54cL, 276 0x1f9f25cfL, 0xadf2b89bL, 0x5ad6b472L, 0x5a88f54cL,
277 0xe029ac71L, 0xe019a5e6L, 0x47b0acfdL, 0xed93fa9bL, 277 0xe029ac71L, 0xe019a5e6L, 0x47b0acfdL, 0xed93fa9bL,
278 0xe8d3c48dL, 0x283b57ccL, 0xf8d56629L, 0x79132e28L, 278 0xe8d3c48dL, 0x283b57ccL, 0xf8d56629L, 0x79132e28L,
279 0x785f0191L, 0xed756055L, 0xf7960e44L, 0xe3d35e8cL, 279 0x785f0191L, 0xed756055L, 0xf7960e44L, 0xe3d35e8cL,
280 0x15056dd4L, 0x88f46dbaL, 0x03a16125L, 0x0564f0bdL, 280 0x15056dd4L, 0x88f46dbaL, 0x03a16125L, 0x0564f0bdL,
281 0xc3eb9e15L, 0x3c9057a2L, 0x97271aecL, 0xa93a072aL, 281 0xc3eb9e15L, 0x3c9057a2L, 0x97271aecL, 0xa93a072aL,
282 0x1b3f6d9bL, 0x1e6321f5L, 0xf59c66fbL, 0x26dcf319L, 282 0x1b3f6d9bL, 0x1e6321f5L, 0xf59c66fbL, 0x26dcf319L,
283 0x7533d928L, 0xb155fdf5L, 0x03563482L, 0x8aba3cbbL, 283 0x7533d928L, 0xb155fdf5L, 0x03563482L, 0x8aba3cbbL,
284 0x28517711L, 0xc20ad9f8L, 0xabcc5167L, 0xccad925fL, 284 0x28517711L, 0xc20ad9f8L, 0xabcc5167L, 0xccad925fL,
285 0x4de81751L, 0x3830dc8eL, 0x379d5862L, 0x9320f991L, 285 0x4de81751L, 0x3830dc8eL, 0x379d5862L, 0x9320f991L,
286 0xea7a90c2L, 0xfb3e7bceL, 0x5121ce64L, 0x774fbe32L, 286 0xea7a90c2L, 0xfb3e7bceL, 0x5121ce64L, 0x774fbe32L,
287 0xa8b6e37eL, 0xc3293d46L, 0x48de5369L, 0x6413e680L, 287 0xa8b6e37eL, 0xc3293d46L, 0x48de5369L, 0x6413e680L,
288 0xa2ae0810L, 0xdd6db224L, 0x69852dfdL, 0x09072166L, 288 0xa2ae0810L, 0xdd6db224L, 0x69852dfdL, 0x09072166L,
289 0xb39a460aL, 0x6445c0ddL, 0x586cdecfL, 0x1c20c8aeL, 289 0xb39a460aL, 0x6445c0ddL, 0x586cdecfL, 0x1c20c8aeL,
290 0x5bbef7ddL, 0x1b588d40L, 0xccd2017fL, 0x6bb4e3bbL, 290 0x5bbef7ddL, 0x1b588d40L, 0xccd2017fL, 0x6bb4e3bbL,
291 0xdda26a7eL, 0x3a59ff45L, 0x3e350a44L, 0xbcb4cdd5L, 291 0xdda26a7eL, 0x3a59ff45L, 0x3e350a44L, 0xbcb4cdd5L,
292 0x72eacea8L, 0xfa6484bbL, 0x8d6612aeL, 0xbf3c6f47L, 292 0x72eacea8L, 0xfa6484bbL, 0x8d6612aeL, 0xbf3c6f47L,
293 0xd29be463L, 0x542f5d9eL, 0xaec2771bL, 0xf64e6370L, 293 0xd29be463L, 0x542f5d9eL, 0xaec2771bL, 0xf64e6370L,
294 0x740e0d8dL, 0xe75b1357L, 0xf8721671L, 0xaf537d5dL, 294 0x740e0d8dL, 0xe75b1357L, 0xf8721671L, 0xaf537d5dL,
295 0x4040cb08L, 0x4eb4e2ccL, 0x34d2466aL, 0x0115af84L, 295 0x4040cb08L, 0x4eb4e2ccL, 0x34d2466aL, 0x0115af84L,
296 0xe1b00428L, 0x95983a1dL, 0x06b89fb4L, 0xce6ea048L, 296 0xe1b00428L, 0x95983a1dL, 0x06b89fb4L, 0xce6ea048L,
297 0x6f3f3b82L, 0x3520ab82L, 0x011a1d4bL, 0x277227f8L, 297 0x6f3f3b82L, 0x3520ab82L, 0x011a1d4bL, 0x277227f8L,
298 0x611560b1L, 0xe7933fdcL, 0xbb3a792bL, 0x344525bdL, 298 0x611560b1L, 0xe7933fdcL, 0xbb3a792bL, 0x344525bdL,
299 0xa08839e1L, 0x51ce794bL, 0x2f32c9b7L, 0xa01fbac9L, 299 0xa08839e1L, 0x51ce794bL, 0x2f32c9b7L, 0xa01fbac9L,
300 0xe01cc87eL, 0xbcc7d1f6L, 0xcf0111c3L, 0xa1e8aac7L, 300 0xe01cc87eL, 0xbcc7d1f6L, 0xcf0111c3L, 0xa1e8aac7L,
301 0x1a908749L, 0xd44fbd9aL, 0xd0dadecbL, 0xd50ada38L, 301 0x1a908749L, 0xd44fbd9aL, 0xd0dadecbL, 0xd50ada38L,
302 0x0339c32aL, 0xc6913667L, 0x8df9317cL, 0xe0b12b4fL, 302 0x0339c32aL, 0xc6913667L, 0x8df9317cL, 0xe0b12b4fL,
303 0xf79e59b7L, 0x43f5bb3aL, 0xf2d519ffL, 0x27d9459cL, 303 0xf79e59b7L, 0x43f5bb3aL, 0xf2d519ffL, 0x27d9459cL,
304 0xbf97222cL, 0x15e6fc2aL, 0x0f91fc71L, 0x9b941525L, 304 0xbf97222cL, 0x15e6fc2aL, 0x0f91fc71L, 0x9b941525L,
305 0xfae59361L, 0xceb69cebL, 0xc2a86459L, 0x12baa8d1L, 305 0xfae59361L, 0xceb69cebL, 0xc2a86459L, 0x12baa8d1L,
306 0xb6c1075eL, 0xe3056a0cL, 0x10d25065L, 0xcb03a442L, 306 0xb6c1075eL, 0xe3056a0cL, 0x10d25065L, 0xcb03a442L,
307 0xe0ec6e0eL, 0x1698db3bL, 0x4c98a0beL, 0x3278e964L, 307 0xe0ec6e0eL, 0x1698db3bL, 0x4c98a0beL, 0x3278e964L,
308 0x9f1f9532L, 0xe0d392dfL, 0xd3a0342bL, 0x8971f21eL, 308 0x9f1f9532L, 0xe0d392dfL, 0xd3a0342bL, 0x8971f21eL,
309 0x1b0a7441L, 0x4ba3348cL, 0xc5be7120L, 0xc37632d8L, 309 0x1b0a7441L, 0x4ba3348cL, 0xc5be7120L, 0xc37632d8L,
310 0xdf359f8dL, 0x9b992f2eL, 0xe60b6f47L, 0x0fe3f11dL, 310 0xdf359f8dL, 0x9b992f2eL, 0xe60b6f47L, 0x0fe3f11dL,
311 0xe54cda54L, 0x1edad891L, 0xce6279cfL, 0xcd3e7e6fL, 311 0xe54cda54L, 0x1edad891L, 0xce6279cfL, 0xcd3e7e6fL,
312 0x1618b166L, 0xfd2c1d05L, 0x848fd2c5L, 0xf6fb2299L, 312 0x1618b166L, 0xfd2c1d05L, 0x848fd2c5L, 0xf6fb2299L,
313 0xf523f357L, 0xa6327623L, 0x93a83531L, 0x56cccd02L, 313 0xf523f357L, 0xa6327623L, 0x93a83531L, 0x56cccd02L,
314 0xacf08162L, 0x5a75ebb5L, 0x6e163697L, 0x88d273ccL, 314 0xacf08162L, 0x5a75ebb5L, 0x6e163697L, 0x88d273ccL,
315 0xde966292L, 0x81b949d0L, 0x4c50901bL, 0x71c65614L, 315 0xde966292L, 0x81b949d0L, 0x4c50901bL, 0x71c65614L,
316 0xe6c6c7bdL, 0x327a140aL, 0x45e1d006L, 0xc3f27b9aL, 316 0xe6c6c7bdL, 0x327a140aL, 0x45e1d006L, 0xc3f27b9aL,
317 0xc9aa53fdL, 0x62a80f00L, 0xbb25bfe2L, 0x35bdd2f6L, 317 0xc9aa53fdL, 0x62a80f00L, 0xbb25bfe2L, 0x35bdd2f6L,
318 0x71126905L, 0xb2040222L, 0xb6cbcf7cL, 0xcd769c2bL, 318 0x71126905L, 0xb2040222L, 0xb6cbcf7cL, 0xcd769c2bL,
319 0x53113ec0L, 0x1640e3d3L, 0x38abbd60L, 0x2547adf0L, 319 0x53113ec0L, 0x1640e3d3L, 0x38abbd60L, 0x2547adf0L,
320 0xba38209cL, 0xf746ce76L, 0x77afa1c5L, 0x20756060L, 320 0xba38209cL, 0xf746ce76L, 0x77afa1c5L, 0x20756060L,
321 0x85cbfe4eL, 0x8ae88dd8L, 0x7aaaf9b0L, 0x4cf9aa7eL, 321 0x85cbfe4eL, 0x8ae88dd8L, 0x7aaaf9b0L, 0x4cf9aa7eL,
322 0x1948c25cL, 0x02fb8a8cL, 0x01c36ae4L, 0xd6ebe1f9L, 322 0x1948c25cL, 0x02fb8a8cL, 0x01c36ae4L, 0xd6ebe1f9L,
323 0x90d4f869L, 0xa65cdea0L, 0x3f09252dL, 0xc208e69fL, 323 0x90d4f869L, 0xa65cdea0L, 0x3f09252dL, 0xc208e69fL,
324 0xb74e6132L, 0xce77e25bL, 0x578fdfe3L, 0x3ac372e6L, 324 0xb74e6132L, 0xce77e25bL, 0x578fdfe3L, 0x3ac372e6L,
325 } 325 }
326 }; 326};
327 327
328__END_HIDDEN_DECLS 328__END_HIDDEN_DECLS
diff --git a/src/lib/libcrypto/bf/bf_skey.c b/src/lib/libcrypto/bf/bf_skey.c
index 8191d17d8e..8c214f7428 100644
--- a/src/lib/libcrypto/bf/bf_skey.c
+++ b/src/lib/libcrypto/bf/bf_skey.c
@@ -1,25 +1,25 @@
1/* $OpenBSD: bf_skey.c,v 1.12 2014/06/12 15:49:28 deraadt Exp $ */ 1/* $OpenBSD: bf_skey.c,v 1.13 2022/11/11 12:08: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 *
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
@@ -63,55 +63,58 @@
63#include "bf_locl.h" 63#include "bf_locl.h"
64#include "bf_pi.h" 64#include "bf_pi.h"
65 65
66void BF_set_key(BF_KEY *key, int len, const unsigned char *data) 66void
67 { 67BF_set_key(BF_KEY *key, int len, const unsigned char *data)
68{
68 int i; 69 int i;
69 BF_LONG *p,ri,in[2]; 70 BF_LONG *p, ri, in[2];
70 const unsigned char *d,*end; 71 const unsigned char *d, *end;
71 72
72 73
73 memcpy(key,&bf_init,sizeof(BF_KEY)); 74 memcpy(key, &bf_init, sizeof(BF_KEY));
74 p=key->P; 75 p = key->P;
75 76
76 if (len > ((BF_ROUNDS+2)*4)) len=(BF_ROUNDS+2)*4; 77 if (len > ((BF_ROUNDS + 2)*4))
78 len = (BF_ROUNDS + 2)*4;
77 79
78 d=data; 80 d = data;
79 end= &(data[len]); 81 end = &(data[len]);
80 for (i=0; i<(BF_ROUNDS+2); i++) 82 for (i = 0; i < (BF_ROUNDS + 2); i++) {
81 {
82 ri= *(d++); 83 ri= *(d++);
83 if (d >= end) d=data; 84 if (d >= end)
85 d = data;
84 86
85 ri<<=8; 87 ri <<= 8;
86 ri|= *(d++); 88 ri |= *(d++);
87 if (d >= end) d=data; 89 if (d >= end)
90 d = data;
88 91
89 ri<<=8; 92 ri <<= 8;
90 ri|= *(d++); 93 ri |= *(d++);
91 if (d >= end) d=data; 94 if (d >= end)
95 d = data;
92 96
93 ri<<=8; 97 ri <<= 8;
94 ri|= *(d++); 98 ri |= *(d++);
95 if (d >= end) d=data; 99 if (d >= end)
100 d = data;
96 101
97 p[i]^=ri; 102 p[i]^=ri;
98 } 103 }
99 104
100 in[0]=0L; 105 in[0] = 0L;
101 in[1]=0L; 106 in[1] = 0L;
102 for (i=0; i<(BF_ROUNDS+2); i+=2) 107 for (i = 0; i < (BF_ROUNDS + 2); i += 2) {
103 { 108 BF_encrypt(in, key);
104 BF_encrypt(in,key); 109 p[i ] = in[0];
105 p[i ]=in[0]; 110 p[i + 1] = in[1];
106 p[i+1]=in[1]; 111 }
107 }
108 112
109 p=key->S; 113 p = key->S;
110 for (i=0; i<4*256; i+=2) 114 for (i = 0; i < 4*256; i += 2) {
111 { 115 BF_encrypt(in, key);
112 BF_encrypt(in,key); 116 p[i ] = in[0];
113 p[i ]=in[0]; 117 p[i + 1] = in[1];
114 p[i+1]=in[1];
115 }
116 } 118 }
119}
117 120
diff --git a/src/lib/libcrypto/bf/blowfish.h b/src/lib/libcrypto/bf/blowfish.h
index 260545e6bd..592bd83146 100644
--- a/src/lib/libcrypto/bf/blowfish.h
+++ b/src/lib/libcrypto/bf/blowfish.h
@@ -1,25 +1,25 @@
1/* $OpenBSD: blowfish.h,v 1.15 2021/11/30 18:31:36 tb Exp $ */ 1/* $OpenBSD: blowfish.h,v 1.16 2022/11/11 12:08: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 *
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
@@ -85,23 +85,23 @@ extern "C" {
85#define BF_BLOCK 8 85#define BF_BLOCK 8
86 86
87typedef struct bf_key_st { 87typedef struct bf_key_st {
88 BF_LONG P[BF_ROUNDS+2]; 88 BF_LONG P[BF_ROUNDS + 2];
89 BF_LONG S[4*256]; 89 BF_LONG S[4*256];
90} BF_KEY; 90} BF_KEY;
91 91
92void BF_set_key(BF_KEY *key, int len, const unsigned char *data); 92void BF_set_key(BF_KEY *key, int len, const unsigned char *data);
93 93
94void BF_encrypt(BF_LONG *data,const BF_KEY *key); 94void BF_encrypt(BF_LONG *data, const BF_KEY *key);
95void BF_decrypt(BF_LONG *data,const BF_KEY *key); 95void BF_decrypt(BF_LONG *data, const BF_KEY *key);
96 96
97void BF_ecb_encrypt(const unsigned char *in, unsigned char *out, 97void BF_ecb_encrypt(const unsigned char *in, unsigned char *out,
98 const BF_KEY *key, int enc); 98 const BF_KEY *key, int enc);
99void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, 99void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
100 const BF_KEY *schedule, unsigned char *ivec, int enc); 100 const BF_KEY *schedule, unsigned char *ivec, int enc);
101void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, long length, 101void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, long length,
102 const BF_KEY *schedule, unsigned char *ivec, int *num, int enc); 102 const BF_KEY *schedule, unsigned char *ivec, int *num, int enc);
103void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, long length, 103void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, long length,
104 const BF_KEY *schedule, unsigned char *ivec, int *num); 104 const BF_KEY *schedule, unsigned char *ivec, int *num);
105const char *BF_options(void); 105const char *BF_options(void);
106 106
107#ifdef __cplusplus 107#ifdef __cplusplus