[BACK]Return to rijndael.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/rijndael.h between version 1.9 and 1.10

version 1.9, 2001/07/30 16:23:30 version 1.10, 2001/08/23 11:31:59
Line 1 
Line 1 
 /*      $OpenBSD$       */  /**
    * rijndael-alg-fst.h
    *
    * @version 3.0 (December 2000)
    *
    * Optimised ANSI C code for the Rijndael cipher (now AES)
    *
    * @author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be>
    * @author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be>
    * @author Paulo Barreto <paulo.barreto@terra.com.br>
    *
    * This code is hereby placed in the public domain.
    *
    * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
    * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
    * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
    * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    */
   #ifndef __RIJNDAEL_H
   #define __RIJNDAEL_H
   
 /* This is an independent implementation of the encryption algorithm:   */  #define MAXKC   (256/32)
 /*                                                                      */  #define MAXKB   (256/8)
 /*         RIJNDAEL by Joan Daemen and Vincent Rijmen                   */  #define MAXNR   14
 /*                                                                      */  
 /* which is a candidate algorithm in the Advanced Encryption Standard   */  
 /* programme of the US National Institute of Standards and Technology.  */  
   
 /*  typedef unsigned char   u8;
    -----------------------------------------------------------------------  typedef unsigned short  u16;
    Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK  typedef unsigned int    u32;
   
    TERMS  
   
    Redistribution and use in source and binary forms, with or without  /*  The structure for key information */
    modification, are permitted provided that the following conditions  typedef struct {
    are met:          int     decrypt;
    1. Redistributions of source code must retain the above copyright          int     Nr;                     /* key-length-dependent number of rounds */
       notice, this list of conditions and the following disclaimer.          u32     ek[4*(MAXNR + 1)];      /* encrypt key schedule */
    2. Redistributions in binary form must reproduce the above copyright          u32     dk[4*(MAXNR + 1)];      /* decrypt key schedule */
       notice, this list of conditions and the following disclaimer in the  
       documentation and/or other materials provided with the distribution.  
   
    This software is provided 'as is' with no guarantees of correctness or  
    fitness for purpose.  
    -----------------------------------------------------------------------  
 */  
   
 #ifndef _RIJNDAEL_H_  
 #define _RIJNDAEL_H_  
   
 /* 1. Standard types for AES cryptography source code               */  
   
 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 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     */  
   
 typedef struct _rijndael_ctx {  
         u4byte  k_len;  
         int decrypt;  
         u4byte  e_key[64];  
         u4byte  d_key[64];  
 } rijndael_ctx;  } rijndael_ctx;
   
   void     rijndael_set_key(rijndael_ctx *, u_char *, int, int);
   void     rijndael_decrypt(rijndael_ctx *, u_char *, u_char *);
   void     rijndael_encrypt(rijndael_ctx *, u_char *, u_char *);
   
 /* 2. Standard interface for AES cryptographic routines             */  #endif /* __RIJNDAEL_H */
   
 /* 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 *, const u4byte, int));  
 void rijndael_encrypt __P((rijndael_ctx *, const u4byte *, u4byte *));  
 void rijndael_decrypt __P((rijndael_ctx *, const u4byte *, u4byte *));  
   
 #endif /* _RIJNDAEL_H_ */  

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10