Description Usage Arguments Examples
Asymmetric encryption and decryption with RSA. Because RSA can only encrypt messages
smaller than the size of the key, it is typically used only for exchanging a random
session-key. This session key is used to encipher arbitrary sized data via a stream
cipher such as aes_cbc. See encrypt_envelope
for a high-level
wrappers combining RSA and AES in this way.
1 2 3 | rsa_encrypt(data, pubkey = my_pubkey())
rsa_decrypt(data, key = my_key(), password = askpass)
|
data |
raw vector of max 245 bytes (for 2048 bit keys) with data to encrypt/decrypt |
pubkey |
public key or file path. See |
key |
private key or file path. See |
password |
string or a function to read protected keys. See |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # Generate test keys
key <- rsa_keygen()
pubkey <- key$pubkey
# Encrypt data with AES
tempkey <- rand_bytes(32)
iv <- rand_bytes(16)
blob <- aes_cbc_encrypt(system.file("CITATION"), tempkey, iv = iv)
# Encrypt tempkey using receivers public RSA key
ciphertext <- rsa_encrypt(tempkey, pubkey)
# Receiver decrypts tempkey from private RSA key
tempkey <- rsa_decrypt(ciphertext, key)
message <- aes_cbc_decrypt(blob, tempkey, iv)
out <- rawToChar(message)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.