summaryrefslogtreecommitdiff
path: root/docs/api/xmlsec-notes-new-crypto-functions.html
blob: 5953962ed157d64659aea61becf1ecbe2c880a2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>xmlSecCryptoApp* functions.</title>
<meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.79">
<link rel="HOME" title="XML Security Library Reference Manual" href="index.html">
<link rel="UP" title="Adding support for new cryptographic library." href="xmlsec-notes-new-crypto.html">
<link rel="PREVIOUS" title="Creating a framework from the skeleton." href="xmlsec-notes-new-crypto-skeleton.html">
<link rel="NEXT" title="Klasses and objects." href="xmlsec-notes-new-crypto-klasses.html">
<style type="text/css">.synopsis, .classsynopsis {
    background: #eeeeee;
    border: solid 1px #aaaaaa;
    padding: 0.5em;
}
.programlisting {
    background: #eeeeff;
    border: solid 1px #aaaaff;
    padding: 0.5em;
}
.variablelist {
    padding: 4px;
    margin-left: 3em;
}
.navigation {
    background: #ffeeee;
    border: solid 1px #ffaaaa;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}
.navigation a {
    color: #770000;
}
.navigation a:visited {
    color: #550000;
}
.navigation .title {
    font-size: 200%;
}</style>
<style type="text/css">
table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
    width: 20em;
}
.synopsis, .classsynopsis {
    background: #eeeeee;
    border: solid 1px #aaaaaa;
}
.programlisting {
    background: #eeeeee;
    border: solid 1px #000000;
}
.navigation {
    background: #eeeeee;
    border: solid 1px #000000;
}
.navigation a {
    color: initial;
}
.navigation a:visited {
    color: initial;
}
</style>
</head>
<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
<li><a href="../index.html">Home</a></li>
<li><a href="../download.html">Download</a></li>
<li><a href="../news.html">News</a></li>
<li><a href="../documentation.html">Documentation</a></li>
<ul>
<li><a href="../faq.html">FAQ</a></li>
<li><a href="../api/xmlsec-notes.html">Tutorial</a></li>
<li><a href="../api/xmlsec-reference.html">API reference</a></li>
<li><a href="../api/xmlsec-examples.html">Examples</a></li>
</ul>
<li><a href="../xmldsig.html">XML Digital Signature</a></li>
<ul><li><a href="http://www.aleksey.com/xmlsec/xmldsig-verifier.html">Online Verifier</a></li></ul>
<li><a href="../xmlenc.html">XML Encryption</a></li>
<li><a href="../c14n.html">XML Canonicalization</a></li>
<li><a href="../bugs.html">Reporting Bugs</a></li>
<li><a href="http://www.aleksey.com/pipermail/xmlsec">Mailing list</a></li>
<li><a href="../related.html">Related</a></li>
<li><a href="../authors.html">Authors</a></li>
</ul>
<table width="100%">
<tr>
<td width="15"></td>
<td><a href="http://xmlsoft.org/"><img src="../images/libxml2-logo.png" alt="LibXML2" border="0"></a></td>
</tr>
<tr>
<td width="15"></td>
<td><a href="http://xmlsoft.org/XSLT"><img src="../images/libxslt-logo.png" alt="LibXSLT" border="0"></a></td>
</tr>
<tr>
<td width="15"></td>
<td><a href="http://www.openssl.org/"><img src="../images/openssl-logo.png" alt="OpenSSL" border="0"></a></td>
</tr>
<!--Links - start--><!--Links - end-->
</table>
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
<td><a accesskey="p" href="xmlsec-notes-new-crypto-skeleton.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
<td><a accesskey="n" href="xmlsec-notes-new-crypto-klasses.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-NEW-CRYPTO-FUNCTIONS">xmlSecCryptoApp* functions.</a></h1>
<p>	The XML Security Library allows application to load multiple
	"xmlsec-&lt;crypto&gt; libraries. To prevent symbol conflicts, 
	all "xmlsec-mycrypto" library names MUST start with "xmlSecMyCrypto". 
	However, in some applications (for example, the xmlsec command line
	utility) that can use any crypto library, would prefer to 
	use a generic function names where possible.
	The "include/xmlsec/crypto.h" and "include/xmlsec/mycrypto/symbols.h" 
	include files do the magic by mapping "xmlSecMyCrypto*" to 
	"xmlSecCrypto*" names using "XMLSEC_CRYPTO_*" defines.
	</p>
<p>	In order to build xmlsec command line utility, the 
	"xmlsec-&lt;crypto&gt;" library must implement several functions.
	The stubs for all these functions are provided in the "skeleton"
	we've created. While these functions are not required to be
	implemented by "xmlsec-&lt;crypto&gt;" library, you should consider
	doing so (if possible) to simplify testing (thru xmlsec command line
	utility) and application development.
	</p>
<p>	In adition to xmlSecCryptoApp* functions, the xmlsec-&lt;crypto&gt;
	library MUST implement following xmlSecCrypto* functions:
	</p>
<div class="TABLE">
<a name="AEN694"></a><p><b>Table 1. xmlSecCrypto* functions.</b></p>
<table border="1" class="CALSTABLE">
<col>
<col>
<tbody>
<tr>
<td>xmlSecCryptoInit()</td>
<td>Initializes xmlsec-&lt;crypto&gt; library: registers cryptographic 
	transforms implemented by the library, keys, etc. 
	Please note, that the application might want to intialize
	the cryprographic library by itself. The default cryprographic
	library initialization (for example, used by xmlsec utility) 
	is implemented in xmlSecCryptoAppInit() function.
	</td>
</tr>
<tr>
<td>xmlSecCryptoShutdown()</td>
<td>Shuts down xmlsec-&lt;crypto&gt; library.
	Please note, that the application might want to shutdown
	the cryprographic library by itself. The default cryprographic
	library shutdown (for example, used by xmlsec utility) 
	is implemented in xmlSecCryptoAppShutdown() function.
	</td>
</tr>
<tr>
<td>xmlSecCryptoKeysMngrInit()</td>
<td>Adds keys stores implemented by the xmlsec-&lt;crypto&gt; library
	to the keys manager object.
	</td>
</tr>
</tbody>
</table>
</div>
	</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-notes-new-crypto-skeleton.html"><b>&lt;&lt;&lt; Creating a framework from the skeleton.</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-notes-new-crypto-klasses.html"><b>Klasses and objects. &gt;&gt;&gt;</b></a></td>
</tr></table>
</td></tr></table></td>
</tr></table></body>
</html>