=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/rijndael.h,v retrieving revision 1.1.4.3 retrieving revision 1.2 diff -u -r1.1.4.3 -r1.2 --- src/usr.bin/ssh/rijndael.h 2001/03/21 18:52:58 1.1.4.3 +++ src/usr.bin/ssh/rijndael.h 2000/12/06 23:05:43 1.2 @@ -1,47 +1,27 @@ -/* $OpenBSD: rijndael.h,v 1.1.4.3 2001/03/21 18:52:58 jason Exp $ */ +/* + * rijndael-alg-fst.h v2.4 April '2000 + * rijndael-api-fst.h v2.4 April '2000 + * + * Optimised ANSI C code + * + */ -/* This is an independent implementation of the encryption algorithm: */ -/* */ -/* RIJNDAEL by Joan Daemen and Vincent Rijmen */ -/* */ -/* which is a candidate algorithm in the Advanced Encryption Standard */ -/* programme of the US National Institute of Standards and Technology. */ -/* */ -/* Copyright in this implementation is held by Dr B R Gladman but I */ -/* hereby give permission for its free direct or derivative use subject */ -/* to acknowledgment of its origin and compliance with any conditions */ -/* that the originators of the algorithm place on its exploitation. */ -/* */ -/* Dr Brian Gladman (gladman@seven77.demon.co.uk) 14th January 1999 */ +#ifndef RIJNDAEL_H +#define RIJNDAEL_H -#ifndef _RIJNDAEL_H_ -#define _RIJNDAEL_H_ +#define RIJNDAEL_MAXKC (256/32) +#define RIJNDAEL_MAXROUNDS 14 -/* 1. Standard types for AES cryptography source code */ +#define RIJNDAEL_ENCRYPT 0 +#define RIJNDAEL_DECRYPT 1 -typedef u_int8_t u1byte; /* an 8 bit unsigned character type */ -typedef u_int16_t u2byte; /* a 16 bit unsigned integer type */ -typedef u_int32_t u4byte; /* a 32 bit unsigned integer type */ +typedef struct { + int ROUNDS; /* key-length-dependent number of rounds */ + u_int8_t keySched[RIJNDAEL_MAXROUNDS+1][4][4]; +} rijndael_key; -typedef int8_t s1byte; /* an 8 bit signed character type */ -typedef int16_t s2byte; /* a 16 bit signed integer type */ -typedef int32_t s4byte; /* a 32 bit signed integer type */ +int rijndael_encrypt(rijndael_key *key, u_int8_t a[16], u_int8_t b[16]); +int rijndael_decrypt(rijndael_key *key, u_int8_t a[16], u_int8_t b[16]); +int rijndael_makekey(rijndael_key *key, int direction, int keyLen, u_int8_t *keyMaterial); -typedef struct _rijndael_ctx { - u4byte k_len; - int decrypt; - u4byte e_key[64]; - u4byte d_key[64]; -} rijndael_ctx; - - -/* 2. Standard interface for AES cryptographic routines */ - -/* These are all based on 32 bit unsigned values and will therefore */ -/* require endian conversions for big-endian architectures */ - -rijndael_ctx *rijndael_set_key __P((rijndael_ctx *, const u4byte *, u4byte, int)); -void rijndael_encrypt __P((rijndael_ctx *, const u4byte *, u4byte *)); -void rijndael_decrypt __P((rijndael_ctx *, const u4byte *, u4byte *)); - -#endif /* _RIJNDAEL_H_ */ +#endif