forked from dchest/tweetnacl-js
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathnacl.d.ts
98 lines (84 loc) · 3.13 KB
/
nacl.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// Type definitions for TweetNaCl.js
export 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 | null;
// 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 boxProps {
// export interface open {
// (msg: Uint8Array, nonce: Uint8Array, publicKey: Uint8Array, secretKey: Uint8Array): Uint8Array | null;
// after(box: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array | null;
// }
// 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: boxProps.open;
keyPair: boxProps.keyPair;
// readonly publicKeyLength: number;
// readonly secretKeyLength: number;
// readonly sharedKeyLength: number;
// readonly nonceLength: number;
// readonly overheadLength: number;
}
namespace signProps {
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: signProps.detached;
keyPair: signProps.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;
}