Linksys WVC80N User Guide - Page 42

Base-64 Encoder/Decoder Sample Codes, SerComm BASE64 table

Page 42 highlights

Appendix D CGI Commands Base-64 Encoder/Decoder Sample Codes // Standard BASE64 table // char keyStr[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; // SerComm BASE64 table char keyStr[] = "ACEGIKMOQSUWYBDFHJLNPRTVXZacegikmoqsuwybdfhjlnprtvxz0246813579=+/"; // Description: Encrypt the input data with the base64 // Input: // char i_buf[] - input buffer // Output: // char o_buf[] - output buffer // Return: // encrypted string length int encode64(char i_buf[], char o_buf[]) { char chr1 = (char)0; char chr2 = (char)0; char chr3 = (char)0; //These are the 3 bytes to be encoded int enc1 = 0; int enc2 = 0; int enc3 = 0; int enc4 = 0; //These are the 4 encoded bytes int i = 0, j = 0; //Position counter do { //Set up the loop here chr1 = i_buf[i++]; //Grab the first byte if(i < strlen(i_buf )) chr2 = i_buf[i++]; //Grab the second byte if(i < strlen(i_buf )) chr3 = i_buf[i++]; //Grab the third byte //Here is the actual base64 encode part. //There really is only one way to do it. enc1 = chr1 >> 2; enc2 = ((chr1 & 3) > 4); enc3 = ((chr2 & 15) > 6); enc4 = chr3 & 63; if(chr2 == (char)0) { enc3 = enc4 = 64; } Wireless-N Internet Home Monitoring Camera 41

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66

Appendix D
CGI Commands
41
Wireless-N Internet Home Monitoring Camera
Base-64 Encoder/Decoder Sample Codes
// Standard BASE64 table
// char keyStr[] = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=”;
// SerComm BASE64 table
char keyStr[] = “ACEGIKMOQSUWYBDFHJLNPRTVXZacegikmoqsuwybdfhjlnprtvxz0246813579=+/”;
//--------------------------------------------------------------------
//
Description:
Encrypt the input data with the base64
//
Input:
//
char i_buf[]
- input buffer
//
Output:
//
char o_buf[]
- output buffer
//
Return:
//
encrypted string length
//--------------------------------------------------------------------
int encode64(char i_buf[], char o_buf[])
{
char chr1 = (char)0;
char chr2 = (char)0;
char chr3 = (char)0;
//These are the 3 bytes to be encoded
int enc1 = 0;
int enc2 = 0;
int enc3 = 0;
int enc4 = 0; //These are the 4 encoded bytes
int i = 0, j = 0; //Position counter
do { //Set up the loop here
chr1 = i_buf[i++]; //Grab the first byte
if(i < strlen(i_buf))
chr2 = i_buf[i++]; //Grab the second byte
if(i < strlen(i_buf))
chr3 = i_buf[i++]; //Grab the third byte
//Here is the actual base64 encode part.
//There really is only one way to do it.
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if(chr2 == (char)0) {
enc3 = enc4 = 64;
}