Annotation of pgp/src/idea.h, revision 1.1.1.4

1.1.1.4 ! root        1: #ifndef IDEA_H
        !             2: #define IDEA_H
        !             3: 
        !             4: /*
        !             5:  *     idea.h - header file for idea.c
        !             6:  */
        !             7: 
        !             8: #include "usuals.h"  /* typedefs for byte, word16, boolean, etc. */
        !             9: 
        !            10: #define IDEAKEYSIZE 16
        !            11: #define IDEABLOCKSIZE 8
        !            12: 
        !            13: #define IDEAROUNDS 8
        !            14: #define IDEAKEYLEN (6*IDEAROUNDS+4)
        !            15: 
        !            16: /*
        !            17:  * iv[] is used as a circular buffer.  bufleft is the number of
        !            18:  * bytes at the end which have to be filled in before we crank
        !            19:  * the block cipher again.  We do the block cipher operation
        !            20:  * lazily: bufleft may be 0.  When we need one more byte, we
        !            21:  * crank the block cipher and set bufleft to 7.
        !            22:  *
        !            23:  * oldcipher[] holds the previous 8 bytes of ciphertext, for use
        !            24:  * by ideaCfbSync() and Phil's, ahem, unique (not insecure, just
        !            25:  * unusual) way of doing CFB encryption.
        !            26:  */
        !            27: struct IdeaCfbContext {
        !            28:        byte oldcipher[8];
        !            29:        byte iv[8];
        !            30:        word16 key[IDEAKEYLEN];
        !            31:        int bufleft;
        !            32: };
        !            33: 
        !            34: struct IdeaRandContext {
        !            35:        byte outbuf[8];
        !            36:        word16 key[IDEAKEYLEN];
        !            37:        int bufleft;
        !            38:        byte internalbuf[8];
        !            39: };
        !            40: 
        !            41: void ideaCfbReinit(struct IdeaCfbContext *context, byte const *iv);
        !            42: void ideaCfbInit(struct IdeaCfbContext *context, byte const (key[16]));
        !            43: void ideaCfbSync(struct IdeaCfbContext *context);
        !            44: void ideaCfbDestroy(struct IdeaCfbContext *context);
        !            45: void ideaCfbEncrypt(struct IdeaCfbContext *context,
        !            46:                    byte const *src, byte *dest, int count);
        !            47: void ideaCfbDecrypt(struct IdeaCfbContext *context,
        !            48:                    byte const *src, byte *dest, int count);
        !            49: void ideaRandInit(struct IdeaRandContext *context, byte const (key[16]),
        !            50:                  byte const (seed[8]));
        !            51: byte ideaRandByte(struct IdeaRandContext *c);
        !            52: void ideaRandWash(struct IdeaRandContext *c, struct IdeaCfbContext *cfb);
        !            53: void ideaRandState(struct IdeaRandContext *c, byte key[16], byte seed[8]);
        !            54: 
        !            55: #endif /* !IDEA_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.