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'
 | |
| }
 |