mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-08-20 12:00:53 +08:00
add: Definition and test for jsSHA
Definition and test files for the jsSHA library at <https://github.com/Caligatio/jsSHA> Signed-off-by: David Li <jiawei.davidli@gmail.com>
This commit is contained in:
Executable
+15
@@ -0,0 +1,15 @@
|
||||
/// <reference path="jssha.d.ts" />
|
||||
/// <reference path="../node/node.d.ts" />
|
||||
|
||||
var imported = require("jssha");
|
||||
|
||||
var shaObj1:jsSHA.jsSHA = new jsSHA("This is a Test", "TEXT", "UTF8");
|
||||
var shaObj2 = new imported("This is a Test", "TEXT");
|
||||
|
||||
var hash1:string = shaObj2.getHash("SHA-512", "HEX");
|
||||
var hash2:string = shaObj2.getHash("SHA-512", "HEX", 2);
|
||||
var hash3:string = shaObj2.getHash("SHA-512", "HEX", 2, {outputUpper: false, b64Pad: "foobar"});
|
||||
|
||||
var format:jsSHA.OutputFormatOptions = {outputUpper: false, b64Pad: "foobar"};
|
||||
var hmac1 = shaObj2.getHMAC("SecretKey", "TEXT", "SHA-512", "HEX");
|
||||
var hmac2 = shaObj2.getHMAC("SecretKey", "TEXT", "SHA-512", "HEX", format);
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
// Type definitions for jsSHA
|
||||
// Project: https://github.com/Caligatio/jsSHA
|
||||
// Definitions by: David Li <https://github.com/randombk>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
|
||||
declare module jsSHA {
|
||||
export interface OutputFormatOptions {
|
||||
outputUpper : boolean;
|
||||
b64Pad : string;
|
||||
}
|
||||
|
||||
export interface jsSHA {
|
||||
/**
|
||||
* jsSHA is the workhorse of the library. Instantiate it with the string to
|
||||
* be hashed as the parameter
|
||||
*
|
||||
* @constructor
|
||||
* @this {jsSHA}
|
||||
* @param {string} srcString The string to be hashed
|
||||
* @param {string} inputFormat The format of srcString, HEX, TEXT, B64, or BYTES
|
||||
* @param {string=} encoding The text encoding to use to encode the source
|
||||
* string
|
||||
*/
|
||||
new (srcString:string, inputFormat:string, encoding?:string):jsSHA;
|
||||
|
||||
/**
|
||||
* Returns the desired SHA hash of the string specified at instantiation
|
||||
* using the specified parameters
|
||||
*
|
||||
* @param {string} variant The desired SHA variant (SHA-1, SHA-224,
|
||||
* SHA-256, SHA-384, or SHA-512)
|
||||
* @param {string} format The desired output formatting (B64, HEX, or BYTES)
|
||||
* @param {number=} numRounds The number of rounds of hashing to be
|
||||
* executed
|
||||
* @param {{outputUpper : boolean, b64Pad : string}=} outputFormatOpts
|
||||
* Hash list of output formatting options
|
||||
* @return {string} The string representation of the hash in the format
|
||||
* specified
|
||||
*/
|
||||
getHash(variant:string, format:string, numRounds?:number, outputFormatOpts?:OutputFormatOptions):string;
|
||||
|
||||
/**
|
||||
* Returns the desired HMAC of the string specified at instantiation
|
||||
* using the key and variant parameter
|
||||
*
|
||||
* @param {string} key The key used to calculate the HMAC
|
||||
* @param {string} inputFormat The format of key, HEX, TEXT, B64, or BYTES
|
||||
* @param {string} variant The desired SHA variant (SHA-1, SHA-224,
|
||||
* SHA-256, SHA-384, or SHA-512)
|
||||
* @param {string} outputFormat The desired output formatting
|
||||
* (B64, HEX, or BYTES)
|
||||
* @param {{outputUpper : boolean, b64Pad : string}=} outputFormatOpts
|
||||
* associative array of output formatting options
|
||||
* @return {string} The string representation of the hash in the format
|
||||
* specified
|
||||
*/
|
||||
getHMAC(key:string, inputFormat:string, variant:string, outputFormat:string, outputFormatOpts?:OutputFormatOptions):string;
|
||||
}
|
||||
}
|
||||
|
||||
declare var jsSHA: jsSHA.jsSHA;
|
||||
declare module 'jssha' {
|
||||
export = jsSHA;
|
||||
}
|
||||
Reference in New Issue
Block a user