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