3 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
4 <title>XML Security Library: XML Encryption</title>
6 <body><table witdh="100%" valign="top"><tr valign="top">
7 <td valign="top" align="left" width="210">
8 <img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
10 <li><a href="index.html">Home</a></li>
11 <li><a href="download.html">Download</a></li>
12 <li><a href="news.html">News</a></li>
13 <li><a href="documentation.html">Documentation</a></li>
15 <li><a href="faq.html">FAQ</a></li>
16 <li><a href="api/xmlsec-notes.html">Tutorial</a></li>
17 <li><a href="api/xmlsec-reference.html">API reference</a></li>
18 <li><a href="api/xmlsec-examples.html">Examples</a></li>
20 <li><a href="xmldsig.html">XML Digital Signature</a></li>
21 <ul><li><a href="http://www.aleksey.com/xmlsec/xmldsig-verifier.html">Online Verifier</a></li></ul>
22 <li><a href="xmlenc.html">XML Encryption</a></li>
23 <li><a href="c14n.html">XML Canonicalization</a></li>
24 <li><a href="bugs.html">Reporting Bugs</a></li>
25 <li><a href="http://www.aleksey.com/pipermail/xmlsec">Mailing list</a></li>
26 <li><a href="related.html">Related</a></li>
27 <li><a href="authors.html">Authors</a></li>
32 <td><a href="http://xmlsoft.org/"><img src="images/libxml2-logo.png" alt="LibXML2" border="0"></a></td>
36 <td><a href="http://xmlsoft.org/XSLT"><img src="images/libxslt-logo.png" alt="LibXSLT" border="0"></a></td>
40 <td><a href="http://www.openssl.org/"><img src="images/openssl-logo.png" alt="OpenSSL" border="0"></a></td>
42 <!--Links - start--><!--Links - end-->
45 <td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent"><div align="center">
46 <h2> XML Encryption </h2>
48 <a href="http://www.w3.org/TR/xmlenc-core">XML Encryption 1.0</a> standard
50 the process for encryptind data and representing the result in XML
52 The data may be an XML element, or an XML element content, or any
54 data (including XML document). </div>
56 <h3>XML Security Library Interoperability Report</h3>
57 <h4 style="text-align: center;">XML Encryption 1.0 (<a href="http://www.w3.org/TR/xmlenc-core/">W3C Recommendation</a>)</h4>
61 <table style="width: 85%;" border="1" cellpadding="2" cellspacing="2"><tbody>
63 <td style="width: 40%;" align="left" valign="top"><b>Features
65 algorithms<br></b></td>
66 <td align="left" valign="top"> <b>XMLSec with OpenSSL</b>
68 <td style="vertical-align: top;"><b>XMLSec with GnuTLS</b></td>
69 <td style="vertical-align: top;"> <b>XMLSec with NSS</b>
71 <td style="vertical-align: top;"> <b>XMLSec with
75 <td style="width: 40%;" align="left" valign="top">Laxly
77 schema generation of EncryptedData
80 <td align="left" valign="top">Y<br>
82 <td style="vertical-align: top;">Y<br>
84 <td style="vertical-align: top;">Y</td>
85 <td style="vertical-align: top;">Y</td>
88 <td style="width: 40%;" align="left" valign="top">
90 <li> Normalized Form C generations. </li>
93 <td align="left" valign="top">Y<br>
95 <td style="vertical-align: top;">Y</td>
96 <td style="vertical-align: top;">Y</td>
97 <td style="vertical-align: top;">Y</td>
100 <td style="width: 40%;" align="left" valign="top">Type,
104 <td align="left" valign="top">Y<br>
106 <td style="vertical-align: top;">Y</td>
107 <td style="vertical-align: top;">Y</td>
108 <td style="vertical-align: top;">Y</td>
111 <td style="width: 40%;" align="left" valign="top">CipherReference
114 <td align="left" valign="top">Y<br>
116 <td style="vertical-align: top;">Y</td>
117 <td style="vertical-align: top;">Y</td>
118 <td style="vertical-align: top;">Y</td>
121 <td style="width: 40%;" align="left" valign="top">
123 <li> Transforms </li>
126 <td align="left" valign="top">Y<br>
128 <td style="vertical-align: top;">Y</td>
129 <td style="vertical-align: top;">Y</td>
130 <td style="vertical-align: top;">Y</td>
133 <td style="width: 40%;" align="left" valign="top">ds:KeyInfo
136 <td align="left" valign="top">Y<br>
138 <td style="vertical-align: top;">Y</td>
139 <td style="vertical-align: top;">Y</td>
140 <td style="vertical-align: top;">Y</td>
143 <td style="width: 40%;" align="left" valign="top">
145 <li> enc:DHKeyValue </li>
148 <td align="left" valign="top">N<br>
150 <td style="vertical-align: top;">N<br>
152 <td style="vertical-align: top;">N<br>
154 <td style="vertical-align: top;">N<br>
158 <td style="width: 40%;" align="left" valign="top">
160 <li> ds:KeyName </li>
163 <td align="left" valign="top">Y<br>
165 <td style="vertical-align: top;">Y</td>
166 <td style="vertical-align: top;">Y</td>
167 <td style="vertical-align: top;">Y</td>
170 <td style="width: 40%;" align="left" valign="top">
172 <li> ds:RetrievalMethod </li>
175 <td align="left" valign="top">Y<br>
177 <td style="vertical-align: top;">Y</td>
178 <td style="vertical-align: top;">Y</td>
179 <td style="vertical-align: top;">Y</td>
182 <td style="width: 40%;" align="left" valign="top">ReferenceList
185 <td align="left" valign="top">N<br>
187 <td style="vertical-align: top;">N<br>
189 <td style="vertical-align: top;">N<br>
191 <td style="vertical-align: top;">N<br>
195 <td style="width: 40%;" align="left" valign="top">EncryptionProperties
198 <td align="left" valign="top">Y<br>
200 <td style="vertical-align: top;">Y</td>
201 <td style="vertical-align: top;">Y</td>
202 <td style="vertical-align: top;">Y</td>
205 <td style="width: 40%;" align="left" valign="top">Satisfactory
208 <td align="left" valign="top">Y<br>
210 <td style="vertical-align: top;">Y</td>
211 <td style="vertical-align: top;">Y</td>
212 <td style="vertical-align: top;">Y</td>
215 <td style="width: 40%;" align="left" valign="top">Required
217 support: Element and Content. <br>
219 <td align="left" valign="top">Y<br>
221 <td style="vertical-align: top;">Y</td>
222 <td style="vertical-align: top;">Y</td>
223 <td style="vertical-align: top;">Y</td>
226 <td style="width: 40%;" align="left" valign="top">Encryption
229 <td align="left" valign="top">Y<br>
231 <td style="vertical-align: top;">Y</td>
232 <td style="vertical-align: top;">Y</td>
233 <td style="vertical-align: top;">Y</td>
236 <td style="width: 40%;" align="left" valign="top">
238 <li> Serialization of XML Element and Content.
240 <li> NFC conversion from non-Unicode encodings.
246 <td align="left" valign="top">Y<br>
248 <td style="vertical-align: top;">Y</td>
249 <td style="vertical-align: top;">Y</td>
250 <td style="vertical-align: top;">Y</td>
253 <td style="width: 40%;" align="left" valign="top">
255 <li> Encryptor returns EncryptedData structure. </li>
258 <td align="left" valign="top">Y<br>
260 <td style="vertical-align: top;">Y</td>
261 <td style="vertical-align: top;">Y</td>
262 <td style="vertical-align: top;">Y</td>
265 <td style="width: 40%;" align="left" valign="top">
267 <li> Encryptor replaces EncryptedData into source
268 document (when Type is Element or Content). </li>
271 <td align="left" valign="top">Y<br>
273 <td style="vertical-align: top;">Y</td>
274 <td style="vertical-align: top;">Y</td>
275 <td style="vertical-align: top;">Y</td>
278 <td style="width: 40%;" valign="top"> Decryption <br>
280 <td valign="top">Y<br>
282 <td style="vertical-align: top;">Y</td>
283 <td style="vertical-align: top;">Y</td>
284 <td style="vertical-align: top;">Y</td>
287 <td style="width: 40%;" align="left" valign="top">
289 <li> The decryptor returns the data and its Type to
291 it an octet sequence or key value). </li>
294 <td align="left" valign="top">Y<br>
296 <td style="vertical-align: top;">Y</td>
297 <td style="vertical-align: top;">Y</td>
298 <td style="vertical-align: top;">Y</td>
301 <td style="width: 40%;" align="left" valign="top">
303 <li> If data is Element or Content the decryptor
304 return the UTF-8 encoding XML character data. </li>
307 <td align="left" valign="top">Y<br>
309 <td style="vertical-align: top;">Y</td>
310 <td style="vertical-align: top;">Y</td>
311 <td style="vertical-align: top;">Y</td>
314 <td style="width: 40%;" align="left" valign="top">
316 <li> If data is Element or Content the decryptor
317 replaces the EncryptedData in the source document with the decrypted
321 <td align="left" valign="top">Y<br>
323 <td style="vertical-align: top;">Y</td>
324 <td style="vertical-align: top;">Y</td>
325 <td style="vertical-align: top;">Y</td>
328 <td style="width: 40%;" align="left" valign="top">TRIPLEDES<br>
330 <td align="left" valign="top">Y<br>
332 <td style="vertical-align: top;">Y</td>
333 <td style="vertical-align: top;">Y</td>
334 <td style="vertical-align: top;">Y</td>
337 <td style="width: 40%;" align="left" valign="top">AES-128<br>
339 <td align="left" valign="top">Y<br>
341 <td style="vertical-align: top;">Y</td>
342 <td style="vertical-align: top;">Y</td>
343 <td style="vertical-align: top;">Y</td>
346 <td style="width: 40%;" align="left" valign="top">AES-256<br>
348 <td align="left" valign="top">Y<br>
350 <td style="vertical-align: top;">Y</td>
351 <td style="vertical-align: top;">Y</td>
352 <td style="vertical-align: top;">Y</td>
355 <td style="width: 40%;" valign="top"> AES-192<br>
357 <td valign="top">Y<br>
359 <td style="vertical-align: top;">Y</td>
360 <td style="vertical-align: top;">Y</td>
361 <td style="vertical-align: top;">Y</td>
364 <td style="width: 40%;" align="left" valign="top">RSA-v1.5
368 <td align="left" valign="top">Y<br>
370 <td style="vertical-align: top;">N<br>
372 <td style="vertical-align: top;">N</td>
373 <td style="vertical-align: top;">Y</td>
376 <td style="width: 40%;" valign="top"> RSA-OAEP (128
380 <td valign="top">Y<a href="#rsa-oaep"><sup>(1)</sup></a>
383 <td style="vertical-align: top;">N</td>
384 <td style="vertical-align: top;">N</td>
385 <td style="vertical-align: top;">N</td>
388 <td style="width: 40%;" valign="top"> Diffie-Hellman
391 <td valign="top">N<br>
393 <td style="vertical-align: top;">N</td>
394 <td style="vertical-align: top;">N</td>
395 <td style="vertical-align: top;">N</td>
398 <td style="width: 40%;" valign="top"> TRIPLEDES Key
401 <td valign="top">Y<br>
403 <td style="vertical-align: top;">N</td>
404 <td style="vertical-align: top;">Y</td>
405 <td style="vertical-align: top;">N</td>
408 <td style="width: 40%;" valign="top"> AES-128 Key
409 Wrap (128 bit keys)<br>
411 <td valign="top">Y<br>
413 <td style="vertical-align: top;">N</td>
414 <td style="vertical-align: top;">Y<br>
416 <td style="vertical-align: top;">N<br>
420 <td style="width: 40%;" valign="top"> AES-256 Key
421 Wrap (256 bit keys)<br>
423 <td valign="top">Y<br>
425 <td style="vertical-align: top;">N</td>
426 <td style="vertical-align: top;">Y<br>
428 <td style="vertical-align: top;">N<br>
432 <td style="width: 40%;" valign="top"> AES-192 Key Wrap<br>
434 <td valign="top">Y<br>
436 <td style="vertical-align: top;">N</td>
437 <td style="vertical-align: top;">Y<br>
439 <td style="vertical-align: top;">N</td>
442 <td style="width: 40%;" valign="top"> SHA1<br>
444 <td valign="top">Y<br>
446 <td style="vertical-align: top;">Y<br>
448 <td style="vertical-align: top;">Y<br>
450 <td style="vertical-align: top;">Y<br>
454 <td style="width: 40%;" valign="top"> SHA256<br>
456 <td valign="top">Y<br>
458 <td style="vertical-align: top;">N</td>
459 <td style="vertical-align: top;">N</td>
460 <td style="vertical-align: top;">N</td>
463 <td style="width: 40%;" valign="top"> SHA512<br>
465 <td valign="top">Y<br>
467 <td style="vertical-align: top;">N</td>
468 <td style="vertical-align: top;">N</td>
469 <td style="vertical-align: top;">N</td>
472 <td style="width: 40%;" valign="top"> RIPEMD-160<br>
474 <td valign="top">Y<br>
476 <td style="vertical-align: top;">Y<br>
478 <td style="vertical-align: top;">N<br>
480 <td style="vertical-align: top;">N<br>
484 <td style="width: 40%;" valign="top"> XML Digital
487 <td valign="top">Y<br>
489 <td style="vertical-align: top;">Y<br>
491 <td style="vertical-align: top;">Y<br>
493 <td style="vertical-align: top;">Y<br>
497 <td style="width: 40%;" valign="top"> Decryption
500 <td valign="top">N<br>
502 <td style="vertical-align: top;">N</td>
503 <td style="vertical-align: top;">N</td>
504 <td style="vertical-align: top;">N</td>
507 <td style="width: 40%;" valign="top">
509 <li>XPointer support in <code>Except URI</code>
513 <td valign="top">N<br>
515 <td style="vertical-align: top;">N</td>
516 <td style="vertical-align: top;">N</td>
517 <td style="vertical-align: top;">N</td>
520 <td style="width: 40%;" align="left" valign="top">
521 <a href="http://www.w3.org/TR/xml-c14n">Canonical XML 1.0</a>
523 <td align="left" valign="top">Y<br>
525 <td style="vertical-align: top;">Y<br>
527 <td style="vertical-align: top;">Y<br>
529 <td style="vertical-align: top;">Y<br>
533 <td style="width: 40%;" align="left" valign="top">
534 <a href="http://www.w3.org/TR/xml-exc-c14n">Exlusive Canonical XML 1.0</a>
536 <td align="left" valign="top">Y<br>
538 <td style="vertical-align: top;">Y<br>
540 <td style="vertical-align: top;">Y<br>
542 <td style="vertical-align: top;">Y<br>
546 <td style="width: 40%;" align="left" valign="top">
547 <a href="http://www.w3.org/TR/xml-c14n11/">Canonical XML 1.1</a>
549 <td align="left" valign="top">Y<br>
551 <td style="vertical-align: top;">Y<br>
553 <td style="vertical-align: top;">Y<br>
555 <td style="vertical-align: top;">Y<br>
559 <td style="width: 40%;" valign="top">Base64 Encoding<br>
561 <td valign="top">Y<br>
563 <td style="vertical-align: top;">Y</td>
564 <td style="vertical-align: top;">Y</td>
565 <td style="vertical-align: top;">Y</td>
568 <div align="left"> <br><a name="rsa-oaep"></a> <sup>(1)</sup> OpenSSL (and XML
569 Security Library) supports only SHA1 as the digest in the RSA-OAEP key
570 transport.<br><p> <b>Test vectors (from <a href="http://www.w3.org/Encryption/2002/02-xenc-interop.html">W3C XML
572 interop page</a>): </b><br><a href="http://lists.w3.org/Archives/Public/xml-encryption/2002Mar/0008.html">merlin-xmlenc-five.tar.gz</a>
573 <br><a href="http://lists.w3.org/Archives/Public/xml-encryption/2002Mar/att-0052/01-phaos-xmlenc-3.zip">phaos-xmlenc-3.zip</a>
577 </div></td></tr></table></td>