/** * Tests a given byte array to see if it contains only valid characters within the Base64 * alphabet. * * @param arrayOctet * byte array to test * @return <code>true</code> if any byte is a valid character in the Base64 alphabet; false * herwise */ private static boolean containsBase64Byte(final byte[] arrayOctet) { for (byte octet : arrayOctet) { if (isBase64(octet)) { return true; } } return false; }
/** * Discards any characters outside of the base64 alphabet, per the requirements on page 25 of * RFC 2045 - "Any characters outside of the base64 alphabet are to be ignored in base64 encoded * data." * * @param data * The base-64 encoded data to groom * @return The data, less non-base64 characters (see RFC 2045). */ static byte[] discardNonBase64(byte[] data) { byte groomedData[] = new byte[data.length]; int bytesCopied = 0; for (int i = 0; i < data.length; i++) { if (isBase64(data[i])) { groomedData[bytesCopied++] = data[i]; } } byte packedData[] = new byte[bytesCopied]; System.arraycopy(groomedData, 0, packedData, 0, bytesCopied); return packedData; }
/** * Discards any characters outside of the base64 alphabet, per the requirements on page 25 of * RFC 2045 - "Any characters outside of the base64 alphabet are to be ignored in base64 encoded * data." * * @param data * The base-64 encoded data to groom * @return The data, less non-base64 characters (see RFC 2045). */ static byte[] discardNonBase64(byte[] data) { byte groomedData[] = new byte[data.length]; int bytesCopied = 0; for (int i = 0; i < data.length; i++) { if (isBase64(data[i])) { groomedData[bytesCopied++] = data[i]; } } byte packedData[] = new byte[bytesCopied]; System.arraycopy(groomedData, 0, packedData, 0, bytesCopied); return packedData; }
/** * Tests a given byte array to see if it contains only valid characters within the Base64 * alphabet. Currently the method treats whitespace as valid. * * @param arrayOctet * byte array to test * @return <code>true</code> if all bytes are valid characters in the Base64 alphabet or if the * byte array is empty; false, otherwise */ public static boolean isArrayByteBase64(final byte[] arrayOctet) { for (byte octet : arrayOctet) { if (!isBase64(octet) && !isWhiteSpace(octet)) { return false; } } return true; }
/** * Tests a given byte array to see if it contains only valid characters within the Base64 * alphabet. * * @param arrayOctect * byte array to test * @return <code>true</code> if all bytes are valid characters in the Base64 alphabet or if * the byte array is empty; false, otherwise */ public static boolean isArrayByteBase64(byte[] arrayOctect) { arrayOctect = discardWhitespace(arrayOctect); int length = arrayOctect.length; if (length == 0) { // shouldn't a 0 length array be valid base64 data? // return false; return true; } for (int i = 0; i < length; i++) { if (!isBase64(arrayOctect[i])) { return false; } } return true; }
/** * Tests a given byte array to see if it contains only valid characters within the Base64 * alphabet. * * @param arrayOctect * byte array to test * @return <code>true</code> if all bytes are valid characters in the Base64 alphabet or if the * byte array is empty; false, otherwise */ public static boolean isArrayByteBase64(byte[] arrayOctect) { arrayOctect = discardWhitespace(arrayOctect); int length = arrayOctect.length; if (length == 0) { // shouldn't a 0 length array be valid base64 data? // return false; return true; } for (int i = 0; i < length; i++) { if (!isBase64(arrayOctect[i])) { return false; } } return true; }