1 /* 2 * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the OpenSSL license (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10 #include "des_local.h" 11 12 void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, 13 DES_key_schedule *ks1, DES_key_schedule *ks2, 14 DES_key_schedule *ks3, int enc) 15 { 16 register DES_LONG l0, l1; 17 DES_LONG ll[2]; 18 const unsigned char *in = &(*input)[0]; 19 unsigned char *out = &(*output)[0]; 20 21 c2l(in, l0); 22 c2l(in, l1); 23 ll[0] = l0; 24 ll[1] = l1; 25 if (enc) 26 DES_encrypt3(ll, ks1, ks2, ks3); 27 else 28 DES_decrypt3(ll, ks1, ks2, ks3); 29 l0 = ll[0]; 30 l1 = ll[1]; 31 l2c(l0, out); 32 l2c(l1, out); 33 } 34