poly1305/asm/poly1305-x86_64.pl: switch to vpermdd in table expansion.
[openssl.git] / crypto / des / rpc_enc.c
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 "rpc_des.h"
11 #include "des_locl.h"
12
13 int _des_crypt(char *buf, int len, struct desparams *desp);
14 int _des_crypt(char *buf, int len, struct desparams *desp)
15 {
16     DES_key_schedule ks;
17     int enc;
18
19     DES_set_key_unchecked(&desp->des_key, &ks);
20     enc = (desp->des_dir == ENCRYPT) ? DES_ENCRYPT : DES_DECRYPT;
21
22     if (desp->des_mode == CBC)
23         DES_ecb_encrypt((const_DES_cblock *)desp->UDES.UDES_buf,
24                         (DES_cblock *)desp->UDES.UDES_buf, &ks, enc);
25     else {
26         DES_ncbc_encrypt(desp->UDES.UDES_buf, desp->UDES.UDES_buf,
27                          len, &ks, &desp->des_ivec, enc);
28     }
29     return (1);
30 }