| 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 "cipher_cast.h" | 
|---|
| 11 |  | 
|---|
| 12 | static int cipher_hw_cast5_initkey(PROV_CIPHER_CTX *ctx, | 
|---|
| 13 | const unsigned char *key, size_t keylen) | 
|---|
| 14 | { | 
|---|
| 15 | PROV_CAST_CTX *bctx =  (PROV_CAST_CTX *)ctx; | 
|---|
| 16 |  | 
|---|
| 17 | CAST_set_key(&(bctx->ks.ks), keylen, key); | 
|---|
| 18 | return 1; | 
|---|
| 19 | } | 
|---|
| 20 |  | 
|---|
| 21 | # define PROV_CIPHER_HW_cast_mode(mode, UCMODE)                                \ | 
|---|
| 22 | IMPLEMENT_CIPHER_HW_##UCMODE(mode, cast5, PROV_CAST_CTX, CAST_KEY,             \ | 
|---|
| 23 | CAST_##mode)                                      \ | 
|---|
| 24 | static const PROV_CIPHER_HW cast5_##mode = {                                   \ | 
|---|
| 25 | cipher_hw_cast5_initkey,                                                   \ | 
|---|
| 26 | cipher_hw_cast5_##mode##_cipher                                            \ | 
|---|
| 27 | };                                                                             \ | 
|---|
| 28 | const PROV_CIPHER_HW *PROV_CIPHER_HW_cast5_##mode(size_t keybits)              \ | 
|---|
| 29 | {                                                                              \ | 
|---|
| 30 | return &cast5_##mode;                                                      \ | 
|---|
| 31 | } | 
|---|
| 32 |  | 
|---|
| 33 | PROV_CIPHER_HW_cast_mode(cbc, CBC) | 
|---|
| 34 | PROV_CIPHER_HW_cast_mode(ecb, ECB) | 
|---|
| 35 | PROV_CIPHER_HW_cast_mode(ofb64, OFB) | 
|---|
| 36 | PROV_CIPHER_HW_cast_mode(cfb64, CFB) | 
|---|
| 37 |  | 
|---|