aboutsummaryrefslogtreecommitdiff
path: root/openssl-1.1.0h/crypto/des/rpc_enc.c
diff options
context:
space:
mode:
Diffstat (limited to 'openssl-1.1.0h/crypto/des/rpc_enc.c')
-rw-r--r--openssl-1.1.0h/crypto/des/rpc_enc.c30
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);
+}