Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
component:data [2015/06/16 19:25]
gamax92 Add data card documentation
component:data [2016/12/08 20:52]
solra_bizna Tell which callbacks are at which tier
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}}