Name
xenc_decrypt_soap — Decrypt and verify a SOAP message
Synopsis
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 integer 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 structure 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.
Examples
Example24.456.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);