| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | // Type definitions for TweetNaCl.jsexport as namespace nacl;declare var nacl: nacl;export = nacl;declare namespace nacl {    export interface BoxKeyPair {        publicKey: Uint8Array;        secretKey: Uint8Array;    }    export interface SignKeyPair {        publicKey: Uint8Array;        secretKey: Uint8Array;    }    export interface secretbox {        (msg: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array;        open(box: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array | false;        readonly keyLength: number;        readonly nonceLength: number;        readonly overheadLength: number;    }    export interface scalarMult {        (n: Uint8Array, p: Uint8Array): Uint8Array;        base(n: Uint8Array): Uint8Array;        readonly scalarLength: number;        readonly groupElementLength: number;    }    namespace box {        export interface open {            (msg: Uint8Array, nonce: Uint8Array, publicKey: Uint8Array, secretKey: Uint8Array): Uint8Array | false;            after(box: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array | false;        }        export interface keyPair {            (): BoxKeyPair;            fromSecretKey(secretKey: Uint8Array): BoxKeyPair;        }    }    export interface box {        (msg: Uint8Array, nonce: Uint8Array, publicKey: Uint8Array, secretKey: Uint8Array): Uint8Array;        before(publicKey: Uint8Array, secretKey: Uint8Array): Uint8Array;        after(msg: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array;        open: box.open;        keyPair: box.keyPair;        readonly publicKeyLength: number;        readonly secretKeyLength: number;        readonly sharedKeyLength: number;        readonly nonceLength: number;        readonly overheadLength: number;    }    namespace sign {        export interface detached {            (msg: Uint8Array, secretKey: Uint8Array): Uint8Array;            verify(msg: Uint8Array, sig: Uint8Array, publicKey: Uint8Array): boolean;        }        export interface keyPair {            (): SignKeyPair;            fromSecretKey(secretKey: Uint8Array): SignKeyPair;            fromSeed(secretKey: Uint8Array): SignKeyPair;        }    }    export interface sign {        (msg: Uint8Array, secretKey: Uint8Array): Uint8Array;        open(signedMsg: Uint8Array, publicKey: Uint8Array): Uint8Array | null;        detached: sign.detached;        keyPair: sign.keyPair;        readonly publicKeyLength: number;        readonly secretKeyLength: number;        readonly seedLength: number;        readonly signatureLength: number;    }    export interface hash {        (msg: Uint8Array): Uint8Array;        readonly hashLength: number;    }}declare interface nacl {    randomBytes(n: number): Uint8Array;    secretbox: nacl.secretbox;    scalarMult: nacl.scalarMult;    box: nacl.box;    sign: nacl.sign;    hash: nacl.hash;    verify(x: Uint8Array, y: Uint8Array): boolean;    setPRNG(fn: (x: Uint8Array, n: number) => void): void;}
 |