99 lines
3.0 KiB
TypeScript
99 lines
3.0 KiB
TypeScript
|
// 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;
|
||
|
}
|