base64url

This commit is contained in:
Mike Hamburg 2011-08-13 20:19:09 -07:00
parent b25a0d63e6
commit cddf9c8a3b
2 changed files with 7 additions and 5 deletions

View file

@ -13,8 +13,9 @@ sjcl.codec.base64 = {
_chars: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
/** Convert from a bitArray to a base64 string. */
fromBits: function (arr, _noEquals) {
fromBits: function (arr, _noEquals, _url) {
var out = "", i, bits=0, c = sjcl.codec.base64._chars, ta=0, bl = sjcl.bitArray.bitLength(arr);
if (_url) c = c.substr(0,62) + '-_';
for (i=0; out.length * 6 < bl; ) {
out += c.charAt((ta ^ arr[i]>>>bits) >>> 26);
if (bits < 6) {
@ -31,9 +32,10 @@ sjcl.codec.base64 = {
},
/** Convert from a base64 string to a bitArray */
toBits: function(str) {
toBits: function(str, _url) {
str = str.replace(/\s|=/g,'');
var out = [], i, bits=0, c = sjcl.codec.base64._chars, ta=0, x;
if (_url) c = c.substr(0,62) + '-_';
for (i=0; i<str.length; i++) {
x = c.indexOf(str.charAt(i));
if (x < 0) {