Differences

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

Link to this comparison view

Next revision Both sides next revision
component:data [2015/06/16 19:25]
gamax92 Add data card documentation
component:data [2016/05/24 23:58]
tykuhn2 Added cryptographic functions and "random"
Line 22: Line 22:
 - `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.
 +- `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. 
 +- `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. 
 +- `random(len:​number):​string` ​  
 +  Generates a random binary string of `len` length. 
 +  ​
 ---- ----
  
 {{page>​component:​contents&​noheader&​noeditbutton&​nouser&​nofooter}} {{page>​component:​contents&​noheader&​noeditbutton&​nouser&​nofooter}}