<refentry id="xmlsec-keyinfo">
<refmeta>
<refentrytitle role="top_of_page" id="xmlsec-keyinfo.top_of_page">keyinfo</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>XMLSEC Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>keyinfo</refname>
<refpurpose><ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> node parser.</refpurpose>
</refnamediv>

<refsynopsisdiv id="xmlsec-keyinfo.synopsis" role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>
<link linkend="int">int</link>                 <link linkend="xmlSecKeyInfoNodeRead">xmlSecKeyInfoNodeRead</link>               (<link linkend="xmlNode">xmlNodePtr</link> keyInfoNode,
                                                         <link linkend="xmlSecKey">xmlSecKeyPtr</link> key,
                                                         <link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx);
<link linkend="int">int</link>                 <link linkend="xmlSecKeyInfoNodeWrite">xmlSecKeyInfoNodeWrite</link>              (<link linkend="xmlNode">xmlNodePtr</link> keyInfoNode,
                                                         <link linkend="xmlSecKey">xmlSecKeyPtr</link> key,
                                                         <link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx);
enum                <link linkend="xmlSecKeyInfoMode">xmlSecKeyInfoMode</link>;
#define             <link linkend="XMLSEC-KEYINFO-FLAGS-DONT-STOP-ON-KEY-FOUND--CAPS">XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND</link>
#define             <link linkend="XMLSEC-KEYINFO-FLAGS-STOP-ON-UNKNOWN-CHILD--CAPS">XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD</link>
#define             <link linkend="XMLSEC-KEYINFO-FLAGS-KEYNAME-STOP-ON-UNKNOWN--CAPS">XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN</link>
#define             <link linkend="XMLSEC-KEYINFO-FLAGS-KEYVALUE-STOP-ON-UNKNOWN-CHILD--CAPS">XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD</link>
#define             <link linkend="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-UNKNOWN-HREF--CAPS">XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF</link>
#define             <link linkend="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-MISMATCH-HREF--CAPS">XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF</link>
#define             <link linkend="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CHILD--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD</link>
#define             <link linkend="XMLSEC-KEYINFO-FLAGS-X509DATA-DONT-VERIFY-CERTS--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS</link>
#define             <link linkend="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CERT--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT</link>
#define             <link linkend="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-INVALID-CERT--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT</link>
#define             <link linkend="XMLSEC-KEYINFO-FLAGS-ENCKEY-DONT-STOP-ON-FAILED-DECRYPTION--CAPS">XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION</link>
#define             <link linkend="XMLSEC-KEYINFO-FLAGS-STOP-ON-EMPTY-NODE--CAPS">XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE</link>
#define             <link linkend="XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-STRICT-CHECKS--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS</link>
struct              <link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtx</link>;
<link linkend="xmlSecKeyInfoCtxPtr">xmlSecKeyInfoCtxPtr</link>  <link linkend="xmlSecKeyInfoCtxCreate">xmlSecKeyInfoCtxCreate</link>             (<link linkend="xmlSecKeysMngr">xmlSecKeysMngrPtr</link> keysMngr);
<link linkend="void">void</link>                <link linkend="xmlSecKeyInfoCtxDestroy">xmlSecKeyInfoCtxDestroy</link>             (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx);
<link linkend="int">int</link>                 <link linkend="xmlSecKeyInfoCtxInitialize">xmlSecKeyInfoCtxInitialize</link>          (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx,
                                                         <link linkend="xmlSecKeysMngr">xmlSecKeysMngrPtr</link> keysMngr);
<link linkend="void">void</link>                <link linkend="xmlSecKeyInfoCtxFinalize">xmlSecKeyInfoCtxFinalize</link>            (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx);
<link linkend="void">void</link>                <link linkend="xmlSecKeyInfoCtxReset">xmlSecKeyInfoCtxReset</link>               (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx);
<link linkend="int">int</link>                 <link linkend="xmlSecKeyInfoCtxCopyUserPref">xmlSecKeyInfoCtxCopyUserPref</link>        (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> dst,
                                                         <link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> src);
<link linkend="int">int</link>                 <link linkend="xmlSecKeyInfoCtxCreateEncCtx">xmlSecKeyInfoCtxCreateEncCtx</link>        (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx);
<link linkend="void">void</link>                <link linkend="xmlSecKeyInfoCtxDebugDump">xmlSecKeyInfoCtxDebugDump</link>           (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx,
                                                         <link linkend="FILE--CAPS">FILE</link> *output);
<link linkend="void">void</link>                <link linkend="xmlSecKeyInfoCtxDebugXmlDump">xmlSecKeyInfoCtxDebugXmlDump</link>        (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx,
                                                         <link linkend="FILE--CAPS">FILE</link> *output);
#define             <link linkend="xmlSecKeyDataNameId">xmlSecKeyDataNameId</link>
<link linkend="xmlSecKeyDataId">xmlSecKeyDataId</link>     <link linkend="xmlSecKeyDataNameGetKlass">xmlSecKeyDataNameGetKlass</link>           (void);
#define             <link linkend="xmlSecKeyDataValueId">xmlSecKeyDataValueId</link>
<link linkend="xmlSecKeyDataId">xmlSecKeyDataId</link>     <link linkend="xmlSecKeyDataValueGetKlass">xmlSecKeyDataValueGetKlass</link>          (void);
#define             <link linkend="xmlSecKeyDataRetrievalMethodId">xmlSecKeyDataRetrievalMethodId</link>
<link linkend="xmlSecKeyDataId">xmlSecKeyDataId</link>     <link linkend="xmlSecKeyDataRetrievalMethodGetKlass">xmlSecKeyDataRetrievalMethodGetKlass</link>
                                                        (void);
#define             <link linkend="xmlSecKeyDataEncryptedKeyId">xmlSecKeyDataEncryptedKeyId</link>
<link linkend="xmlSecKeyDataId">xmlSecKeyDataId</link>     <link linkend="xmlSecKeyDataEncryptedKeyGetKlass">xmlSecKeyDataEncryptedKeyGetKlass</link>   (void);
</synopsis>
</refsynopsisdiv>









<refsect1 id="xmlsec-keyinfo.description" role="desc">
<title role="desc.title">Description</title>
<para>
<ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> node parser.
</para>
</refsect1>

<refsect1 id="xmlsec-keyinfo.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="xmlSecKeyInfoNodeRead" role="function">
<title>xmlSecKeyInfoNodeRead ()</title>
<indexterm zone="xmlSecKeyInfoNodeRead"><primary sortas="xmlSecKeyInfoNodeRead">xmlSecKeyInfoNodeRead</primary></indexterm><programlisting><link linkend="int">int</link>                 xmlSecKeyInfoNodeRead               (<link linkend="xmlNode">xmlNodePtr</link> keyInfoNode,
                                                         <link linkend="xmlSecKey">xmlSecKeyPtr</link> key,
                                                         <link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx);</programlisting>
<para>
Parses the <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element <parameter>keyInfoNode</parameter>, extracts the key data
and stores into <parameter>key</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>keyInfoNode</parameter>&#160;:</term>
<listitem><simpara>        the pointer to <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> node.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara>                the pointer to result key object.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>keyInfoCtx</parameter>&#160;:</term>
<listitem><simpara>         the pointer to <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element processing context.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> 0 on success or -1 if an error occurs.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyInfoNodeWrite" role="function">
<title>xmlSecKeyInfoNodeWrite ()</title>
<indexterm zone="xmlSecKeyInfoNodeWrite"><primary sortas="xmlSecKeyInfoNodeWrite">xmlSecKeyInfoNodeWrite</primary></indexterm><programlisting><link linkend="int">int</link>                 xmlSecKeyInfoNodeWrite              (<link linkend="xmlNode">xmlNodePtr</link> keyInfoNode,
                                                         <link linkend="xmlSecKey">xmlSecKeyPtr</link> key,
                                                         <link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx);</programlisting>
<para>
Writes the <parameter>key</parameter> into the <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element template <parameter>keyInfoNode</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>keyInfoNode</parameter>&#160;:</term>
<listitem><simpara>        the pointer to <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> node.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara>                the pointer to key object.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>keyInfoCtx</parameter>&#160;:</term>
<listitem><simpara>         the pointer to <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element processing context.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> 0 on success or -1 if an error occurs.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyInfoMode" role="enum">
<title>enum xmlSecKeyInfoMode</title>
<indexterm zone="xmlSecKeyInfoMode"><primary sortas="xmlSecKeyInfoMode">xmlSecKeyInfoMode</primary></indexterm><programlisting>typedef enum {
    xmlSecKeyInfoModeRead = 0,
    xmlSecKeyInfoModeWrite
} xmlSecKeyInfoMode;
</programlisting>
<para>
The <parameter>xmlSecKeyInfoCtx</parameter> operation mode (read or write).</para>
<para>
</para><variablelist role="enum">
<varlistentry id="xmlSecKeyInfoModeRead" role="constant">
<term><literal>xmlSecKeyInfoModeRead</literal></term>
<listitem><simpara> read <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo ">&lt;dsig:KeyInfo /&gt;</ulink> element.
</simpara></listitem>
</varlistentry>
<varlistentry id="xmlSecKeyInfoModeWrite" role="constant">
<term><literal>xmlSecKeyInfoModeWrite</literal></term>
<listitem><simpara> write <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo ">&lt;dsig:KeyInfo /&gt;</ulink> element.
</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
<refsect2 id="XMLSEC-KEYINFO-FLAGS-DONT-STOP-ON-KEY-FOUND--CAPS" role="macro">
<title>XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND</title>
<indexterm zone="XMLSEC-KEYINFO-FLAGS-DONT-STOP-ON-KEY-FOUND--CAPS"><primary sortas="XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND">XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND</primary></indexterm><programlisting>#define XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND             0x00000001
</programlisting>
<para>
If flag is set then we will continue reading <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo ">&lt;dsig:KeyInfo /&gt;</ulink>
element even when key is already found.</para>
<para>
</para></refsect2>
<refsect2 id="XMLSEC-KEYINFO-FLAGS-STOP-ON-UNKNOWN-CHILD--CAPS" role="macro">
<title>XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD</title>
<indexterm zone="XMLSEC-KEYINFO-FLAGS-STOP-ON-UNKNOWN-CHILD--CAPS"><primary sortas="XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD">XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD</primary></indexterm><programlisting>#define XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD              0x00000002
</programlisting>
<para>
If flag is set then we abort if an unknown <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo ">&lt;dsig:KeyInfo /&gt;</ulink>
child is found.</para>
<para>
</para></refsect2>
<refsect2 id="XMLSEC-KEYINFO-FLAGS-KEYNAME-STOP-ON-UNKNOWN--CAPS" role="macro">
<title>XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN</title>
<indexterm zone="XMLSEC-KEYINFO-FLAGS-KEYNAME-STOP-ON-UNKNOWN--CAPS"><primary sortas="XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN">XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN</primary></indexterm><programlisting>#define XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN            0x00000004
</programlisting>
<para>
If flags is set then we abort if an unknown key name
(content of <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyName ">&lt;dsig:KeyName /&gt;</ulink> element) is found.</para>
<para>
</para></refsect2>
<refsect2 id="XMLSEC-KEYINFO-FLAGS-KEYVALUE-STOP-ON-UNKNOWN-CHILD--CAPS" role="macro">
<title>XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD</title>
<indexterm zone="XMLSEC-KEYINFO-FLAGS-KEYVALUE-STOP-ON-UNKNOWN-CHILD--CAPS"><primary sortas="XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD">XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD</primary></indexterm><programlisting>#define XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD     0x00000008
</programlisting>
<para>
If flags is set then we abort if an unknown <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue ">&lt;dsig:KeyValue /&gt;</ulink>
child is found.</para>
<para>
</para></refsect2>
<refsect2 id="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-UNKNOWN-HREF--CAPS" role="macro">
<title>XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF</title>
<indexterm zone="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-UNKNOWN-HREF--CAPS"><primary sortas="XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF">XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF</primary></indexterm><programlisting>#define XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF    0x00000010
</programlisting>
<para>
If flag is set then we abort if an unknown href attribute
of <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod ">&lt;dsig:RetrievalMethod /&gt;</ulink> element is found.</para>
<para>
</para></refsect2>
<refsect2 id="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-MISMATCH-HREF--CAPS" role="macro">
<title>XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF</title>
<indexterm zone="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-MISMATCH-HREF--CAPS"><primary sortas="XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF">XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF</primary></indexterm><programlisting>#define XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF   0x00000020
</programlisting>
<para>
If flag is set then we abort if an href attribute <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod ">&lt;dsig:RetrievalMethod /&gt;</ulink>
element does not match the real key data type.</para>
<para>
</para></refsect2>
<refsect2 id="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CHILD--CAPS" role="macro">
<title>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD</title>
<indexterm zone="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CHILD--CAPS"><primary sortas="XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD</primary></indexterm><programlisting>#define XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD     0x00000100
</programlisting>
<para>
If flags is set then we abort if an unknown <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-X509Data ">&lt;dsig:X509Data /&gt;</ulink>
child is found.</para>
<para>
</para></refsect2>
<refsect2 id="XMLSEC-KEYINFO-FLAGS-X509DATA-DONT-VERIFY-CERTS--CAPS" role="macro">
<title>XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS</title>
<indexterm zone="XMLSEC-KEYINFO-FLAGS-X509DATA-DONT-VERIFY-CERTS--CAPS"><primary sortas="XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS">XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS</primary></indexterm><programlisting>#define XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS         0x00000200
</programlisting>
<para>
If flag is set then we'll load certificates from <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-X509Data ">&lt;dsig:X509Data /&gt;</ulink>
element without verification.</para>
<para>
</para></refsect2>
<refsect2 id="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CERT--CAPS" role="macro">
<title>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT</title>
<indexterm zone="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CERT--CAPS"><primary sortas="XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT</primary></indexterm><programlisting>#define XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT      0x00000400
</programlisting>
<para>
If flag is set then we'll stop when we could not resolve reference
to certificate from <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-X509IssuerSerial ">&lt;dsig:X509IssuerSerial /&gt;</ulink>, <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-X509SKI ">&lt;dsig:X509SKI /&gt;</ulink> or
<ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-X509SubjectName ">&lt;dsig:X509SubjectName /&gt;</ulink> elements.</para>
<para>
</para></refsect2>
<refsect2 id="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-INVALID-CERT--CAPS" role="macro">
<title>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT</title>
<indexterm zone="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-INVALID-CERT--CAPS"><primary sortas="XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT</primary></indexterm><programlisting>#define XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT      0x00000800
</programlisting>
<para>
If the flag is set then we'll stop when <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-X509Data ">&lt;dsig:X509Data /&gt;</ulink> element
processing does not return a verified certificate.</para>
<para>
</para></refsect2>
<refsect2 id="XMLSEC-KEYINFO-FLAGS-ENCKEY-DONT-STOP-ON-FAILED-DECRYPTION--CAPS" role="macro">
<title>XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION</title>
<indexterm zone="XMLSEC-KEYINFO-FLAGS-ENCKEY-DONT-STOP-ON-FAILED-DECRYPTION--CAPS"><primary sortas="XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION">XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION</primary></indexterm><programlisting>#define XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION 0x00001000
</programlisting>
<para>
If the flag is set then we'll stop when <ulink URL="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey ">&lt;enc:EncryptedKey /&gt;</ulink> element
processing fails.</para>
<para>
</para></refsect2>
<refsect2 id="XMLSEC-KEYINFO-FLAGS-STOP-ON-EMPTY-NODE--CAPS" role="macro">
<title>XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE</title>
<indexterm zone="XMLSEC-KEYINFO-FLAGS-STOP-ON-EMPTY-NODE--CAPS"><primary sortas="XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE">XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE</primary></indexterm><programlisting>#define XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE                 0x00002000
</programlisting>
<para>
If the flag is set then we'll stop when we found an empty node.
Otherwise we just ignore it.</para>
<para>
</para></refsect2>
<refsect2 id="XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-STRICT-CHECKS--CAPS" role="macro">
<title>XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS</title>
<indexterm zone="XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-STRICT-CHECKS--CAPS"><primary sortas="XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS">XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS</primary></indexterm><programlisting>#define XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS        0x00004000
</programlisting>
<para>
If the flag is set then we'll skip strict checking of certs and CRLs</para>
<para>
</para></refsect2>
<refsect2 id="xmlSecKeyInfoCtx" role="struct">
<title>struct xmlSecKeyInfoCtx</title>
<indexterm zone="xmlSecKeyInfoCtx"><primary sortas="xmlSecKeyInfoCtx">xmlSecKeyInfoCtx</primary></indexterm><programlisting>struct xmlSecKeyInfoCtx {
    void*                               userData;
    unsigned int                        flags;
    unsigned int                        flags2;
    xmlSecKeysMngrPtr                   keysMngr;
    xmlSecKeyInfoMode                   mode;
    xmlSecPtrList                       enabledKeyData;
    int                                 base64LineSize;

    /* RetrievalMethod */
    xmlSecTransformCtx                  retrievalMethodCtx;
    int                                 maxRetrievalMethodLevel;


    /* EncryptedKey */
    xmlSecEncCtxPtr                     encCtx;
    int                                 maxEncryptedKeyLevel;



    /* x509 certificates */
    time_t                              certsVerificationTime;
    int                                 certsVerificationDepth;


    /* PGP */
    void*                               pgpReserved;    /* TODO */

    /* internal data */
    int                                 curRetrievalMethodLevel;
    int                                 curEncryptedKeyLevel;
    xmlSecKeyReq                        keyReq;

    /* for the future */
    void*                               reserved0;
    void*                               reserved1;
};
</programlisting>
<para>
The <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo ">&lt;dsig:KeyInfo /&gt;</ulink> reading or writing context.</para>
<para>
</para><variablelist role="struct">
<varlistentry>
<term><link linkend="void">void</link>&#160;*<structfield>userData</structfield>;</term>
<listitem><simpara>           the pointer to user data (xmlsec and xmlsec-crypto
                     never touch this).
</simpara></listitem>
</varlistentry>
<varlistentry>
<term>unsigned&#160;<link linkend="int">int</link>&#160;<structfield>flags</structfield>;</term>
<listitem><simpara>              the bit mask for flags that control processin.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term>unsigned&#160;<link linkend="int">int</link>&#160;<structfield>flags2</structfield>;</term>
<listitem><simpara>             reserved for future.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="xmlSecKeysMngr">xmlSecKeysMngrPtr</link>&#160;<structfield>keysMngr</structfield>;</term>
<listitem><simpara>           the pointer to current keys manager.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="xmlSecKeyInfoMode">xmlSecKeyInfoMode</link>&#160;<structfield>mode</structfield>;</term>
<listitem><simpara>               do we read or write <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo ">&lt;dsig:KeyInfo /&gt;</ulink> element.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="xmlSecPtrList">xmlSecPtrList</link>&#160;<structfield>enabledKeyData</structfield>;</term>
<listitem><simpara>     the list of enabled <parameter>xmlSecKeyDataId</parameter> (if list is
                     empty then all data ids are enabled).
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="int">int</link>&#160;<structfield>base64LineSize</structfield>;</term>
<listitem><simpara>     the max columns size for base64 encoding.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="xmlSecTransformCtx">xmlSecTransformCtx</link>&#160;<structfield>retrievalMethodCtx</structfield>;</term>
<listitem><simpara> the transforms context for <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod ">&lt;dsig:RetrievalMethod /&gt;</ulink>
                     element processing.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="int">int</link>&#160;<structfield>maxRetrievalMethodLevel</structfield>;</term>
<listitem><simpara> the max recursion level when processing
                     <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod ">&lt;dsig:RetrievalMethod /&gt;</ulink> element; default level is 1
                     (see also <parameter>curRetrievalMethodLevel</parameter>).
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="xmlSecEncCtx">xmlSecEncCtxPtr</link>&#160;<structfield>encCtx</structfield>;</term>
<listitem><simpara>             the encryption context for <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-EncryptedKey ">&lt;dsig:EncryptedKey /&gt;</ulink> element
                     processing.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="int">int</link>&#160;<structfield>maxEncryptedKeyLevel</structfield>;</term>
<listitem><simpara> the max recursion level when processing
                     <ulink URL="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey ">&lt;enc:EncryptedKey /&gt;</ulink> element; default level is 1
                     (see <parameter>curEncryptedKeyLevel</parameter>).
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="time-t">time_t</link>&#160;<structfield>certsVerificationTime</structfield>;</term>
<listitem><simpara> the time to use for X509 certificates verification
                     ("not valid before" and "not valid after" checks);
                     if <parameter>certsVerificationTime</parameter> is equal to 0 (default)
                     then we verify certificates against the system's
                     clock "now".
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="int">int</link>&#160;<structfield>certsVerificationDepth</structfield>;</term>
<listitem><simpara> the max certifications chain length (default is 9).
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="void">void</link>&#160;*<structfield>pgpReserved</structfield>;</term>
<listitem><simpara>        reserved for PGP.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="int">int</link>&#160;<structfield>curRetrievalMethodLevel</structfield>;</term>
<listitem><simpara> the current <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod ">&lt;dsig:RetrievalMethod /&gt;</ulink> element
                     processing level (see <parameter>maxRetrievalMethodLevel</parameter>).
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="int">int</link>&#160;<structfield>curEncryptedKeyLevel</structfield>;</term>
<listitem><simpara> the current <ulink URL="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey ">&lt;enc:EncryptedKey /&gt;</ulink> element
                     processing level (see <parameter>maxEncryptedKeyLevel</parameter>).
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="xmlSecKeyReq">xmlSecKeyReq</link>&#160;<structfield>keyReq</structfield>;</term>
<listitem><simpara>             the current key requirements.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="void">void</link>&#160;*<structfield>reserved0</structfield>;</term>
<listitem><simpara>          reserved for the future.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="void">void</link>&#160;*<structfield>reserved1</structfield>;</term>
<listitem><simpara>          reserved for the future.
</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyInfoCtxCreate" role="function">
<title>xmlSecKeyInfoCtxCreate ()</title>
<indexterm zone="xmlSecKeyInfoCtxCreate"><primary sortas="xmlSecKeyInfoCtxCreate">xmlSecKeyInfoCtxCreate</primary></indexterm><programlisting><link linkend="xmlSecKeyInfoCtxPtr">xmlSecKeyInfoCtxPtr</link>  xmlSecKeyInfoCtxCreate             (<link linkend="xmlSecKeysMngr">xmlSecKeysMngrPtr</link> keysMngr);</programlisting>
<para>
Allocates and initializes <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element processing context.
Caller is responsible for freeing it by calling <link linkend="xmlSecKeyInfoCtxDestroy"><type>xmlSecKeyInfoCtxDestroy</type></link>
function.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>keysMngr</parameter>&#160;:</term>
<listitem><simpara>           the pointer to keys manager (may be NULL).
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> pointer to newly allocated object or NULL if an error occurs.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyInfoCtxDestroy" role="function">
<title>xmlSecKeyInfoCtxDestroy ()</title>
<indexterm zone="xmlSecKeyInfoCtxDestroy"><primary sortas="xmlSecKeyInfoCtxDestroy">xmlSecKeyInfoCtxDestroy</primary></indexterm><programlisting><link linkend="void">void</link>                xmlSecKeyInfoCtxDestroy             (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx);</programlisting>
<para>
Destroys <parameter>keyInfoCtx</parameter> object created with <link linkend="xmlSecKeyInfoCtxCreate"><type>xmlSecKeyInfoCtxCreate</type></link> function.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>keyInfoCtx</parameter>&#160;:</term>
<listitem><simpara>         the pointer to <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element processing context.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyInfoCtxInitialize" role="function">
<title>xmlSecKeyInfoCtxInitialize ()</title>
<indexterm zone="xmlSecKeyInfoCtxInitialize"><primary sortas="xmlSecKeyInfoCtxInitialize">xmlSecKeyInfoCtxInitialize</primary></indexterm><programlisting><link linkend="int">int</link>                 xmlSecKeyInfoCtxInitialize          (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx,
                                                         <link linkend="xmlSecKeysMngr">xmlSecKeysMngrPtr</link> keysMngr);</programlisting>
<para>
Initializes <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element processing context. Caller is
responsible for cleaning it up by <link linkend="xmlSecKeyInfoCtxFinalize"><type>xmlSecKeyInfoCtxFinalize</type></link> function.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>keyInfoCtx</parameter>&#160;:</term>
<listitem><simpara>         the pointer to <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element processing context.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>keysMngr</parameter>&#160;:</term>
<listitem><simpara>           the pointer to keys manager (may be NULL).
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> 0 on success and a negative value if an error occurs.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyInfoCtxFinalize" role="function">
<title>xmlSecKeyInfoCtxFinalize ()</title>
<indexterm zone="xmlSecKeyInfoCtxFinalize"><primary sortas="xmlSecKeyInfoCtxFinalize">xmlSecKeyInfoCtxFinalize</primary></indexterm><programlisting><link linkend="void">void</link>                xmlSecKeyInfoCtxFinalize            (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx);</programlisting>
<para>
Cleans up the <parameter>keyInfoCtx</parameter> initialized with <link linkend="xmlSecKeyInfoCtxInitialize"><type>xmlSecKeyInfoCtxInitialize</type></link>
function.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>keyInfoCtx</parameter>&#160;:</term>
<listitem><simpara>         the pointer to <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element processing context.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyInfoCtxReset" role="function">
<title>xmlSecKeyInfoCtxReset ()</title>
<indexterm zone="xmlSecKeyInfoCtxReset"><primary sortas="xmlSecKeyInfoCtxReset">xmlSecKeyInfoCtxReset</primary></indexterm><programlisting><link linkend="void">void</link>                xmlSecKeyInfoCtxReset               (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx);</programlisting>
<para>
Resets the <parameter>keyInfoCtx</parameter> state. User settings are not changed.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>keyInfoCtx</parameter>&#160;:</term>
<listitem><simpara>         the pointer to <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element processing context.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyInfoCtxCopyUserPref" role="function">
<title>xmlSecKeyInfoCtxCopyUserPref ()</title>
<indexterm zone="xmlSecKeyInfoCtxCopyUserPref"><primary sortas="xmlSecKeyInfoCtxCopyUserPref">xmlSecKeyInfoCtxCopyUserPref</primary></indexterm><programlisting><link linkend="int">int</link>                 xmlSecKeyInfoCtxCopyUserPref        (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> dst,
                                                         <link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> src);</programlisting>
<para>
Copies user preferences from <parameter>src</parameter> context to <parameter>dst</parameter> context.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>dst</parameter>&#160;:</term>
<listitem><simpara>                the pointer to destination context object.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>src</parameter>&#160;:</term>
<listitem><simpara>                the pointer to source context object.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> 0 on success and a negative value if an error occurs.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyInfoCtxCreateEncCtx" role="function">
<title>xmlSecKeyInfoCtxCreateEncCtx ()</title>
<indexterm zone="xmlSecKeyInfoCtxCreateEncCtx"><primary sortas="xmlSecKeyInfoCtxCreateEncCtx">xmlSecKeyInfoCtxCreateEncCtx</primary></indexterm><programlisting><link linkend="int">int</link>                 xmlSecKeyInfoCtxCreateEncCtx        (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx);</programlisting>
<para>
Creates encryption context form processing <ulink URL="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey">&lt;enc:EncryptedKey/&gt;</ulink> child
of <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>keyInfoCtx</parameter>&#160;:</term>
<listitem><simpara>         the pointer to <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element processing context.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> 0 on success and a negative value if an error occurs.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyInfoCtxDebugDump" role="function">
<title>xmlSecKeyInfoCtxDebugDump ()</title>
<indexterm zone="xmlSecKeyInfoCtxDebugDump"><primary sortas="xmlSecKeyInfoCtxDebugDump">xmlSecKeyInfoCtxDebugDump</primary></indexterm><programlisting><link linkend="void">void</link>                xmlSecKeyInfoCtxDebugDump           (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx,
                                                         <link linkend="FILE--CAPS">FILE</link> *output);</programlisting>
<para>
Prints user settings and current context state to <parameter>output</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>keyInfoCtx</parameter>&#160;:</term>
<listitem><simpara>         the pointer to <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element processing context.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>output</parameter>&#160;:</term>
<listitem><simpara>             the output file pointer.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyInfoCtxDebugXmlDump" role="function">
<title>xmlSecKeyInfoCtxDebugXmlDump ()</title>
<indexterm zone="xmlSecKeyInfoCtxDebugXmlDump"><primary sortas="xmlSecKeyInfoCtxDebugXmlDump">xmlSecKeyInfoCtxDebugXmlDump</primary></indexterm><programlisting><link linkend="void">void</link>                xmlSecKeyInfoCtxDebugXmlDump        (<link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtxPtr</link> keyInfoCtx,
                                                         <link linkend="FILE--CAPS">FILE</link> *output);</programlisting>
<para>
Prints user settings and current context state in XML format to <parameter>output</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>keyInfoCtx</parameter>&#160;:</term>
<listitem><simpara>         the pointer to <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink> element processing context.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>output</parameter>&#160;:</term>
<listitem><simpara>             the output file pointer.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyDataNameId" role="macro">
<title>xmlSecKeyDataNameId</title>
<indexterm zone="xmlSecKeyDataNameId"><primary sortas="xmlSecKeyDataNameId">xmlSecKeyDataNameId</primary></indexterm><programlisting>#define xmlSecKeyDataNameId             xmlSecKeyDataNameGetKlass()
</programlisting>
<para>
The &lt;dsig:KeyName&gt; processing class.</para>
<para>
</para></refsect2>
<refsect2 id="xmlSecKeyDataNameGetKlass" role="function">
<title>xmlSecKeyDataNameGetKlass ()</title>
<indexterm zone="xmlSecKeyDataNameGetKlass"><primary sortas="xmlSecKeyDataNameGetKlass">xmlSecKeyDataNameGetKlass</primary></indexterm><programlisting><link linkend="xmlSecKeyDataId">xmlSecKeyDataId</link>     xmlSecKeyDataNameGetKlass           (void);</programlisting>
<para>
The <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyName">&lt;dsig:KeyName/&gt;</ulink> element key data klass
(http://www.w3.org/TR/xmldsig-core/<link linkend="sec-KeyName"><type>sec-KeyName</type></link>):
</para>
<para>
The KeyName element contains a string value (in which white space is
significant) which may be used by the signer to communicate a key
identifier to the recipient. Typically, KeyName contains an identifier
related to the key pair used to sign the message, but it may contain
other protocol-related information that indirectly identifies a key pair.
(Common uses of KeyName include simple string names for keys, a key index,
a distinguished name (DN), an email address, etc.)</para>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyName">&lt;dsig:KeyName/&gt;</ulink> element processing key data klass.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyDataValueId" role="macro">
<title>xmlSecKeyDataValueId</title>
<indexterm zone="xmlSecKeyDataValueId"><primary sortas="xmlSecKeyDataValueId">xmlSecKeyDataValueId</primary></indexterm><programlisting>#define xmlSecKeyDataValueId            xmlSecKeyDataValueGetKlass()
</programlisting>
<para>
The &lt;dsig:KeyValue&gt; processing class.</para>
<para>
</para></refsect2>
<refsect2 id="xmlSecKeyDataValueGetKlass" role="function">
<title>xmlSecKeyDataValueGetKlass ()</title>
<indexterm zone="xmlSecKeyDataValueGetKlass"><primary sortas="xmlSecKeyDataValueGetKlass">xmlSecKeyDataValueGetKlass</primary></indexterm><programlisting><link linkend="xmlSecKeyDataId">xmlSecKeyDataId</link>     xmlSecKeyDataValueGetKlass          (void);</programlisting>
<para>
The <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue">&lt;dsig:KeyValue/&gt;</ulink> element key data klass
(http://www.w3.org/TR/xmldsig-core/<link linkend="sec-KeyValue"><type>sec-KeyValue</type></link>):
</para>
<para>
The KeyValue element contains a single public key that may be useful in
validating the signature.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue">&lt;dsig:KeyValue/&gt;</ulink> element processing key data klass.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyDataRetrievalMethodId" role="macro">
<title>xmlSecKeyDataRetrievalMethodId</title>
<indexterm zone="xmlSecKeyDataRetrievalMethodId"><primary sortas="xmlSecKeyDataRetrievalMethodId">xmlSecKeyDataRetrievalMethodId</primary></indexterm><programlisting>#define xmlSecKeyDataRetrievalMethodId  xmlSecKeyDataRetrievalMethodGetKlass()
</programlisting>
<para>
The &lt;dsig:RetrievalMethod&gt; processing class.</para>
<para>
</para></refsect2>
<refsect2 id="xmlSecKeyDataRetrievalMethodGetKlass" role="function">
<title>xmlSecKeyDataRetrievalMethodGetKlass ()</title>
<indexterm zone="xmlSecKeyDataRetrievalMethodGetKlass"><primary sortas="xmlSecKeyDataRetrievalMethodGetKlass">xmlSecKeyDataRetrievalMethodGetKlass</primary></indexterm><programlisting><link linkend="xmlSecKeyDataId">xmlSecKeyDataId</link>     xmlSecKeyDataRetrievalMethodGetKlass
                                                        (void);</programlisting>
<para>
The <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod">&lt;dsig:RetrievalMethod/&gt;</ulink> element key data klass
(http://www.w3.org/TR/xmldsig-core/<link linkend="sec-RetrievalMethod"><type>sec-RetrievalMethod</type></link>):
A RetrievalMethod element within KeyInfo is used to convey a reference to
KeyInfo information that is stored at another location. For example,
several signatures in a document might use a key verified by an X.509v3
certificate chain appearing once in the document or remotely outside the
document; each signature's KeyInfo can reference this chain using a single
RetrievalMethod element instead of including the entire chain with a
sequence of X509Certificate elements.
</para>
<para>
RetrievalMethod uses the same syntax and dereferencing behavior as
Reference's URI and The Reference Processing Model.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod">&lt;dsig:RetrievalMethod/&gt;</ulink> element processing key data klass.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="xmlSecKeyDataEncryptedKeyId" role="macro">
<title>xmlSecKeyDataEncryptedKeyId</title>
<indexterm zone="xmlSecKeyDataEncryptedKeyId"><primary sortas="xmlSecKeyDataEncryptedKeyId">xmlSecKeyDataEncryptedKeyId</primary></indexterm><programlisting>#define xmlSecKeyDataEncryptedKeyId     xmlSecKeyDataEncryptedKeyGetKlass()
</programlisting>
<para>
The &lt;enc:EncryptedKey&gt; processing class.</para>
<para>
</para></refsect2>
<refsect2 id="xmlSecKeyDataEncryptedKeyGetKlass" role="function">
<title>xmlSecKeyDataEncryptedKeyGetKlass ()</title>
<indexterm zone="xmlSecKeyDataEncryptedKeyGetKlass"><primary sortas="xmlSecKeyDataEncryptedKeyGetKlass">xmlSecKeyDataEncryptedKeyGetKlass</primary></indexterm><programlisting><link linkend="xmlSecKeyDataId">xmlSecKeyDataId</link>     xmlSecKeyDataEncryptedKeyGetKlass   (void);</programlisting>
<para>
The <ulink URL="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey">&lt;enc:EncryptedKey/&gt;</ulink> element key data klass
(http://www.w3.org/TR/xmlenc-core/<link linkend="sec-EncryptedKey"><type>sec-EncryptedKey</type></link>):
</para>
<para>
The EncryptedKey element is used to transport encryption keys from
the originator to a known recipient(s). It may be used as a stand-alone
XML document, be placed within an application document, or appear inside
an EncryptedData element as a child of a ds:KeyInfo element. The key value
is always encrypted to the recipient(s). When EncryptedKey is decrypted the
resulting octets are made available to the EncryptionMethod algorithm
without any additional processing.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the <ulink URL="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey">&lt;enc:EncryptedKey/&gt;</ulink> element processing key data klass.
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>




</refentry>
