httpyac
Version:
HTTP/REST CLI Client for *.http files
118 lines (117 loc) • 3.09 kB
TypeScript
/**
* Some useful function for cryptography
*/
export interface CryptoSupport {
/**
* SHA-1 digest builder
*/
sha1(): DigestBuilder;
/**
* SHA-256 digest builder
*/
sha256(): DigestBuilder;
/**
* SHA-384 digest builder
*/
sha384(): DigestBuilder;
/**
* SHA-512 digest builder
*/
sha512(): DigestBuilder;
/**
* MD-5 digest builder
*/
md5(): DigestBuilder;
/**
* API for hmac
*/
hmac: HmacSupport;
}
/**
* Builder for digests.
* Sequential calls of `update*` methods append bytes to result message.
*/
export interface DigestBuilder {
/**
* Append data presented as text
* @param textInput data for appending to message
* @param encoding encoding for decoding text to bytes. By default, UTF-8
*/
updateWithText(textInput: string, encoding?: string): DigestBuilder;
/**
* Append data presented as 16-radix HEX text
* @param hexInput data for appending to message
*/
updateWithHex(hexInput: string): DigestBuilder;
/**
* Append data presented as Base64 encoded text
* @param base64Input data for appending to message
* @param urlSafe is `base64Input` encoded as urlSafe Base64 variant. By default, false
*/
updateWithBase64(base64Input: string, urlSafe?: boolean): DigestBuilder;
/**
* Constructs digest from containing message.
*/
digest(): Digest;
}
/**
* Object containing bytes of digest
*/
export interface Digest {
/**
* Returns bytes encoded as 16-radix HEX string
*/
toHex(): string;
/**
* Returns bytes encoded as Base64 string
* @param urlSafe if true, will be used url-safe variant of Base64. By default, false
*/
toBase64(urlSafe?: boolean): string;
}
/**
* API for HMAC
*/
export interface HmacSupport {
/**
* SHA-1 HMAC builder
*/
sha1(): HmacInitializer;
/**
* SHA-256 HMAC builder
*/
sha256(): HmacInitializer;
/**
* SHA-384 HMAC builder
*/
sha384(): HmacInitializer;
/**
* SHA-512 HMAC builder
*/
sha512(): HmacInitializer;
/**
* MD-5 HMAC builder
*/
md5(): HmacInitializer;
}
/**
* Object for initializing HMAC with private key (secret).
*/
export interface HmacInitializer {
/**
* Initializes HMAC with secret presented as text. Converts to bytes using encoding
* @param textSecret HMAC secret
* @param encoding encoding for decoding text. By default, UTF-8
*/
withTextSecret(textSecret: string, encoding?: string): DigestBuilder;
/**
* Initializes HMAC with secret presented as 16-radix HEX string.
* @param hexSecret HMAC secret
*/
withHexSecret(hexSecret: string): DigestBuilder;
/**
* Initializes HMAC with secret presented as Base64 string.
* @param base64Secret HMAC secret
* @param urlSafe is `base64Secret` encoded using urlSafe Base64-variant. By default, false
*/
withBase64Secret(base64Secret: string, urlSafe?: string): DigestBuilder;
}