| Top |
| xmlSecEncCtxPtr | xmlSecEncCtxCreate () |
| void | xmlSecEncCtxDestroy () |
| int | xmlSecEncCtxInitialize () |
| void | xmlSecEncCtxFinalize () |
| int | xmlSecEncCtxCopyUserPref () |
| void | xmlSecEncCtxReset () |
| int | xmlSecEncCtxBinaryEncrypt () |
| int | xmlSecEncCtxXmlEncrypt () |
| int | xmlSecEncCtxUriEncrypt () |
| int | xmlSecEncCtxDecrypt () |
| xmlSecBufferPtr | xmlSecEncCtxDecryptToBuffer () |
| void | xmlSecEncCtxDebugDump () |
| void | xmlSecEncCtxDebugXmlDump () |
| xmlSecKeyPtr | xmlSecEncCtxDerivedKeyGenerate () |
| xmlSecKeyPtr | xmlSecEncCtxAgreementMethodGenerate () |
| int | xmlSecEncCtxAgreementMethodXmlWrite () |
| const char * | xmlSecEncCtxGetFailureReasonString () |
| enum | xmlEncCtxMode |
| enum | xmlSecEncFailureReason |
| #define | XMLSEC_ENC_RETURN_REPLACED_NODE |
| struct | xmlSecEncCtx |
xmlSecEncCtxPtr
xmlSecEncCtxCreate (xmlSecKeysMngrPtr keysMngr);
Creates <enc:EncryptedData/> element processing context. The caller is responsible for destroying returned object by calling xmlSecEncCtxDestroy function.
void
xmlSecEncCtxDestroy (xmlSecEncCtxPtr encCtx);
Destroy context object created with xmlSecEncCtxCreate function.
int xmlSecEncCtxInitialize (xmlSecEncCtxPtr encCtx,xmlSecKeysMngrPtr keysMngr);
Initializes <enc:EncryptedData/> element processing context. The caller is responsible for cleaning up returned object by calling xmlSecEncCtxFinalize function.
encCtx |
the pointer to <enc:EncryptedData/> processing context. |
|
keysMngr |
the pointer to keys manager. |
void
xmlSecEncCtxFinalize (xmlSecEncCtxPtr encCtx);
Cleans up encCtx
object.
int xmlSecEncCtxCopyUserPref (xmlSecEncCtxPtr dst,xmlSecEncCtxPtr src);
Copies user preference from src
context to dst
.
void
xmlSecEncCtxReset (xmlSecEncCtxPtr encCtx);
Resets encCtx
object, user settings are not touched.
int xmlSecEncCtxBinaryEncrypt (xmlSecEncCtxPtr encCtx,xmlNodePtr tmpl,const xmlSecByte *data,xmlSecSize dataSize);
Encrypts data
according to template tmpl
.
encCtx |
the pointer to <enc:EncryptedData/> processing context. |
|
tmpl |
the pointer to <enc:EncryptedData/> template node. |
|
data |
the pointer for binary buffer. |
|
dataSize |
the |
int xmlSecEncCtxXmlEncrypt (xmlSecEncCtxPtr encCtx,xmlNodePtr tmpl,xmlNodePtr node);
Encrypts node
according to template tmpl
. If requested, node
is replaced
with result <enc:EncryptedData/> node.
encCtx |
the pointer to <enc:EncryptedData/> processing context. |
|
tmpl |
the pointer to <enc:EncryptedData/> template node. |
|
node |
the pointer to node for encryption. |
int xmlSecEncCtxUriEncrypt (xmlSecEncCtxPtr encCtx,xmlNodePtr tmpl,const xmlChar *uri);
Encrypts data from uri
according to template tmpl
.
encCtx |
the pointer to <enc:EncryptedData/> processing context. |
|
tmpl |
the pointer to <enc:EncryptedData/> template node. |
|
uri |
the URI. |
int xmlSecEncCtxDecrypt (xmlSecEncCtxPtr encCtx,xmlNodePtr node);
Decrypts node
and if necessary replaces node
with decrypted data.
encCtx |
the pointer to <enc:EncryptedData/> processing context. |
|
node |
the pointer to <enc:EncryptedData/> node. |
xmlSecBufferPtr xmlSecEncCtxDecryptToBuffer (xmlSecEncCtxPtr encCtx,xmlNodePtr node);
Decrypts node
data to the result.
encCtx |
the pointer to encryption processing context. |
|
node |
the pointer to <enc:EncryptedData/> node. |
void xmlSecEncCtxDebugDump (xmlSecEncCtxPtr encCtx,FILE *output);
Prints the debug information about encCtx
to output
.
encCtx |
the pointer to <enc:EncryptedData/> processing context. |
|
output |
the pointer to output FILE. |
void xmlSecEncCtxDebugXmlDump (xmlSecEncCtxPtr encCtx,FILE *output);
Prints the debug information about encCtx
to output
in XML format.
encCtx |
the pointer to <enc:EncryptedData/> processing context. |
|
output |
the pointer to output FILE. |
xmlSecKeyPtr xmlSecEncCtxDerivedKeyGenerate (xmlSecEncCtxPtr encCtx,xmlSecKeyDataId keyId,xmlNodePtr node,xmlSecKeyInfoCtxPtr keyInfoCtx);
Generates (derives) key from node
(https://www.w3.org/TR/xmlenc-core1/sec-DerivedKey):
<element name="DerivedKey" type="xenc11:DerivedKeyType"/>
<complexType name="DerivedKeyType">
<sequence>
<element ref="xenc11:KeyDerivationMethod" minOccurs="0"/>
<element ref="xenc:ReferenceList" minOccurs="0"/>
<element name="DerivedKeyName" type="string" minOccurs="0"/>
<element name="MasterKeyName" type="string" minOccurs="0"/>
</sequence>
<attribute name="Recipient" type="string" use="optional"/>
<attribute name="Id" type="ID" use="optional"/>
<attribute name="Type" type="anyURI" use="optional"/>
</complexType>
<element name="KeyDerivationMethod" type="xenc:KeyDerivationMethodType"/>
<complexType name="KeyDerivationMethodType">
<sequence>
<any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="Algorithm" type="anyURI" use="required"/>
</complexType>
xmlSecKeyPtr xmlSecEncCtxAgreementMethodGenerate (xmlSecEncCtxPtr encCtx,xmlSecKeyDataId keyId,xmlNodePtr node,xmlSecKeyInfoCtxPtr keyInfoCtx);
Generates (derives) key from node
(https://www.w3.org/TR/xmlenc-core1/sec-AgreementMethod):
<element name="AgreementMethod" type="xenc:AgreementMethodType"/>
<complexType name="AgreementMethodType" mixed="true">
<sequence>
<element name="KA-Nonce" minOccurs="0" type="base64Binary"/>
<!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
<element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
<element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
</sequence>
<attribute name="Algorithm" type="anyURI" use="required"/>
</complexType>
encCtx |
the pointer to encryption processing context. |
|
keyId |
the expected key id, the actual derived key might have a different id. |
|
node |
the pointer to <enc:AgreementMethod/> node. |
|
keyInfoCtx |
the pointer to the "parent" key info context. |
int xmlSecEncCtxAgreementMethodXmlWrite (xmlSecEncCtxPtr encCtx,xmlNodePtr node,xmlSecKeyInfoCtxPtr keyInfoCtx);
const char *
xmlSecEncCtxGetFailureReasonString (xmlSecEncFailureReason failureReason);
Gets failure reason as a string.
Returns failure reason as a string.
The xmlSecEncCtx mode.
XML Encryption processing failure reason. The application should use the returned value from the encrypt/decrypt functions first.
#define XMLSEC_ENC_RETURN_REPLACED_NODE 0x00000001
If this flag is set, then the replaced node will be returned in the replacedNodeList
struct xmlSecEncCtx {
/* these data user can set before performing the operation */
void* userData;
unsigned int flags;
unsigned int flags2;
xmlEncCtxMode mode;
xmlSecKeyInfoCtx keyInfoReadCtx;
xmlSecKeyInfoCtx keyInfoWriteCtx;
xmlSecTransformCtx transformCtx;
xmlSecTransformId defEncMethodId;
/* these data are returned */
xmlSecKeyPtr encKey;
xmlSecTransformOperation operation;
xmlSecBufferPtr result;
int resultBase64Encoded;
int resultReplaced;
xmlSecTransformPtr encMethod;
xmlSecEncFailureReason failureReason;
/* attributes from EncryptedData or EncryptedKey */
xmlChar* id;
xmlChar* type;
xmlChar* mimeType;
xmlChar* encoding;
xmlChar* recipient;
xmlChar* carriedKeyName;
/* these are internal data, nobody should change that except us */
xmlNodePtr encDataNode;
xmlNodePtr encMethodNode;
xmlNodePtr keyInfoNode;
xmlNodePtr cipherValueNode;
xmlNodePtr replacedNodeList; /* the pointer to the replaced node */
void* reserved1; /* reserved for future */
};
XML Encryption context.
the pointer to user data (xmlsec and xmlsec-crypto libraries never touches this). |
||
the XML Encryption processing flags. |
||
the XML Encryption processing flags. |
||
xmlEncCtxMode |
the mode. |
|
xmlSecKeyInfoCtx |
the reading key context. |
|
xmlSecKeyInfoCtx |
the writing key context (not used for signature verification). |
|
xmlSecTransformCtx |
the transforms processing context. |
|
the default encryption method (used if <enc:EncryptionMethod/> node is not present). |
||
xmlSecKeyPtr |
the signature key; application may set encKey before calling encryption/decryption functions. |
|
xmlSecTransformOperation |
the operation: encrypt or decrypt. |
|
xmlSecBufferPtr |
the pointer to signature (not valid for signature verification). |
|
the flag: if set then result in result is base64 encoded. |
||
the flag: if set then resulted <enc:EncryptedData/> or <enc:EncryptedKey/> node is added to the document. |
||
xmlSecTransformPtr |
the pointer to encryption transform. |
|
xmlSecEncFailureReason |
the detailed failure reason. |
|
the ID attribute of <enc:EncryptedData/> or <enc:EncryptedKey/> node. |
||
the Type attribute of <enc:EncryptedData/> or <enc:EncryptedKey/> node. |
||
the MimeType attribute of <enc:EncryptedData/> or <enc:EncryptedKey/> node. |
||
the Encoding attributeof <enc:EncryptedData/> or <enc:EncryptedKey/> node. |
||
the Recipient attribute of <enc:EncryptedKey/> node.. |
||
the CarriedKeyName attribute of <enc:EncryptedKey/> node. |
||
the pointer to <enc:EncryptedData/> or <enc:EncryptedKey/> node. |
||
the pointer to <enc:EncryptionMethod/> node. |
||
the pointer to <enc:KeyInfo/> node. |
||
the pointer to <enc:CipherValue/> node. |
||
the first node of the list of replaced nodes depending on the nodeReplacementMode |
||
reserved for the future. |