Package org.cryptacular.codec
Class AbstractBaseNDecoder
java.lang.Object
org.cryptacular.codec.AbstractBaseNDecoder
- All Implemented Interfaces:
Decoder
- Direct Known Subclasses:
Base32Decoder,Base64Decoder
Base decoder class for encoding schemes described in RFC 3548.
- Author:
- Middleware Services
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractBaseNDecoder(byte[] decodingTable) Creates a new instance with given parameters.AbstractBaseNDecoder(byte[] decodingTable, boolean paddedInput) Creates a new instance with given parameters. -
Method Summary
Modifier and TypeMethodDescriptionvoiddecode(CharBuffer input, ByteBuffer output) Decodes characters in input buffer into bytes placed in the output buffer.protected static byte[]decodingTable(String alphabet, int n) Converts the given alphabet into a base-N decoding table.voidfinalize(ByteBuffer output) Performs final output decoding (e.g. padding) after all input characters have been provided.protected abstract intprotected abstract intbooleanintoutputSize(int inputSize) Expected number of bytes in the output buffer for an input buffer of the given size.
-
Constructor Details
-
AbstractBaseNDecoder
public AbstractBaseNDecoder(byte[] decodingTable) Creates a new instance with given parameters.- Parameters:
decodingTable- Byte array indexed by characters in the character set encoding.
-
AbstractBaseNDecoder
public AbstractBaseNDecoder(byte[] decodingTable, boolean paddedInput) Creates a new instance with given parameters.- Parameters:
decodingTable- Byte array indexed by characters in the character set encoding.paddedInput- True to enable support for padded input, false otherwise.
-
-
Method Details
-
isPaddedInput
public boolean isPaddedInput()- Returns:
- True if padded input is accepted (default), false otherwise.
-
decode
Description copied from interface:DecoderDecodes characters in input buffer into bytes placed in the output buffer. This method may be called multiple times, followed byDecoder.finalize(ByteBuffer). after all input bytes have been provided.- Specified by:
decodein interfaceDecoder- Parameters:
input- Input character buffer.output- Output byte buffer.- Throws:
EncodingException- on decoding errors.
-
finalize
Description copied from interface:DecoderPerforms final output decoding (e.g. padding) after all input characters have been provided.- Specified by:
finalizein interfaceDecoder- Parameters:
output- Output byte buffer.- Throws:
EncodingException- on decoding errors.
-
outputSize
public int outputSize(int inputSize) Description copied from interface:DecoderExpected number of bytes in the output buffer for an input buffer of the given size.- Specified by:
outputSizein interfaceDecoder- Parameters:
inputSize- Size of input buffer in characters.- Returns:
- Minimum byte buffer size required to store all decoded characters in input buffer.
-
getBlockLength
protected abstract int getBlockLength()- Returns:
- Number of bits in a block of encoded characters.
-
getBitsPerChar
protected abstract int getBitsPerChar()- Returns:
- Number of bits encoding a single character.
-
decodingTable
Converts the given alphabet into a base-N decoding table.- Parameters:
alphabet- Decoding alphabet to use.n- Encoding base.- Returns:
- Decoding table of 128 elements.
-