UNPKG

3.1 kBTypeScriptView Raw
1// Type definitions for TweetNaCl.js
2
3export as namespace nacl;
4
5declare var nacl: nacl;
6export = nacl;
7
8declare namespace nacl {
9 export interface BoxKeyPair {
10 publicKey: Uint8Array;
11 secretKey: Uint8Array;
12 }
13
14 export interface SignKeyPair {
15 publicKey: Uint8Array;
16 secretKey: Uint8Array;
17 }
18
19 export interface secretbox {
20 (msg: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array;
21 open(box: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array | null;
22 readonly keyLength: number;
23 readonly nonceLength: number;
24 readonly overheadLength: number;
25 }
26
27 export interface scalarMult {
28 (n: Uint8Array, p: Uint8Array): Uint8Array;
29 base(n: Uint8Array): Uint8Array;
30 readonly scalarLength: number;
31 readonly groupElementLength: number;
32 }
33
34 namespace boxProps {
35 export interface open {
36 (msg: Uint8Array, nonce: Uint8Array, publicKey: Uint8Array, secretKey: Uint8Array): Uint8Array | null;
37 after(box: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array | null;
38 }
39
40 export interface keyPair {
41 (): BoxKeyPair;
42 fromSecretKey(secretKey: Uint8Array): BoxKeyPair;
43 }
44 }
45
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;
50 open: boxProps.open;
51 keyPair: boxProps.keyPair;
52 readonly publicKeyLength: number;
53 readonly secretKeyLength: number;
54 readonly sharedKeyLength: number;
55 readonly nonceLength: number;
56 readonly overheadLength: number;
57 }
58
59 namespace signProps {
60 export interface detached {
61 (msg: Uint8Array, secretKey: Uint8Array): Uint8Array;
62 verify(msg: Uint8Array, sig: Uint8Array, publicKey: Uint8Array): boolean;
63 }
64
65 export interface keyPair {
66 (): SignKeyPair;
67 fromSecretKey(secretKey: Uint8Array): SignKeyPair;
68 fromSeed(secretKey: Uint8Array): SignKeyPair;
69 }
70 }
71
72 export interface sign {
73 (msg: Uint8Array, secretKey: Uint8Array): Uint8Array;
74 open(signedMsg: Uint8Array, publicKey: Uint8Array): Uint8Array | null;
75 detached: signProps.detached;
76 keyPair: signProps.keyPair;
77 readonly publicKeyLength: number;
78 readonly secretKeyLength: number;
79 readonly seedLength: number;
80 readonly signatureLength: number;
81 }
82
83 export interface hash {
84 (msg: Uint8Array): Uint8Array;
85 readonly hashLength: number;
86 }
87}
88
89declare interface nacl {
90 randomBytes(n: number): Uint8Array;
91 secretbox: nacl.secretbox;
92 scalarMult: nacl.scalarMult;
93 box: nacl.box;
94 sign: nacl.sign;
95 hash: nacl.hash;
96 verify(x: Uint8Array, y: Uint8Array): boolean;
97 setPRNG(fn: (x: Uint8Array, n: number) => void): void;
98}