| * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. |
| * Licensed under the OpenSSL license (the "License"). You may not use |
| * this file except in compliance with the License. You can obtain a copy |
| * in the file LICENSE in the source distribution or at |
| * https://www.openssl.org/source/license.html |
| DES_LONG DES_cbc_cksum(const unsigned char *in, DES_cblock *output, |
| long length, DES_key_schedule *schedule, |
| register DES_LONG tout0, tout1, tin0, tin1; |
| register long l = length; |
| unsigned char *out = &(*output)[0]; |
| const unsigned char *iv = &(*ivec)[0]; |
| DES_encrypt1((DES_LONG *)tin, schedule, DES_ENCRYPT); |
| /* fix 15/10/91 eay - thanks to keithr@sco.COM */ |
| tout0 = tin0 = tin1 = tin[0] = tin[1] = 0; |
| * Transform the data in tout1 so that it will match the return value |
| * that the MIT Kerberos mit_des_cbc_cksum API returns. |
| tout1 = ((tout1 >> 24L) & 0x000000FF) |
| | ((tout1 >> 8L) & 0x0000FF00) |
| | ((tout1 << 8L) & 0x00FF0000) |
| | ((tout1 << 24L) & 0xFF000000); |