first commit
This commit is contained in:
+47
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
* HMAC: RFC2104 message authentication code.
|
||||
* @module
|
||||
*/
|
||||
import { type CHash, type Hash, type TArg, type TRet } from './utils.ts';
|
||||
/**
|
||||
* Internal class for HMAC.
|
||||
* Accepts any byte key, although RFC 2104 §3 recommends keys at least
|
||||
* `HashLen` bytes long.
|
||||
*/
|
||||
export declare class _HMAC<T extends Hash<T>> implements Hash<_HMAC<T>> {
|
||||
oHash: T;
|
||||
iHash: T;
|
||||
blockLen: number;
|
||||
outputLen: number;
|
||||
canXOF: boolean;
|
||||
private finished;
|
||||
private destroyed;
|
||||
constructor(hash: TArg<CHash>, key: TArg<Uint8Array>);
|
||||
update(buf: TArg<Uint8Array>): this;
|
||||
digestInto(out: TArg<Uint8Array>): void;
|
||||
digest(): TRet<Uint8Array>;
|
||||
_cloneInto(to?: _HMAC<T>): _HMAC<T>;
|
||||
clone(): _HMAC<T>;
|
||||
destroy(): void;
|
||||
}
|
||||
/**
|
||||
* HMAC: RFC2104 message authentication code.
|
||||
* @param hash - function that would be used e.g. sha256
|
||||
* @param key - authentication key bytes
|
||||
* @param message - message bytes to authenticate
|
||||
* @returns Authentication tag bytes.
|
||||
* @example
|
||||
* Compute an RFC 2104 HMAC.
|
||||
* ```ts
|
||||
* import { hmac } from '@noble/hashes/hmac.js';
|
||||
* import { sha256 } from '@noble/hashes/sha2.js';
|
||||
* const mac = hmac(sha256, new Uint8Array([1, 2, 3]), new Uint8Array([4, 5, 6]));
|
||||
* ```
|
||||
*/
|
||||
type HmacFn = {
|
||||
(hash: TArg<CHash>, key: TArg<Uint8Array>, message: TArg<Uint8Array>): TRet<Uint8Array>;
|
||||
create(hash: TArg<CHash>, key: TArg<Uint8Array>): TRet<_HMAC<any>>;
|
||||
};
|
||||
export declare const hmac: TRet<HmacFn>;
|
||||
export {};
|
||||
//# sourceMappingURL=hmac.d.ts.map
|
||||
Reference in New Issue
Block a user