1/*
2 * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
3 *
4 * Licensed under the Apache License 2.0 (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 <openssl/des.h>
11
12/* TODO(3.0) Figure out what flags need to be here */
13#define TDES_FLAGS (EVP_CIPH_RAND_KEY)
14
15typedef struct prov_des_ctx_st {
16 PROV_CIPHER_CTX base; /* Must be first */
17 union {
18 OSSL_UNION_ALIGN;
19 DES_key_schedule ks;
20 } dks;
21 union {
22 void (*cbc) (const void *, void *, size_t,
23 const DES_key_schedule *, unsigned char *);
24 } dstream;
25
26} PROV_DES_CTX;
27
28const PROV_CIPHER_HW *PROV_CIPHER_HW_des_cbc(void);
29const PROV_CIPHER_HW *PROV_CIPHER_HW_des_ecb(void);
30const PROV_CIPHER_HW *PROV_CIPHER_HW_des_ofb64(void);
31const PROV_CIPHER_HW *PROV_CIPHER_HW_des_cfb64(void);
32const PROV_CIPHER_HW *PROV_CIPHER_HW_des_cfb1(void);
33const PROV_CIPHER_HW *PROV_CIPHER_HW_des_cfb8(void);
34