This is cipher.h in view mode; [Download] [Up]
/* cipher.h Author: Tatu Ylonen <ylo@cs.hut.fi> Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland All rights reserved Created: Wed Apr 19 16:50:42 1995 ylo */ /* * $Id: cipher.h,v 1.9 1998/04/30 01:51:26 kivinen Exp $ * $Log: cipher.h,v $ * Revision 1.9 1998/04/30 01:51:26 kivinen * Reserved cipher number 7 to Bernard Perrot * <perrot@lal.in2p3.fr> for some weak 40 bit encryption method. * * Revision 1.8 1998/03/27 17:24:03 kivinen * Removed TSS. * * Revision 1.7 1997/03/26 07:11:22 kivinen * Fixed prototypes. * * Revision 1.6 1997/03/19 22:26:24 kivinen * Removed WITH_3DES ifdefs, as it is mandatory. * * Revision 1.5 1997/03/19 17:35:09 kivinen * Made all ciphers optional. * * Revision 1.4 1996/09/28 12:01:15 ylo * Removed TSS (put inside #ifdef WITH_TSS). * * Revision 1.3 1996/09/27 13:55:03 ttsalo * Added blowfish * * Revision 1.2 1996/02/18 21:52:35 ylo * Added comments that len must be multiple of 8. * * Revision 1.1.1.1 1996/02/18 21:38:11 ylo * Imported ssh-1.2.13. * * Revision 1.3 1995/08/18 22:48:27 ylo * Made IDEA optional. * * Revision 1.2 1995/07/13 01:19:52 ylo * Removed "Last modified" header. * Added cvs log. * * $Endlog$ */ #ifndef CIPHER_H #define CIPHER_H #ifndef WITHOUT_IDEA #include "idea.h" #endif /* WITHOUT_IDEA */ #include "des.h" #ifdef WITH_ARCFOUR #include "arcfour.h" #endif /* WITH_ARCFOUR */ #ifdef WITH_BLOWFISH #include "blowfish.h" #endif /* WITH_BLOWFISH */ /* Cipher types. New types can be added, but old types should not be removed for compatibility. The maximum allowed value is 31. */ #define SSH_CIPHER_NOT_SET -1 /* None selected (invalid number). */ #define SSH_CIPHER_NONE 0 /* no encryption */ #define SSH_CIPHER_IDEA 1 /* IDEA CFB */ #define SSH_CIPHER_DES 2 /* DES CBC */ #define SSH_CIPHER_3DES 3 /* 3DES CBC */ #define SSH_CIPHER_ARCFOUR 5 /* Arcfour */ #define SSH_CIPHER_BLOWFISH 6 /* Bruce Schneier's Blowfish */ #define SSH_CIPHER_RESERVED 7 /* Reserved for 40 bit crippled encryption, Bernard Perrot <perrot@lal.in2p3.fr> */ typedef struct { unsigned int type; union { #ifndef WITHOUT_IDEA struct { IDEAContext key; unsigned char iv[8]; } idea; #endif /* WITHOUT_IDEA */ #ifdef WITH_DES struct { DESContext key; unsigned char iv[8]; } des; #endif /* WITH_DES */ struct { DESContext key1; unsigned char iv1[8]; DESContext key2; unsigned char iv2[8]; DESContext key3; unsigned char iv3[8]; } des3; #ifdef WITH_ARCFOUR ArcfourContext arcfour; #endif #ifdef WITH_BLOWFISH BlowfishContext blowfish; #endif /* WITH_BLOWFISH */ } u; } CipherContext; /* Returns a bit mask indicating which ciphers are supported by this implementation. The bit mask has the corresponding bit set of each supported cipher. */ unsigned int cipher_mask(void); /* Returns the name of the cipher. */ const char *cipher_name(int cipher); /* Parses the name of the cipher. Returns the number of the corresponding cipher, or -1 on error. */ int cipher_number(const char *name); /* Selects the cipher to use and sets the key. If for_encryption is true, the key is setup for encryption; otherwise it is setup for decryption. */ void cipher_set_key(CipherContext *context, int cipher, const unsigned char *key, int keylen, int for_encryption); /* Sets key for the cipher by computing the MD5 checksum of the passphrase, and using the resulting 16 bytes as the key. */ void cipher_set_key_string(CipherContext *context, int cipher, const char *passphrase, int for_encryption); /* Encrypts data using the cipher. For most ciphers, len should be a multiple of 8. */ void cipher_encrypt(CipherContext *context, unsigned char *dest, const unsigned char *src, unsigned int len); /* Decrypts data using the cipher. For most ciphers, len should be a multiple of 8. */ void cipher_decrypt(CipherContext *context, unsigned char *dest, const unsigned char *src, unsigned int len); #endif /* CIPHER_H */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.