diff options
Diffstat (limited to 'include/sapphire.h')
-rw-r--r-- | include/sapphire.h | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/include/sapphire.h b/include/sapphire.h deleted file mode 100644 index a5e21ad..0000000 --- a/include/sapphire.h +++ /dev/null @@ -1,59 +0,0 @@ -/* sapphire.h -- Interface for the Saphire II stream cipher. - - Dedicated to the Public Domain the author and inventor - (Michael Paul Johnson). This code comes with no warranty. - Use it at your own risk. - Ported from the Pascal implementation of the Sapphire Stream - Cipher 9 December 1994. - Added hash-specific functions 27 December 1994. - Made index variable initialization key-dependent, - made the output function more resistant to cryptanalysis, - and renamed to Sapphire II Stream Cipher 2 January 1995. - - unsigned char is assumed to be 8 bits. If it is not, the - results of assignments need to be reduced to 8 bits with - & 0xFF or % 0x100, whichever is faster. -*/ - -#ifndef NULL -#define NULL 0 -#endif /* */ - -#include <defs.h> - -SWORD_NAMESPACE_START - - class sapphire -{ - - // These variables comprise the state of the state machine. - unsigned char cards[256]; // A permutation of 0-255. - unsigned char rotor, // Index that rotates smoothly - ratchet, // Index that moves erratically - avalanche, // Index heavily data dependent - last_plain, // Last plain text byte - last_cipher; // Last cipher text byte - - // This function is used by initialize(), which is called by the - // constructor. - unsigned char keyrand (int limit, unsigned char *user_key, - unsigned char keysize, unsigned char *rsum, -unsigned *keypos); public:sapphire (unsigned char - *key = NULL, // Calls initialize if a real - unsigned char keysize = 0); // key is provided. If none - // is provided, call initialize - // before encrypt or decrypt. - ~sapphire (); // Destroy cipher state information. - void initialize (unsigned char *key, // User key is used to set - unsigned char keysize); // up state information. - void hash_init (void); // Set up default hash. - unsigned char encrypt (unsigned char b = 0); // Encrypt byte - // or get a random byte. - unsigned char decrypt (unsigned char b); // Decrypt byte. - void hash_final (unsigned char *hash, // Copy hash value to hash - unsigned char hashlength = 20); // Hash length (16-32) - void burn (void); // Destroy cipher state information. -}; - - -SWORD_NAMESPACE_END |