encrypt_api_key function

Encrypt api keys

Encrypt api keys

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

encrypt_api_key( api_key, enc_name = "api_key.enc.rds", path_ssh = "path_ssh", file_rsa = "id_api", file_rsa_pub = "id_api.pub" )

Arguments

  • api_key: String with API key
  • 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 key read_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 key api_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