xenc_decrypt_soap
Decrypt and verify a SOAP message
varchar xenc_decrypt_soap
(in xml_text varchar,
in soap_version int,
in validate_flag int,
in encoding varchar,
in lang varchar,
in opts any,
out keys any);
Description
The function is used to decrypt and optionally verify signature
(depends of a validate_flag parameter) of a SOAP message.
Parameters
xml_text –
A string containing SOAP message
soap_version –
An interger indication SOAP version (11 for v1.1, 10 for 1.0 etc)
validate_flag –
Bit mask flag. See below for details.
- bit 0 and 1 : 00 - do not validate, 01 (decimal 1) - validate, 10 (decimal 2) - validate if signature exists
- bit 2 : 100 (decimal 4) - try to decode, do not signal error if WS-Security is not supplied
encoding –
The message (xml_text) character encoding
lang –
The message (xml_text) language
opts –
A vector containing options for User Name token profile.
For example : vector ('UsernameToken', vector ('label', 'lab1', 'keyAlgorithm' , '[3des algo uri]'))
keys –
if supplied the parameter will be set with keys names used for decryption and signature verification.
The strucure is as follows : vector (vector ([enc-key1],[enc-key2],...), vector ('[signing token name]', '[matching token]')). Where enc-key is a key used to decrypt the message fragment; '[signing token name]' is the temporary key used to validate the signature and '[matching token]' is the token (key) from user's space that matches the signing token.
Return Types
On success the function returns decrypted SOAP message.
Errors
This function can generate the following errors:
.
Examples
Decrypting SOAP message
declare ekeys, opts, decoded any;
opts := vector ('UsernameToken', vector ('label', 'Application-Label',
'keyAlgorithm', 'http://www.w3.org/2001/04/xmlenc#tripledes-cbc'));
decoded := xenc_decrypt_soap (body_str, 11, 6, 'UTF-8', 'x-any', opts, ekeys);