summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/des/cbc_cksm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/des/cbc_cksm.c')
-rw-r--r--src/lib/libcrypto/des/cbc_cksm.c86
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
61DES_LONG DES_cbc_cksum(const unsigned char *in, DES_cblock *output, 61DES_LONG
62 long length, DES_key_schedule *schedule, 62DES_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}