Appendix D
CGI Commands
else if(chr3 == (char)0) { enc4 = 64;
}
o_buf[j++] = keyStr[enc1]; o_buf[j++] = keyStr[enc2]; o_buf[j++] = keyStr[enc3]; o_buf[j++] = keyStr[enc4];
//OK, now clean out the variables used. chr1 = chr2 = chr3 = (char)0;
enc1 = enc2 = enc3 = enc4 = (char)0;
}while (i < strlen(i_buf)); //And finish off the loop
//Now return the encoded values. return j;
}
//Description: decrypt the input data with the base64
//Input:
// | char i_buf[] | - input buffer |
// Output: |
| |
// | char o_buf[] | - output buffer |
// Return: |
|
|
// | decrypted string length | |
|
int decode64(char i_buf[], char o_buf[]) { //These are the 3 bytes to be encoded char chr1 = (char)0;
char chr2 = (char)0; char chr3 = (char)0;
//These are the 4 encoded bytes int enc1 = 0;
int enc2 = 0; int enc3 = 0; int enc4 = 0;
int i = 0, j = 0; //Position counter
do { //Here’s the decode loop.
//Grab 4 bytes of encoded content.
enc1 = (int)(strchr(keyStr, i_buf[i++]) - keyStr);
if(i < strlen(i_buf))
enc2 = (int)(strchr(keyStr, i_buf[i++]) - keyStr); if(i < strlen(i_buf))
enc3 = (int)(strchr(keyStr, i_buf[i++]) - keyStr); if(i < strlen(i_buf))
enc4 = (int)(strchr(keyStr, i_buf[i++]) - keyStr);
42 |