From ae5c4f834cd654c89d8e056c0ffeb00d3da0ed79 Mon Sep 17 00:00:00 2001 From: idk Date: Fri, 5 Apr 2019 21:06:30 -0400 Subject: [PATCH] fix how the padding is computed --- transcoders.go | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/transcoders.go b/transcoders.go index 0a705ab..b9347c2 100644 --- a/transcoders.go +++ b/transcoders.go @@ -261,18 +261,14 @@ func garlic32StB(s string) ([]byte, error) { return nil, fmt.Errorf("failed to parse garlic addr: %s not a i2p base32 address. len: %d", s, len(s)) } } - - for len(s) < 56 { + //compute the length to pad the address to, usually 56 or 64 + x := int((len(s)/8)+1) * 8 + for len(s) < x { s += "=" } - - garlicHostBytes, err := garlicBase32Encoding.DecodeString(s) + garlicHostBytes, err := garlicBase32Encoding.DecodeString(s[0:56]) if err != nil { - return nil, fmt.Errorf("failed to decode base32 garlic addr: %s, err: %v len: %v", - s, - err, - len(s), - ) + return nil, fmt.Errorf("failed to decode base32 garlic addr: %s, err: %v len: %v", s, err, len(s)) } return garlicHostBytes, nil }