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.


© 1992 - OpenLink Software. All rights reserved.

Making Technology Work for You®