| vault_client_tools | R Documentation |
Vault Tools
Vault Tools
Interact with vault's cryptographic tools. This provides support for high-quality random numbers and cryptographic hashes. This functionality is also available through the transit secret engine.
vaultr::vault_client_object -> vault_client_tools
new()Create a vault_client_tools object. Not typically
called by users.
vault_client_tools$new(api_client)
api_clientA vault_api_client object
random()Generates high-quality random bytes of the specified length. This is totally independent of R's random number stream and provides random numbers suitable for cryptographic purposes.
vault_client_tools$random(bytes = 32, format = "hex")
bytesNumber of bytes to generate (as an integer)
formatThe output format to produce; must be one of
hex (a single hex string such as d1189e2f83b72ab6),
base64 (a single base64 encoded string such as
8TDJekY0mYs=) or raw (a raw vector of length bytes).
hash()Generates a cryptographic hash of given data using the specified algorithm.
vault_client_tools$hash(data, algorithm = NULL, format = "hex")
dataA raw vector of data to hash. To generate a raw
vector from an R object, one option is to use unserialize(x, NULL) but be aware that version information may be included.
Alternatively, for a string, one might use charToRaw.
algorithmA string indicating the hash algorithm to use.
The exact set of supported algorithms may depend by vault
server version, but as of version 1.0.0 vault supports
sha2-224, sha2-256, sha2-384 and sha2-512. The
default is sha2-256.
formatThe format of the output - must be one of hex
or base64.
server <- vaultr::vault_test_server(if_disabled = message)
if (!is.null(server)) {
client <- server$client()
# Random bytes in hex
client$tools$random()
# base64
client$tools$random(format = "base64")
# raw
client$tools$random(10, format = "raw")
# Hash data:
data <- charToRaw("hello vault")
# will produce 55e702...92efd40c2a4
client$tools$hash(data)
# sha2-512 hash:
client$tools$hash(data, "sha2-512")
# cleanup
server$kill()
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.