diff options
Diffstat (limited to 'src/lib/libcrypto/des/cbc_cksm.c')
-rw-r--r-- | src/lib/libcrypto/des/cbc_cksm.c | 86 |
1 files changed, 43 insertions, 43 deletions
diff --git a/src/lib/libcrypto/des/cbc_cksm.c b/src/lib/libcrypto/des/cbc_cksm.c index 2c1c4aa839..640c124966 100644 --- a/src/lib/libcrypto/des/cbc_cksm.c +++ b/src/lib/libcrypto/des/cbc_cksm.c | |||
@@ -1,25 +1,25 @@ | |||
1 | /* $OpenBSD: cbc_cksm.c,v 1.8 2022/11/26 16:08:51 tb Exp $ */ | 1 | /* $OpenBSD: cbc_cksm.c,v 1.9 2023/07/08 07:11:07 beck Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
5 | * This package is an SSL implementation written | 5 | * This package is an SSL implementation written |
6 | * by Eric Young (eay@cryptsoft.com). | 6 | * by Eric Young (eay@cryptsoft.com). |
7 | * The implementation was written so as to conform with Netscapes SSL. | 7 | * The implementation was written so as to conform with Netscapes SSL. |
8 | * | 8 | * |
9 | * This library is free for commercial and non-commercial use as long as | 9 | * This library is free for commercial and non-commercial use as long as |
10 | * the following conditions are aheared to. The following conditions | 10 | * the following conditions are aheared to. The following conditions |
11 | * apply to all code found in this distribution, be it the RC4, RSA, | 11 | * apply to all code found in this distribution, be it the RC4, RSA, |
12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation | 12 | * lhash, DES, etc., code; not just the SSL code. The SSL documentation |
13 | * included with this distribution is covered by the same copyright terms | 13 | * included with this distribution is covered by the same copyright terms |
14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com). | 14 | * except that the holder is Tim Hudson (tjh@cryptsoft.com). |
15 | * | 15 | * |
16 | * Copyright remains Eric Young's, and as such any Copyright notices in | 16 | * Copyright remains Eric Young's, and as such any Copyright notices in |
17 | * the code are not to be removed. | 17 | * the code are not to be removed. |
18 | * If this package is used in a product, Eric Young should be given attribution | 18 | * If this package is used in a product, Eric Young should be given attribution |
19 | * as the author of the parts of the library used. | 19 | * as the author of the parts of the library used. |
20 | * This can be in the form of a textual message at program startup or | 20 | * This can be in the form of a textual message at program startup or |
21 | * in documentation (online or textual) provided with the package. | 21 | * in documentation (online or textual) provided with the package. |
22 | * | 22 | * |
23 | * Redistribution and use in source and binary forms, with or without | 23 | * Redistribution and use in source and binary forms, with or without |
24 | * modification, are permitted provided that the following conditions | 24 | * modification, are permitted provided that the following conditions |
25 | * are met: | 25 | * are met: |
@@ -34,10 +34,10 @@ | |||
34 | * Eric Young (eay@cryptsoft.com)" | 34 | * Eric Young (eay@cryptsoft.com)" |
35 | * The word 'cryptographic' can be left out if the rouines from the library | 35 | * The word 'cryptographic' can be left out if the rouines from the library |
36 | * being used are not cryptographic related :-). | 36 | * being used are not cryptographic related :-). |
37 | * 4. If you include any Windows specific code (or a derivative thereof) from | 37 | * 4. If you include any Windows specific code (or a derivative thereof) from |
38 | * the apps directory (application code) you must include an acknowledgement: | 38 | * the apps directory (application code) you must include an acknowledgement: |
39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" | 39 | * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" |
40 | * | 40 | * |
41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND | 41 | * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND |
42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 42 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 43 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
@@ -49,7 +49,7 @@ | |||
49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | 49 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | 50 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
51 | * SUCH DAMAGE. | 51 | * SUCH DAMAGE. |
52 | * | 52 | * |
53 | * The licence and distribution terms for any publically available version or | 53 | * The licence and distribution terms for any publically available version or |
54 | * derivative of this code cannot be changed. i.e. this code cannot simply be | 54 | * derivative of this code cannot be changed. i.e. this code cannot simply be |
55 | * copied and put under another distribution licence | 55 | * copied and put under another distribution licence |
@@ -58,49 +58,49 @@ | |||
58 | 58 | ||
59 | #include "des_local.h" | 59 | #include "des_local.h" |
60 | 60 | ||
61 | DES_LONG DES_cbc_cksum(const unsigned char *in, DES_cblock *output, | 61 | DES_LONG |
62 | long length, DES_key_schedule *schedule, | 62 | DES_cbc_cksum(const unsigned char *in, DES_cblock *output, |
63 | const_DES_cblock *ivec) | 63 | long length, DES_key_schedule *schedule, |
64 | { | 64 | const_DES_cblock *ivec) |
65 | DES_LONG tout0,tout1,tin0,tin1; | 65 | { |
66 | long l=length; | 66 | DES_LONG tout0, tout1, tin0, tin1; |
67 | long l = length; | ||
67 | DES_LONG tin[2]; | 68 | DES_LONG tin[2]; |
68 | unsigned char *out = &(*output)[0]; | 69 | unsigned char *out = &(*output)[0]; |
69 | const unsigned char *iv = &(*ivec)[0]; | 70 | const unsigned char *iv = &(*ivec)[0]; |
70 | 71 | ||
71 | c2l(iv,tout0); | 72 | c2l(iv, tout0); |
72 | c2l(iv,tout1); | 73 | c2l(iv, tout1); |
73 | for (; l>0; l-=8) | 74 | for (; l > 0; l -= 8) |
74 | { | 75 | { |
75 | if (l >= 8) | 76 | if (l >= 8) { |
76 | { | 77 | c2l(in, tin0); |
77 | c2l(in,tin0); | 78 | c2l(in, tin1); |
78 | c2l(in,tin1); | 79 | } else |
79 | } | 80 | c2ln(in, tin0, tin1, l); |
80 | else | 81 | |
81 | c2ln(in,tin0,tin1,l); | 82 | tin0 ^= tout0; |
82 | 83 | tin[0] = tin0; | |
83 | tin0^=tout0; tin[0]=tin0; | 84 | tin1 ^= tout1; |
84 | tin1^=tout1; tin[1]=tin1; | 85 | tin[1] = tin1; |
85 | DES_encrypt1((DES_LONG *)tin,schedule,DES_ENCRYPT); | 86 | DES_encrypt1((DES_LONG *)tin, schedule, DES_ENCRYPT); |
86 | /* fix 15/10/91 eay - thanks to keithr@sco.COM */ | 87 | /* fix 15/10/91 eay - thanks to keithr@sco.COM */ |
87 | tout0=tin[0]; | 88 | tout0 = tin[0]; |
88 | tout1=tin[1]; | 89 | tout1 = tin[1]; |
89 | } | 90 | } |
90 | if (out != NULL) | 91 | if (out != NULL) { |
91 | { | 92 | l2c(tout0, out); |
92 | l2c(tout0,out); | 93 | l2c(tout1, out); |
93 | l2c(tout1,out); | 94 | } |
94 | } | 95 | tout0 = tin0 = tin1 = tin[0] = tin[1] = 0; |
95 | tout0=tin0=tin1=tin[0]=tin[1]=0; | ||
96 | /* | 96 | /* |
97 | Transform the data in tout1 so that it will | 97 | Transform the data in tout1 so that it will |
98 | match the return value that the MIT Kerberos | 98 | match the return value that the MIT Kerberos |
99 | mit_des_cbc_cksum API returns. | 99 | mit_des_cbc_cksum API returns. |
100 | */ | 100 | */ |
101 | tout1 = ((tout1 >> 24L) & 0x000000FF) | 101 | tout1 = ((tout1 >> 24L) & 0x000000FF) | |
102 | | ((tout1 >> 8L) & 0x0000FF00) | 102 | ((tout1 >> 8L) & 0x0000FF00) | |
103 | | ((tout1 << 8L) & 0x00FF0000) | 103 | ((tout1 << 8L) & 0x00FF0000) | |
104 | | ((tout1 << 24L) & 0xFF000000); | 104 | ((tout1 << 24L) & 0xFF000000); |
105 | return(tout1); | 105 | return (tout1); |
106 | } | 106 | } |