Here's a list of functions that it should have.
SHA
crypto.sha256(string, repeat) -> Returns the SHA256 hash of the string, hashed over repeat times. There should be a limit on how big repeat can be.
crypto.sha512(string, repeat) -> Returns the SHA512 hash of the string, hashed over repeat times. There should be a limit on how big repeat can be.
AES
crypto.aes.encrypt(strinPlaintext, stringKey) -> Returns AES encrypted data using stringKey. The data should probably be encrypted using CBC mode (feedback needed, which mode would be best?).
The ciphertext should also be base64 encoded to prevent the LuaJ string bug.
crypto.aes.decrypt(stringCiphertext, stringKey) -> Returns the plaintext of the ciphertext.
Example:
local ciphertext = crypto.aes.encrypt("Hello, secure ComputerCraft!", "dan200")
print(crypto.aes.decrypt(ciphertext, "dan200")
RSA
crypto.rsa.createKeypair( [1024 or 2048 bits] ) -> Creates an RSA keypair (returned as a tuple)
crypto.rsa.encrypt(stringPlaintext, [ public or private key ]) -> Encrypts the plaintext with the given key.
crypto.rsa.decrypt(stringCiphertext, [ public or private key]) -> Decrypts the ciphertext with the given key.
Example:
local pub, priv = crypto.rsa.createKeypair(2048)
local ciphertext = crypto.rsa.encrypt("Hello, asymmetric encryption!", pub)
print(crypto.rsa.decrypt(ciphertext, priv))