2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
4
<refentry id="gcr-gcr-certificate">
6
<refentrytitle role="top_of_page" id="gcr-gcr-certificate.top_of_page">GcrCertificate</refentrytitle>
7
<manvolnum>3</manvolnum>
8
<refmiscinfo>GCR Library</refmiscinfo>
12
<refname>GcrCertificate</refname>
13
<refpurpose>Represents a certificate.</refpurpose>
16
<refsynopsisdiv id="gcr-gcr-certificate.synopsis" role="synopsis">
17
<title role="synopsis.title">Synopsis</title>
18
<anchor id="GcrCertificateIface"/>
20
#define <link linkend="GCR-CERTIFICATE-GET-INTERFACE--CAPS">GCR_CERTIFICATE_GET_INTERFACE</link> (inst)
21
<link linkend="GcrCertificate">GcrCertificate</link>;
22
<link linkend="GcrCertificateIface-struct">GcrCertificateIface</link>;
23
const <link linkend="guchar">guchar</link>* <link linkend="gcr-certificate-get-der-data">gcr_certificate_get_der_data</link> (<link linkend="GcrCertificate">GcrCertificate</link> *self,
24
<link linkend="gsize">gsize</link> *n_data);
25
<link linkend="gchar">gchar</link>* <link linkend="gcr-certificate-get-issuer-cn">gcr_certificate_get_issuer_cn</link> (<link linkend="GcrCertificate">GcrCertificate</link> *self);
26
<link linkend="gchar">gchar</link>* <link linkend="gcr-certificate-get-issuer-dn">gcr_certificate_get_issuer_dn</link> (<link linkend="GcrCertificate">GcrCertificate</link> *self);
27
<link linkend="gchar">gchar</link>* <link linkend="gcr-certificate-get-issuer-part">gcr_certificate_get_issuer_part</link> (<link linkend="GcrCertificate">GcrCertificate</link> *self,
28
const <link linkend="gchar">gchar</link> *part);
29
<link linkend="gchar">gchar</link>* <link linkend="gcr-certificate-get-subject-cn">gcr_certificate_get_subject_cn</link> (<link linkend="GcrCertificate">GcrCertificate</link> *self);
30
<link linkend="gchar">gchar</link>* <link linkend="gcr-certificate-get-subject-dn">gcr_certificate_get_subject_dn</link> (<link linkend="GcrCertificate">GcrCertificate</link> *self);
31
<link linkend="gchar">gchar</link>* <link linkend="gcr-certificate-get-subject-part">gcr_certificate_get_subject_part</link> (<link linkend="GcrCertificate">GcrCertificate</link> *self,
32
const <link linkend="gchar">gchar</link> *part);
33
<link linkend="GDate">GDate</link>* <link linkend="gcr-certificate-get-issued-date">gcr_certificate_get_issued_date</link> (<link linkend="GcrCertificate">GcrCertificate</link> *self);
34
<link linkend="GDate">GDate</link>* <link linkend="gcr-certificate-get-expiry-date">gcr_certificate_get_expiry_date</link> (<link linkend="GcrCertificate">GcrCertificate</link> *self);
35
<link linkend="guchar">guchar</link>* <link linkend="gcr-certificate-get-serial-number">gcr_certificate_get_serial_number</link> (<link linkend="GcrCertificate">GcrCertificate</link> *self,
36
<link linkend="gsize">gsize</link> *n_length);
37
<link linkend="gchar">gchar</link>* <link linkend="gcr-certificate-get-serial-number-hex">gcr_certificate_get_serial_number_hex</link>
38
(<link linkend="GcrCertificate">GcrCertificate</link> *self);
39
<link linkend="guint">guint</link> <link linkend="gcr-certificate-get-key-size">gcr_certificate_get_key_size</link> (<link linkend="GcrCertificate">GcrCertificate</link> *self);
40
<link linkend="guchar">guchar</link>* <link linkend="gcr-certificate-get-fingerprint">gcr_certificate_get_fingerprint</link> (<link linkend="GcrCertificate">GcrCertificate</link> *self,
41
<link linkend="GChecksumType">GChecksumType</link> type,
42
<link linkend="gsize">gsize</link> *n_length);
43
<link linkend="gchar">gchar</link>* <link linkend="gcr-certificate-get-fingerprint-hex">gcr_certificate_get_fingerprint_hex</link> (<link linkend="GcrCertificate">GcrCertificate</link> *self,
44
<link linkend="GChecksumType">GChecksumType</link> type);
48
<refsect1 id="gcr-gcr-certificate.object-hierarchy" role="object_hierarchy">
49
<title role="object_hierarchy.title">Object Hierarchy</title>
51
<link linkend="GInterface">GInterface</link>
52
+----GcrCertificateIface
56
<refsect1 id="gcr-gcr-certificate.prerequisites" role="prerequisites">
57
<title role="prerequisites.title">Prerequisites</title>
59
GcrCertificateIface requires
60
<link linkend="GObject">GObject</link>.</para>
65
<refsect1 id="gcr-gcr-certificate.implementations" role="implementations">
66
<title role="implementations.title">Known Implementations</title>
68
GcrCertificateIface is implemented by
69
<link linkend="GcrSimpleCertificate">GcrSimpleCertificate</link>.</para>
75
<refsect1 id="gcr-gcr-certificate.description" role="desc">
76
<title role="desc.title">Description</title>
78
This is an interface that represents an X509 certificate. Objects can
79
implement this interface to make a certificate usable with the GCR
83
You can use <link linkend="GcrSimpleCertificate"><type>GcrSimpleCertificate</type></link> to simply load a certificate.</para>
88
<refsect1 id="gcr-gcr-certificate.details" role="details">
89
<title role="details.title">Details</title>
90
<refsect2 id="GCR-CERTIFICATE-GET-INTERFACE--CAPS" role="macro">
91
<title>GCR_CERTIFICATE_GET_INTERFACE()</title>
92
<indexterm zone="GCR-CERTIFICATE-GET-INTERFACE--CAPS"><primary sortas="GCR_CERTIFICATE_GET_INTERFACE">GCR_CERTIFICATE_GET_INTERFACE</primary></indexterm><programlisting>#define GCR_CERTIFICATE_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GCR_TYPE_CERTIFICATE, GcrCertificateIface))
95
</para><variablelist role="params">
96
<varlistentry><term><parameter>inst</parameter> :</term>
98
</simpara></listitem></varlistentry>
99
</variablelist></refsect2>
100
<refsect2 id="GcrCertificate" role="struct">
101
<title>GcrCertificate</title>
102
<indexterm zone="GcrCertificate"><primary sortas="GcrCertificate">GcrCertificate</primary></indexterm><programlisting>typedef struct _GcrCertificate GcrCertificate;</programlisting>
105
<refsect2 id="GcrCertificateIface-struct" role="struct">
106
<title>GcrCertificateIface</title>
107
<indexterm zone="GcrCertificateIface-struct"><primary sortas="GcrCertificateIface">GcrCertificateIface</primary></indexterm><programlisting>typedef struct _GcrCertificateIface GcrCertificateIface;</programlisting>
110
<refsect2 id="gcr-certificate-get-der-data" role="function">
111
<title>gcr_certificate_get_der_data ()</title>
112
<indexterm zone="gcr-certificate-get-der-data"><primary sortas="gcr_certificate_get_der_data">gcr_certificate_get_der_data</primary></indexterm><programlisting>const <link linkend="guchar">guchar</link>* gcr_certificate_get_der_data (<link linkend="GcrCertificate">GcrCertificate</link> *self,
113
<link linkend="gsize">gsize</link> *n_data);</programlisting>
115
Gets the raw DER data for an X509 certificate.</para>
117
</para><variablelist role="params">
118
<varlistentry><term><parameter>self</parameter> :</term>
119
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
120
</simpara></listitem></varlistentry>
121
<varlistentry><term><parameter>n_data</parameter> :</term>
122
<listitem><simpara> a pointer to a location to store the size of the resulting DER data.
123
</simpara></listitem></varlistentry>
124
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> raw DER data of the X509 certificate.
125
</simpara></listitem></varlistentry>
126
</variablelist></refsect2>
127
<refsect2 id="gcr-certificate-get-issuer-cn" role="function">
128
<title>gcr_certificate_get_issuer_cn ()</title>
129
<indexterm zone="gcr-certificate-get-issuer-cn"><primary sortas="gcr_certificate_get_issuer_cn">gcr_certificate_get_issuer_cn</primary></indexterm><programlisting><link linkend="gchar">gchar</link>* gcr_certificate_get_issuer_cn (<link linkend="GcrCertificate">GcrCertificate</link> *self);</programlisting>
131
Get the common name of the issuer of this certificate.
134
The string returned should be freed by the caller when no longer
137
</para><variablelist role="params">
138
<varlistentry><term><parameter>self</parameter> :</term>
139
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
140
</simpara></listitem></varlistentry>
141
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The allocated issuer CN, or NULL if no issuer CN present.
142
</simpara></listitem></varlistentry>
143
</variablelist></refsect2>
144
<refsect2 id="gcr-certificate-get-issuer-dn" role="function">
145
<title>gcr_certificate_get_issuer_dn ()</title>
146
<indexterm zone="gcr-certificate-get-issuer-dn"><primary sortas="gcr_certificate_get_issuer_dn">gcr_certificate_get_issuer_dn</primary></indexterm><programlisting><link linkend="gchar">gchar</link>* gcr_certificate_get_issuer_dn (<link linkend="GcrCertificate">GcrCertificate</link> *self);</programlisting>
148
Get the full issuer DN of the certificate as a (mostly)
152
The string returned should be freed by the caller when no longer
155
</para><variablelist role="params">
156
<varlistentry><term><parameter>self</parameter> :</term>
157
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
158
</simpara></listitem></varlistentry>
159
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The allocated issuer DN of the certificate.
160
</simpara></listitem></varlistentry>
161
</variablelist></refsect2>
162
<refsect2 id="gcr-certificate-get-issuer-part" role="function">
163
<title>gcr_certificate_get_issuer_part ()</title>
164
<indexterm zone="gcr-certificate-get-issuer-part"><primary sortas="gcr_certificate_get_issuer_part">gcr_certificate_get_issuer_part</primary></indexterm><programlisting><link linkend="gchar">gchar</link>* gcr_certificate_get_issuer_part (<link linkend="GcrCertificate">GcrCertificate</link> *self,
165
const <link linkend="gchar">gchar</link> *part);</programlisting>
167
Get a part of the DN of the issuer of this certificate.
170
Examples of a <parameter>part</parameter> might be the 'OU' (organizational unit)
171
or the 'CN' (common name). Only the value of that part
172
of the DN is returned.
175
The string returned should be freed by the caller when no longer
178
</para><variablelist role="params">
179
<varlistentry><term><parameter>self</parameter> :</term>
180
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
181
</simpara></listitem></varlistentry>
182
<varlistentry><term><parameter>part</parameter> :</term>
183
<listitem><simpara> a DN type string or OID.
184
</simpara></listitem></varlistentry>
185
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The allocated part of the issuer DN, or NULL if no such part is present.
186
</simpara></listitem></varlistentry>
187
</variablelist></refsect2>
188
<refsect2 id="gcr-certificate-get-subject-cn" role="function">
189
<title>gcr_certificate_get_subject_cn ()</title>
190
<indexterm zone="gcr-certificate-get-subject-cn"><primary sortas="gcr_certificate_get_subject_cn">gcr_certificate_get_subject_cn</primary></indexterm><programlisting><link linkend="gchar">gchar</link>* gcr_certificate_get_subject_cn (<link linkend="GcrCertificate">GcrCertificate</link> *self);</programlisting>
192
Get the common name of the subject of this certificate.
195
The string returned should be freed by the caller when no longer
198
</para><variablelist role="params">
199
<varlistentry><term><parameter>self</parameter> :</term>
200
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
201
</simpara></listitem></varlistentry>
202
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The allocated subject CN, or NULL if no subject CN present.
203
</simpara></listitem></varlistentry>
204
</variablelist></refsect2>
205
<refsect2 id="gcr-certificate-get-subject-dn" role="function">
206
<title>gcr_certificate_get_subject_dn ()</title>
207
<indexterm zone="gcr-certificate-get-subject-dn"><primary sortas="gcr_certificate_get_subject_dn">gcr_certificate_get_subject_dn</primary></indexterm><programlisting><link linkend="gchar">gchar</link>* gcr_certificate_get_subject_dn (<link linkend="GcrCertificate">GcrCertificate</link> *self);</programlisting>
209
Get the full subject DN of the certificate as a (mostly)
213
The string returned should be freed by the caller when no longer
216
</para><variablelist role="params">
217
<varlistentry><term><parameter>self</parameter> :</term>
218
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
219
</simpara></listitem></varlistentry>
220
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The allocated subject DN of the certificate.
221
</simpara></listitem></varlistentry>
222
</variablelist></refsect2>
223
<refsect2 id="gcr-certificate-get-subject-part" role="function">
224
<title>gcr_certificate_get_subject_part ()</title>
225
<indexterm zone="gcr-certificate-get-subject-part"><primary sortas="gcr_certificate_get_subject_part">gcr_certificate_get_subject_part</primary></indexterm><programlisting><link linkend="gchar">gchar</link>* gcr_certificate_get_subject_part (<link linkend="GcrCertificate">GcrCertificate</link> *self,
226
const <link linkend="gchar">gchar</link> *part);</programlisting>
228
Get a part of the DN of the subject of this certificate.
231
Examples of a <parameter>part</parameter> might be the 'OU' (organizational unit)
232
or the 'CN' (common name). Only the value of that part
233
of the DN is returned.
236
The string returned should be freed by the caller when no longer
239
</para><variablelist role="params">
240
<varlistentry><term><parameter>self</parameter> :</term>
241
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
242
</simpara></listitem></varlistentry>
243
<varlistentry><term><parameter>part</parameter> :</term>
244
<listitem><simpara> a DN type string or OID.
245
</simpara></listitem></varlistentry>
246
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The allocated part of the subject DN, or NULL if no such part is present.
247
</simpara></listitem></varlistentry>
248
</variablelist></refsect2>
249
<refsect2 id="gcr-certificate-get-issued-date" role="function">
250
<title>gcr_certificate_get_issued_date ()</title>
251
<indexterm zone="gcr-certificate-get-issued-date"><primary sortas="gcr_certificate_get_issued_date">gcr_certificate_get_issued_date</primary></indexterm><programlisting><link linkend="GDate">GDate</link>* gcr_certificate_get_issued_date (<link linkend="GcrCertificate">GcrCertificate</link> *self);</programlisting>
253
Get the issued date of this certificate.
256
The <link linkend="GDate"><type>GDate</type></link> returned should be freed by the caller using
257
<link linkend="g-date-free"><function>g_date_free()</function></link> when no longer required.</para>
259
</para><variablelist role="params">
260
<varlistentry><term><parameter>self</parameter> :</term>
261
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
262
</simpara></listitem></varlistentry>
263
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An allocated issued date of this certificate.
264
</simpara></listitem></varlistentry>
265
</variablelist></refsect2>
266
<refsect2 id="gcr-certificate-get-expiry-date" role="function">
267
<title>gcr_certificate_get_expiry_date ()</title>
268
<indexterm zone="gcr-certificate-get-expiry-date"><primary sortas="gcr_certificate_get_expiry_date">gcr_certificate_get_expiry_date</primary></indexterm><programlisting><link linkend="GDate">GDate</link>* gcr_certificate_get_expiry_date (<link linkend="GcrCertificate">GcrCertificate</link> *self);</programlisting>
270
Get the expiry date of this certificate.
273
The <link linkend="GDate"><type>GDate</type></link> returned should be freed by the caller using
274
<link linkend="g-date-free"><function>g_date_free()</function></link> when no longer required.</para>
276
</para><variablelist role="params">
277
<varlistentry><term><parameter>self</parameter> :</term>
278
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
279
</simpara></listitem></varlistentry>
280
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An allocated expiry date of this certificate.
281
</simpara></listitem></varlistentry>
282
</variablelist></refsect2>
283
<refsect2 id="gcr-certificate-get-serial-number" role="function">
284
<title>gcr_certificate_get_serial_number ()</title>
285
<indexterm zone="gcr-certificate-get-serial-number"><primary sortas="gcr_certificate_get_serial_number">gcr_certificate_get_serial_number</primary></indexterm><programlisting><link linkend="guchar">guchar</link>* gcr_certificate_get_serial_number (<link linkend="GcrCertificate">GcrCertificate</link> *self,
286
<link linkend="gsize">gsize</link> *n_length);</programlisting>
288
Get the raw binary serial number of the certificate.
291
The caller should free the returned data using <link linkend="g-free"><function>g_free()</function></link> when
292
it is no longer required.</para>
294
</para><variablelist role="params">
295
<varlistentry><term><parameter>self</parameter> :</term>
296
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
297
</simpara></listitem></varlistentry>
298
<varlistentry><term><parameter>n_length</parameter> :</term>
299
<listitem><simpara> the length of the returned data.
300
</simpara></listitem></varlistentry>
301
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the raw binary serial number.
302
</simpara></listitem></varlistentry>
303
</variablelist></refsect2>
304
<refsect2 id="gcr-certificate-get-serial-number-hex" role="function">
305
<title>gcr_certificate_get_serial_number_hex ()</title>
306
<indexterm zone="gcr-certificate-get-serial-number-hex"><primary sortas="gcr_certificate_get_serial_number_hex">gcr_certificate_get_serial_number_hex</primary></indexterm><programlisting><link linkend="gchar">gchar</link>* gcr_certificate_get_serial_number_hex
307
(<link linkend="GcrCertificate">GcrCertificate</link> *self);</programlisting>
309
Get the serial number of the certificate as a hex string.
312
The caller should free the returned data using <link linkend="g-free"><function>g_free()</function></link> when
313
it is no longer required.</para>
315
</para><variablelist role="params">
316
<varlistentry><term><parameter>self</parameter> :</term>
317
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
318
</simpara></listitem></varlistentry>
319
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> an allocated string containing the serial number as hex.
320
</simpara></listitem></varlistentry>
321
</variablelist></refsect2>
322
<refsect2 id="gcr-certificate-get-key-size" role="function">
323
<title>gcr_certificate_get_key_size ()</title>
324
<indexterm zone="gcr-certificate-get-key-size"><primary sortas="gcr_certificate_get_key_size">gcr_certificate_get_key_size</primary></indexterm><programlisting><link linkend="guint">guint</link> gcr_certificate_get_key_size (<link linkend="GcrCertificate">GcrCertificate</link> *self);</programlisting>
326
Get the key size in bits of the public key represented
327
by this certificate.</para>
329
</para><variablelist role="params">
330
<varlistentry><term><parameter>self</parameter> :</term>
331
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
332
</simpara></listitem></varlistentry>
333
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The key size of the certificate.
334
</simpara></listitem></varlistentry>
335
</variablelist></refsect2>
336
<refsect2 id="gcr-certificate-get-fingerprint" role="function">
337
<title>gcr_certificate_get_fingerprint ()</title>
338
<indexterm zone="gcr-certificate-get-fingerprint"><primary sortas="gcr_certificate_get_fingerprint">gcr_certificate_get_fingerprint</primary></indexterm><programlisting><link linkend="guchar">guchar</link>* gcr_certificate_get_fingerprint (<link linkend="GcrCertificate">GcrCertificate</link> *self,
339
<link linkend="GChecksumType">GChecksumType</link> type,
340
<link linkend="gsize">gsize</link> *n_length);</programlisting>
342
Calculate the fingerprint for this certificate.
345
You can pass G_CHECKSUM_SHA1 or G_CHECKSUM_MD5 as the <parameter>type</parameter>
349
The caller should free the returned data using <link linkend="g-free"><function>g_free()</function></link> when
350
it is no longer required.</para>
352
</para><variablelist role="params">
353
<varlistentry><term><parameter>self</parameter> :</term>
354
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
355
</simpara></listitem></varlistentry>
356
<varlistentry><term><parameter>type</parameter> :</term>
357
<listitem><simpara> the type of algorithm for the fingerprint.
358
</simpara></listitem></varlistentry>
359
<varlistentry><term><parameter>n_length</parameter> :</term>
360
<listitem><simpara> The length of the resulting fingerprint.
361
</simpara></listitem></varlistentry>
362
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the raw binary fingerprint.
363
</simpara></listitem></varlistentry>
364
</variablelist></refsect2>
365
<refsect2 id="gcr-certificate-get-fingerprint-hex" role="function">
366
<title>gcr_certificate_get_fingerprint_hex ()</title>
367
<indexterm zone="gcr-certificate-get-fingerprint-hex"><primary sortas="gcr_certificate_get_fingerprint_hex">gcr_certificate_get_fingerprint_hex</primary></indexterm><programlisting><link linkend="gchar">gchar</link>* gcr_certificate_get_fingerprint_hex (<link linkend="GcrCertificate">GcrCertificate</link> *self,
368
<link linkend="GChecksumType">GChecksumType</link> type);</programlisting>
370
Calculate the fingerprint for this certificate, and return it
374
You can pass G_CHECKSUM_SHA1 or G_CHECKSUM_MD5 as the <parameter>type</parameter>
378
The caller should free the returned data using <link linkend="g-free"><function>g_free()</function></link> when
379
it is no longer required.</para>
381
</para><variablelist role="params">
382
<varlistentry><term><parameter>self</parameter> :</term>
383
<listitem><simpara> a <link linkend="GcrCertificate"><type>GcrCertificate</type></link>
384
</simpara></listitem></varlistentry>
385
<varlistentry><term><parameter>type</parameter> :</term>
386
<listitem><simpara> the type of algorithm for the fingerprint.
387
</simpara></listitem></varlistentry>
388
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> an allocated hex string which contains the fingerprint.
389
</simpara></listitem></varlistentry>
390
</variablelist></refsect2>