buddy

node MVC discord bot
Log | Files | Refs | README

nacl.d.ts (3103B)


      1 // Type definitions for TweetNaCl.js
      2 
      3 export as namespace nacl;
      4 
      5 declare var nacl: nacl;
      6 export = nacl;
      7 
      8 declare 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 
     89 declare 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 }