1178825Sdfr/* This is a generated file */
2178825Sdfr#ifndef __hx509_protos_h__
3178825Sdfr#define __hx509_protos_h__
4178825Sdfr
5178825Sdfr#include <stdarg.h>
6178825Sdfr
7178825Sdfr#ifdef __cplusplus
8178825Sdfrextern "C" {
9178825Sdfr#endif
10178825Sdfr
11178825Sdfr#ifndef HX509_LIB_FUNCTION
12178825Sdfr#if defined(_WIN32)
13178825Sdfr#define HX509_LIB_FUNCTION _stdcall
14178825Sdfr#else
15178825Sdfr#define HX509_LIB_FUNCTION
16178825Sdfr#endif
17178825Sdfr#endif
18178825Sdfr
19178825Sdfrvoid
20178825Sdfrhx509_bitstring_print (
21178825Sdfr	const heim_bit_string */*b*/,
22178825Sdfr	hx509_vprint_func /*func*/,
23178825Sdfr	void */*ctx*/);
24178825Sdfr
25178825Sdfrint
26178825Sdfrhx509_ca_sign (
27178825Sdfr	hx509_context /*context*/,
28178825Sdfr	hx509_ca_tbs /*tbs*/,
29178825Sdfr	hx509_cert /*signer*/,
30178825Sdfr	hx509_cert */*certificate*/);
31178825Sdfr
32178825Sdfrint
33178825Sdfrhx509_ca_sign_self (
34178825Sdfr	hx509_context /*context*/,
35178825Sdfr	hx509_ca_tbs /*tbs*/,
36178825Sdfr	hx509_private_key /*signer*/,
37178825Sdfr	hx509_cert */*certificate*/);
38178825Sdfr
39178825Sdfrint
40178825Sdfrhx509_ca_tbs_add_crl_dp_uri (
41178825Sdfr	hx509_context /*context*/,
42178825Sdfr	hx509_ca_tbs /*tbs*/,
43178825Sdfr	const char */*uri*/,
44178825Sdfr	hx509_name /*issuername*/);
45178825Sdfr
46178825Sdfrint
47178825Sdfrhx509_ca_tbs_add_eku (
48178825Sdfr	hx509_context /*context*/,
49178825Sdfr	hx509_ca_tbs /*tbs*/,
50178825Sdfr	const heim_oid */*oid*/);
51178825Sdfr
52178825Sdfrint
53178825Sdfrhx509_ca_tbs_add_san_hostname (
54178825Sdfr	hx509_context /*context*/,
55178825Sdfr	hx509_ca_tbs /*tbs*/,
56178825Sdfr	const char */*dnsname*/);
57178825Sdfr
58178825Sdfrint
59178825Sdfrhx509_ca_tbs_add_san_jid (
60178825Sdfr	hx509_context /*context*/,
61178825Sdfr	hx509_ca_tbs /*tbs*/,
62178825Sdfr	const char */*jid*/);
63178825Sdfr
64178825Sdfrint
65178825Sdfrhx509_ca_tbs_add_san_ms_upn (
66178825Sdfr	hx509_context /*context*/,
67178825Sdfr	hx509_ca_tbs /*tbs*/,
68178825Sdfr	const char */*principal*/);
69178825Sdfr
70178825Sdfrint
71178825Sdfrhx509_ca_tbs_add_san_otherName (
72178825Sdfr	hx509_context /*context*/,
73178825Sdfr	hx509_ca_tbs /*tbs*/,
74178825Sdfr	const heim_oid */*oid*/,
75178825Sdfr	const heim_octet_string */*os*/);
76178825Sdfr
77178825Sdfrint
78178825Sdfrhx509_ca_tbs_add_san_pkinit (
79178825Sdfr	hx509_context /*context*/,
80178825Sdfr	hx509_ca_tbs /*tbs*/,
81178825Sdfr	const char */*principal*/);
82178825Sdfr
83178825Sdfrint
84178825Sdfrhx509_ca_tbs_add_san_rfc822name (
85178825Sdfr	hx509_context /*context*/,
86178825Sdfr	hx509_ca_tbs /*tbs*/,
87178825Sdfr	const char */*rfc822Name*/);
88178825Sdfr
89178825Sdfrvoid
90178825Sdfrhx509_ca_tbs_free (hx509_ca_tbs */*tbs*/);
91178825Sdfr
92178825Sdfrint
93178825Sdfrhx509_ca_tbs_init (
94178825Sdfr	hx509_context /*context*/,
95178825Sdfr	hx509_ca_tbs */*tbs*/);
96178825Sdfr
97178825Sdfrint
98178825Sdfrhx509_ca_tbs_set_ca (
99178825Sdfr	hx509_context /*context*/,
100178825Sdfr	hx509_ca_tbs /*tbs*/,
101178825Sdfr	int /*pathLenConstraint*/);
102178825Sdfr
103178825Sdfrint
104178825Sdfrhx509_ca_tbs_set_domaincontroller (
105178825Sdfr	hx509_context /*context*/,
106178825Sdfr	hx509_ca_tbs /*tbs*/);
107178825Sdfr
108178825Sdfrint
109178825Sdfrhx509_ca_tbs_set_notAfter (
110178825Sdfr	hx509_context /*context*/,
111178825Sdfr	hx509_ca_tbs /*tbs*/,
112178825Sdfr	time_t /*t*/);
113178825Sdfr
114178825Sdfrint
115178825Sdfrhx509_ca_tbs_set_notAfter_lifetime (
116178825Sdfr	hx509_context /*context*/,
117178825Sdfr	hx509_ca_tbs /*tbs*/,
118178825Sdfr	time_t /*delta*/);
119178825Sdfr
120178825Sdfrint
121178825Sdfrhx509_ca_tbs_set_notBefore (
122178825Sdfr	hx509_context /*context*/,
123178825Sdfr	hx509_ca_tbs /*tbs*/,
124178825Sdfr	time_t /*t*/);
125178825Sdfr
126178825Sdfrint
127178825Sdfrhx509_ca_tbs_set_proxy (
128178825Sdfr	hx509_context /*context*/,
129178825Sdfr	hx509_ca_tbs /*tbs*/,
130178825Sdfr	int /*pathLenConstraint*/);
131178825Sdfr
132178825Sdfrint
133178825Sdfrhx509_ca_tbs_set_serialnumber (
134178825Sdfr	hx509_context /*context*/,
135178825Sdfr	hx509_ca_tbs /*tbs*/,
136178825Sdfr	const heim_integer */*serialNumber*/);
137178825Sdfr
138178825Sdfrint
139178825Sdfrhx509_ca_tbs_set_spki (
140178825Sdfr	hx509_context /*context*/,
141178825Sdfr	hx509_ca_tbs /*tbs*/,
142178825Sdfr	const SubjectPublicKeyInfo */*spki*/);
143178825Sdfr
144178825Sdfrint
145178825Sdfrhx509_ca_tbs_set_subject (
146178825Sdfr	hx509_context /*context*/,
147178825Sdfr	hx509_ca_tbs /*tbs*/,
148178825Sdfr	hx509_name /*subject*/);
149178825Sdfr
150178825Sdfrint
151178825Sdfrhx509_ca_tbs_set_template (
152178825Sdfr	hx509_context /*context*/,
153178825Sdfr	hx509_ca_tbs /*tbs*/,
154178825Sdfr	int /*flags*/,
155178825Sdfr	hx509_cert /*cert*/);
156178825Sdfr
157178825Sdfrint
158178825Sdfrhx509_ca_tbs_subject_expand (
159178825Sdfr	hx509_context /*context*/,
160178825Sdfr	hx509_ca_tbs /*tbs*/,
161178825Sdfr	hx509_env /*env*/);
162178825Sdfr
163178825Sdfrconst struct units *
164178825Sdfrhx509_ca_tbs_template_units (void);
165178825Sdfr
166178825Sdfrint
167178825Sdfrhx509_cert_binary (
168178825Sdfr	hx509_context /*context*/,
169178825Sdfr	hx509_cert /*c*/,
170178825Sdfr	heim_octet_string */*os*/);
171178825Sdfr
172178825Sdfrint
173178825Sdfrhx509_cert_check_eku (
174178825Sdfr	hx509_context /*context*/,
175178825Sdfr	hx509_cert /*cert*/,
176178825Sdfr	const heim_oid */*eku*/,
177178825Sdfr	int /*allow_any_eku*/);
178178825Sdfr
179178825Sdfrint
180178825Sdfrhx509_cert_cmp (
181178825Sdfr	hx509_cert /*p*/,
182178825Sdfr	hx509_cert /*q*/);
183178825Sdfr
184178825Sdfrint
185178825Sdfrhx509_cert_find_subjectAltName_otherName (
186178825Sdfr	hx509_context /*context*/,
187178825Sdfr	hx509_cert /*cert*/,
188178825Sdfr	const heim_oid */*oid*/,
189178825Sdfr	hx509_octet_string_list */*list*/);
190178825Sdfr
191178825Sdfrvoid
192178825Sdfrhx509_cert_free (hx509_cert /*cert*/);
193178825Sdfr
194178825Sdfrint
195178825Sdfrhx509_cert_get_SPKI (
196178825Sdfr	hx509_context /*context*/,
197178825Sdfr	hx509_cert /*p*/,
198178825Sdfr	SubjectPublicKeyInfo */*spki*/);
199178825Sdfr
200178825Sdfrint
201178825Sdfrhx509_cert_get_SPKI_AlgorithmIdentifier (
202178825Sdfr	hx509_context /*context*/,
203178825Sdfr	hx509_cert /*p*/,
204178825Sdfr	AlgorithmIdentifier */*alg*/);
205178825Sdfr
206178825Sdfrhx509_cert_attribute
207178825Sdfrhx509_cert_get_attribute (
208178825Sdfr	hx509_cert /*cert*/,
209178825Sdfr	const heim_oid */*oid*/);
210178825Sdfr
211178825Sdfrint
212178825Sdfrhx509_cert_get_base_subject (
213178825Sdfr	hx509_context /*context*/,
214178825Sdfr	hx509_cert /*c*/,
215178825Sdfr	hx509_name */*name*/);
216178825Sdfr
217178825Sdfrconst char *
218178825Sdfrhx509_cert_get_friendly_name (hx509_cert /*cert*/);
219178825Sdfr
220178825Sdfrint
221178825Sdfrhx509_cert_get_issuer (
222178825Sdfr	hx509_cert /*p*/,
223178825Sdfr	hx509_name */*name*/);
224178825Sdfr
225178825Sdfrtime_t
226178825Sdfrhx509_cert_get_notAfter (hx509_cert /*p*/);
227178825Sdfr
228178825Sdfrtime_t
229178825Sdfrhx509_cert_get_notBefore (hx509_cert /*p*/);
230178825Sdfr
231178825Sdfrint
232178825Sdfrhx509_cert_get_serialnumber (
233178825Sdfr	hx509_cert /*p*/,
234178825Sdfr	heim_integer */*i*/);
235178825Sdfr
236178825Sdfrint
237178825Sdfrhx509_cert_get_subject (
238178825Sdfr	hx509_cert /*p*/,
239178825Sdfr	hx509_name */*name*/);
240178825Sdfr
241178825Sdfrint
242178825Sdfrhx509_cert_have_private_key (hx509_cert /*p*/);
243178825Sdfr
244178825Sdfrint
245178825Sdfrhx509_cert_init (
246178825Sdfr	hx509_context /*context*/,
247178825Sdfr	const Certificate */*c*/,
248178825Sdfr	hx509_cert */*cert*/);
249178825Sdfr
250178825Sdfrint
251178825Sdfrhx509_cert_init_data (
252178825Sdfr	hx509_context /*context*/,
253178825Sdfr	const void */*ptr*/,
254178825Sdfr	size_t /*len*/,
255178825Sdfr	hx509_cert */*cert*/);
256178825Sdfr
257178825Sdfrint
258178825Sdfrhx509_cert_keyusage_print (
259178825Sdfr	hx509_context /*context*/,
260178825Sdfr	hx509_cert /*c*/,
261178825Sdfr	char **/*s*/);
262178825Sdfr
263178825Sdfrhx509_cert
264178825Sdfrhx509_cert_ref (hx509_cert /*cert*/);
265178825Sdfr
266178825Sdfrint
267178825Sdfrhx509_cert_set_friendly_name (
268178825Sdfr	hx509_cert /*cert*/,
269178825Sdfr	const char */*name*/);
270178825Sdfr
271178825Sdfrint
272178825Sdfrhx509_certs_add (
273178825Sdfr	hx509_context /*context*/,
274178825Sdfr	hx509_certs /*certs*/,
275178825Sdfr	hx509_cert /*cert*/);
276178825Sdfr
277178825Sdfrint
278178825Sdfrhx509_certs_append (
279178825Sdfr	hx509_context /*context*/,
280178825Sdfr	hx509_certs /*to*/,
281178825Sdfr	hx509_lock /*lock*/,
282178825Sdfr	const char */*name*/);
283178825Sdfr
284178825Sdfrint
285178825Sdfrhx509_certs_end_seq (
286178825Sdfr	hx509_context /*context*/,
287178825Sdfr	hx509_certs /*certs*/,
288178825Sdfr	hx509_cursor /*cursor*/);
289178825Sdfr
290178825Sdfrint
291178825Sdfrhx509_certs_find (
292178825Sdfr	hx509_context /*context*/,
293178825Sdfr	hx509_certs /*certs*/,
294178825Sdfr	const hx509_query */*q*/,
295178825Sdfr	hx509_cert */*r*/);
296178825Sdfr
297178825Sdfrvoid
298178825Sdfrhx509_certs_free (hx509_certs */*certs*/);
299178825Sdfr
300178825Sdfrint
301178825Sdfrhx509_certs_info (
302178825Sdfr	hx509_context /*context*/,
303178825Sdfr	hx509_certs /*certs*/,
304178825Sdfr	int (*/*func*/)(void *, const char *),
305178825Sdfr	void */*ctx*/);
306178825Sdfr
307178825Sdfrint
308178825Sdfrhx509_certs_init (
309178825Sdfr	hx509_context /*context*/,
310178825Sdfr	const char */*name*/,
311178825Sdfr	int /*flags*/,
312178825Sdfr	hx509_lock /*lock*/,
313178825Sdfr	hx509_certs */*certs*/);
314178825Sdfr
315178825Sdfrint
316178825Sdfrhx509_certs_iter (
317178825Sdfr	hx509_context /*context*/,
318178825Sdfr	hx509_certs /*certs*/,
319178825Sdfr	int (*/*func*/)(hx509_context, void *, hx509_cert),
320178825Sdfr	void */*ctx*/);
321178825Sdfr
322178825Sdfrint
323178825Sdfrhx509_certs_merge (
324178825Sdfr	hx509_context /*context*/,
325178825Sdfr	hx509_certs /*to*/,
326178825Sdfr	hx509_certs /*from*/);
327178825Sdfr
328178825Sdfrint
329178825Sdfrhx509_certs_next_cert (
330178825Sdfr	hx509_context /*context*/,
331178825Sdfr	hx509_certs /*certs*/,
332178825Sdfr	hx509_cursor /*cursor*/,
333178825Sdfr	hx509_cert */*cert*/);
334178825Sdfr
335178825Sdfrint
336178825Sdfrhx509_certs_start_seq (
337178825Sdfr	hx509_context /*context*/,
338178825Sdfr	hx509_certs /*certs*/,
339178825Sdfr	hx509_cursor */*cursor*/);
340178825Sdfr
341178825Sdfrint
342178825Sdfrhx509_certs_store (
343178825Sdfr	hx509_context /*context*/,
344178825Sdfr	hx509_certs /*certs*/,
345178825Sdfr	int /*flags*/,
346178825Sdfr	hx509_lock /*lock*/);
347178825Sdfr
348178825Sdfrint
349178825Sdfrhx509_ci_print_names (
350178825Sdfr	hx509_context /*context*/,
351178825Sdfr	void */*ctx*/,
352178825Sdfr	hx509_cert /*c*/);
353178825Sdfr
354178825Sdfrvoid
355178825Sdfrhx509_clear_error_string (hx509_context /*context*/);
356178825Sdfr
357178825Sdfrint
358178825Sdfrhx509_cms_create_signed_1 (
359178825Sdfr	hx509_context /*context*/,
360178825Sdfr	int /*flags*/,
361178825Sdfr	const heim_oid */*eContentType*/,
362178825Sdfr	const void */*data*/,
363178825Sdfr	size_t /*length*/,
364178825Sdfr	const AlgorithmIdentifier */*digest_alg*/,
365178825Sdfr	hx509_cert /*cert*/,
366178825Sdfr	hx509_peer_info /*peer*/,
367178825Sdfr	hx509_certs /*anchors*/,
368178825Sdfr	hx509_certs /*pool*/,
369178825Sdfr	heim_octet_string */*signed_data*/);
370178825Sdfr
371178825Sdfrint
372178825Sdfrhx509_cms_decrypt_encrypted (
373178825Sdfr	hx509_context /*context*/,
374178825Sdfr	hx509_lock /*lock*/,
375178825Sdfr	const void */*data*/,
376178825Sdfr	size_t /*length*/,
377178825Sdfr	heim_oid */*contentType*/,
378178825Sdfr	heim_octet_string */*content*/);
379178825Sdfr
380178825Sdfrint
381178825Sdfrhx509_cms_envelope_1 (
382178825Sdfr	hx509_context /*context*/,
383178825Sdfr	int /*flags*/,
384178825Sdfr	hx509_cert /*cert*/,
385178825Sdfr	const void */*data*/,
386178825Sdfr	size_t /*length*/,
387178825Sdfr	const heim_oid */*encryption_type*/,
388178825Sdfr	const heim_oid */*contentType*/,
389178825Sdfr	heim_octet_string */*content*/);
390178825Sdfr
391178825Sdfrint
392178825Sdfrhx509_cms_unenvelope (
393178825Sdfr	hx509_context /*context*/,
394178825Sdfr	hx509_certs /*certs*/,
395178825Sdfr	int /*flags*/,
396178825Sdfr	const void */*data*/,
397178825Sdfr	size_t /*length*/,
398178825Sdfr	const heim_octet_string */*encryptedContent*/,
399178825Sdfr	heim_oid */*contentType*/,
400178825Sdfr	heim_octet_string */*content*/);
401178825Sdfr
402178825Sdfrint
403178825Sdfrhx509_cms_unwrap_ContentInfo (
404178825Sdfr	const heim_octet_string */*in*/,
405178825Sdfr	heim_oid */*oid*/,
406178825Sdfr	heim_octet_string */*out*/,
407178825Sdfr	int */*have_data*/);
408178825Sdfr
409178825Sdfrint
410178825Sdfrhx509_cms_verify_signed (
411178825Sdfr	hx509_context /*context*/,
412178825Sdfr	hx509_verify_ctx /*ctx*/,
413178825Sdfr	const void */*data*/,
414178825Sdfr	size_t /*length*/,
415178825Sdfr	const heim_octet_string */*signedContent*/,
416178825Sdfr	hx509_certs /*pool*/,
417178825Sdfr	heim_oid */*contentType*/,
418178825Sdfr	heim_octet_string */*content*/,
419178825Sdfr	hx509_certs */*signer_certs*/);
420178825Sdfr
421178825Sdfrint
422178825Sdfrhx509_cms_wrap_ContentInfo (
423178825Sdfr	const heim_oid */*oid*/,
424178825Sdfr	const heim_octet_string */*buf*/,
425178825Sdfr	heim_octet_string */*res*/);
426178825Sdfr
427178825Sdfrvoid
428178825Sdfrhx509_context_free (hx509_context */*context*/);
429178825Sdfr
430178825Sdfrint
431178825Sdfrhx509_context_init (hx509_context */*context*/);
432178825Sdfr
433178825Sdfrvoid
434178825Sdfrhx509_context_set_missing_revoke (
435178825Sdfr	hx509_context /*context*/,
436178825Sdfr	int /*flag*/);
437178825Sdfr
438178825Sdfrint
439178825Sdfrhx509_crl_add_revoked_certs (
440178825Sdfr	hx509_context /*context*/,
441178825Sdfr	hx509_crl /*crl*/,
442178825Sdfr	hx509_certs /*certs*/);
443178825Sdfr
444178825Sdfrint
445178825Sdfrhx509_crl_alloc (
446178825Sdfr	hx509_context /*context*/,
447178825Sdfr	hx509_crl */*crl*/);
448178825Sdfr
449178825Sdfrvoid
450178825Sdfrhx509_crl_free (
451178825Sdfr	hx509_context /*context*/,
452178825Sdfr	hx509_crl */*crl*/);
453178825Sdfr
454178825Sdfrint
455178825Sdfrhx509_crl_lifetime (
456178825Sdfr	hx509_context /*context*/,
457178825Sdfr	hx509_crl /*crl*/,
458178825Sdfr	int /*delta*/);
459178825Sdfr
460178825Sdfrint
461178825Sdfrhx509_crl_sign (
462178825Sdfr	hx509_context /*context*/,
463178825Sdfr	hx509_cert /*signer*/,
464178825Sdfr	hx509_crl /*crl*/,
465178825Sdfr	heim_octet_string */*os*/);
466178825Sdfr
467178825Sdfrconst AlgorithmIdentifier *
468178825Sdfrhx509_crypto_aes128_cbc (void);
469178825Sdfr
470178825Sdfrconst AlgorithmIdentifier *
471178825Sdfrhx509_crypto_aes256_cbc (void);
472178825Sdfr
473178825Sdfrint
474178825Sdfrhx509_crypto_available (
475178825Sdfr	hx509_context /*context*/,
476178825Sdfr	int /*type*/,
477178825Sdfr	hx509_cert /*source*/,
478178825Sdfr	AlgorithmIdentifier **/*val*/,
479178825Sdfr	unsigned int */*plen*/);
480178825Sdfr
481178825Sdfrint
482178825Sdfrhx509_crypto_decrypt (
483178825Sdfr	hx509_crypto /*crypto*/,
484178825Sdfr	const void */*data*/,
485178825Sdfr	const size_t /*length*/,
486178825Sdfr	heim_octet_string */*ivec*/,
487178825Sdfr	heim_octet_string */*clear*/);
488178825Sdfr
489178825Sdfrconst AlgorithmIdentifier *
490178825Sdfrhx509_crypto_des_rsdi_ede3_cbc (void);
491178825Sdfr
492178825Sdfrvoid
493178825Sdfrhx509_crypto_destroy (hx509_crypto /*crypto*/);
494178825Sdfr
495178825Sdfrint
496178825Sdfrhx509_crypto_encrypt (
497178825Sdfr	hx509_crypto /*crypto*/,
498178825Sdfr	const void */*data*/,
499178825Sdfr	const size_t /*length*/,
500178825Sdfr	const heim_octet_string */*ivec*/,
501178825Sdfr	heim_octet_string **/*ciphertext*/);
502178825Sdfr
503178825Sdfrconst heim_oid *
504178825Sdfrhx509_crypto_enctype_by_name (const char */*name*/);
505178825Sdfr
506178825Sdfrvoid
507178825Sdfrhx509_crypto_free_algs (
508178825Sdfr	AlgorithmIdentifier */*val*/,
509178825Sdfr	unsigned int /*len*/);
510178825Sdfr
511178825Sdfrint
512178825Sdfrhx509_crypto_get_params (
513178825Sdfr	hx509_context /*context*/,
514178825Sdfr	hx509_crypto /*crypto*/,
515178825Sdfr	const heim_octet_string */*ivec*/,
516178825Sdfr	heim_octet_string */*param*/);
517178825Sdfr
518178825Sdfrint
519178825Sdfrhx509_crypto_init (
520178825Sdfr	hx509_context /*context*/,
521178825Sdfr	const char */*provider*/,
522178825Sdfr	const heim_oid */*enctype*/,
523178825Sdfr	hx509_crypto */*crypto*/);
524178825Sdfr
525178825Sdfrconst char *
526178825Sdfrhx509_crypto_provider (hx509_crypto /*crypto*/);
527178825Sdfr
528178825Sdfrint
529178825Sdfrhx509_crypto_random_iv (
530178825Sdfr	hx509_crypto /*crypto*/,
531178825Sdfr	heim_octet_string */*ivec*/);
532178825Sdfr
533178825Sdfrint
534178825Sdfrhx509_crypto_select (
535178825Sdfr	const hx509_context /*context*/,
536178825Sdfr	int /*type*/,
537178825Sdfr	const hx509_private_key /*source*/,
538178825Sdfr	hx509_peer_info /*peer*/,
539178825Sdfr	AlgorithmIdentifier */*selected*/);
540178825Sdfr
541178825Sdfrint
542178825Sdfrhx509_crypto_set_key_data (
543178825Sdfr	hx509_crypto /*crypto*/,
544178825Sdfr	const void */*data*/,
545178825Sdfr	size_t /*length*/);
546178825Sdfr
547178825Sdfrint
548178825Sdfrhx509_crypto_set_key_name (
549178825Sdfr	hx509_crypto /*crypto*/,
550178825Sdfr	const char */*name*/);
551178825Sdfr
552178825Sdfrint
553178825Sdfrhx509_crypto_set_params (
554178825Sdfr	hx509_context /*context*/,
555178825Sdfr	hx509_crypto /*crypto*/,
556178825Sdfr	const heim_octet_string */*param*/,
557178825Sdfr	heim_octet_string */*ivec*/);
558178825Sdfr
559178825Sdfrint
560178825Sdfrhx509_crypto_set_random_key (
561178825Sdfr	hx509_crypto /*crypto*/,
562178825Sdfr	heim_octet_string */*key*/);
563178825Sdfr
564178825Sdfrint
565178825Sdfrhx509_env_add (
566178825Sdfr	hx509_context /*context*/,
567178825Sdfr	hx509_env /*env*/,
568178825Sdfr	const char */*key*/,
569178825Sdfr	const char */*value*/);
570178825Sdfr
571178825Sdfrvoid
572178825Sdfrhx509_env_free (hx509_env */*env*/);
573178825Sdfr
574178825Sdfrint
575178825Sdfrhx509_env_init (
576178825Sdfr	hx509_context /*context*/,
577178825Sdfr	hx509_env */*env*/);
578178825Sdfr
579178825Sdfrconst char *
580178825Sdfrhx509_env_lfind (
581178825Sdfr	hx509_context /*context*/,
582178825Sdfr	hx509_env /*env*/,
583178825Sdfr	const char */*key*/,
584178825Sdfr	size_t /*len*/);
585178825Sdfr
586178825Sdfrvoid
587178825Sdfrhx509_err (
588178825Sdfr	hx509_context /*context*/,
589178825Sdfr	int /*exit_code*/,
590178825Sdfr	int /*error_code*/,
591178825Sdfr	const char */*fmt*/,
592178825Sdfr	...);
593178825Sdfr
594178825Sdfrvoid
595178825Sdfrhx509_free_error_string (char */*str*/);
596178825Sdfr
597178825Sdfrvoid
598178825Sdfrhx509_free_octet_string_list (hx509_octet_string_list */*list*/);
599178825Sdfr
600178825Sdfrint
601178825Sdfrhx509_general_name_unparse (
602178825Sdfr	GeneralName */*name*/,
603178825Sdfr	char **/*str*/);
604178825Sdfr
605178825Sdfrchar *
606178825Sdfrhx509_get_error_string (
607178825Sdfr	hx509_context /*context*/,
608178825Sdfr	int /*error_code*/);
609178825Sdfr
610178825Sdfrint
611178825Sdfrhx509_get_one_cert (
612178825Sdfr	hx509_context /*context*/,
613178825Sdfr	hx509_certs /*certs*/,
614178825Sdfr	hx509_cert */*c*/);
615178825Sdfr
616178825Sdfrint
617178825Sdfrhx509_lock_add_cert (
618178825Sdfr	hx509_context /*context*/,
619178825Sdfr	hx509_lock /*lock*/,
620178825Sdfr	hx509_cert /*cert*/);
621178825Sdfr
622178825Sdfrint
623178825Sdfrhx509_lock_add_certs (
624178825Sdfr	hx509_context /*context*/,
625178825Sdfr	hx509_lock /*lock*/,
626178825Sdfr	hx509_certs /*certs*/);
627178825Sdfr
628178825Sdfrint
629178825Sdfrhx509_lock_add_password (
630178825Sdfr	hx509_lock /*lock*/,
631178825Sdfr	const char */*password*/);
632178825Sdfr
633178825Sdfrint
634178825Sdfrhx509_lock_command_string (
635178825Sdfr	hx509_lock /*lock*/,
636178825Sdfr	const char */*string*/);
637178825Sdfr
638178825Sdfrvoid
639178825Sdfrhx509_lock_free (hx509_lock /*lock*/);
640178825Sdfr
641178825Sdfrint
642178825Sdfrhx509_lock_init (
643178825Sdfr	hx509_context /*context*/,
644178825Sdfr	hx509_lock */*lock*/);
645178825Sdfr
646178825Sdfrint
647178825Sdfrhx509_lock_prompt (
648178825Sdfr	hx509_lock /*lock*/,
649178825Sdfr	hx509_prompt */*prompt*/);
650178825Sdfr
651178825Sdfrvoid
652178825Sdfrhx509_lock_reset_certs (
653178825Sdfr	hx509_context /*context*/,
654178825Sdfr	hx509_lock /*lock*/);
655178825Sdfr
656178825Sdfrvoid
657178825Sdfrhx509_lock_reset_passwords (hx509_lock /*lock*/);
658178825Sdfr
659178825Sdfrvoid
660178825Sdfrhx509_lock_reset_promper (hx509_lock /*lock*/);
661178825Sdfr
662178825Sdfrint
663178825Sdfrhx509_lock_set_prompter (
664178825Sdfr	hx509_lock /*lock*/,
665178825Sdfr	hx509_prompter_fct /*prompt*/,
666178825Sdfr	void */*data*/);
667178825Sdfr
668178825Sdfrint
669178825Sdfrhx509_name_binary (
670178825Sdfr	const hx509_name /*name*/,
671178825Sdfr	heim_octet_string */*os*/);
672178825Sdfr
673178825Sdfrint
674178825Sdfrhx509_name_cmp (
675178825Sdfr	hx509_name /*n1*/,
676178825Sdfr	hx509_name /*n2*/);
677178825Sdfr
678178825Sdfrint
679178825Sdfrhx509_name_copy (
680178825Sdfr	hx509_context /*context*/,
681178825Sdfr	const hx509_name /*from*/,
682178825Sdfr	hx509_name */*to*/);
683178825Sdfr
684178825Sdfrint
685178825Sdfrhx509_name_expand (
686178825Sdfr	hx509_context /*context*/,
687178825Sdfr	hx509_name /*name*/,
688178825Sdfr	hx509_env /*env*/);
689178825Sdfr
690178825Sdfrvoid
691178825Sdfrhx509_name_free (hx509_name */*name*/);
692178825Sdfr
693178825Sdfrint
694178825Sdfrhx509_name_is_null_p (const hx509_name /*name*/);
695178825Sdfr
696178825Sdfrint
697178825Sdfrhx509_name_normalize (
698178825Sdfr	hx509_context /*context*/,
699178825Sdfr	hx509_name /*name*/);
700178825Sdfr
701178825Sdfrint
702178825Sdfrhx509_name_to_Name (
703178825Sdfr	const hx509_name /*from*/,
704178825Sdfr	Name */*to*/);
705178825Sdfr
706178825Sdfrint
707178825Sdfrhx509_name_to_string (
708178825Sdfr	const hx509_name /*name*/,
709178825Sdfr	char **/*str*/);
710178825Sdfr
711178825Sdfrint
712178825Sdfrhx509_ocsp_request (
713178825Sdfr	hx509_context /*context*/,
714178825Sdfr	hx509_certs /*reqcerts*/,
715178825Sdfr	hx509_certs /*pool*/,
716178825Sdfr	hx509_cert /*signer*/,
717178825Sdfr	const AlgorithmIdentifier */*digest*/,
718178825Sdfr	heim_octet_string */*request*/,
719178825Sdfr	heim_octet_string */*nonce*/);
720178825Sdfr
721178825Sdfrint
722178825Sdfrhx509_ocsp_verify (
723178825Sdfr	hx509_context /*context*/,
724178825Sdfr	time_t /*now*/,
725178825Sdfr	hx509_cert /*cert*/,
726178825Sdfr	int /*flags*/,
727178825Sdfr	const void */*data*/,
728178825Sdfr	size_t /*length*/,
729178825Sdfr	time_t */*expiration*/);
730178825Sdfr
731178825Sdfrvoid
732178825Sdfrhx509_oid_print (
733178825Sdfr	const heim_oid */*oid*/,
734178825Sdfr	hx509_vprint_func /*func*/,
735178825Sdfr	void */*ctx*/);
736178825Sdfr
737178825Sdfrint
738178825Sdfrhx509_oid_sprint (
739178825Sdfr	const heim_oid */*oid*/,
740178825Sdfr	char **/*str*/);
741178825Sdfr
742178825Sdfrint
743178825Sdfrhx509_parse_name (
744178825Sdfr	hx509_context /*context*/,
745178825Sdfr	const char */*str*/,
746178825Sdfr	hx509_name */*name*/);
747178825Sdfr
748178825Sdfrint
749178825Sdfrhx509_peer_info_alloc (
750178825Sdfr	hx509_context /*context*/,
751178825Sdfr	hx509_peer_info */*peer*/);
752178825Sdfr
753178825Sdfrvoid
754178825Sdfrhx509_peer_info_free (hx509_peer_info /*peer*/);
755178825Sdfr
756178825Sdfrint
757178825Sdfrhx509_peer_info_set_cert (
758178825Sdfr	hx509_peer_info /*peer*/,
759178825Sdfr	hx509_cert /*cert*/);
760178825Sdfr
761178825Sdfrint
762178825Sdfrhx509_peer_info_set_cms_algs (
763178825Sdfr	hx509_context /*context*/,
764178825Sdfr	hx509_peer_info /*peer*/,
765178825Sdfr	const AlgorithmIdentifier */*val*/,
766178825Sdfr	size_t /*len*/);
767178825Sdfr
768178825Sdfrint
769178825Sdfrhx509_pem_add_header (
770178825Sdfr	hx509_pem_header **/*headers*/,
771178825Sdfr	const char */*header*/,
772178825Sdfr	const char */*value*/);
773178825Sdfr
774178825Sdfrconst char *
775178825Sdfrhx509_pem_find_header (
776178825Sdfr	const hx509_pem_header */*h*/,
777178825Sdfr	const char */*header*/);
778178825Sdfr
779178825Sdfrvoid
780178825Sdfrhx509_pem_free_header (hx509_pem_header */*headers*/);
781178825Sdfr
782178825Sdfrint
783178825Sdfrhx509_pem_read (
784178825Sdfr	hx509_context /*context*/,
785178825Sdfr	FILE */*f*/,
786178825Sdfr	hx509_pem_read_func /*func*/,
787178825Sdfr	void */*ctx*/);
788178825Sdfr
789178825Sdfrint
790178825Sdfrhx509_pem_write (
791178825Sdfr	hx509_context /*context*/,
792178825Sdfr	const char */*type*/,
793178825Sdfr	hx509_pem_header */*headers*/,
794178825Sdfr	FILE */*f*/,
795178825Sdfr	const void */*data*/,
796178825Sdfr	size_t /*size*/);
797178825Sdfr
798178825Sdfrvoid
799178825Sdfrhx509_print_stdout (
800178825Sdfr	void */*ctx*/,
801178825Sdfr	const char */*fmt*/,
802178825Sdfr	va_list /*va*/);
803178825Sdfr
804178825Sdfrint
805178825Sdfrhx509_prompt_hidden (hx509_prompt_type /*type*/);
806178825Sdfr
807178825Sdfrint
808178825Sdfrhx509_query_alloc (
809178825Sdfr	hx509_context /*context*/,
810178825Sdfr	hx509_query **/*q*/);
811178825Sdfr
812178825Sdfrvoid
813178825Sdfrhx509_query_free (
814178825Sdfr	hx509_context /*context*/,
815178825Sdfr	hx509_query */*q*/);
816178825Sdfr
817178825Sdfrint
818178825Sdfrhx509_query_match_cmp_func (
819178825Sdfr	hx509_query */*q*/,
820178825Sdfr	int (*/*func*/)(void *, hx509_cert),
821178825Sdfr	void */*ctx*/);
822178825Sdfr
823178825Sdfrint
824178825Sdfrhx509_query_match_friendly_name (
825178825Sdfr	hx509_query */*q*/,
826178825Sdfr	const char */*name*/);
827178825Sdfr
828178825Sdfrint
829178825Sdfrhx509_query_match_issuer_serial (
830178825Sdfr	hx509_query */*q*/,
831178825Sdfr	const Name */*issuer*/,
832178825Sdfr	const heim_integer */*serialNumber*/);
833178825Sdfr
834178825Sdfrvoid
835178825Sdfrhx509_query_match_option (
836178825Sdfr	hx509_query */*q*/,
837178825Sdfr	hx509_query_option /*option*/);
838178825Sdfr
839178825Sdfrvoid
840178825Sdfrhx509_query_statistic_file (
841178825Sdfr	hx509_context /*context*/,
842178825Sdfr	const char */*fn*/);
843178825Sdfr
844178825Sdfrvoid
845178825Sdfrhx509_query_unparse_stats (
846178825Sdfr	hx509_context /*context*/,
847178825Sdfr	int /*printtype*/,
848178825Sdfr	FILE */*out*/);
849178825Sdfr
850178825Sdfrint
851178825Sdfrhx509_revoke_add_crl (
852178825Sdfr	hx509_context /*context*/,
853178825Sdfr	hx509_revoke_ctx /*ctx*/,
854178825Sdfr	const char */*path*/);
855178825Sdfr
856178825Sdfrint
857178825Sdfrhx509_revoke_add_ocsp (
858178825Sdfr	hx509_context /*context*/,
859178825Sdfr	hx509_revoke_ctx /*ctx*/,
860178825Sdfr	const char */*path*/);
861178825Sdfr
862178825Sdfrvoid
863178825Sdfrhx509_revoke_free (hx509_revoke_ctx */*ctx*/);
864178825Sdfr
865178825Sdfrint
866178825Sdfrhx509_revoke_init (
867178825Sdfr	hx509_context /*context*/,
868178825Sdfr	hx509_revoke_ctx */*ctx*/);
869178825Sdfr
870178825Sdfrint
871178825Sdfrhx509_revoke_ocsp_print (
872178825Sdfr	hx509_context /*context*/,
873178825Sdfr	const char */*path*/,
874178825Sdfr	FILE */*out*/);
875178825Sdfr
876178825Sdfrint
877178825Sdfrhx509_revoke_verify (
878178825Sdfr	hx509_context /*context*/,
879178825Sdfr	hx509_revoke_ctx /*ctx*/,
880178825Sdfr	hx509_certs /*certs*/,
881178825Sdfr	time_t /*now*/,
882178825Sdfr	hx509_cert /*cert*/,
883178825Sdfr	hx509_cert /*parent_cert*/);
884178825Sdfr
885178825Sdfrvoid
886178825Sdfrhx509_set_error_string (
887178825Sdfr	hx509_context /*context*/,
888178825Sdfr	int /*flags*/,
889178825Sdfr	int /*code*/,
890178825Sdfr	const char */*fmt*/,
891178825Sdfr	...);
892178825Sdfr
893178825Sdfrvoid
894178825Sdfrhx509_set_error_stringv (
895178825Sdfr	hx509_context /*context*/,
896178825Sdfr	int /*flags*/,
897178825Sdfr	int /*code*/,
898178825Sdfr	const char */*fmt*/,
899178825Sdfr	va_list /*ap*/);
900178825Sdfr
901178825Sdfrconst AlgorithmIdentifier *
902178825Sdfrhx509_signature_md2 (void);
903178825Sdfr
904178825Sdfrconst AlgorithmIdentifier *
905178825Sdfrhx509_signature_md5 (void);
906178825Sdfr
907178825Sdfrconst AlgorithmIdentifier *
908178825Sdfrhx509_signature_rsa (void);
909178825Sdfr
910178825Sdfrconst AlgorithmIdentifier *
911178825Sdfrhx509_signature_rsa_pkcs1_x509 (void);
912178825Sdfr
913178825Sdfrconst AlgorithmIdentifier *
914178825Sdfrhx509_signature_rsa_with_md2 (void);
915178825Sdfr
916178825Sdfrconst AlgorithmIdentifier *
917178825Sdfrhx509_signature_rsa_with_md5 (void);
918178825Sdfr
919178825Sdfrconst AlgorithmIdentifier *
920178825Sdfrhx509_signature_rsa_with_sha1 (void);
921178825Sdfr
922178825Sdfrconst AlgorithmIdentifier *
923178825Sdfrhx509_signature_rsa_with_sha256 (void);
924178825Sdfr
925178825Sdfrconst AlgorithmIdentifier *
926178825Sdfrhx509_signature_rsa_with_sha384 (void);
927178825Sdfr
928178825Sdfrconst AlgorithmIdentifier *
929178825Sdfrhx509_signature_rsa_with_sha512 (void);
930178825Sdfr
931178825Sdfrconst AlgorithmIdentifier *
932178825Sdfrhx509_signature_sha1 (void);
933178825Sdfr
934178825Sdfrconst AlgorithmIdentifier *
935178825Sdfrhx509_signature_sha256 (void);
936178825Sdfr
937178825Sdfrconst AlgorithmIdentifier *
938178825Sdfrhx509_signature_sha384 (void);
939178825Sdfr
940178825Sdfrconst AlgorithmIdentifier *
941178825Sdfrhx509_signature_sha512 (void);
942178825Sdfr
943178825Sdfrint
944178825Sdfrhx509_unparse_der_name (
945178825Sdfr	const void */*data*/,
946178825Sdfr	size_t /*length*/,
947178825Sdfr	char **/*str*/);
948178825Sdfr
949178825Sdfrint
950178825Sdfrhx509_validate_cert (
951178825Sdfr	hx509_context /*context*/,
952178825Sdfr	hx509_validate_ctx /*ctx*/,
953178825Sdfr	hx509_cert /*cert*/);
954178825Sdfr
955178825Sdfrvoid
956178825Sdfrhx509_validate_ctx_add_flags (
957178825Sdfr	hx509_validate_ctx /*ctx*/,
958178825Sdfr	int /*flags*/);
959178825Sdfr
960178825Sdfrvoid
961178825Sdfrhx509_validate_ctx_free (hx509_validate_ctx /*ctx*/);
962178825Sdfr
963178825Sdfrint
964178825Sdfrhx509_validate_ctx_init (
965178825Sdfr	hx509_context /*context*/,
966178825Sdfr	hx509_validate_ctx */*ctx*/);
967178825Sdfr
968178825Sdfrvoid
969178825Sdfrhx509_validate_ctx_set_print (
970178825Sdfr	hx509_validate_ctx /*ctx*/,
971178825Sdfr	hx509_vprint_func /*func*/,
972178825Sdfr	void */*c*/);
973178825Sdfr
974178825Sdfrvoid
975178825Sdfrhx509_verify_attach_anchors (
976178825Sdfr	hx509_verify_ctx /*ctx*/,
977178825Sdfr	hx509_certs /*set*/);
978178825Sdfr
979178825Sdfrvoid
980178825Sdfrhx509_verify_attach_revoke (
981178825Sdfr	hx509_verify_ctx /*ctx*/,
982178825Sdfr	hx509_revoke_ctx /*revoke_ctx*/);
983178825Sdfr
984178825Sdfrvoid
985178825Sdfrhx509_verify_ctx_f_allow_default_trustanchors (
986178825Sdfr	hx509_verify_ctx /*ctx*/,
987178825Sdfr	int /*boolean*/);
988178825Sdfr
989178825Sdfrvoid
990178825Sdfrhx509_verify_destroy_ctx (hx509_verify_ctx /*ctx*/);
991178825Sdfr
992178825Sdfrint
993178825Sdfrhx509_verify_hostname (
994178825Sdfr	hx509_context /*context*/,
995178825Sdfr	const hx509_cert /*cert*/,
996178825Sdfr	int /*flags*/,
997178825Sdfr	hx509_hostname_type /*type*/,
998178825Sdfr	const char */*hostname*/,
999178825Sdfr	const struct sockaddr */*sa*/,
1000178825Sdfr	int /*sa_size*/);
1001178825Sdfr
1002178825Sdfrint
1003178825Sdfrhx509_verify_init_ctx (
1004178825Sdfr	hx509_context /*context*/,
1005178825Sdfr	hx509_verify_ctx */*ctx*/);
1006178825Sdfr
1007178825Sdfrint
1008178825Sdfrhx509_verify_path (
1009178825Sdfr	hx509_context /*context*/,
1010178825Sdfr	hx509_verify_ctx /*ctx*/,
1011178825Sdfr	hx509_cert /*cert*/,
1012178825Sdfr	hx509_certs /*pool*/);
1013178825Sdfr
1014178825Sdfrvoid
1015178825Sdfrhx509_verify_set_max_depth (
1016178825Sdfr	hx509_verify_ctx /*ctx*/,
1017178825Sdfr	unsigned int /*max_depth*/);
1018178825Sdfr
1019178825Sdfrvoid
1020178825Sdfrhx509_verify_set_proxy_certificate (
1021178825Sdfr	hx509_verify_ctx /*ctx*/,
1022178825Sdfr	int /*boolean*/);
1023178825Sdfr
1024178825Sdfrvoid
1025178825Sdfrhx509_verify_set_strict_rfc3280_verification (
1026178825Sdfr	hx509_verify_ctx /*ctx*/,
1027178825Sdfr	int /*boolean*/);
1028178825Sdfr
1029178825Sdfrvoid
1030178825Sdfrhx509_verify_set_time (
1031178825Sdfr	hx509_verify_ctx /*ctx*/,
1032178825Sdfr	time_t /*t*/);
1033178825Sdfr
1034178825Sdfrint
1035178825Sdfrhx509_verify_signature (
1036178825Sdfr	hx509_context /*context*/,
1037178825Sdfr	const hx509_cert /*signer*/,
1038178825Sdfr	const AlgorithmIdentifier */*alg*/,
1039178825Sdfr	const heim_octet_string */*data*/,
1040178825Sdfr	const heim_octet_string */*sig*/);
1041178825Sdfr
1042178825Sdfrvoid
1043178825Sdfrhx509_xfree (void */*ptr*/);
1044178825Sdfr
1045178825Sdfr#ifdef __cplusplus
1046178825Sdfr}
1047178825Sdfr#endif
1048178825Sdfr
1049178825Sdfr#endif /* __hx509_protos_h__ */
1050