A local copy of OpenSSL from GitHub
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
979 B

  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. #include "rpc_des.h"
  10. #include "des_locl.h"
  11. int _des_crypt(char *buf, int len, struct desparams *desp);
  12. int _des_crypt(char *buf, int len, struct desparams *desp)
  13. {
  14. DES_key_schedule ks;
  15. int enc;
  16. DES_set_key_unchecked(&desp->des_key, &ks);
  17. enc = (desp->des_dir == ENCRYPT) ? DES_ENCRYPT : DES_DECRYPT;
  18. if (desp->des_mode == CBC)
  19. DES_ecb_encrypt((const_DES_cblock *)desp->UDES.UDES_buf,
  20. (DES_cblock *)desp->UDES.UDES_buf, &ks, enc);
  21. else {
  22. DES_ncbc_encrypt(desp->UDES.UDES_buf, desp->UDES.UDES_buf,
  23. len, &ks, &desp->des_ivec, enc);
  24. }
  25. return (1);
  26. }