diff options
author | stevel@tonic-gate <none@none> | 2005-06-14 00:00:00 -0700 |
---|---|---|
committer | stevel@tonic-gate <none@none> | 2005-06-14 00:00:00 -0700 |
commit | 7c478bd95313f5f23a4c958a745db2134aa03244 (patch) | |
tree | c871e58545497667cbb4b0a4f2daf204743e1fe7 /usr/src/lib/libresolv2/common/cylink/c_asm.h | |
download | illumos-gate-7c478bd95313f5f23a4c958a745db2134aa03244.tar.gz |
OpenSolaris Launch
Diffstat (limited to 'usr/src/lib/libresolv2/common/cylink/c_asm.h')
-rw-r--r-- | usr/src/lib/libresolv2/common/cylink/c_asm.h | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/usr/src/lib/libresolv2/common/cylink/c_asm.h b/usr/src/lib/libresolv2/common/cylink/c_asm.h new file mode 100644 index 0000000000..c22bc614fb --- /dev/null +++ b/usr/src/lib/libresolv2/common/cylink/c_asm.h @@ -0,0 +1,140 @@ +/* + * Copyright 1999-2002 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* + * Cylink Corporation © 1998 + * + * This software is licensed by Cylink to the Internet Software Consortium to + * promote implementation of royalty free public key cryptography within IETF + * standards. Cylink wishes to expressly thank the contributions of Dr. + * Martin Hellman, Whitfield Diffie, Ralph Merkle and Stanford University for + * their contributions to Internet Security. In accordance with the terms of + * this license, ISC is authorized to distribute and sublicense this software + * for the practice of IETF standards. + * + * The software includes BigNum, written by Colin Plumb and licensed by Philip + * R. Zimmermann for royalty free use and distribution with Cylink's + * software. Use of BigNum as a stand alone product or component is + * specifically prohibited. + * + * Disclaimer of All Warranties. THIS SOFTWARE IS BEING PROVIDED "AS IS", + * WITHOUT ANY EXPRESSED OR IMPLIED WARRANTY OF ANY KIND WHATSOEVER. IN + * PARTICULAR, WITHOUT LIMITATION ON THE GENERALITY OF THE FOREGOING, CYLINK + * MAKES NO REPRESENTATION OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR + * PURPOSE. + * + * Cylink or its representatives shall not be liable for tort, indirect, + * special or consequential damages such as loss of profits or loss of + * goodwill from the use or inability to use the software for any purpose or + * for any reason whatsoever. + * + * EXPORT LAW: Export of the Foundations Suite may be subject to compliance + * with the rules and regulations promulgated from time to time by the Bureau + * of Export Administration, United States Department of Commerce, which + * restrict the export and re-export of certain products and technical data. + * If the export of the Foundations Suite is controlled under such rules and + * regulations, then the Foundations Suite shall not be exported or + * re-exported, directly or indirectly, (a) without all export or re-export + * licenses and governmental approvals required by any applicable laws, or (b) + * in violation of any applicable prohibition against the export or re-export + * of any part of the Foundations Suite. All export licenses for software + * containing the Foundations Suite are the sole responsibility of the licensee. + */ + +/**************************************************************************** +* FILENAME: c_asm.h PRODUCT NAME: CRYPTOGRAPHIC TOOLKIT +* +* FILE STATUS: +* +* DESCRIPTION: C / ASM Header File +* +* USAGE: File should be included to use Toolkit Functions +* +* +* Copyright (c) Cylink Corporation 1994. All rights reserved. +* +* REVISION HISTORY: +* +* 14 Oct 94 GKL For Second version (big endian support) +* 26 Oct 94 GKL (alignment for big endian support ) +* +****************************************************************************/ +#if !defined( C_ASM_H ) +#define C_ASM_H + +#pragma ident "%Z%%M% %I% %E% SMI" + +#include <sys/types.h> +#include "cylink.h" +#include "ctk_endian.h" + +#ifdef __cplusplus +extern "C" { +#endif + + + int Sum_big (ord *X, + ord *Y, + ord *Z, + int len_X ); + int Sum (ord *X, ord *Y, ushort len_X ); + int Sub_big (ord *X, + ord *Y, + ord *Z, + int len_X ); +/* + void Mul_big( ord *X, ord *Y,ord *XY, + ushort lx, ushort ly, + ushort elements_in_X, + ushort elements_in_Y);*/ + void Mul_big( ord *X, ord *Y,ord *XY, + ushort lx, ushort ly); + + void PReLo_big( ord *X, ord *P, + ushort len_X, ushort el); + + void Div_big( ord *X, ord *P, + ushort len_X, ushort el, + ord *div); + +int LeftMostBit_big ( ord X ); +int LeftMostEl_big( ord *X, ushort len_X ); +void RShiftL_big( ord *X, u_int32_t len_X, u_int32_t n_bit ); +void LShiftL_big( ord *X, u_int32_t len_X, u_int32_t n_bit ); +int RShiftMostBit(ord *a, u_int32_t len); +void ByteLong(uchar *X, u_int32_t X_bytes, u_int32_t *Y); +void ByteOrd(uchar *X, u_int32_t X_bytes, ord *Y); +void OrdByte(ord *X, u_int32_t X_bytes, uchar *Y); +void LongByte(u_int32_t *X, u_int32_t X_bytes, uchar *Y); +int BitValue_big( ord *X, ushort n_bits ); +int BitsValue_big( ord *X, ushort n_bits, ushort bit_count ); +void ByteSwap32_big( uchar *X, ushort X_len ); +void Complement_big( ord *X, ushort X_longs); +void Diagonal_big (ord *X, ushort X_len, ord *X2); +void Square_big( ord *X, ushort X_len, ord *X2); +void Mul_big_1( ord X, ord *Y, ord *XY, ushort ly ); +int Sum_Q(ord *X, ushort src, ushort len_X ); + + + +/* In-place DES encryption */ + void DES_encrypt(uchar *keybuf, uchar *block); + +/* In-place DES decryption */ + void DES_decrypt(uchar *keybuf, uchar *block); + +/* In-place KAPPA encryption */ + void KAPPA_encrypt(uchar *a, uchar *k, ushort r); + +/* In-place KAPPA decryption */ + void KAPPA_decrypt(uchar *a, uchar *k, ushort r); + +#ifdef __cplusplus +} +#endif + + +#endif /*C_ASM_H*/ + |