- cSHAKE method.
- KMAC method.
- alias methods without underscore like shake128, keccak512.

Changed
- throw error if input type is incorrect.
This commit is contained in:
Chen, Yi-Cyuan
2017-06-15 11:07:11 +08:00
parent 5d6193d7f2
commit e9084afbdf
14 changed files with 617 additions and 132 deletions
Vendored
+76
View File
@@ -80,6 +80,68 @@ interface ShakeHash {
update(message: Message, outputBits: number): Hasher;
}
interface CshakeHash {
/**
* Hash and return hex string.
*
* @param message The message you want to hash.
* @param outputBits The length of output.
* @param functionName The function name string.
* @param customization The customization string.
*/
(message: Message, outputBits: number, functionName: Message, customization: Message): string;
/**
* Create a hash object.
*
* @param outputBits The length of output.
* @param functionName The function name string.
* @param customization The customization string.
*/
create(outputBits: number, functionName: Message, customization: Message): Hasher;
/**
* Create a hash object and hash message.
*
* @param message The message you want to hash.
* @param outputBits The length of output.
* @param functionName The function name string.
* @param customization The customization string.
*/
update(message: Message, outputBits: number, functionName: Message, customization: Message): Hasher;
}
interface KmacHash {
/**
* Hash and return hex string.
*
* @param key The key string.
* @param message The message you want to hash.
* @param outputBits The length of output.
* @param customization The customization string.
*/
(key: Message, message: Message, outputBits: number, customization: Message): string;
/**
* Create a hash object.
*
* @param key The key string.
* @param outputBits The length of output.
* @param customization The customization string.
*/
create(key: Message, outputBits: number, customization: Message): Hasher;
/**
* Create a hash object and hash message.
*
* @param key The key string.
* @param message The message you want to hash.
* @param outputBits The length of output.
* @param customization The customization string.
*/
update(key: Message, message: Message, outputBits: number, customization: Message): Hasher;
}
export var sha3_512: Hash;
export var sha3_384: Hash;
export var sha3_256: Hash;
@@ -88,5 +150,19 @@ export var keccak_512: Hash;
export var keccak_384: Hash;
export var keccak_256: Hash;
export var keccak_224: Hash;
export var keccak512: Hash;
export var keccak384: Hash;
export var keccak256: Hash;
export var keccak224: Hash;
export var shake_128: ShakeHash;
export var shake_256: ShakeHash;
export var shake128: ShakeHash;
export var shake256: ShakeHash;
export var cshake_128: CshakeHash;
export var cshake_256: CshakeHash;
export var cshake128: CshakeHash;
export var cshake256: CshakeHash;
export var kmac_128: KmacHash;
export var kmac_256: kmacHash;
export var kmac128: KmacHash;
export var kmac256: KmacHash;