Format _bin_to_base64().

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@740 7dcaeef0-15fb-0310-b436-a5af3365683c
This commit is contained in:
Andreas Schneider
2009-05-05 09:07:09 +00:00
parent 2e5f1c8955
commit f7d2040d5a

View File

@@ -228,29 +228,31 @@ static int get_equals(char *string) {
} }
/* thanks sysk for debugging my mess :) */ /* thanks sysk for debugging my mess :) */
#define BITS(n) ((1<<n)-1) #define BITS(n) ((1 << (n)) - 1)
static void _bin_to_base64(unsigned char *dest, unsigned char source[3], int len){ static void _bin_to_base64(unsigned char *dest, unsigned char source[3],
switch (len){ int len) {
case 1: switch (len) {
dest[0]=alphabet[(source[0]>>2)]; case 1:
dest[1]=alphabet[((source[0] & BITS(2)) << 4)]; dest[0] = alphabet[(source[0] >> 2)];
dest[2]='='; dest[1] = alphabet[((source[0] & BITS(2)) << 4)];
dest[3]='='; dest[2] = '=';
break; dest[3] = '=';
case 2: break;
dest[0]=alphabet[source[0]>>2]; case 2:
dest[1]=alphabet[(source[1]>>4) | ((source[0] & BITS(2)) << 4)]; dest[0] = alphabet[source[0] >> 2];
dest[2]=alphabet[(source[1]&BITS(4)) << 2]; dest[1] = alphabet[(source[1] >> 4) | ((source[0] & BITS(2)) << 4)];
dest[3]='='; dest[2] = alphabet[(source[1] & BITS(4)) << 2];
break; dest[3] = '=';
case 3: break;
dest[0]=alphabet[(source[0]>>2)]; case 3:
dest[1]=alphabet[(source[1]>>4) | ((source[0] & BITS(2)) << 4)]; dest[0] = alphabet[(source[0] >> 2)];
dest[2]=alphabet[ (source[2] >> 6) | (source[1]&BITS(4)) << 2]; dest[1] = alphabet[(source[1] >> 4) | ((source[0] & BITS(2)) << 4)];
dest[3]=alphabet[source[2]&BITS(6)]; dest[2] = alphabet[ (source[2] >> 6) | (source[1] & BITS(4)) << 2];
break; dest[3] = alphabet[source[2] & BITS(6)];
} break;
}
} }
/** \brief Converts binary data to a base64 string /** \brief Converts binary data to a base64 string
* \returns the converted string * \returns the converted string
* \internal * \internal