From f7d2040d5a7e2764bbe2983beab5e0e2bf3cbd9e Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 5 May 2009 09:07:09 +0000 Subject: Format _bin_to_base64(). git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@740 7dcaeef0-15fb-0310-b436-a5af3365683c --- libssh/base64.c | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/libssh/base64.c b/libssh/base64.c index 42ee52bf..51563ef2 100644 --- a/libssh/base64.c +++ b/libssh/base64.c @@ -228,29 +228,31 @@ static int get_equals(char *string) { } /* thanks sysk for debugging my mess :) */ -#define BITS(n) ((1<>2)]; - dest[1]=alphabet[((source[0] & BITS(2)) << 4)]; - dest[2]='='; - dest[3]='='; - break; - case 2: - dest[0]=alphabet[source[0]>>2]; - dest[1]=alphabet[(source[1]>>4) | ((source[0] & BITS(2)) << 4)]; - dest[2]=alphabet[(source[1]&BITS(4)) << 2]; - dest[3]='='; - break; - case 3: - dest[0]=alphabet[(source[0]>>2)]; - dest[1]=alphabet[(source[1]>>4) | ((source[0] & BITS(2)) << 4)]; - dest[2]=alphabet[ (source[2] >> 6) | (source[1]&BITS(4)) << 2]; - dest[3]=alphabet[source[2]&BITS(6)]; - break; - } +#define BITS(n) ((1 << (n)) - 1) +static void _bin_to_base64(unsigned char *dest, unsigned char source[3], + int len) { + switch (len) { + case 1: + dest[0] = alphabet[(source[0] >> 2)]; + dest[1] = alphabet[((source[0] & BITS(2)) << 4)]; + dest[2] = '='; + dest[3] = '='; + break; + case 2: + dest[0] = alphabet[source[0] >> 2]; + dest[1] = alphabet[(source[1] >> 4) | ((source[0] & BITS(2)) << 4)]; + dest[2] = alphabet[(source[1] & BITS(4)) << 2]; + dest[3] = '='; + break; + case 3: + dest[0] = alphabet[(source[0] >> 2)]; + dest[1] = alphabet[(source[1] >> 4) | ((source[0] & BITS(2)) << 4)]; + dest[2] = alphabet[ (source[2] >> 6) | (source[1] & BITS(4)) << 2]; + dest[3] = alphabet[source[2] & BITS(6)]; + break; + } } + /** \brief Converts binary data to a base64 string * \returns the converted string * \internal -- cgit v1.2.3