Cgi commands, Appendix d – Cisco WVC80N User Manual
Page 43
Appendix D
CGI Commands
42
Wireless-N Internet Home Monitoring Camera
Appendix D
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);