Vault Tools
Vault Tools
Details
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.
Super class
vaultr::vault_client_object -> vault_client_tools
Methods
Inherited methods
Method new()
Create a vault_client_tools object. Not typically
called by users.
Usage
vault_client_tools$new(api_client)Arguments
api_clientA vault_api_client object
Method 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.
Method hash()
Generates a cryptographic hash of given data using the specified algorithm.
Arguments
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 usecharToRaw.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-384andsha2-512. The default issha2-256.formatThe format of the output - must be one of
hexorbase64.
Examples
server <- vaultr::vault_test_server(if_disabled = message)
#> ...waiting for Vault to start
#> ...waiting for Vault to start
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()
}