public static String toBase64()

in shared/src/main/java/org/apache/hupa/shared/algorithms/B64.java [121:157]


    public static String toBase64(byte[] data) {
        if (data == null) {
            return null;
        }

        int len = data.length;
        if (len == 0) {
            return "";
        }

        int olen = 4 * ((len + 2) / 3);
        char[] chars = new char[olen];

        int iidx = 0;
        int oidx = 0;
        int charsLeft = len;
        while (charsLeft > 0) {
            int b0 = data[iidx++] & 0xff;
            int b1 = (charsLeft > 1) ? data[iidx++] & 0xff : 0;
            int b2 = (charsLeft > 2) ? data[iidx++] & 0xff : 0;
            int b24 = (b0 << 16) | (b1 << 8) | b2;

            int c0 = (b24 >> 18) & 0x3f;
            int c1 = (b24 >> 12) & 0x3f;
            int c2 = (b24 >> 6) & 0x3f;
            int c3 = b24 & 0x3f;

            chars[oidx++] = base64Chars[c0];
            chars[oidx++] = base64Chars[c1];
            chars[oidx++] = (charsLeft > 1) ? base64Chars[c2] : '=';
            chars[oidx++] = (charsLeft > 2) ? base64Chars[c3] : '=';

            charsLeft -= 3;
        }

        return new String(chars);
    }