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 | 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;
 | |
| }
 |