/** * Decodes this Base64 object to a byte array. * * @return The resulting byte array. */ public byte[] decode() { return Base64Codec.decode(value); }
final int is_uppercase = tpGT(ascii, 64) & tpLT(ascii, 91); final int is_lowercase = tpGT(ascii, 96) & tpLT(ascii, 123); final int is_decimal = tpGT(ascii, 47) & tpLT(ascii, 58); final int is_62 = tpEq(ascii, (int) '-') | tpEq(ascii, (int) '+'); final int is_63 = tpEq(ascii, (int) '_') | tpEq(ascii, (int) '/'); tpSelect(is_uppercase, from_uppercase, 0) | tpSelect(is_lowercase, from_lowercase, 0) | tpSelect(is_decimal , from_decimal , 0) | tpSelect(is_62 , from_62 , 0) | tpSelect(is_63 , from_63 , 0) | tpSelect(is_valid , 0 , -1);
final int dLen = computeEncodedLength(sLen, urlSafe); // Returned byte count final byte[] out = new byte[dLen]; out[d++] = encodeDigitBase64URL((i >>> 18) & 0x3f); out[d++] = encodeDigitBase64URL((i >>> 12) & 0x3f); out[d++] = encodeDigitBase64URL((i >>> 6) & 0x3f); out[d++] = encodeDigitBase64URL(i & 0x3f); } else { out[d++] = encodeDigitBase64((i >>> 18) & 0x3f); out[d++] = encodeDigitBase64((i >>> 12) & 0x3f); out[d++] = encodeDigitBase64((i >>> 6) & 0x3f); out[d++] = encodeDigitBase64(i & 0x3f); out[dLen - 3] = encodeDigitBase64URL(i >> 12); out[dLen - 2] = encodeDigitBase64URL((i >>> 6) & 0x3f); out[dLen - 1] = encodeDigitBase64URL(i & 0x3f); } else { out[dLen - 2] = encodeDigitBase64URL(i >> 12); out[dLen - 1] = encodeDigitBase64URL((i >>> 6) & 0x3f); out[dLen - 4] = encodeDigitBase64(i >> 12); out[dLen - 3] = encodeDigitBase64((i >>> 6) & 0x3f); out[dLen - 2] = left == 2 ? encodeDigitBase64(i & 0x3f) : (byte) '='; out[dLen - 1] = (byte) '=';
/** * Base64-encodes the specified byte array. * * @param bytes The byte array to encode. Must not be {@code null}. * * @return The resulting Base64 object. */ public static Base64 encode(final byte[] bytes) { return new Base64(Base64Codec.encodeToString(bytes, false)); }
while (j < 4 && s < sLen) { final int c = decodeDigit(srcBytes[s++]); if (c >= 0) { i |= c << (18 - j * 6);
/** * Base64URL-encodes the specified byte array. * * @param bytes The byte array to encode. Must not be {@code null}. * * @return The resulting Base64URL object. */ public static Base64URL encode(final byte[] bytes) { return new Base64URL(Base64Codec.encodeToString(bytes, true)); }
final int is_uppercase = tpLT(digit_idx, 26); final int is_lowercase = tpGT(digit_idx, 25) & tpLT(digit_idx, 52); final int is_decimal = tpGT(digit_idx, 51) & tpLT(digit_idx, 62); final int is_62 = tpEq(digit_idx, 62); final int is_63 = tpEq(digit_idx, 63); tpSelect(is_uppercase, as_uppercase, 0) | tpSelect(is_lowercase, as_lowercase, 0) | tpSelect(is_decimal , as_decimal , 0) | tpSelect(is_62 , as_62 , 0) | tpSelect(is_63 , as_63 , 0);
final int is_uppercase = tpLT(digit_idx, 26); final int is_lowercase = tpGT(digit_idx, 25) & tpLT(digit_idx, 52); final int is_decimal = tpGT(digit_idx, 51) & tpLT(digit_idx, 62); final int is_62 = tpEq(digit_idx, 62); final int is_63 = tpEq(digit_idx, 63); tpSelect(is_uppercase, as_uppercase, 0) | tpSelect(is_lowercase, as_lowercase, 0) | tpSelect(is_decimal , as_decimal , 0) | tpSelect(is_62 , as_62 , 0) | tpSelect(is_63 , as_63 , 0);