This shows you the differences between two versions of the page.
Next revision | Previous revision Next revision Both sides next revision | ||
component:data [2015/06/16 19:25] gamax92 Add data card documentation |
component:data [2019/03/09 15:59] is2511 [Tier 3 Callbacks] |
||
---|---|---|---|
Line 4: | Line 4: | ||
Component name: `data`. | Component name: `data`. | ||
- | Callbacks: | + | |
+ | Tier 1 Callbacks | ||
+ | ---------------- | ||
- `crc32(data:string):string` | - `crc32(data:string):string` | ||
Line 22: | Line 24: | ||
- `getLimit():number` | - `getLimit():number` | ||
The maximum size of data that can be passed to other functions of the card. | The maximum size of data that can be passed to other functions of the card. | ||
+ | |||
+ | Tier 2 Callbacks | ||
+ | ---------------- | ||
+ | |||
+ | - `encrypt(data:string, key:string, iv:string):string` | ||
+ | Applies AES encryption to the data using the key and (preferably) random IV. | ||
+ | - `decrypt(data:string, key:string, iv:string):string` | ||
+ | Reverses AES encryption on the data using the key and the IV. | ||
+ | - `random(len:number):string` | ||
+ | Generates a random binary string of `len` length. | ||
+ | |||
+ | Tier 3 Callbacks | ||
+ | ---------------- | ||
+ | |||
+ | - `generateKeyPair([bitLen:number]):table, table` | ||
+ | Generates a public/private key pair for various cryptiographic functions. | ||
+ | Optional second parameter specifies key length, 256 or 384 bits accepted. | ||
+ | Key types include "ec-public" and "ec-private". Keys can be serialized with | ||
+ | `key.serialize():string` Keys also contain the function `key.isPublic():boolean` | ||
+ | - `ecdsa(data:string, key:userdata[, sig:string]):string or boolean` | ||
+ | Generates a signiture of data using a private key. If signature is present | ||
+ | verifies the signature using the public key and the previously generated | ||
+ | generated signature string. and the original string. | ||
+ | - `ecdh(privateKey:userdata, publicKey:userData):string` | ||
+ | Generates a Diffie-Hellman shared key using the first user's private key and | ||
+ | the second user's public key. An example of a basic key relation: | ||
+ | `ecdh(userA.private, userB.public) == ecdh(userB.private, userA.public)` | ||
+ | - `deserializeKey(data:string, type:string):table` | ||
+ | Transforms a key from string to it's arbitrary type. | ||
---- | ---- | ||
{{page>component:contents&noheader&noeditbutton&nouser&nofooter}} | {{page>component:contents&noheader&noeditbutton&nouser&nofooter}} |