diff options
Diffstat (limited to 'openssl-1.1.0h/crypto/des/rpc_enc.c')
-rw-r--r-- | openssl-1.1.0h/crypto/des/rpc_enc.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/openssl-1.1.0h/crypto/des/rpc_enc.c b/openssl-1.1.0h/crypto/des/rpc_enc.c new file mode 100644 index 0000000..bfa8511 --- /dev/null +++ b/openssl-1.1.0h/crypto/des/rpc_enc.c @@ -0,0 +1,30 @@ +/* + * 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 + */ + +#include "rpc_des.h" +#include "des_locl.h" + +int _des_crypt(char *buf, int len, struct desparams *desp); +int _des_crypt(char *buf, int len, struct desparams *desp) +{ + DES_key_schedule ks; + int enc; + + DES_set_key_unchecked(&desp->des_key, &ks); + enc = (desp->des_dir == ENCRYPT) ? DES_ENCRYPT : DES_DECRYPT; + + if (desp->des_mode == CBC) + DES_ecb_encrypt((const_DES_cblock *)desp->UDES.UDES_buf, + (DES_cblock *)desp->UDES.UDES_buf, &ks, enc); + else { + DES_ncbc_encrypt(desp->UDES.UDES_buf, desp->UDES.UDES_buf, + len, &ks, &desp->des_ivec, enc); + } + return (1); +} |