107 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
declare var hash: Hash;
 | 
						|
 | 
						|
declare module "hash.js" {
 | 
						|
    export = hash;
 | 
						|
}
 | 
						|
 | 
						|
interface BlockHash<T> {
 | 
						|
    hmacStrength: number
 | 
						|
    padLength: number
 | 
						|
    endian: 'big' | 'little'
 | 
						|
}
 | 
						|
 | 
						|
interface MessageDigest<T> {
 | 
						|
    blockSize: number
 | 
						|
    outSize: number
 | 
						|
    update(msg: any, enc?: 'hex'): T
 | 
						|
    digest(): number[]
 | 
						|
    digest(enc: 'hex'): string
 | 
						|
}
 | 
						|
 | 
						|
interface Hash {
 | 
						|
    hmac: HmacConstructor
 | 
						|
    ripemd: RipemdSet
 | 
						|
    ripemd160: Ripemd160Constructor
 | 
						|
    sha: ShaSet
 | 
						|
    sha1: Sha1Constructor
 | 
						|
    sha224: Sha224Constructor
 | 
						|
    sha256: Sha256Constructor
 | 
						|
    sha384: Sha384Constructor
 | 
						|
    sha512: Sha512Constructor
 | 
						|
    utils: Utils
 | 
						|
}
 | 
						|
 | 
						|
interface Utils {
 | 
						|
    toArray(msg: any, enc: 'hex'): Array<number>
 | 
						|
    toHex(msg: any): string
 | 
						|
}
 | 
						|
 | 
						|
interface RipemdSet {
 | 
						|
    ripemd160: Ripemd160Constructor
 | 
						|
}
 | 
						|
 | 
						|
interface ShaSet {
 | 
						|
    sha1: Sha1Constructor
 | 
						|
    sha224: Sha224Constructor
 | 
						|
    sha256: Sha256Constructor
 | 
						|
    sha384: Sha384Constructor
 | 
						|
    sha512: Sha512Constructor
 | 
						|
}
 | 
						|
 | 
						|
interface HmacConstructor { (hash: BlockHash<any>, key: any, enc?: 'hex'): Hmac }
 | 
						|
interface Ripemd160Constructor { (): Ripemd160 }
 | 
						|
interface Sha1Constructor { (): Sha1; }
 | 
						|
interface Sha224Constructor { (): Sha224; }
 | 
						|
interface Sha256Constructor { (): Sha256; }
 | 
						|
interface Sha384Constructor { (): Sha384; }
 | 
						|
interface Sha512Constructor { (): Sha512; }
 | 
						|
 | 
						|
interface Hmac extends MessageDigest<Hmac> {
 | 
						|
    blockSize: 512
 | 
						|
    outSize: 160
 | 
						|
}
 | 
						|
 | 
						|
interface Ripemd160 extends BlockHash<Ripemd160>, MessageDigest<Ripemd160> {
 | 
						|
    blockSize: 512
 | 
						|
    hmacStrength: 192
 | 
						|
    outSize: 160
 | 
						|
    padLength: 64
 | 
						|
    endian: 'little'
 | 
						|
}
 | 
						|
 | 
						|
interface Sha1 extends BlockHash<Sha1>, MessageDigest<Sha1> {
 | 
						|
    blockSize: 512
 | 
						|
    hmacStrength: 80
 | 
						|
    outSize: 160
 | 
						|
    padLength: 64
 | 
						|
    endian: 'big'
 | 
						|
}
 | 
						|
interface Sha224 extends BlockHash<Sha224>, MessageDigest<Sha224> {
 | 
						|
    blockSize: 512
 | 
						|
    hmacStrength: 192
 | 
						|
    outSize: 224
 | 
						|
    padLength: 64
 | 
						|
    endian: 'big'
 | 
						|
}
 | 
						|
interface Sha256 extends BlockHash<Sha256>, MessageDigest<Sha256> {
 | 
						|
    blockSize: 512
 | 
						|
    hmacStrength: 192
 | 
						|
    outSize: 256
 | 
						|
    padLength: 64
 | 
						|
    endian: 'big'
 | 
						|
}
 | 
						|
interface Sha384 extends BlockHash<Sha384>, MessageDigest<Sha384> {
 | 
						|
    blockSize: 1024
 | 
						|
    hmacStrength: 192
 | 
						|
    outSize: 384
 | 
						|
    padLength: 128
 | 
						|
    endian: 'big'
 | 
						|
}
 | 
						|
interface Sha512 extends BlockHash<Sha512>, MessageDigest<Sha512> {
 | 
						|
    blockSize: 1024
 | 
						|
    hmacStrength: 192
 | 
						|
    outSize: 512
 | 
						|
    padLength: 128
 | 
						|
    endian: 'big'
 | 
						|
}
 |