int bin2urlstr(const BYTE *bindata, size_t size, char *str) { int ret = bin2b64str(bindata, size, str); // strip \r\n for (char *s=str, *d=str; *d = *s; s++) { if (*s != '\r' && *s != '\n') { d++; ret--; } } // replace char for (char *s=str; *s; s++) { switch (*s) { case '+': *s = '-'; break; case '/': *s = '_'; break; case '=': *s = 0; ret--; break; } } return ret; }
int bin2b64str_revendian(const BYTE *bindata, int len, char *buf) { BYTE *rev = new BYTE [len]; if (!rev) return -1; rev_order(bindata, rev, len); int ret = bin2b64str(rev, len, buf); delete [] rev; return ret; }
int bin2b64str_revendian(const BYTE *bindata, size_t size, char *buf) { BYTE *rev = new BYTE [size]; if (!rev) return -1; rev_order(bindata, rev, size); int ret = bin2b64str(rev, size, buf); delete [] rev; return ret; }
int bin2urlstr(const BYTE *bindata, int len, char *str) { int ret = bin2b64str(bindata, len, str); for (char *s=str; *s; s++) { switch (*s) { case '+': *s = '-'; break; case '/': *s = '_'; break; case '\r': case '\n': case '=': *s = 0; break; } } return ret; }