beautypg.com

Cgi commands, Appendix d – Cisco WVC80N User Manual

Page 43

background image

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);