encrypt_api_key {lazytrade}R Documentation

Encrypt api keys

Description

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

[Stable]

Usage

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'

Details

Make sure to clean the history of the R session

Value

Writes a file with encrypted key

References

for more info on how to use RSA cryptography in R check my course on Udemy

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'



[Package lazytrade version 0.5.4 Index]