java.lang.Object
com.southernstorm.noise.protocol.Noise
Utility functions for the Noise protocol library.
Provides factory methods for creating Noise protocol cipher and hash instances, along with internal utility functions for byte array management.
Field Summary
FieldsConstructor Summary
ConstructorsConstructorDescriptionNoise()Every member here is static and the class holds no fields, so an instance carries nothing; it exists only to give the utility class a documented entry point.Method Summary
All MethodsModifier and TypeMethodDescription(package private) static byte[]copySubArray(byte[] data, int offset, int length) Makes a copy of part of an array.static CipherStatecreateCipher(String name) Creates a cipher object from its Noise protocol name.static MessageDigestcreateHash(String name) Creates a hash object from its Noise protocol name.(package private) static voiddestroy(byte[] array) Destroys the contents of a byte array.(package private) static voidreleaseHash(MessageDigest hash) I2P Release a hash object back to the pool.(package private) static voidThrows an instance of AEADBadTagException.
Field Details
MAX_PACKET_LEN
public static final int MAX_PACKET_LENMaximum length for Noise packets.- See Also:
Constructor Details
Noise
public Noise()Every member here is static and the class holds no fields, so an instance carries nothing; it exists only to give the utility class a documented entry point.
Method Details
createCipher
Creates a cipher object from its Noise protocol name.- Parameters:
name- The name of the cipher algorithm; e.g. "AESGCM", "ChaChaPoly", etc.- Returns:
- The cipher object if the name is recognized.
- Throws:
NoSuchAlgorithmException- The name is not recognized as a valid Noise protocol name, or there is no cryptography provider in the system that implements the algorithm.
createHash
Creates a hash object from its Noise protocol name.- Parameters:
name- The name of the hash algorithm; e.g. "SHA256", "BLAKE2s", etc.- Returns:
- The hash object if the name is recognized.
- Throws:
NoSuchAlgorithmException- The name is not recognized as a valid Noise protocol name, or there is no cryptography provider in the system that implements the algorithm.
releaseHash
I2P Release a hash object back to the pool.- Parameters:
hash- the hash object to release
destroy
static void destroy(byte[] array) Destroys the contents of a byte array.- Parameters:
array- The array whose contents should be destroyed.
copySubArray
static byte[] copySubArray(byte[] data, int offset, int length) Makes a copy of part of an array.- Parameters:
data- The buffer containing the data to copy.offset- Offset of the first byte to copy.length- The number of bytes to copy.- Returns:
- A new array with a copy of the sub-array.
throwBadTagException
Throws an instance of AEADBadTagException.- Throws:
BadPaddingException- The AEAD exception. If the underlying JDK does not have the AEADBadTagException class, then this function will instead throw an instance of the superclass BadPaddingException.