Tizen 2.0 Release
[external/libgnutls26.git] / doc / reference / html / gnutls-extra.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>extra</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GnuTLS API Reference Manual">
8 <link rel="up" href="intro.html" title="GnuTLS API Reference Manual">
9 <link rel="prev" href="gnutls-gnutls.html" title="gnutls">
10 <link rel="next" href="gnutls-x509.html" title="x509">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="gnutls-gnutls.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="intro.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GnuTLS API Reference Manual</th>
21 <td><a accesskey="n" href="gnutls-x509.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#gnutls-extra.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#gnutls-extra.description" class="shortcut">Description</a>
27 </td></tr>
28 </table>
29 <div class="refentry">
30 <a name="gnutls-extra"></a><div class="titlepage"></div>
31 <div class="refnamediv"><table width="100%"><tr>
32 <td valign="top">
33 <h2><span class="refentrytitle"><a name="gnutls-extra.top_of_page"></a>extra</span></h2>
34 <p>extra</p>
35 </td>
36 <td valign="top" align="right"></td>
37 </tr></table></div>
38 <div class="refsynopsisdiv">
39 <a name="gnutls-extra.synopsis"></a><h2>Synopsis</h2>
40 <pre class="synopsis">#define             <a class="link" href="gnutls-extra.html#GNUTLS-EXTRA-VERSION:CAPS" title="GNUTLS_EXTRA_VERSION">GNUTLS_EXTRA_VERSION</a>
41 enum                <a class="link" href="gnutls-extra.html#gnutls-ia-apptype-t" title="enum gnutls_ia_apptype_t">gnutls_ia_apptype_t</a>;
42 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 (<a class="link" href="gnutls-extra.html#gnutls-ia-avp-func" title="gnutls_ia_avp_func ()">*gnutls_ia_avp_func</a>)               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
43                                                          <em class="parameter"><code><span class="type">void</span> *ptr</code></em>,
44                                                          <em class="parameter"><code>const <span class="type">char</span> *last</code></em>,
45                                                          <em class="parameter"><code><span class="type">size_t</span> lastlen</code></em>,
46                                                          <em class="parameter"><code><span class="type">char</span> **next</code></em>,
47                                                          <em class="parameter"><code><span class="type">size_t</span> *nextlen</code></em>);
48 <span class="returnvalue">void</span>                <a class="link" href="gnutls-extra.html#gnutls-ia-free-client-credentials" title="gnutls_ia_free_client_credentials ()">gnutls_ia_free_client_credentials</a>   ();
49 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-extra.html#gnutls-ia-verify-endphase" title="gnutls_ia_verify_endphase ()">gnutls_ia_verify_endphase</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
50                                                          <em class="parameter"><code>const <span class="type">char</span> *checksum</code></em>);
51 <span class="returnvalue">ssize_t</span>             <a class="link" href="gnutls-extra.html#gnutls-ia-send" title="gnutls_ia_send ()">gnutls_ia_send</a>                      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
52                                                          <em class="parameter"><code>const <span class="type">char</span> *data</code></em>,
53                                                          <em class="parameter"><code><span class="type">size_t</span> sizeofdata</code></em>);
54 <span class="returnvalue">ssize_t</span>             <a class="link" href="gnutls-extra.html#gnutls-ia-recv" title="gnutls_ia_recv ()">gnutls_ia_recv</a>                      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
55                                                          <em class="parameter"><code><span class="type">char</span> *data</code></em>,
56                                                          <em class="parameter"><code><span class="type">size_t</span> sizeofdata</code></em>);
57 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-extra.html#gnutls-ia-generate-challenge" title="gnutls_ia_generate_challenge ()">gnutls_ia_generate_challenge</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
58                                                          <em class="parameter"><code><span class="type">size_t</span> buffer_size</code></em>);
59 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-extra.html#gnutls-register-md5-handler" title="gnutls_register_md5_handler ()">gnutls_register_md5_handler</a>         (<em class="parameter"><code><span class="type">void</span></code></em>);
60 const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-extra.html#gnutls-extra-check-version" title="gnutls_extra_check_version ()">gnutls_extra_check_version</a>          (<em class="parameter"><code>const <span class="type">char</span> *req_version</code></em>);
61 </pre>
62 </div>
63 <div class="refsect1">
64 <a name="gnutls-extra.description"></a><h2>Description</h2>
65 <p>
66 </p>
67 </div>
68 <div class="refsect1">
69 <a name="gnutls-extra.details"></a><h2>Details</h2>
70 <div class="refsect2">
71 <a name="GNUTLS-EXTRA-VERSION:CAPS"></a><h3>GNUTLS_EXTRA_VERSION</h3>
72 <pre class="programlisting">#define GNUTLS_EXTRA_VERSION GNUTLS_VERSION
73 </pre>
74 <p>
75 </p>
76 </div>
77 <hr>
78 <div class="refsect2">
79 <a name="gnutls-ia-apptype-t"></a><h3>enum gnutls_ia_apptype_t</h3>
80 <pre class="programlisting">typedef enum {
81     GNUTLS_IA_APPLICATION_PAYLOAD = 0,
82     GNUTLS_IA_INTERMEDIATE_PHASE_FINISHED = 1,
83     GNUTLS_IA_FINAL_PHASE_FINISHED = 2
84 } gnutls_ia_apptype_t;
85 </pre>
86 <p>
87 Enumeration of different certificate encoding formats.
88 </p>
89 <div class="variablelist"><table border="0">
90 <col align="left" valign="top">
91 <tbody>
92 <tr>
93 <td><p><a name="GNUTLS-IA-APPLICATION-PAYLOAD:CAPS"></a><span class="term"><code class="literal">GNUTLS_IA_APPLICATION_PAYLOAD</code></span></p></td>
94 <td>TLS/IA application payload.
95 </td>
96 </tr>
97 <tr>
98 <td><p><a name="GNUTLS-IA-INTERMEDIATE-PHASE-FINISHED:CAPS"></a><span class="term"><code class="literal">GNUTLS_IA_INTERMEDIATE_PHASE_FINISHED</code></span></p></td>
99 <td>TLS/IA intermediate phase finished.
100 </td>
101 </tr>
102 <tr>
103 <td><p><a name="GNUTLS-IA-FINAL-PHASE-FINISHED:CAPS"></a><span class="term"><code class="literal">GNUTLS_IA_FINAL_PHASE_FINISHED</code></span></p></td>
104 <td>TLS/IA final phase finished.
105 </td>
106 </tr>
107 </tbody>
108 </table></div>
109 </div>
110 <hr>
111 <div class="refsect2">
112 <a name="gnutls-ia-avp-func"></a><h3>gnutls_ia_avp_func ()</h3>
113 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 (*gnutls_ia_avp_func)               (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
114                                                          <em class="parameter"><code><span class="type">void</span> *ptr</code></em>,
115                                                          <em class="parameter"><code>const <span class="type">char</span> *last</code></em>,
116                                                          <em class="parameter"><code><span class="type">size_t</span> lastlen</code></em>,
117                                                          <em class="parameter"><code><span class="type">char</span> **next</code></em>,
118                                                          <em class="parameter"><code><span class="type">size_t</span> *nextlen</code></em>);</pre>
119 <p>
120 </p>
121 </div>
122 <hr>
123 <div class="refsect2">
124 <a name="gnutls-ia-free-client-credentials"></a><h3>gnutls_ia_free_client_credentials ()</h3>
125 <pre class="programlisting"><span class="returnvalue">void</span>                gnutls_ia_free_client_credentials   ();</pre>
126 <p>
127 This structure is complex enough to manipulate directly thus this
128 helper function is provided in order to free (deallocate) it.
129 </p>
130 <div class="variablelist"><table border="0">
131 <col align="left" valign="top">
132 <tbody><tr>
133 <td><p><span class="term"><em class="parameter"><code>sc</code></em> :</span></p></td>
134 <td>is a <span class="type">gnutls_ia_client_credentials_t</span> structure.</td>
135 </tr></tbody>
136 </table></div>
137 </div>
138 <hr>
139 <div class="refsect2">
140 <a name="gnutls-ia-verify-endphase"></a><h3>gnutls_ia_verify_endphase ()</h3>
141 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_ia_verify_endphase           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
142                                                          <em class="parameter"><code>const <span class="type">char</span> *checksum</code></em>);</pre>
143 <p>
144 Verify TLS/IA end phase checksum data.  If verification fails, the
145 <a class="link" href="gnutls-gnutls.html#GNUTLS-A-INNER-APPLICATION-VERIFICATION:CAPS"><code class="literal">GNUTLS_A_INNER_APPLICATION_VERIFICATION</code></a> alert is sent to the other
146 sie.
147 </p>
148 <p>
149 This function is called when <a class="link" href="gnutls-extra.html#gnutls-ia-recv" title="gnutls_ia_recv ()"><code class="function">gnutls_ia_recv()</code></a> return
150 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-IPHF-RECEIVED:CAPS" title="GNUTLS_E_WARNING_IA_IPHF_RECEIVED"><code class="literal">GNUTLS_E_WARNING_IA_IPHF_RECEIVED</code></a> or
151 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-FPHF-RECEIVED:CAPS" title="GNUTLS_E_WARNING_IA_FPHF_RECEIVED"><code class="literal">GNUTLS_E_WARNING_IA_FPHF_RECEIVED</code></a>.
152 </p>
153 <div class="variablelist"><table border="0">
154 <col align="left" valign="top">
155 <tbody>
156 <tr>
157 <td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td>
158 <td>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> structure.</td>
159 </tr>
160 <tr>
161 <td><p><span class="term"><em class="parameter"><code>checksum</code></em> :</span></p></td>
162 <td>12-byte checksum data, received from <a class="link" href="gnutls-extra.html#gnutls-ia-recv" title="gnutls_ia_recv ()"><code class="function">gnutls_ia_recv()</code></a>.</td>
163 </tr>
164 <tr>
165 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
166 <td>Return 0 on successful verification, or an error
167 code.  If the checksum verification of the end phase message fails,
168 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-IA-VERIFY-FAILED:CAPS" title="GNUTLS_E_IA_VERIFY_FAILED"><code class="literal">GNUTLS_E_IA_VERIFY_FAILED</code></a> is returned.</td>
169 </tr>
170 </tbody>
171 </table></div>
172 </div>
173 <hr>
174 <div class="refsect2">
175 <a name="gnutls-ia-send"></a><h3>gnutls_ia_send ()</h3>
176 <pre class="programlisting"><span class="returnvalue">ssize_t</span>             gnutls_ia_send                      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
177                                                          <em class="parameter"><code>const <span class="type">char</span> *data</code></em>,
178                                                          <em class="parameter"><code><span class="type">size_t</span> sizeofdata</code></em>);</pre>
179 <p>
180 Send TLS/IA application payload data.  This function has the
181 similar semantics with <code class="function">send()</code>.  The only difference is that it
182 accepts a GnuTLS session, and uses different error codes.
183 </p>
184 <p>
185 The TLS/IA protocol is synchronous, so you cannot send more than
186 one packet at a time.  The client always send the first packet.
187 </p>
188 <p>
189 To finish an application phase in the server, use
190 <code class="function">gnutls_ia_endphase_send()</code>.  The client cannot end an application
191 phase unilaterally; rather, a client is required to respond with an
192 endphase of its own if gnutls_ia_recv indicates that the server has
193 sent one.
194 </p>
195 <p>
196 If the EINTR is returned by the internal push function (the default
197 is <code class="function">send()</code>} then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> will be returned.  If
198 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a> is returned, you must call
199 this function again, with the same parameters; alternatively you
200 could provide a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> pointer for data, and 0 for size.
201 </p>
202 <div class="variablelist"><table border="0">
203 <col align="left" valign="top">
204 <tbody>
205 <tr>
206 <td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td>
207 <td>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> structure.</td>
208 </tr>
209 <tr>
210 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
211 <td>contains the data to send</td>
212 </tr>
213 <tr>
214 <td><p><span class="term"><em class="parameter"><code>sizeofdata</code></em> :</span></p></td>
215 <td>is the length of the data</td>
216 </tr>
217 <tr>
218 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
219 <td>The number of bytes sent, or a negative error code.</td>
220 </tr>
221 </tbody>
222 </table></div>
223 </div>
224 <hr>
225 <div class="refsect2">
226 <a name="gnutls-ia-recv"></a><h3>gnutls_ia_recv ()</h3>
227 <pre class="programlisting"><span class="returnvalue">ssize_t</span>             gnutls_ia_recv                      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
228                                                          <em class="parameter"><code><span class="type">char</span> *data</code></em>,
229                                                          <em class="parameter"><code><span class="type">size_t</span> sizeofdata</code></em>);</pre>
230 <p>
231 Receive TLS/IA data.  This function has the similar semantics with
232 <code class="function">recv()</code>.  The only difference is that it accepts a GnuTLS session,
233 and uses different error codes.
234 </p>
235 <p>
236 If the server attempt to finish an application phase, this function
237 will return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-IPHF-RECEIVED:CAPS" title="GNUTLS_E_WARNING_IA_IPHF_RECEIVED"><code class="literal">GNUTLS_E_WARNING_IA_IPHF_RECEIVED</code></a> or
238 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-FPHF-RECEIVED:CAPS" title="GNUTLS_E_WARNING_IA_FPHF_RECEIVED"><code class="literal">GNUTLS_E_WARNING_IA_FPHF_RECEIVED</code></a>.  The caller should then invoke
239 <a class="link" href="gnutls-extra.html#gnutls-ia-verify-endphase" title="gnutls_ia_verify_endphase ()"><code class="function">gnutls_ia_verify_endphase()</code></a>, and if it runs the client side, also
240 send an endphase message of its own using gnutls_ia_endphase_send.
241 </p>
242 <p>
243 If EINTR is returned by the internal push function (the default is
244 <em class="parameter"><code>code</code></em>{<code class="function">recv()</code>}) then GNUTLS_E_INTERRUPTED will be returned.  If
245 GNUTLS_E_INTERRUPTED or GNUTLS_E_AGAIN is returned, you must call
246 this function again, with the same parameters; alternatively you
247 could provide a NULL pointer for data, and 0 for size.
248 </p>
249 <div class="variablelist"><table border="0">
250 <col align="left" valign="top">
251 <tbody>
252 <tr>
253 <td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td>
254 <td>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> structure.</td>
255 </tr>
256 <tr>
257 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
258 <td>the buffer that the data will be read into, must hold &gt;= 12 bytes.</td>
259 </tr>
260 <tr>
261 <td><p><span class="term"><em class="parameter"><code>sizeofdata</code></em> :</span></p></td>
262 <td>the number of requested bytes, must be &gt;= 12.</td>
263 </tr>
264 <tr>
265 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
266 <td>The number of bytes received.  A negative error code is
267 returned in case of an error.  The
268 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-IPHF-RECEIVED:CAPS" title="GNUTLS_E_WARNING_IA_IPHF_RECEIVED"><code class="literal">GNUTLS_E_WARNING_IA_IPHF_RECEIVED</code></a> and
269 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-FPHF-RECEIVED:CAPS" title="GNUTLS_E_WARNING_IA_FPHF_RECEIVED"><code class="literal">GNUTLS_E_WARNING_IA_FPHF_RECEIVED</code></a> errors are returned when an
270 application phase finished message has been sent by the server.</td>
271 </tr>
272 </tbody>
273 </table></div>
274 </div>
275 <hr>
276 <div class="refsect2">
277 <a name="gnutls-ia-generate-challenge"></a><h3>gnutls_ia_generate_challenge ()</h3>
278 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_ia_generate_challenge        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
279                                                          <em class="parameter"><code><span class="type">size_t</span> buffer_size</code></em>);</pre>
280 <p>
281 Generate an application challenge that the client cannot control or
282 predict, based on the TLS/IA inner secret.
283 </p>
284 <div class="variablelist"><table border="0">
285 <col align="left" valign="top">
286 <tbody>
287 <tr>
288 <td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td>
289 <td>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> structure.</td>
290 </tr>
291 <tr>
292 <td><p><span class="term"><em class="parameter"><code>buffer_size</code></em> :</span></p></td>
293 <td>size of output buffer.</td>
294 </tr>
295 <tr>
296 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
297 <td>Returns 0 on success, or an negative error code.</td>
298 </tr>
299 </tbody>
300 </table></div>
301 </div>
302 <hr>
303 <div class="refsect2">
304 <a name="gnutls-register-md5-handler"></a><h3>gnutls_register_md5_handler ()</h3>
305 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_register_md5_handler         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
306 <p>
307 Register a non-libgcrypt based MD5 and HMAC-MD5 handler.  This is
308 useful if you run Libgcrypt in FIPS-mode.  Normally TLS requires
309 use of MD5, so without this you cannot use GnuTLS with libgcrypt in
310 FIPS mode.
311 </p>
312 <div class="variablelist"><table border="0">
313 <col align="left" valign="top">
314 <tbody><tr>
315 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
316 <td>
317 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise an error.</td>
318 </tr></tbody>
319 </table></div>
320 <p class="since">Since 2.6.0</p>
321 </div>
322 <hr>
323 <div class="refsect2">
324 <a name="gnutls-extra-check-version"></a><h3>gnutls_extra_check_version ()</h3>
325 <pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_extra_check_version          (<em class="parameter"><code>const <span class="type">char</span> *req_version</code></em>);</pre>
326 <p>
327 Check GnuTLS Extra Library version.
328 </p>
329 <p>
330 See <a class="link" href="gnutls-extra.html#GNUTLS-EXTRA-VERSION:CAPS" title="GNUTLS_EXTRA_VERSION"><code class="literal">GNUTLS_EXTRA_VERSION</code></a> for a suitable <em class="parameter"><code>req_version</code></em> string.
331 </p>
332 <div class="variablelist"><table border="0">
333 <col align="left" valign="top">
334 <tbody>
335 <tr>
336 <td><p><span class="term"><em class="parameter"><code>req_version</code></em> :</span></p></td>
337 <td>version string to compare with, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
338 </tr>
339 <tr>
340 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
341 <td>Check that the version of the library is at
342 minimum the one given as a string in <em class="parameter"><code>req_version</code></em> and return the
343 actual version string of the library; return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
344 condition is not met.  If <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is passed to this function no
345 check is done and only the version string is returned.</td>
346 </tr>
347 </tbody>
348 </table></div>
349 </div>
350 </div>
351 </div>
352 <div class="footer">
353 <hr>
354           Generated by GTK-Doc V1.18</div>
355 </body>
356 </html>