1 // Type definitions for TweetNaCl.js
3 export as namespace nacl;
5 declare var nacl: nacl;
8 declare namespace nacl {
9 export interface BoxKeyPair {
10 publicKey: Uint8Array;
11 secretKey: Uint8Array;
14 export interface SignKeyPair {
15 publicKey: Uint8Array;
16 secretKey: Uint8Array;
19 export interface secretbox {
20 (msg: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array;
21 open(box: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array | false;
22 readonly keyLength: number;
23 readonly nonceLength: number;
24 readonly overheadLength: number;
27 export interface scalarMult {
28 (n: Uint8Array, p: Uint8Array): Uint8Array;
29 base(n: Uint8Array): Uint8Array;
30 readonly scalarLength: number;
31 readonly groupElementLength: number;
35 export interface open {
36 (msg: Uint8Array, nonce: Uint8Array, publicKey: Uint8Array, secretKey: Uint8Array): Uint8Array | false;
37 after(box: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array | false;
40 export interface keyPair {
42 fromSecretKey(secretKey: Uint8Array): BoxKeyPair;
46 export interface box {
47 (msg: Uint8Array, nonce: Uint8Array, publicKey: Uint8Array, secretKey: Uint8Array): Uint8Array;
48 before(publicKey: Uint8Array, secretKey: Uint8Array): Uint8Array;
49 after(msg: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array;
52 readonly publicKeyLength: number;
53 readonly secretKeyLength: number;
54 readonly sharedKeyLength: number;
55 readonly nonceLength: number;
56 readonly overheadLength: number;
60 export interface detached {
61 (msg: Uint8Array, secretKey: Uint8Array): Uint8Array;
62 verify(msg: Uint8Array, sig: Uint8Array, publicKey: Uint8Array): boolean;
65 export interface keyPair {
67 fromSecretKey(secretKey: Uint8Array): SignKeyPair;
68 fromSeed(secretKey: Uint8Array): SignKeyPair;
72 export interface sign {
73 (msg: Uint8Array, secretKey: Uint8Array): Uint8Array;
74 open(signedMsg: Uint8Array, publicKey: Uint8Array): Uint8Array | null;
75 detached: sign.detached;
76 keyPair: sign.keyPair;
77 readonly publicKeyLength: number;
78 readonly secretKeyLength: number;
79 readonly seedLength: number;
80 readonly signatureLength: number;
83 export interface hash {
84 (msg: Uint8Array): Uint8Array;
85 readonly hashLength: number;
89 declare interface nacl {
90 randomBytes(n: number): Uint8Array;
91 secretbox: nacl.secretbox;
92 scalarMult: nacl.scalarMult;
96 verify(x: Uint8Array, y: Uint8Array): boolean;
97 setPRNG(fn: (x: Uint8Array, n: number) => void): void;