mbed TLS v2.2.0
Data Structures | Macros | Functions
blowfish.h File Reference

Detailed Description

Blowfish block cipher.

Copyright (C) 2006-2015, ARM Limited, All Rights Reserved SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

This file is part of mbed TLS (https://tls.mbed.org)

Definition in file blowfish.h.

#include <config-sl-crypto-all-acceleration.h>
#include <stddef.h>
#include <stdint.h>
Include dependency graph for blowfish.h:

Go to the source code of this file.

Data Structures

struct  mbedtls_blowfish_context
 Blowfish context structure. More...
 

Macros

#define MBEDTLS_BLOWFISH_ENCRYPT   1
 
#define MBEDTLS_BLOWFISH_DECRYPT   0
 
#define MBEDTLS_BLOWFISH_MAX_KEY_BITS   448
 
#define MBEDTLS_BLOWFISH_MIN_KEY_BITS   32
 
#define MBEDTLS_BLOWFISH_ROUNDS   16
 Rounds to use. More...
 
#define MBEDTLS_BLOWFISH_BLOCKSIZE   8 /* Blowfish uses 64 bit blocks */
 
#define MBEDTLS_ERR_BLOWFISH_INVALID_KEY_LENGTH   -0x0016
 Invalid key length. More...
 
#define MBEDTLS_ERR_BLOWFISH_INVALID_INPUT_LENGTH   -0x0018
 Invalid data input length. More...
 

Functions

void mbedtls_blowfish_init (mbedtls_blowfish_context *ctx)
 Initialize Blowfish context. More...
 
void mbedtls_blowfish_free (mbedtls_blowfish_context *ctx)
 Clear Blowfish context. More...
 
int mbedtls_blowfish_setkey (mbedtls_blowfish_context *ctx, const unsigned char *key, unsigned int keybits)
 Blowfish key schedule. More...
 
int mbedtls_blowfish_crypt_ecb (mbedtls_blowfish_context *ctx, int mode, const unsigned char input[MBEDTLS_BLOWFISH_BLOCKSIZE], unsigned char output[MBEDTLS_BLOWFISH_BLOCKSIZE])
 Blowfish-ECB block encryption/decryption. More...
 

Macro Definition Documentation

#define MBEDTLS_BLOWFISH_BLOCKSIZE   8 /* Blowfish uses 64 bit blocks */

Definition at line 40 of file blowfish.h.

#define MBEDTLS_BLOWFISH_DECRYPT   0

Definition at line 36 of file blowfish.h.

#define MBEDTLS_BLOWFISH_ENCRYPT   1

Definition at line 35 of file blowfish.h.

#define MBEDTLS_BLOWFISH_MAX_KEY_BITS   448

Definition at line 37 of file blowfish.h.

#define MBEDTLS_BLOWFISH_MIN_KEY_BITS   32

Definition at line 38 of file blowfish.h.

#define MBEDTLS_BLOWFISH_ROUNDS   16

Rounds to use.

When increasing this value, make sure to extend the initialisation vectors

Definition at line 39 of file blowfish.h.

#define MBEDTLS_ERR_BLOWFISH_INVALID_INPUT_LENGTH   -0x0018

Invalid data input length.

Definition at line 43 of file blowfish.h.

#define MBEDTLS_ERR_BLOWFISH_INVALID_KEY_LENGTH   -0x0016

Invalid key length.

Definition at line 42 of file blowfish.h.

Function Documentation

int mbedtls_blowfish_crypt_ecb ( mbedtls_blowfish_context ctx,
int  mode,
const unsigned char  input[MBEDTLS_BLOWFISH_BLOCKSIZE],
unsigned char  output[MBEDTLS_BLOWFISH_BLOCKSIZE] 
)

Blowfish-ECB block encryption/decryption.

Parameters
ctxBlowfish context
modeMBEDTLS_BLOWFISH_ENCRYPT or MBEDTLS_BLOWFISH_DECRYPT
input8-byte input block
output8-byte output block
Returns
0 if successful
void mbedtls_blowfish_free ( mbedtls_blowfish_context ctx)

Clear Blowfish context.

Parameters
ctxBlowfish context to be cleared
void mbedtls_blowfish_init ( mbedtls_blowfish_context ctx)

Initialize Blowfish context.

Parameters
ctxBlowfish context to be initialized
int mbedtls_blowfish_setkey ( mbedtls_blowfish_context ctx,
const unsigned char *  key,
unsigned int  keybits 
)

Blowfish key schedule.

Parameters
ctxBlowfish context to be initialized
keyencryption key
keybitsmust be between 32 and 448 bits
Returns
0 if successful, or MBEDTLS_ERR_BLOWFISH_INVALID_KEY_LENGTH