Fix base64 decoding of Ed25519 keys.
authorGuus Sliepen <guus@tinc-vpn.org>
Tue, 3 Jun 2014 09:02:58 +0000 (11:02 +0200)
committerGuus Sliepen <guus@tinc-vpn.org>
Tue, 3 Jun 2014 09:02:58 +0000 (11:02 +0200)
src/invitation.c
src/utils.c

index 7fb96dacf00cb414e417f05964945c47e44a71ab..a6996cc692aee9857fc8866b3ce30a7a7c5919c2 100644 (file)
@@ -906,7 +906,7 @@ int cmd_join(int argc, char *argv[]) {
        if(!port || !*port)
                port = "655";
 
-       if(!b64decode(slash, hash, 18) || !b64decode(slash + 24, cookie, 18))
+       if(!b64decode(slash, hash, 24) || !b64decode(slash + 24, cookie, 24))
                goto invalid;
 
        // Generate a throw-away key for the invitation.
index 594c91a5f76dd0c7726ba83893d43d41443e854a..0d7bc02fac6371fb854685f60cb21120b1faabc4 100644 (file)
@@ -75,7 +75,7 @@ int b64decode(const char *src, void *dst, int length) {
        uint32_t triplet = 0;
        unsigned char *udst = (unsigned char *)dst;
 
-       for(i = 0; i < length / 3 * 4 && src[i]; i++) {
+       for(i = 0; i < length && src[i]; i++) {
                triplet |= base64_decode[src[i] & 0xff] << (6 * (i & 3));
                if((i & 3) == 3) {
                        if(triplet & 0xff000000U)