r24614: Merge with current lorikeet-heimdal. This brings us one step closer
[tprouty/samba.git] / source4 / heimdal / lib / hx509 / hx509-private.h
1 /* This is a generated file */
2 #ifndef __hx509_private_h__
3 #define __hx509_private_h__
4
5 #include <stdarg.h>
6
7 #if !defined(__GNUC__) && !defined(__attribute__)
8 #define __attribute__(x)
9 #endif
10
11 int
12 _hx509_Certificate_cmp (
13         const Certificate */*p*/,
14         const Certificate */*q*/);
15
16 int
17 _hx509_Name_to_string (
18         const Name */*n*/,
19         char **/*str*/);
20
21 time_t
22 _hx509_Time2time_t (const Time */*t*/);
23
24 void
25 _hx509_abort (
26         const char */*fmt*/,
27         ...)
28     __attribute__ ((noreturn, format (printf, 1, 2)));
29
30 int
31 _hx509_calculate_path (
32         hx509_context /*context*/,
33         int /*flags*/,
34         time_t /*time_now*/,
35         hx509_certs /*anchors*/,
36         unsigned int /*max_depth*/,
37         hx509_cert /*cert*/,
38         hx509_certs /*pool*/,
39         hx509_path */*path*/);
40
41 int
42 _hx509_cert_assign_key (
43         hx509_cert /*cert*/,
44         hx509_private_key /*private_key*/);
45
46 int
47 _hx509_cert_get_eku (
48         hx509_context /*context*/,
49         hx509_cert /*cert*/,
50         ExtKeyUsage */*e*/);
51
52 int
53 _hx509_cert_get_keyusage (
54         hx509_context /*context*/,
55         hx509_cert /*c*/,
56         KeyUsage */*ku*/);
57
58 int
59 _hx509_cert_get_version (const Certificate */*t*/);
60
61 int
62 _hx509_cert_is_parent_cmp (
63         const Certificate */*subject*/,
64         const Certificate */*issuer*/,
65         int /*allow_self_signed*/);
66
67 int
68 _hx509_cert_private_decrypt (
69         hx509_context /*context*/,
70         const heim_octet_string */*ciphertext*/,
71         const heim_oid */*encryption_oid*/,
72         hx509_cert /*p*/,
73         heim_octet_string */*cleartext*/);
74
75 hx509_private_key
76 _hx509_cert_private_key (hx509_cert /*p*/);
77
78 int
79 _hx509_cert_private_key_exportable (hx509_cert /*p*/);
80
81 int
82 _hx509_cert_public_encrypt (
83         hx509_context /*context*/,
84         const heim_octet_string */*cleartext*/,
85         const hx509_cert /*p*/,
86         heim_oid */*encryption_oid*/,
87         heim_octet_string */*ciphertext*/);
88
89 void
90 _hx509_cert_set_release (
91         hx509_cert /*cert*/,
92         _hx509_cert_release_func /*release*/,
93         void */*ctx*/);
94
95 int
96 _hx509_certs_keys_add (
97         hx509_context /*context*/,
98         hx509_certs /*certs*/,
99         hx509_private_key /*key*/);
100
101 void
102 _hx509_certs_keys_free (
103         hx509_context /*context*/,
104         hx509_private_key */*keys*/);
105
106 int
107 _hx509_certs_keys_get (
108         hx509_context /*context*/,
109         hx509_certs /*certs*/,
110         hx509_private_key **/*keys*/);
111
112 hx509_certs
113 _hx509_certs_ref (hx509_certs /*certs*/);
114
115 int
116 _hx509_check_key_usage (
117         hx509_context /*context*/,
118         hx509_cert /*cert*/,
119         unsigned /*flags*/,
120         int /*req_present*/);
121
122 int
123 _hx509_collector_alloc (
124         hx509_context /*context*/,
125         hx509_lock /*lock*/,
126         struct hx509_collector **/*collector*/);
127
128 int
129 _hx509_collector_certs_add (
130         hx509_context /*context*/,
131         struct hx509_collector */*c*/,
132         hx509_cert /*cert*/);
133
134 int
135 _hx509_collector_collect_certs (
136         hx509_context /*context*/,
137         struct hx509_collector */*c*/,
138         hx509_certs */*ret_certs*/);
139
140 int
141 _hx509_collector_collect_private_keys (
142         hx509_context /*context*/,
143         struct hx509_collector */*c*/,
144         hx509_private_key **/*keys*/);
145
146 void
147 _hx509_collector_free (struct hx509_collector */*c*/);
148
149 hx509_lock
150 _hx509_collector_get_lock (struct hx509_collector */*c*/);
151
152 int
153 _hx509_collector_private_key_add (
154         hx509_context /*context*/,
155         struct hx509_collector */*c*/,
156         const AlgorithmIdentifier */*alg*/,
157         hx509_private_key /*private_key*/,
158         const heim_octet_string */*key_data*/,
159         const heim_octet_string */*localKeyId*/);
160
161 int
162 _hx509_create_signature (
163         hx509_context /*context*/,
164         const hx509_private_key /*signer*/,
165         const AlgorithmIdentifier */*alg*/,
166         const heim_octet_string */*data*/,
167         AlgorithmIdentifier */*signatureAlgorithm*/,
168         heim_octet_string */*sig*/);
169
170 int
171 _hx509_create_signature_bitstring (
172         hx509_context /*context*/,
173         const hx509_private_key /*signer*/,
174         const AlgorithmIdentifier */*alg*/,
175         const heim_octet_string */*data*/,
176         AlgorithmIdentifier */*signatureAlgorithm*/,
177         heim_bit_string */*sig*/);
178
179 int
180 _hx509_find_extension_subject_key_id (
181         const Certificate */*issuer*/,
182         SubjectKeyIdentifier */*si*/);
183
184 int
185 _hx509_generate_private_key (
186         hx509_context /*context*/,
187         struct hx509_generate_private_context */*ctx*/,
188         hx509_private_key */*private_key*/);
189
190 int
191 _hx509_generate_private_key_bits (
192         hx509_context /*context*/,
193         struct hx509_generate_private_context */*ctx*/,
194         unsigned long /*bits*/);
195
196 void
197 _hx509_generate_private_key_free (struct hx509_generate_private_context **/*ctx*/);
198
199 int
200 _hx509_generate_private_key_init (
201         hx509_context /*context*/,
202         const heim_oid */*oid*/,
203         struct hx509_generate_private_context **/*ctx*/);
204
205 int
206 _hx509_generate_private_key_is_ca (
207         hx509_context /*context*/,
208         struct hx509_generate_private_context */*ctx*/);
209
210 Certificate *
211 _hx509_get_cert (hx509_cert /*cert*/);
212
213 void
214 _hx509_ks_dir_register (hx509_context /*context*/);
215
216 void
217 _hx509_ks_file_register (hx509_context /*context*/);
218
219 void
220 _hx509_ks_keychain_register (hx509_context /*context*/);
221
222 void
223 _hx509_ks_mem_register (hx509_context /*context*/);
224
225 void
226 _hx509_ks_null_register (hx509_context /*context*/);
227
228 void
229 _hx509_ks_pkcs11_register (hx509_context /*context*/);
230
231 void
232 _hx509_ks_pkcs12_register (hx509_context /*context*/);
233
234 void
235 _hx509_ks_register (
236         hx509_context /*context*/,
237         struct hx509_keyset_ops */*ops*/);
238
239 int
240 _hx509_lock_find_cert (
241         hx509_lock /*lock*/,
242         const hx509_query */*q*/,
243         hx509_cert */*c*/);
244
245 const struct _hx509_password *
246 _hx509_lock_get_passwords (hx509_lock /*lock*/);
247
248 hx509_certs
249 _hx509_lock_unlock_certs (hx509_lock /*lock*/);
250
251 int
252 _hx509_map_file (
253         const char */*fn*/,
254         void **/*data*/,
255         size_t */*length*/,
256         struct stat */*rsb*/);
257
258 int
259 _hx509_map_file_os (
260         const char */*fn*/,
261         heim_octet_string */*os*/,
262         struct stat */*rsb*/);
263
264 int
265 _hx509_match_keys (
266         hx509_cert /*c*/,
267         hx509_private_key /*private_key*/);
268
269 int
270 _hx509_name_cmp (
271         const Name */*n1*/,
272         const Name */*n2*/);
273
274 int
275 _hx509_name_ds_cmp (
276         const DirectoryString */*ds1*/,
277         const DirectoryString */*ds2*/);
278
279 int
280 _hx509_name_from_Name (
281         const Name */*n*/,
282         hx509_name */*name*/);
283
284 int
285 _hx509_name_modify (
286         hx509_context /*context*/,
287         Name */*name*/,
288         int /*append*/,
289         const heim_oid */*oid*/,
290         const char */*str*/);
291
292 int
293 _hx509_parse_private_key (
294         hx509_context /*context*/,
295         const heim_oid */*key_oid*/,
296         const void */*data*/,
297         size_t /*len*/,
298         hx509_private_key */*private_key*/);
299
300 int
301 _hx509_path_append (
302         hx509_context /*context*/,
303         hx509_path */*path*/,
304         hx509_cert /*cert*/);
305
306 void
307 _hx509_path_free (hx509_path */*path*/);
308
309 int
310 _hx509_pbe_decrypt (
311         hx509_context /*context*/,
312         hx509_lock /*lock*/,
313         const AlgorithmIdentifier */*ai*/,
314         const heim_octet_string */*econtent*/,
315         heim_octet_string */*content*/);
316
317 void
318 _hx509_pi_printf (
319         int (*/*func*/)(void *, const char *),
320         void */*ctx*/,
321         const char */*fmt*/,
322         ...);
323
324 int
325 _hx509_private_key2SPKI (
326         hx509_context /*context*/,
327         hx509_private_key /*private_key*/,
328         SubjectPublicKeyInfo */*spki*/);
329
330 void
331 _hx509_private_key_assign_rsa (
332         hx509_private_key /*key*/,
333         void */*ptr*/);
334
335 int
336 _hx509_private_key_export (
337         hx509_context /*context*/,
338         const hx509_private_key /*key*/,
339         heim_octet_string */*data*/);
340
341 int
342 _hx509_private_key_exportable (hx509_private_key /*key*/);
343
344 int
345 _hx509_private_key_free (hx509_private_key */*key*/);
346
347 int
348 _hx509_private_key_init (
349         hx509_private_key */*key*/,
350         hx509_private_key_ops */*ops*/,
351         void */*keydata*/);
352
353 int
354 _hx509_private_key_oid (
355         hx509_context /*context*/,
356         const hx509_private_key /*key*/,
357         heim_oid */*data*/);
358
359 int
360 _hx509_private_key_private_decrypt (
361         hx509_context /*context*/,
362         const heim_octet_string */*ciphertext*/,
363         const heim_oid */*encryption_oid*/,
364         hx509_private_key /*p*/,
365         heim_octet_string */*cleartext*/);
366
367 hx509_private_key
368 _hx509_private_key_ref (hx509_private_key /*key*/);
369
370 const char *
371 _hx509_private_pem_name (hx509_private_key /*key*/);
372
373 int
374 _hx509_public_encrypt (
375         hx509_context /*context*/,
376         const heim_octet_string */*cleartext*/,
377         const Certificate */*cert*/,
378         heim_oid */*encryption_oid*/,
379         heim_octet_string */*ciphertext*/);
380
381 void
382 _hx509_query_clear (hx509_query */*q*/);
383
384 int
385 _hx509_query_match_cert (
386         hx509_context /*context*/,
387         const hx509_query */*q*/,
388         hx509_cert /*cert*/);
389
390 void
391 _hx509_query_statistic (
392         hx509_context /*context*/,
393         int /*type*/,
394         const hx509_query */*q*/);
395
396 int
397 _hx509_request_add_dns_name (
398         hx509_context /*context*/,
399         hx509_request /*req*/,
400         const char */*hostname*/);
401
402 int
403 _hx509_request_add_eku (
404         hx509_context /*context*/,
405         hx509_request /*req*/,
406         const heim_oid */*oid*/);
407
408 int
409 _hx509_request_add_email (
410         hx509_context /*context*/,
411         hx509_request /*req*/,
412         const char */*email*/);
413
414 void
415 _hx509_request_free (hx509_request */*req*/);
416
417 int
418 _hx509_request_init (
419         hx509_context /*context*/,
420         hx509_request */*req*/);
421
422 int
423 _hx509_request_set_SubjectPublicKeyInfo (
424         hx509_context /*context*/,
425         hx509_request /*req*/,
426         const SubjectPublicKeyInfo */*key*/);
427
428 int
429 _hx509_request_set_name (
430         hx509_context /*context*/,
431         hx509_request /*req*/,
432         hx509_name /*name*/);
433
434 int
435 _hx509_request_to_pkcs10 (
436         hx509_context /*context*/,
437         const hx509_request /*req*/,
438         const hx509_private_key /*signer*/,
439         heim_octet_string */*request*/);
440
441 int
442 _hx509_set_cert_attribute (
443         hx509_context /*context*/,
444         hx509_cert /*cert*/,
445         const heim_oid */*oid*/,
446         const heim_octet_string */*attr*/);
447
448 void
449 _hx509_unmap_file (
450         void */*data*/,
451         size_t /*len*/);
452
453 void
454 _hx509_unmap_file_os (heim_octet_string */*os*/);
455
456 int
457 _hx509_unparse_Name (
458         const Name */*aname*/,
459         char **/*str*/);
460
461 int
462 _hx509_verify_signature (
463         hx509_context /*context*/,
464         const Certificate */*signer*/,
465         const AlgorithmIdentifier */*alg*/,
466         const heim_octet_string */*data*/,
467         const heim_octet_string */*sig*/);
468
469 int
470 _hx509_verify_signature_bitstring (
471         hx509_context /*context*/,
472         const Certificate */*signer*/,
473         const AlgorithmIdentifier */*alg*/,
474         const heim_octet_string */*data*/,
475         const heim_bit_string */*sig*/);
476
477 int
478 _hx509_write_file (
479         const char */*fn*/,
480         const void */*data*/,
481         size_t /*length*/);
482
483 #endif /* __hx509_private_h__ */