Provide easy interface to encrypt the api key. In order to use function simply provide a string with an API key. In addition provide the path to the .ssh folder and names of the private and public keys
enc_name: String with a name of the file with encrypted key. Default name is 'api_key.enc.rds'
path_ssh: String with path to the file with rsa keys. Same place will be used to store encrypted data
file_rsa: String with a name of the file with a private key. Default name is 'id_api'
file_rsa_pub: String with a name of the file with a public key. Default name is 'id_api.pub'
Returns
Writes a file with encrypted key
Details
Make sure to clean the history of the R session
Examples
library(openssl)library(magrittr)library(readr)path_ssh <- normalizePath(tempdir(),winslash ="/")rsa_keygen()%>% write_pem(path = file.path(path_ssh,'id_api'))# extract and write your public keyread_key(file = file.path(path_ssh,'id_api'), password ="")%>%`[[`("pubkey")%>% write_pem(path = file.path(path_ssh,'id_api.pub'))path_private_key <- file.path(path_ssh,"id_api")path_public_key <- file.path(path_ssh,"id_api.pub")#encrypting string 'my_key'...encrypt_api_key(api_key ='my_key', enc_name ='api_key.enc.rds',path_ssh = path_ssh)out <- read_rds(file.path(path_ssh,"api_key.enc.rds"))# decrypting the password using public data list and private keyapi_key <- decrypt_envelope(out$data, out$iv, out$session, path_private_key, password ="")%>% unserialize()# outcome of the encryption will be a string 'my_key'
References
for more info on how to use RSA cryptography in R check my course on Udemy