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
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]