Package com.mku.salmon.transform
Class AesCTRTransformer
- java.lang.Object
 - 
- com.mku.salmon.transform.AesCTRTransformer
 
 
- 
- All Implemented Interfaces:
 ICTRTransformer
- Direct Known Subclasses:
 AesDefaultTransformer,AesNativeTransformer
public abstract class AesCTRTransformer extends java.lang.Object implements ICTRTransformer
Abstract class for AES256 transformer implementations. 
- 
- 
Field Summary
Fields Modifier and Type Field Description static intBLOCK_SIZESalmon stream encryption block size, same as AES.static intEXPANDED_KEY_SIZEStandard expansion key size for AES256 only. 
- 
Constructor Summary
Constructors Constructor Description AesCTRTransformer() 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description longgetBlock()Get the current block.byte[]getCounter()Get the current Counter.protected byte[]getExpandedKey()Get the expanded key if available.byte[]getKey()Get the current encryption key.byte[]getNonce()Get the nonce (initial counter)protected voidincreaseCounter(long value)Increase the Counter We use only big endianness for AES regardless of the machine architecturevoidinit(byte[] key, byte[] nonce)Initialize the transformer.voidresetCounter()Resets the Counter and the block count.voidsetExpandedKey(byte[] expandedKey)Set the expanded key.voidsyncCounter(long position)Syncs the Counter based on what AES block position the stream is at.- 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
- 
Methods inherited from interface com.mku.salmon.transform.ICTRTransformer
decryptData, encryptData 
 - 
 
 - 
 
- 
- 
Field Detail
- 
EXPANDED_KEY_SIZE
public static final int EXPANDED_KEY_SIZE
Standard expansion key size for AES256 only.- See Also:
 - Constant Field Values
 
 
- 
BLOCK_SIZE
public static final int BLOCK_SIZE
Salmon stream encryption block size, same as AES.- See Also:
 - Constant Field Values
 
 
 - 
 
- 
Method Detail
- 
resetCounter
public void resetCounter()
Resets the Counter and the block count.- Specified by:
 resetCounterin interfaceICTRTransformer
 
- 
syncCounter
public void syncCounter(long position)
Syncs the Counter based on what AES block position the stream is at. The block count is already excluding the header and the hash signatures.- Specified by:
 syncCounterin interfaceICTRTransformer- Parameters:
 position- The position to sync the counter to
 
- 
increaseCounter
protected void increaseCounter(long value)
Increase the Counter We use only big endianness for AES regardless of the machine architecture- Parameters:
 value- value to increase counter by
 
- 
init
public void init(byte[] key, byte[] nonce)Initialize the transformer. Most common operations include precalculating expansion keys or any other prior initialization for efficiency.- Specified by:
 initin interfaceICTRTransformer- Parameters:
 key- The keynonce- The nonce- Throws:
 SecurityException- Thrown if there is a security exception
 
- 
getCounter
public byte[] getCounter()
Get the current Counter.- Specified by:
 getCounterin interfaceICTRTransformer- Returns:
 - The current counter
 
 
- 
getBlock
public long getBlock()
Get the current block.- Specified by:
 getBlockin interfaceICTRTransformer- Returns:
 - The current block
 
 
- 
getKey
public byte[] getKey()
Get the current encryption key.- Specified by:
 getKeyin interfaceICTRTransformer- Returns:
 - The encryption key
 
 
- 
getExpandedKey
protected byte[] getExpandedKey()
Get the expanded key if available.- Returns:
 - The expanded key
 
 
- 
getNonce
public byte[] getNonce()
Get the nonce (initial counter)- Specified by:
 getNoncein interfaceICTRTransformer- Returns:
 - The nonce
 
 
- 
setExpandedKey
public void setExpandedKey(byte[] expandedKey)
Set the expanded key. This should be called once during initialization phase.- Parameters:
 expandedKey- The expanded key
 
 - 
 
 -