Category : C Source Code
Archive   : SNIP1292.ZIP
Filename : CRYPT.C

 
Output of file : CRYPT.C contained in archive : SNIP1292.ZIP
/****************************************************************/
/* */
/* S-CODER - Encrypt/decrypt data */
/* */
/* Copyright 1987-1989 by Robert B. Stout dba MicroFirm */
/* */
/* Originally written by Bob Stout with modifications */
/* suggested by Mike Smedley. */
/* */
/* This code may be used freely in any program for any */
/* application, personal or commercial. */
/* */
/* Current commercial availability: */
/* */
/* 1. MicroFirm Toolkit ver 3.00: LYNX and CRYPT utilities */
/* 2. CXL libraries (MSC, TC, ZTC/C++, PC): fcrypt() */
/* dedicated file encryption function */
/* 3. SMTC & MFLZT libraries: crypt() function */
/* */
/****************************************************************/

char *cryptext; /* The actual encryption/decryption key */
int crypt_ptr = 0; /* Circular pointer to elements of key */
int crypt_length; /* Set externally to strlen(cryptext) */

/* NOTES: cryptext should be set and qualified (to something over
5-6 chars, minimum) by the calling program, which should
also set crypt_ptr in the range of 0 to strlen(cryptext)
before each use. If crypt() is used to encrypt several
buffers, cryptext should be reloaded and crypt_ptr reset
before each buffer is encrypted. The encryption is both
reversible - to decrypt data, pass it back through crypt()
using the original key and original initial value of
crypt_ptr - and multiple passes are commutative.
*/

/**** Encrypt/decrypt buffer datum ******************************/
void crypt(char *buf)
{
*buf ^= cryptext[crypt_ptr] ^ (cryptext[0] * crypt_ptr);
cryptext[crypt_ptr] += ((crypt_ptr < (crypt_length - 1)) ?
cryptext[crypt_ptr + 1] : cryptext[0]);
if (!cryptext[crypt_ptr])
cryptext[crypt_ptr] += 1;
if (++crypt_ptr >= crypt_length)
crypt_ptr = 0;
}


  3 Responses to “Category : C Source Code
Archive   : SNIP1292.ZIP
Filename : CRYPT.C

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/