mbed TLS v2.14.1
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
include
mbedtls
blowfish.h
Go to the documentation of this file.
1
6
/*
7
* Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
8
* SPDX-License-Identifier: Apache-2.0
9
*
10
* Licensed under the Apache License, Version 2.0 (the "License"); you may
11
* not use this file except in compliance with the License.
12
* You may obtain a copy of the License at
13
*
14
* http://www.apache.org/licenses/LICENSE-2.0
15
*
16
* Unless required by applicable law or agreed to in writing, software
17
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
18
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
* See the License for the specific language governing permissions and
20
* limitations under the License.
21
*
22
* This file is part of mbed TLS (https://tls.mbed.org)
23
*/
24
#ifndef MBEDTLS_BLOWFISH_H
25
#define MBEDTLS_BLOWFISH_H
26
27
#if !defined(MBEDTLS_CONFIG_FILE)
28
#include "
config.h
"
29
#else
30
#include MBEDTLS_CONFIG_FILE
31
#endif
32
33
#include <stddef.h>
34
#include <stdint.h>
35
36
#define MBEDTLS_BLOWFISH_ENCRYPT 1
37
#define MBEDTLS_BLOWFISH_DECRYPT 0
38
#define MBEDTLS_BLOWFISH_MAX_KEY_BITS 448
39
#define MBEDTLS_BLOWFISH_MIN_KEY_BITS 32
40
#define MBEDTLS_BLOWFISH_ROUNDS 16
41
#define MBEDTLS_BLOWFISH_BLOCKSIZE 8
/* Blowfish uses 64 bit blocks */
42
43
#define MBEDTLS_ERR_BLOWFISH_INVALID_KEY_LENGTH -0x0016
45
/* MBEDTLS_ERR_BLOWFISH_HW_ACCEL_FAILED is deprecated and should not be used.
46
*/
47
#define MBEDTLS_ERR_BLOWFISH_HW_ACCEL_FAILED -0x0017
49
#define MBEDTLS_ERR_BLOWFISH_INVALID_INPUT_LENGTH -0x0018
51
#ifdef __cplusplus
52
extern
"C"
{
53
#endif
54
55
#if !defined(MBEDTLS_BLOWFISH_ALT)
56
// Regular implementation
57
//
58
62
typedef
struct
mbedtls_blowfish_context
63
{
64
uint32_t
P
[
MBEDTLS_BLOWFISH_ROUNDS
+ 2];
65
uint32_t
S
[4][256];
66
}
67
mbedtls_blowfish_context
;
68
69
#else
/* MBEDTLS_BLOWFISH_ALT */
70
#include "blowfish_alt.h"
71
#endif
/* MBEDTLS_BLOWFISH_ALT */
72
78
void
mbedtls_blowfish_init
(
mbedtls_blowfish_context
*ctx );
79
85
void
mbedtls_blowfish_free
(
mbedtls_blowfish_context
*ctx );
86
96
int
mbedtls_blowfish_setkey
(
mbedtls_blowfish_context
*ctx,
const
unsigned
char
*key,
97
unsigned
int
keybits );
98
109
int
mbedtls_blowfish_crypt_ecb
(
mbedtls_blowfish_context
*ctx,
110
int
mode,
111
const
unsigned
char
input[
MBEDTLS_BLOWFISH_BLOCKSIZE
],
112
unsigned
char
output[MBEDTLS_BLOWFISH_BLOCKSIZE] );
113
114
#if defined(MBEDTLS_CIPHER_MODE_CBC)
115
138
int
mbedtls_blowfish_crypt_cbc
(
mbedtls_blowfish_context
*ctx,
139
int
mode,
140
size_t
length,
141
unsigned
char
iv[
MBEDTLS_BLOWFISH_BLOCKSIZE
],
142
const
unsigned
char
*input,
143
unsigned
char
*output );
144
#endif
/* MBEDTLS_CIPHER_MODE_CBC */
145
146
#if defined(MBEDTLS_CIPHER_MODE_CFB)
147
168
int
mbedtls_blowfish_crypt_cfb64
(
mbedtls_blowfish_context
*ctx,
169
int
mode,
170
size_t
length,
171
size_t
*iv_off,
172
unsigned
char
iv[
MBEDTLS_BLOWFISH_BLOCKSIZE
],
173
const
unsigned
char
*input,
174
unsigned
char
*output );
175
#endif
/*MBEDTLS_CIPHER_MODE_CFB */
176
177
#if defined(MBEDTLS_CIPHER_MODE_CTR)
178
235
int
mbedtls_blowfish_crypt_ctr
(
mbedtls_blowfish_context
*ctx,
236
size_t
length,
237
size_t
*nc_off,
238
unsigned
char
nonce_counter[
MBEDTLS_BLOWFISH_BLOCKSIZE
],
239
unsigned
char
stream_block[MBEDTLS_BLOWFISH_BLOCKSIZE],
240
const
unsigned
char
*input,
241
unsigned
char
*output );
242
#endif
/* MBEDTLS_CIPHER_MODE_CTR */
243
244
#ifdef __cplusplus
245
}
246
#endif
247
248
#endif
/* blowfish.h */
Generated on Mon Jun 27 2022 04:24:25 for mbed TLS v2.14.1 by
1.8.1.2