aboutsummaryrefslogtreecommitdiff
path: root/libssh
diff options
context:
space:
mode:
Diffstat (limited to 'libssh')
-rw-r--r--libssh/base64.c46
1 files changed, 24 insertions, 22 deletions
diff --git a/libssh/base64.c b/libssh/base64.c
index 42ee52b..51563ef 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<<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;
- }
+#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