Git init
[external/xmlsec1.git] / docs / api / chapters / using-keys.sgml
1 <chapter id="xmlsec-notes-keys">
2     <title>Keys.</title>
3     <para>A key in XML Security Library is a representation of the 
4         <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink>
5         element and consist of several key data objects. 
6         The "value" key data usually contains raw key material (or handlers to 
7         key material) required to execute particular crypto transform. Other 
8         key data objects may contain any additional information about the key. 
9         All the key data objects in the key are associated with the same key 
10         material. For example, if a DSA key material has both an X509 
11         certificate and a PGP data associated with it then such a key can 
12         have a DSA key "value" and two key data objects for X509 certificate 
13         and PGP key data.
14     </para>
15     <figure>
16         <title>The key structure.</title>
17         <graphic fileref="images/key.png" align="center"></graphic>
18     </figure>    
19     <para>XML Security Library has several "invisible" key data classes. 
20         These classes never show up in the keys data list of a key but are used for 
21         <ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo">&lt;dsig:KeyInfo/&gt;</ulink>
22         children processing (<ulink URL="http://www.w3.org/TR/xmldsig-core/#sec-KeyName">&lt;dsig:KeyName/&gt;</ulink>, 
23         &lt;enc:EncryptedKey/&gt;, ...). As with transforms, application might 
24         add any new key data objects or replace the default ones.
25     </para>
26 </chapter>