-rw-r--r-- | lib/util.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/util.cc b/lib/util.cc index d9abca7..94f6f53 100644 --- a/lib/util.cc +++ b/lib/util.cc @@ -88,5 +88,9 @@ namespace opkele { string bignum_to_base64(const BIGNUM *bn) { - vector<unsigned char> bin(BN_num_bytes(bn)); - int l = BN_bn2bin(bn,&(bin.front())); - return encode_base64(&(bin.front()),l); + vector<unsigned char> bin(BN_num_bytes(bn)+1); + unsigned char *binptr = &(bin.front())+1; + int l = BN_bn2bin(bn,binptr); + if(l && (*binptr)&0x80){ + (*(--binptr)) = 0; ++l; + } + return encode_base64(binptr,l); } |