AMXX-BG.INFO crypt.inc Raw include

crypt.inc

Original include source with line numbers.

Back Download .inc
1
2 /*
3 Crypt
4 v0.1
5 by bugsy
6 */
7
8 #if defined _crypt_included
9 #endinput
10 #endif
11 #define _crypt_included
12
13 const CRYPT_MAX_LEN = 512;
14
15 enum CryptInfo
16 {
17 C_Len,
18 C_String[ CRYPT_MAX_LEN + 1 ],
19 bool:C_IsEncrypted
20 }
21
22 stock CreateCrypt( Crypt[ CryptInfo ] , const szSource[] )
23 {
24 if ( ( Crypt[ C_Len ] = strlen( szSource ) ) > CRYPT_MAX_LEN )
25 return ( Crypt[ C_Len ] = 0 );
26
27 Crypt[ C_IsEncrypted ] = false;
28 return copy( Crypt[ C_String ] , clamp( Crypt[ C_Len ] , 1 , CRYPT_MAX_LEN ) , szSource );
29 }
30
31 stock CryptString( Crypt[ CryptInfo ] , const szKey[] )
32 {
33 new iSrcPos , iKeyPos , iKeyLen;
34
35 if ( !( iKeyLen = strlen( szKey ) ) )
36 return 0;
37
38 for ( iSrcPos = 0 , iKeyPos = 0 ; iSrcPos < Crypt[ C_Len ] ; iSrcPos++ )
39 {
40 Crypt[ C_String ][ iSrcPos ] = Crypt[ C_String ][ iSrcPos ] ^ szKey[ iKeyPos ];
41
42 if ( ++iKeyPos == iKeyLen )
43 iKeyPos = 0;
44 }
45
46 //I get a warning with: var = !var
47 Crypt[ C_IsEncrypted ] = Crypt[ C_IsEncrypted ] ? false : true;
48
49 return iSrcPos;
50 }
51