| /* |
| * 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); |
| } |