blowfish_impl.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock/*
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * CDDL HEADER START
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock *
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * The contents of this file are subject to the terms of the
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * Common Development and Distribution License, Version 1.0 only
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * (the "License"). You may not use this file except in compliance
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * with the License.
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock *
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * or http://www.opensolaris.org/os/licensing.
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * See the License for the specific language governing permissions
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * and limitations under the License.
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock *
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * When distributing Covered Code, include this CDDL HEADER in each
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * If applicable, add the following below this CDDL HEADER, with the
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * fields enclosed by brackets "[]" replaced with your own identifying
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * information: Portions Copyright [yyyy] [name of copyright owner]
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock *
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * CDDL HEADER END
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock */
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock/*
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * Use is subject to license terms.
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock */
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#ifndef _BLOWFISH_IMPL_H
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#define _BLOWFISH_IMPL_H
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#pragma ident "%Z%%M% %I% %E% SMI"
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock/*
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock * Common definitions used by Blowfish.
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock */
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#ifdef __cplusplus
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrockextern "C" {
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#endif
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#define BLOWFISH_MINBITS 32
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#define BLOWFISH_MINBYTES (BLOWFISH_MINBITS >> 3)
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#ifdef CRYPTO_UNLIMITED
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#define BLOWFISH_MAXBITS 448
ac88567a7a5bb7f01cf22cf366bc9d6203e24d7aHyon Kim#else /* !CRYPTO_UNLIMITED */
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#define BLOWFISH_MAXBITS 128
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#endif /* CRYPTO_UNLIMITED */
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#define BLOWFISH_MAXBYTES (BLOWFISH_MAXBITS >> 3)
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#define BLOWFISH_IV_LEN 8
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#define BLOWFISH_BLOCK_LEN 8
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#define BLOWFISH_KEY_INCREMENT 8
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#define BLOWFISH_DEFAULT 128
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrockextern void blowfish_encrypt_block(void *, uint8_t *, uint8_t *);
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrockextern void blowfish_decrypt_block(void *, uint8_t *, uint8_t *);
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrockextern void blowfish_init_keysched(uint8_t *, uint_t, void *);
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrockextern void *blowfish_alloc_keysched(size_t *, int);
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock
275c9da86e89f8abf71135cf63d9fc23671b2e60eschrock#ifdef __cplusplus
}
#endif
#endif /* _BLOWFISH_IMPL_H */