Name
xenc_digest,
xenc_hmac_digest,
xenc_sha1_digest,
xenc_hmac_sha1_digest,
xenc_sha256_digest,
xenc_hmac_sha256_digest,
xenc_rsa_sha1_digest,
xenc_rand_bytes,
xenc_xor,
xenc_get_key_type
—
XML-encryption digest, HMAC and random-byte primitives
Synopsis
varchar xenc_digest(
|
in data varchar, |
| |
in algorithm varchar); |
varchar xenc_hmac_digest(
|
in data varchar, |
| |
in key varchar, |
| |
in algorithm varchar); |
varchar xenc_sha1_digest(
|
in data varchar); |
varchar xenc_hmac_sha1_digest(
|
in data varchar, |
| |
in key varchar); |
varchar xenc_sha256_digest(
|
in data varchar); |
varchar xenc_hmac_sha256_digest(
|
in data varchar, |
| |
in key varchar); |
varchar xenc_rsa_sha1_digest(
|
in data varchar, |
| |
in key_name varchar); |
varchar xenc_rand_bytes(
|
in count integer, |
| |
in hex_output integer); |
varchar xenc_xor(
|
in a varchar, |
| |
in b varchar); |
varchar xenc_get_key_type(
|
in key_name varchar); |
Description
Low-level cryptographic primitives backing Virtuoso's XML-Encryption /
XML-Signature support. Most application code should use the higher-level
md5,
sha1_digest, or
SPARQL hash builtins; these BIFs are exposed for direct compatibility with
the XML-Encryption and XML-Signature W3C specifications.
xenc_digest computes a generic message digest of
data using algorithm (a W3C
XML-Encryption algorithm URI or its short name such as
'sha1', 'sha256',
'md5'). xenc_hmac_digest is the
keyed-hash variant.
xenc_sha1_digest,
xenc_sha256_digest and the matching
xenc_hmac_* forms are convenience shortcuts that
bypass the algorithm-URI lookup. xenc_rsa_sha1_digest
additionally signs the digest with the RSA private key named
key_name from the server's key store.
xenc_rand_bytes returns count
bytes drawn from the OpenSSL CSPRNG. When
hex_output is non-zero the result is a
2*count-character hex string; otherwise it is a raw binary string.
xenc_xor returns the byte-wise XOR of two
equal-length strings. xenc_get_key_type returns the
algorithm/role label (e.g. 'RSA-PUB',
'AES-128') for the registered key
key_name.