1219820Sjeff/* This is a generated file */
2219820Sjeff#ifndef __hx509_protos_h__
3219820Sjeff#define __hx509_protos_h__
4219820Sjeff
5219820Sjeff#include <stdarg.h>
6219820Sjeff
7219820Sjeff#ifdef __cplusplus
8219820Sjeffextern "C" {
9219820Sjeff#endif
10219820Sjeff
11219820Sjeff#ifndef HX509_LIB
12219820Sjeff#ifndef HX509_LIB_FUNCTION
13219820Sjeff#if defined(_WIN32)
14219820Sjeff#define HX509_LIB_FUNCTION __declspec(dllimport)
15219820Sjeff#define HX509_LIB_CALL __stdcall
16219820Sjeff#define HX509_LIB_VARIABLE __declspec(dllimport)
17219820Sjeff#else
18219820Sjeff#define HX509_LIB_FUNCTION
19219820Sjeff#define HX509_LIB_CALL
20219820Sjeff#define HX509_LIB_VARIABLE
21219820Sjeff#endif
22219820Sjeff#endif
23219820Sjeff#endif
24219820Sjeffvoid
25219820Sjeffhx509_bitstring_print (
26219820Sjeff	const heim_bit_string */*b*/,
27219820Sjeff	hx509_vprint_func /*func*/,
28219820Sjeff	void */*ctx*/);
29219820Sjeff
30219820Sjeffint
31219820Sjeffhx509_ca_sign (
32219820Sjeff	hx509_context /*context*/,
33219820Sjeff	hx509_ca_tbs /*tbs*/,
34219820Sjeff	hx509_cert /*signer*/,
35219820Sjeff	hx509_cert */*certificate*/);
36219820Sjeff
37219820Sjeffint
38219820Sjeffhx509_ca_sign_self (
39219820Sjeff	hx509_context /*context*/,
40219820Sjeff	hx509_ca_tbs /*tbs*/,
41219820Sjeff	hx509_private_key /*signer*/,
42219820Sjeff	hx509_cert */*certificate*/);
43219820Sjeff
44219820Sjeffint
45219820Sjeffhx509_ca_tbs_add_crl_dp_uri (
46219820Sjeff	hx509_context /*context*/,
47219820Sjeff	hx509_ca_tbs /*tbs*/,
48219820Sjeff	const char */*uri*/,
49219820Sjeff	hx509_name /*issuername*/);
50219820Sjeff
51219820Sjeffint
52219820Sjeffhx509_ca_tbs_add_eku (
53219820Sjeff	hx509_context /*context*/,
54219820Sjeff	hx509_ca_tbs /*tbs*/,
55219820Sjeff	const heim_oid */*oid*/);
56219820Sjeff
57219820Sjeffint
58219820Sjeffhx509_ca_tbs_add_san_hostname (
59219820Sjeff	hx509_context /*context*/,
60219820Sjeff	hx509_ca_tbs /*tbs*/,
61219820Sjeff	const char */*dnsname*/);
62219820Sjeff
63219820Sjeffint
64219820Sjeffhx509_ca_tbs_add_san_jid (
65219820Sjeff	hx509_context /*context*/,
66219820Sjeff	hx509_ca_tbs /*tbs*/,
67219820Sjeff	const char */*jid*/);
68219820Sjeff
69219820Sjeffint
70219820Sjeffhx509_ca_tbs_add_san_ms_upn (
71219820Sjeff	hx509_context /*context*/,
72219820Sjeff	hx509_ca_tbs /*tbs*/,
73219820Sjeff	const char */*principal*/);
74219820Sjeff
75219820Sjeffint
76219820Sjeffhx509_ca_tbs_add_san_otherName (
77219820Sjeff	hx509_context /*context*/,
78219820Sjeff	hx509_ca_tbs /*tbs*/,
79219820Sjeff	const heim_oid */*oid*/,
80219820Sjeff	const heim_octet_string */*os*/);
81219820Sjeff
82219820Sjeffint
83219820Sjeffhx509_ca_tbs_add_san_pkinit (
84219820Sjeff	hx509_context /*context*/,
85219820Sjeff	hx509_ca_tbs /*tbs*/,
86219820Sjeff	const char */*principal*/);
87219820Sjeff
88219820Sjeffint
89219820Sjeffhx509_ca_tbs_add_san_rfc822name (
90219820Sjeff	hx509_context /*context*/,
91219820Sjeff	hx509_ca_tbs /*tbs*/,
92219820Sjeff	const char */*rfc822Name*/);
93219820Sjeff
94219820Sjeffvoid
95219820Sjeffhx509_ca_tbs_free (hx509_ca_tbs */*tbs*/);
96219820Sjeff
97219820Sjeffint
98219820Sjeffhx509_ca_tbs_init (
99219820Sjeff	hx509_context /*context*/,
100219820Sjeff	hx509_ca_tbs */*tbs*/);
101219820Sjeff
102219820Sjeffint
103219820Sjeffhx509_ca_tbs_set_ca (
104219820Sjeff	hx509_context /*context*/,
105219820Sjeff	hx509_ca_tbs /*tbs*/,
106219820Sjeff	int /*pathLenConstraint*/);
107219820Sjeff
108219820Sjeffint
109219820Sjeffhx509_ca_tbs_set_domaincontroller (
110219820Sjeff	hx509_context /*context*/,
111219820Sjeff	hx509_ca_tbs /*tbs*/);
112219820Sjeff
113219820Sjeffint
114219820Sjeffhx509_ca_tbs_set_notAfter (
115219820Sjeff	hx509_context /*context*/,
116219820Sjeff	hx509_ca_tbs /*tbs*/,
117219820Sjeff	time_t /*t*/);
118219820Sjeff
119219820Sjeffint
120219820Sjeffhx509_ca_tbs_set_notAfter_lifetime (
121219820Sjeff	hx509_context /*context*/,
122219820Sjeff	hx509_ca_tbs /*tbs*/,
123219820Sjeff	time_t /*delta*/);
124219820Sjeff
125219820Sjeffint
126219820Sjeffhx509_ca_tbs_set_notBefore (
127219820Sjeff	hx509_context /*context*/,
128219820Sjeff	hx509_ca_tbs /*tbs*/,
129219820Sjeff	time_t /*t*/);
130219820Sjeff
131219820Sjeffint
132219820Sjeffhx509_ca_tbs_set_proxy (
133219820Sjeff	hx509_context /*context*/,
134219820Sjeff	hx509_ca_tbs /*tbs*/,
135219820Sjeff	int /*pathLenConstraint*/);
136219820Sjeff
137219820Sjeffint
138219820Sjeffhx509_ca_tbs_set_serialnumber (
139219820Sjeff	hx509_context /*context*/,
140219820Sjeff	hx509_ca_tbs /*tbs*/,
141219820Sjeff	const heim_integer */*serialNumber*/);
142219820Sjeff
143219820Sjeffint
144219820Sjeffhx509_ca_tbs_set_spki (
145219820Sjeff	hx509_context /*context*/,
146219820Sjeff	hx509_ca_tbs /*tbs*/,
147219820Sjeff	const SubjectPublicKeyInfo */*spki*/);
148219820Sjeff
149219820Sjeffint
150219820Sjeffhx509_ca_tbs_set_subject (
151219820Sjeff	hx509_context /*context*/,
152219820Sjeff	hx509_ca_tbs /*tbs*/,
153219820Sjeff	hx509_name /*subject*/);
154219820Sjeff
155219820Sjeffint
156219820Sjeffhx509_ca_tbs_set_template (
157219820Sjeff	hx509_context /*context*/,
158219820Sjeff	hx509_ca_tbs /*tbs*/,
159219820Sjeff	int /*flags*/,
160219820Sjeff	hx509_cert /*cert*/);
161219820Sjeff
162219820Sjeffint
163219820Sjeffhx509_ca_tbs_set_unique (
164219820Sjeff	hx509_context /*context*/,
165219820Sjeff	hx509_ca_tbs /*tbs*/,
166219820Sjeff	const heim_bit_string */*subjectUniqueID*/,
167219820Sjeff	const heim_bit_string */*issuerUniqueID*/);
168219820Sjeff
169219820Sjeffint
170219820Sjeffhx509_ca_tbs_subject_expand (
171219820Sjeff	hx509_context /*context*/,
172219820Sjeff	hx509_ca_tbs /*tbs*/,
173219820Sjeff	hx509_env /*env*/);
174219820Sjeff
175219820Sjeffconst struct units *
176219820Sjeffhx509_ca_tbs_template_units (void);
177219820Sjeff
178219820Sjeffint
179219820Sjeffhx509_cert_binary (
180219820Sjeff	hx509_context /*context*/,
181219820Sjeff	hx509_cert /*c*/,
182219820Sjeff	heim_octet_string */*os*/);
183219820Sjeff
184219820Sjeffint
185219820Sjeffhx509_cert_check_eku (
186219820Sjeff	hx509_context /*context*/,
187219820Sjeff	hx509_cert /*cert*/,
188219820Sjeff	const heim_oid */*eku*/,
189219820Sjeff	int /*allow_any_eku*/);
190219820Sjeff
191219820Sjeffint
192219820Sjeffhx509_cert_cmp (
193219820Sjeff	hx509_cert /*p*/,
194219820Sjeff	hx509_cert /*q*/);
195219820Sjeff
196219820Sjeffint
197219820Sjeffhx509_cert_find_subjectAltName_otherName (
198219820Sjeff	hx509_context /*context*/,
199219820Sjeff	hx509_cert /*cert*/,
200219820Sjeff	const heim_oid */*oid*/,
201219820Sjeff	hx509_octet_string_list */*list*/);
202219820Sjeff
203219820Sjeffvoid
204219820Sjeffhx509_cert_free (hx509_cert /*cert*/);
205219820Sjeff
206219820Sjeffint
207219820Sjeffhx509_cert_get_SPKI (
208219820Sjeff	hx509_context /*context*/,
209219820Sjeff	hx509_cert /*p*/,
210219820Sjeff	SubjectPublicKeyInfo */*spki*/);
211219820Sjeff
212219820Sjeffint
213219820Sjeffhx509_cert_get_SPKI_AlgorithmIdentifier (
214219820Sjeff	hx509_context /*context*/,
215219820Sjeff	hx509_cert /*p*/,
216219820Sjeff	AlgorithmIdentifier */*alg*/);
217219820Sjeff
218219820Sjeffhx509_cert_attribute
219219820Sjeffhx509_cert_get_attribute (
220219820Sjeff	hx509_cert /*cert*/,
221219820Sjeff	const heim_oid */*oid*/);
222219820Sjeff
223219820Sjeffint
224219820Sjeffhx509_cert_get_base_subject (
225219820Sjeff	hx509_context /*context*/,
226219820Sjeff	hx509_cert /*c*/,
227219820Sjeff	hx509_name */*name*/);
228219820Sjeff
229219820Sjeffconst char *
230219820Sjeffhx509_cert_get_friendly_name (hx509_cert /*cert*/);
231219820Sjeff
232219820Sjeffint
233219820Sjeffhx509_cert_get_issuer (
234219820Sjeff	hx509_cert /*p*/,
235219820Sjeff	hx509_name */*name*/);
236219820Sjeff
237219820Sjeffint
238219820Sjeffhx509_cert_get_issuer_unique_id (
239219820Sjeff	hx509_context /*context*/,
240219820Sjeff	hx509_cert /*p*/,
241219820Sjeff	heim_bit_string */*issuer*/);
242219820Sjeff
243219820Sjefftime_t
244219820Sjeffhx509_cert_get_notAfter (hx509_cert /*p*/);
245219820Sjeff
246219820Sjefftime_t
247219820Sjeffhx509_cert_get_notBefore (hx509_cert /*p*/);
248219820Sjeff
249219820Sjeffint
250219820Sjeffhx509_cert_get_serialnumber (
251219820Sjeff	hx509_cert /*p*/,
252219820Sjeff	heim_integer */*i*/);
253219820Sjeff
254219820Sjeffint
255219820Sjeffhx509_cert_get_subject (
256219820Sjeff	hx509_cert /*p*/,
257219820Sjeff	hx509_name */*name*/);
258219820Sjeff
259219820Sjeffint
260219820Sjeffhx509_cert_get_subject_unique_id (
261219820Sjeff	hx509_context /*context*/,
262219820Sjeff	hx509_cert /*p*/,
263219820Sjeff	heim_bit_string */*subject*/);
264219820Sjeff
265219820Sjeffint
266219820Sjeffhx509_cert_have_private_key (hx509_cert /*p*/);
267219820Sjeff
268219820Sjeffint
269219820Sjeffhx509_cert_init (
270219820Sjeff	hx509_context /*context*/,
271219820Sjeff	const Certificate */*c*/,
272219820Sjeff	hx509_cert */*cert*/);
273219820Sjeff
274219820Sjeffint
275219820Sjeffhx509_cert_init_data (
276219820Sjeff	hx509_context /*context*/,
277219820Sjeff	const void */*ptr*/,
278219820Sjeff	size_t /*len*/,
279219820Sjeff	hx509_cert */*cert*/);
280219820Sjeff
281219820Sjeffint
282219820Sjeffhx509_cert_keyusage_print (
283219820Sjeff	hx509_context /*context*/,
284219820Sjeff	hx509_cert /*c*/,
285219820Sjeff	char **/*s*/);
286219820Sjeff
287219820Sjeffint
288219820Sjeffhx509_cert_public_encrypt (
289219820Sjeff	hx509_context /*context*/,
290219820Sjeff	const heim_octet_string */*cleartext*/,
291219820Sjeff	const hx509_cert /*p*/,
292219820Sjeff	heim_oid */*encryption_oid*/,
293219820Sjeff	heim_octet_string */*ciphertext*/);
294219820Sjeff
295219820Sjeffhx509_cert
296219820Sjeffhx509_cert_ref (hx509_cert /*cert*/);
297219820Sjeff
298219820Sjeffint
299219820Sjeffhx509_cert_set_friendly_name (
300219820Sjeff	hx509_cert /*cert*/,
301219820Sjeff	const char */*name*/);
302219820Sjeff
303219820Sjeffint
304219820Sjeffhx509_certs_add (
305219820Sjeff	hx509_context /*context*/,
306219820Sjeff	hx509_certs /*certs*/,
307219820Sjeff	hx509_cert /*cert*/);
308219820Sjeff
309219820Sjeffint
310219820Sjeffhx509_certs_append (
311219820Sjeff	hx509_context /*context*/,
312219820Sjeff	hx509_certs /*to*/,
313219820Sjeff	hx509_lock /*lock*/,
314219820Sjeff	const char */*name*/);
315219820Sjeff
316219820Sjeffint
317219820Sjeffhx509_certs_end_seq (
318219820Sjeff	hx509_context /*context*/,
319219820Sjeff	hx509_certs /*certs*/,
320219820Sjeff	hx509_cursor /*cursor*/);
321219820Sjeff
322219820Sjeffint
323219820Sjeffhx509_certs_filter (
324219820Sjeff	hx509_context /*context*/,
325219820Sjeff	hx509_certs /*certs*/,
326219820Sjeff	const hx509_query */*q*/,
327219820Sjeff	hx509_certs */*result*/);
328219820Sjeff
329219820Sjeffint
330219820Sjeffhx509_certs_find (
331219820Sjeff	hx509_context /*context*/,
332219820Sjeff	hx509_certs /*certs*/,
333219820Sjeff	const hx509_query */*q*/,
334219820Sjeff	hx509_cert */*r*/);
335219820Sjeff
336219820Sjeffvoid
337219820Sjeffhx509_certs_free (hx509_certs */*certs*/);
338219820Sjeff
339219820Sjeffint
340219820Sjeffhx509_certs_info (
341219820Sjeff	hx509_context /*context*/,
342219820Sjeff	hx509_certs /*certs*/,
343219820Sjeff	int (*/*func*/)(void *, const char *),
344219820Sjeff	void */*ctx*/);
345219820Sjeff
346219820Sjeffint
347219820Sjeffhx509_certs_init (
348219820Sjeff	hx509_context /*context*/,
349219820Sjeff	const char */*name*/,
350219820Sjeff	int /*flags*/,
351219820Sjeff	hx509_lock /*lock*/,
352219820Sjeff	hx509_certs */*certs*/);
353219820Sjeff
354219820Sjeff#ifdef __BLOCKS__
355219820Sjeffint
356219820Sjeffhx509_certs_iter (
357219820Sjeff	hx509_context /*context*/,
358219820Sjeff	hx509_certs /*certs*/,
359219820Sjeff	int (^func)(hx509_cert));
360219820Sjeff#endif /* __BLOCKS__ */
361219820Sjeff
362219820Sjeffint
363219820Sjeffhx509_certs_iter_f (
364219820Sjeff	hx509_context /*context*/,
365219820Sjeff	hx509_certs /*certs*/,
366219820Sjeff	int (*/*func*/)(hx509_context, void *, hx509_cert),
367219820Sjeff	void */*ctx*/);
368219820Sjeff
369219820Sjeffint
370219820Sjeffhx509_certs_merge (
371219820Sjeff	hx509_context /*context*/,
372219820Sjeff	hx509_certs /*to*/,
373219820Sjeff	hx509_certs /*from*/);
374219820Sjeff
375219820Sjeffint
376219820Sjeffhx509_certs_next_cert (
377219820Sjeff	hx509_context /*context*/,
378219820Sjeff	hx509_certs /*certs*/,
379219820Sjeff	hx509_cursor /*cursor*/,
380219820Sjeff	hx509_cert */*cert*/);
381219820Sjeff
382219820Sjeffhx509_certs
383219820Sjeffhx509_certs_ref (hx509_certs /*certs*/);
384219820Sjeff
385219820Sjeffint
386219820Sjeffhx509_certs_start_seq (
387219820Sjeff	hx509_context /*context*/,
388219820Sjeff	hx509_certs /*certs*/,
389219820Sjeff	hx509_cursor */*cursor*/);
390219820Sjeff
391219820Sjeffint
392219820Sjeffhx509_certs_store (
393219820Sjeff	hx509_context /*context*/,
394219820Sjeff	hx509_certs /*certs*/,
395219820Sjeff	int /*flags*/,
396219820Sjeff	hx509_lock /*lock*/);
397219820Sjeff
398219820Sjeffint
399219820Sjeffhx509_ci_print_names (
400219820Sjeff	hx509_context /*context*/,
401219820Sjeff	void */*ctx*/,
402219820Sjeff	hx509_cert /*c*/);
403219820Sjeff
404219820Sjeffvoid
405219820Sjeffhx509_clear_error_string (hx509_context /*context*/);
406219820Sjeff
407219820Sjeffint
408219820Sjeffhx509_cms_create_signed (
409219820Sjeff	hx509_context /*context*/,
410219820Sjeff	int /*flags*/,
411219820Sjeff	const heim_oid */*eContentType*/,
412219820Sjeff	const void */*data*/,
413219820Sjeff	size_t /*length*/,
414219820Sjeff	const AlgorithmIdentifier */*digest_alg*/,
415219820Sjeff	hx509_certs /*certs*/,
416219820Sjeff	hx509_peer_info /*peer*/,
417219820Sjeff	hx509_certs /*anchors*/,
418219820Sjeff	hx509_certs /*pool*/,
419219820Sjeff	heim_octet_string */*signed_data*/);
420219820Sjeff
421219820Sjeffint
422219820Sjeffhx509_cms_create_signed_1 (
423219820Sjeff	hx509_context /*context*/,
424219820Sjeff	int /*flags*/,
425219820Sjeff	const heim_oid */*eContentType*/,
426219820Sjeff	const void */*data*/,
427219820Sjeff	size_t /*length*/,
428219820Sjeff	const AlgorithmIdentifier */*digest_alg*/,
429219820Sjeff	hx509_cert /*cert*/,
430219820Sjeff	hx509_peer_info /*peer*/,
431219820Sjeff	hx509_certs /*anchors*/,
432219820Sjeff	hx509_certs /*pool*/,
433219820Sjeff	heim_octet_string */*signed_data*/);
434219820Sjeff
435219820Sjeffint
436219820Sjeffhx509_cms_decrypt_encrypted (
437219820Sjeff	hx509_context /*context*/,
438219820Sjeff	hx509_lock /*lock*/,
439219820Sjeff	const void */*data*/,
440219820Sjeff	size_t /*length*/,
441219820Sjeff	heim_oid */*contentType*/,
442219820Sjeff	heim_octet_string */*content*/);
443219820Sjeff
444219820Sjeffint
445219820Sjeffhx509_cms_envelope_1 (
446219820Sjeff	hx509_context /*context*/,
447219820Sjeff	int /*flags*/,
448219820Sjeff	hx509_cert /*cert*/,
449219820Sjeff	const void */*data*/,
450219820Sjeff	size_t /*length*/,
451219820Sjeff	const heim_oid */*encryption_type*/,
452219820Sjeff	const heim_oid */*contentType*/,
453219820Sjeff	heim_octet_string */*content*/);
454219820Sjeff
455219820Sjeffint
456219820Sjeffhx509_cms_unenvelope (
457219820Sjeff	hx509_context /*context*/,
458219820Sjeff	hx509_certs /*certs*/,
459219820Sjeff	int /*flags*/,
460219820Sjeff	const void */*data*/,
461219820Sjeff	size_t /*length*/,
462219820Sjeff	const heim_octet_string */*encryptedContent*/,
463219820Sjeff	time_t /*time_now*/,
464219820Sjeff	heim_oid */*contentType*/,
465219820Sjeff	heim_octet_string */*content*/);
466219820Sjeff
467219820Sjeffint
468219820Sjeffhx509_cms_unwrap_ContentInfo (
469219820Sjeff	const heim_octet_string */*in*/,
470219820Sjeff	heim_oid */*oid*/,
471219820Sjeff	heim_octet_string */*out*/,
472219820Sjeff	int */*have_data*/);
473219820Sjeff
474219820Sjeffint
475219820Sjeffhx509_cms_verify_signed (
476219820Sjeff	hx509_context /*context*/,
477219820Sjeff	hx509_verify_ctx /*ctx*/,
478219820Sjeff	unsigned int /*flags*/,
479219820Sjeff	const void */*data*/,
480219820Sjeff	size_t /*length*/,
481219820Sjeff	const heim_octet_string */*signedContent*/,
482219820Sjeff	hx509_certs /*pool*/,
483219820Sjeff	heim_oid */*contentType*/,
484219820Sjeff	heim_octet_string */*content*/,
485219820Sjeff	hx509_certs */*signer_certs*/);
486219820Sjeff
487219820Sjeffint
488219820Sjeffhx509_cms_wrap_ContentInfo (
489219820Sjeff	const heim_oid */*oid*/,
490219820Sjeff	const heim_octet_string */*buf*/,
491219820Sjeff	heim_octet_string */*res*/);
492219820Sjeff
493219820Sjeffvoid
494219820Sjeffhx509_context_free (hx509_context */*context*/);
495219820Sjeff
496219820Sjeffint
497219820Sjeffhx509_context_init (hx509_context */*context*/);
498219820Sjeff
499219820Sjeffvoid
500219820Sjeffhx509_context_set_missing_revoke (
501219820Sjeff	hx509_context /*context*/,
502219820Sjeff	int /*flag*/);
503219820Sjeff
504219820Sjeffint
505219820Sjeffhx509_crl_add_revoked_certs (
506219820Sjeff	hx509_context /*context*/,
507219820Sjeff	hx509_crl /*crl*/,
508219820Sjeff	hx509_certs /*certs*/);
509219820Sjeff
510219820Sjeffint
511219820Sjeffhx509_crl_alloc (
512219820Sjeff	hx509_context /*context*/,
513219820Sjeff	hx509_crl */*crl*/);
514219820Sjeff
515219820Sjeffvoid
516219820Sjeffhx509_crl_free (
517219820Sjeff	hx509_context /*context*/,
518219820Sjeff	hx509_crl */*crl*/);
519219820Sjeff
520219820Sjeffint
521219820Sjeffhx509_crl_lifetime (
522219820Sjeff	hx509_context /*context*/,
523219820Sjeff	hx509_crl /*crl*/,
524219820Sjeff	int /*delta*/);
525219820Sjeff
526219820Sjeffint
527219820Sjeffhx509_crl_sign (
528219820Sjeff	hx509_context /*context*/,
529219820Sjeff	hx509_cert /*signer*/,
530219820Sjeff	hx509_crl /*crl*/,
531219820Sjeff	heim_octet_string */*os*/);
532219820Sjeff
533219820Sjeffconst AlgorithmIdentifier *
534219820Sjeffhx509_crypto_aes128_cbc (void);
535219820Sjeff
536219820Sjeffconst AlgorithmIdentifier *
537219820Sjeffhx509_crypto_aes256_cbc (void);
538219820Sjeff
539219820Sjeffvoid
540219820Sjeffhx509_crypto_allow_weak (hx509_crypto /*crypto*/);
541219820Sjeff
542219820Sjeffint
543219820Sjeffhx509_crypto_available (
544219820Sjeff	hx509_context /*context*/,
545219820Sjeff	int /*type*/,
546219820Sjeff	hx509_cert /*source*/,
547219820Sjeff	AlgorithmIdentifier **/*val*/,
548219820Sjeff	unsigned int */*plen*/);
549219820Sjeff
550219820Sjeffint
551219820Sjeffhx509_crypto_decrypt (
552219820Sjeff	hx509_crypto /*crypto*/,
553219820Sjeff	const void */*data*/,
554219820Sjeff	const size_t /*length*/,
555219820Sjeff	heim_octet_string */*ivec*/,
556219820Sjeff	heim_octet_string */*clear*/);
557219820Sjeff
558219820Sjeffconst AlgorithmIdentifier *
559219820Sjeffhx509_crypto_des_rsdi_ede3_cbc (void);
560219820Sjeff
561219820Sjeffvoid
562219820Sjeffhx509_crypto_destroy (hx509_crypto /*crypto*/);
563219820Sjeff
564219820Sjeffint
565219820Sjeffhx509_crypto_encrypt (
566219820Sjeff	hx509_crypto /*crypto*/,
567219820Sjeff	const void */*data*/,
568219820Sjeff	const size_t /*length*/,
569219820Sjeff	const heim_octet_string */*ivec*/,
570219820Sjeff	heim_octet_string **/*ciphertext*/);
571219820Sjeff
572219820Sjeffconst heim_oid *
573219820Sjeffhx509_crypto_enctype_by_name (const char */*name*/);
574219820Sjeff
575219820Sjeffvoid
576219820Sjeffhx509_crypto_free_algs (
577219820Sjeff	AlgorithmIdentifier */*val*/,
578219820Sjeff	unsigned int /*len*/);
579219820Sjeff
580219820Sjeffint
581219820Sjeffhx509_crypto_get_params (
582219820Sjeff	hx509_context /*context*/,
583219820Sjeff	hx509_crypto /*crypto*/,
584219820Sjeff	const heim_octet_string */*ivec*/,
585219820Sjeff	heim_octet_string */*param*/);
586219820Sjeff
587219820Sjeffint
588219820Sjeffhx509_crypto_init (
589219820Sjeff	hx509_context /*context*/,
590219820Sjeff	const char */*provider*/,
591219820Sjeff	const heim_oid */*enctype*/,
592219820Sjeff	hx509_crypto */*crypto*/);
593219820Sjeff
594219820Sjeffconst char *
595219820Sjeffhx509_crypto_provider (hx509_crypto /*crypto*/);
596219820Sjeff
597219820Sjeffint
598219820Sjeffhx509_crypto_random_iv (
599219820Sjeff	hx509_crypto /*crypto*/,
600219820Sjeff	heim_octet_string */*ivec*/);
601219820Sjeff
602219820Sjeffint
603219820Sjeffhx509_crypto_select (
604219820Sjeff	const hx509_context /*context*/,
605219820Sjeff	int /*type*/,
606219820Sjeff	const hx509_private_key /*source*/,
607219820Sjeff	hx509_peer_info /*peer*/,
608219820Sjeff	AlgorithmIdentifier */*selected*/);
609219820Sjeff
610219820Sjeffint
611219820Sjeffhx509_crypto_set_key_data (
612219820Sjeff	hx509_crypto /*crypto*/,
613219820Sjeff	const void */*data*/,
614219820Sjeff	size_t /*length*/);
615219820Sjeff
616219820Sjeffint
617219820Sjeffhx509_crypto_set_key_name (
618219820Sjeff	hx509_crypto /*crypto*/,
619219820Sjeff	const char */*name*/);
620219820Sjeff
621219820Sjeffvoid
622219820Sjeffhx509_crypto_set_padding (
623219820Sjeff	hx509_crypto /*crypto*/,
624219820Sjeff	int /*padding_type*/);
625219820Sjeff
626219820Sjeffint
627219820Sjeffhx509_crypto_set_params (
628219820Sjeff	hx509_context /*context*/,
629219820Sjeff	hx509_crypto /*crypto*/,
630219820Sjeff	const heim_octet_string */*param*/,
631219820Sjeff	heim_octet_string */*ivec*/);
632219820Sjeff
633219820Sjeffint
634219820Sjeffhx509_crypto_set_random_key (
635219820Sjeff	hx509_crypto /*crypto*/,
636219820Sjeff	heim_octet_string */*key*/);
637219820Sjeff
638219820Sjeffint
639219820Sjeffhx509_env_add (
640219820Sjeff	hx509_context /*context*/,
641219820Sjeff	hx509_env */*env*/,
642219820Sjeff	const char */*key*/,
643219820Sjeff	const char */*value*/);
644219820Sjeff
645219820Sjeffint
646219820Sjeffhx509_env_add_binding (
647219820Sjeff	hx509_context /*context*/,
648219820Sjeff	hx509_env */*env*/,
649219820Sjeff	const char */*key*/,
650219820Sjeff	hx509_env /*list*/);
651219820Sjeff
652219820Sjeffconst char *
653219820Sjeffhx509_env_find (
654219820Sjeff	hx509_context /*context*/,
655219820Sjeff	hx509_env /*env*/,
656219820Sjeff	const char */*key*/);
657219820Sjeff
658219820Sjeffhx509_env
659219820Sjeffhx509_env_find_binding (
660219820Sjeff	hx509_context /*context*/,
661219820Sjeff	hx509_env /*env*/,
662219820Sjeff	const char */*key*/);
663219820Sjeff
664219820Sjeffvoid
665219820Sjeffhx509_env_free (hx509_env */*env*/);
666219820Sjeff
667219820Sjeffconst char *
668219820Sjeffhx509_env_lfind (
669219820Sjeff	hx509_context /*context*/,
670219820Sjeff	hx509_env /*env*/,
671219820Sjeff	const char */*key*/,
672219820Sjeff	size_t /*len*/);
673219820Sjeff
674219820Sjeffvoid
675219820Sjeffhx509_err (
676219820Sjeff	hx509_context /*context*/,
677219820Sjeff	int /*exit_code*/,
678219820Sjeff	int /*error_code*/,
679219820Sjeff	const char */*fmt*/,
680219820Sjeff	...);
681219820Sjeff
682219820Sjeffhx509_private_key_ops *
683219820Sjeffhx509_find_private_alg (const heim_oid */*oid*/);
684219820Sjeff
685219820Sjeffvoid
686219820Sjeffhx509_free_error_string (char */*str*/);
687219820Sjeff
688219820Sjeffvoid
689219820Sjeffhx509_free_octet_string_list (hx509_octet_string_list */*list*/);
690219820Sjeff
691219820Sjeffint
692219820Sjeffhx509_general_name_unparse (
693219820Sjeff	GeneralName */*name*/,
694219820Sjeff	char **/*str*/);
695219820Sjeff
696219820Sjeffchar *
697219820Sjeffhx509_get_error_string (
698219820Sjeff	hx509_context /*context*/,
699219820Sjeff	int /*error_code*/);
700219820Sjeff
701219820Sjeffint
702219820Sjeffhx509_get_one_cert (
703219820Sjeff	hx509_context /*context*/,
704219820Sjeff	hx509_certs /*certs*/,
705219820Sjeff	hx509_cert */*c*/);
706219820Sjeff
707219820Sjeffint
708219820Sjeffhx509_lock_add_cert (
709219820Sjeff	hx509_context /*context*/,
710219820Sjeff	hx509_lock /*lock*/,
711219820Sjeff	hx509_cert /*cert*/);
712219820Sjeff
713219820Sjeffint
714219820Sjeffhx509_lock_add_certs (
715219820Sjeff	hx509_context /*context*/,
716219820Sjeff	hx509_lock /*lock*/,
717219820Sjeff	hx509_certs /*certs*/);
718219820Sjeff
719219820Sjeffint
720219820Sjeffhx509_lock_add_password (
721219820Sjeff	hx509_lock /*lock*/,
722219820Sjeff	const char */*password*/);
723219820Sjeff
724219820Sjeffint
725219820Sjeffhx509_lock_command_string (
726219820Sjeff	hx509_lock /*lock*/,
727219820Sjeff	const char */*string*/);
728219820Sjeff
729219820Sjeffvoid
730219820Sjeffhx509_lock_free (hx509_lock /*lock*/);
731219820Sjeff
732219820Sjeffint
733219820Sjeffhx509_lock_init (
734219820Sjeff	hx509_context /*context*/,
735219820Sjeff	hx509_lock */*lock*/);
736219820Sjeff
737219820Sjeffint
738219820Sjeffhx509_lock_prompt (
739219820Sjeff	hx509_lock /*lock*/,
740219820Sjeff	hx509_prompt */*prompt*/);
741219820Sjeff
742219820Sjeffvoid
743219820Sjeffhx509_lock_reset_certs (
744219820Sjeff	hx509_context /*context*/,
745219820Sjeff	hx509_lock /*lock*/);
746219820Sjeff
747219820Sjeffvoid
748219820Sjeffhx509_lock_reset_passwords (hx509_lock /*lock*/);
749219820Sjeff
750219820Sjeffvoid
751219820Sjeffhx509_lock_reset_promper (hx509_lock /*lock*/);
752219820Sjeff
753219820Sjeffint
754219820Sjeffhx509_lock_set_prompter (
755219820Sjeff	hx509_lock /*lock*/,
756219820Sjeff	hx509_prompter_fct /*prompt*/,
757219820Sjeff	void */*data*/);
758219820Sjeff
759219820Sjeffint
760219820Sjeffhx509_name_binary (
761219820Sjeff	const hx509_name /*name*/,
762219820Sjeff	heim_octet_string */*os*/);
763219820Sjeff
764219820Sjeffint
765219820Sjeffhx509_name_cmp (
766219820Sjeff	hx509_name /*n1*/,
767219820Sjeff	hx509_name /*n2*/);
768219820Sjeff
769219820Sjeffint
770219820Sjeffhx509_name_copy (
771219820Sjeff	hx509_context /*context*/,
772219820Sjeff	const hx509_name /*from*/,
773219820Sjeff	hx509_name */*to*/);
774219820Sjeff
775219820Sjeffint
776219820Sjeffhx509_name_expand (
777219820Sjeff	hx509_context /*context*/,
778219820Sjeff	hx509_name /*name*/,
779219820Sjeff	hx509_env /*env*/);
780219820Sjeff
781219820Sjeffvoid
782219820Sjeffhx509_name_free (hx509_name */*name*/);
783219820Sjeff
784219820Sjeffint
785219820Sjeffhx509_name_is_null_p (const hx509_name /*name*/);
786219820Sjeff
787219820Sjeffint
788219820Sjeffhx509_name_normalize (
789219820Sjeff	hx509_context /*context*/,
790219820Sjeff	hx509_name /*name*/);
791219820Sjeff
792219820Sjeffint
793219820Sjeffhx509_name_to_Name (
794219820Sjeff	const hx509_name /*from*/,
795219820Sjeff	Name */*to*/);
796219820Sjeff
797219820Sjeffint
798219820Sjeffhx509_name_to_string (
799219820Sjeff	const hx509_name /*name*/,
800219820Sjeff	char **/*str*/);
801219820Sjeff
802219820Sjeffint
803219820Sjeffhx509_ocsp_request (
804219820Sjeff	hx509_context /*context*/,
805219820Sjeff	hx509_certs /*reqcerts*/,
806219820Sjeff	hx509_certs /*pool*/,
807219820Sjeff	hx509_cert /*signer*/,
808219820Sjeff	const AlgorithmIdentifier */*digest*/,
809219820Sjeff	heim_octet_string */*request*/,
810219820Sjeff	heim_octet_string */*nonce*/);
811219820Sjeff
812219820Sjeffint
813219820Sjeffhx509_ocsp_verify (
814219820Sjeff	hx509_context /*context*/,
815219820Sjeff	time_t /*now*/,
816219820Sjeff	hx509_cert /*cert*/,
817219820Sjeff	int /*flags*/,
818219820Sjeff	const void */*data*/,
819219820Sjeff	size_t /*length*/,
820219820Sjeff	time_t */*expiration*/);
821219820Sjeff
822219820Sjeffvoid
823219820Sjeffhx509_oid_print (
824219820Sjeff	const heim_oid */*oid*/,
825219820Sjeff	hx509_vprint_func /*func*/,
826219820Sjeff	void */*ctx*/);
827219820Sjeff
828219820Sjeffint
829219820Sjeffhx509_oid_sprint (
830219820Sjeff	const heim_oid */*oid*/,
831219820Sjeff	char **/*str*/);
832219820Sjeff
833219820Sjeffint
834219820Sjeffhx509_parse_name (
835219820Sjeff	hx509_context /*context*/,
836219820Sjeff	const char */*str*/,
837219820Sjeff	hx509_name */*name*/);
838219820Sjeff
839219820Sjeffint
840219820Sjeffhx509_parse_private_key (
841219820Sjeff	hx509_context /*context*/,
842219820Sjeff	const AlgorithmIdentifier */*keyai*/,
843219820Sjeff	const void */*data*/,
844219820Sjeff	size_t /*len*/,
845219820Sjeff	hx509_key_format_t /*format*/,
846219820Sjeff	hx509_private_key */*private_key*/);
847219820Sjeff
848219820Sjeffint
849219820Sjeffhx509_peer_info_add_cms_alg (
850219820Sjeff	hx509_context /*context*/,
851219820Sjeff	hx509_peer_info /*peer*/,
852219820Sjeff	const AlgorithmIdentifier */*val*/);
853219820Sjeff
854219820Sjeffint
855219820Sjeffhx509_peer_info_alloc (
856219820Sjeff	hx509_context /*context*/,
857219820Sjeff	hx509_peer_info */*peer*/);
858219820Sjeff
859219820Sjeffvoid
860219820Sjeffhx509_peer_info_free (hx509_peer_info /*peer*/);
861219820Sjeff
862219820Sjeffint
863219820Sjeffhx509_peer_info_set_cert (
864219820Sjeff	hx509_peer_info /*peer*/,
865219820Sjeff	hx509_cert /*cert*/);
866219820Sjeff
867219820Sjeffint
868219820Sjeffhx509_peer_info_set_cms_algs (
869219820Sjeff	hx509_context /*context*/,
870219820Sjeff	hx509_peer_info /*peer*/,
871219820Sjeff	const AlgorithmIdentifier */*val*/,
872219820Sjeff	size_t /*len*/);
873219820Sjeff
874219820Sjeffint
875219820Sjeffhx509_pem_add_header (
876219820Sjeff	hx509_pem_header **/*headers*/,
877219820Sjeff	const char */*header*/,
878219820Sjeff	const char */*value*/);
879219820Sjeff
880219820Sjeffconst char *
881219820Sjeffhx509_pem_find_header (
882219820Sjeff	const hx509_pem_header */*h*/,
883219820Sjeff	const char */*header*/);
884219820Sjeff
885219820Sjeffvoid
886219820Sjeffhx509_pem_free_header (hx509_pem_header */*headers*/);
887219820Sjeff
888219820Sjeffint
889219820Sjeffhx509_pem_read (
890219820Sjeff	hx509_context /*context*/,
891219820Sjeff	FILE */*f*/,
892219820Sjeff	hx509_pem_read_func /*func*/,
893219820Sjeff	void */*ctx*/);
894219820Sjeff
895219820Sjeffint
896219820Sjeffhx509_pem_write (
897219820Sjeff	hx509_context /*context*/,
898219820Sjeff	const char */*type*/,
899219820Sjeff	hx509_pem_header */*headers*/,
900219820Sjeff	FILE */*f*/,
901219820Sjeff	const void */*data*/,
902219820Sjeff	size_t /*size*/);
903219820Sjeff
904219820Sjeffint
905219820Sjeffhx509_print_cert (
906219820Sjeff	hx509_context /*context*/,
907219820Sjeff	hx509_cert /*cert*/,
908219820Sjeff	FILE */*out*/);
909219820Sjeff
910219820Sjeffvoid
911219820Sjeffhx509_print_stdout (
912219820Sjeff	void */*ctx*/,
913219820Sjeff	const char */*fmt*/,
914219820Sjeff	va_list /*va*/);
915219820Sjeff
916219820Sjeffint
917219820Sjeffhx509_private_key2SPKI (
918219820Sjeff	hx509_context /*context*/,
919219820Sjeff	hx509_private_key /*private_key*/,
920219820Sjeff	SubjectPublicKeyInfo */*spki*/);
921219820Sjeff
922219820Sjeffvoid
923219820Sjeffhx509_private_key_assign_rsa (
924219820Sjeff	hx509_private_key /*key*/,
925219820Sjeff	void */*ptr*/);
926219820Sjeff
927219820Sjeffint
928219820Sjeffhx509_private_key_free (hx509_private_key */*key*/);
929219820Sjeff
930219820Sjeffint
931219820Sjeffhx509_private_key_init (
932219820Sjeff	hx509_private_key */*key*/,
933219820Sjeff	hx509_private_key_ops */*ops*/,
934219820Sjeff	void */*keydata*/);
935219820Sjeff
936219820Sjeffint
937219820Sjeffhx509_private_key_private_decrypt (
938219820Sjeff	hx509_context /*context*/,
939219820Sjeff	const heim_octet_string */*ciphertext*/,
940219820Sjeff	const heim_oid */*encryption_oid*/,
941219820Sjeff	hx509_private_key /*p*/,
942219820Sjeff	heim_octet_string */*cleartext*/);
943219820Sjeff
944219820Sjeffint
945219820Sjeffhx509_prompt_hidden (hx509_prompt_type /*type*/);
946219820Sjeff
947219820Sjeffint
948219820Sjeffhx509_query_alloc (
949219820Sjeff	hx509_context /*context*/,
950219820Sjeff	hx509_query **/*q*/);
951219820Sjeff
952219820Sjeffvoid
953219820Sjeffhx509_query_free (
954219820Sjeff	hx509_context /*context*/,
955219820Sjeff	hx509_query */*q*/);
956219820Sjeff
957219820Sjeffint
958219820Sjeffhx509_query_match_cmp_func (
959219820Sjeff	hx509_query */*q*/,
960219820Sjeff	int (*/*func*/)(hx509_context, hx509_cert, void *),
961219820Sjeff	void */*ctx*/);
962219820Sjeff
963219820Sjeffint
964hx509_query_match_eku (
965	hx509_query */*q*/,
966	const heim_oid */*eku*/);
967
968int
969hx509_query_match_expr (
970	hx509_context /*context*/,
971	hx509_query */*q*/,
972	const char */*expr*/);
973
974int
975hx509_query_match_friendly_name (
976	hx509_query */*q*/,
977	const char */*name*/);
978
979int
980hx509_query_match_issuer_serial (
981	hx509_query */*q*/,
982	const Name */*issuer*/,
983	const heim_integer */*serialNumber*/);
984
985void
986hx509_query_match_option (
987	hx509_query */*q*/,
988	hx509_query_option /*option*/);
989
990void
991hx509_query_statistic_file (
992	hx509_context /*context*/,
993	const char */*fn*/);
994
995void
996hx509_query_unparse_stats (
997	hx509_context /*context*/,
998	int /*printtype*/,
999	FILE */*out*/);
1000
1001void
1002hx509_request_free (hx509_request */*req*/);
1003
1004int
1005hx509_request_get_SubjectPublicKeyInfo (
1006	hx509_context /*context*/,
1007	hx509_request /*req*/,
1008	SubjectPublicKeyInfo */*key*/);
1009
1010int
1011hx509_request_get_name (
1012	hx509_context /*context*/,
1013	hx509_request /*req*/,
1014	hx509_name */*name*/);
1015
1016int
1017hx509_request_init (
1018	hx509_context /*context*/,
1019	hx509_request */*req*/);
1020
1021int
1022hx509_request_set_SubjectPublicKeyInfo (
1023	hx509_context /*context*/,
1024	hx509_request /*req*/,
1025	const SubjectPublicKeyInfo */*key*/);
1026
1027int
1028hx509_request_set_name (
1029	hx509_context /*context*/,
1030	hx509_request /*req*/,
1031	hx509_name /*name*/);
1032
1033int
1034hx509_revoke_add_crl (
1035	hx509_context /*context*/,
1036	hx509_revoke_ctx /*ctx*/,
1037	const char */*path*/);
1038
1039int
1040hx509_revoke_add_ocsp (
1041	hx509_context /*context*/,
1042	hx509_revoke_ctx /*ctx*/,
1043	const char */*path*/);
1044
1045void
1046hx509_revoke_free (hx509_revoke_ctx */*ctx*/);
1047
1048int
1049hx509_revoke_init (
1050	hx509_context /*context*/,
1051	hx509_revoke_ctx */*ctx*/);
1052
1053int
1054hx509_revoke_ocsp_print (
1055	hx509_context /*context*/,
1056	const char */*path*/,
1057	FILE */*out*/);
1058
1059int
1060hx509_revoke_verify (
1061	hx509_context /*context*/,
1062	hx509_revoke_ctx /*ctx*/,
1063	hx509_certs /*certs*/,
1064	time_t /*now*/,
1065	hx509_cert /*cert*/,
1066	hx509_cert /*parent_cert*/);
1067
1068void
1069hx509_set_error_string (
1070	hx509_context /*context*/,
1071	int /*flags*/,
1072	int /*code*/,
1073	const char */*fmt*/,
1074	...);
1075
1076void
1077hx509_set_error_stringv (
1078	hx509_context /*context*/,
1079	int /*flags*/,
1080	int /*code*/,
1081	const char */*fmt*/,
1082	va_list /*ap*/);
1083
1084const AlgorithmIdentifier *
1085hx509_signature_ecPublicKey (void);
1086
1087const AlgorithmIdentifier *
1088hx509_signature_ecdsa_with_sha1 (void);
1089
1090const AlgorithmIdentifier *
1091hx509_signature_ecdsa_with_sha256 (void);
1092
1093const AlgorithmIdentifier *
1094hx509_signature_md5 (void);
1095
1096const AlgorithmIdentifier *
1097hx509_signature_rsa (void);
1098
1099const AlgorithmIdentifier *
1100hx509_signature_rsa_pkcs1_x509 (void);
1101
1102const AlgorithmIdentifier *
1103hx509_signature_rsa_with_md5 (void);
1104
1105const AlgorithmIdentifier *
1106hx509_signature_rsa_with_sha1 (void);
1107
1108const AlgorithmIdentifier *
1109hx509_signature_rsa_with_sha256 (void);
1110
1111const AlgorithmIdentifier *
1112hx509_signature_rsa_with_sha384 (void);
1113
1114const AlgorithmIdentifier *
1115hx509_signature_rsa_with_sha512 (void);
1116
1117const AlgorithmIdentifier *
1118hx509_signature_sha1 (void);
1119
1120const AlgorithmIdentifier *
1121hx509_signature_sha256 (void);
1122
1123const AlgorithmIdentifier *
1124hx509_signature_sha384 (void);
1125
1126const AlgorithmIdentifier *
1127hx509_signature_sha512 (void);
1128
1129int
1130hx509_unparse_der_name (
1131	const void */*data*/,
1132	size_t /*length*/,
1133	char **/*str*/);
1134
1135int
1136hx509_validate_cert (
1137	hx509_context /*context*/,
1138	hx509_validate_ctx /*ctx*/,
1139	hx509_cert /*cert*/);
1140
1141void
1142hx509_validate_ctx_add_flags (
1143	hx509_validate_ctx /*ctx*/,
1144	int /*flags*/);
1145
1146void
1147hx509_validate_ctx_free (hx509_validate_ctx /*ctx*/);
1148
1149int
1150hx509_validate_ctx_init (
1151	hx509_context /*context*/,
1152	hx509_validate_ctx */*ctx*/);
1153
1154void
1155hx509_validate_ctx_set_print (
1156	hx509_validate_ctx /*ctx*/,
1157	hx509_vprint_func /*func*/,
1158	void */*c*/);
1159
1160void
1161hx509_verify_attach_anchors (
1162	hx509_verify_ctx /*ctx*/,
1163	hx509_certs /*set*/);
1164
1165void
1166hx509_verify_attach_revoke (
1167	hx509_verify_ctx /*ctx*/,
1168	hx509_revoke_ctx /*revoke_ctx*/);
1169
1170void
1171hx509_verify_ctx_f_allow_best_before_signature_algs (
1172	hx509_context /*ctx*/,
1173	int /*boolean*/);
1174
1175void
1176hx509_verify_ctx_f_allow_default_trustanchors (
1177	hx509_verify_ctx /*ctx*/,
1178	int /*boolean*/);
1179
1180void
1181hx509_verify_destroy_ctx (hx509_verify_ctx /*ctx*/);
1182
1183int
1184hx509_verify_hostname (
1185	hx509_context /*context*/,
1186	const hx509_cert /*cert*/,
1187	int /*flags*/,
1188	hx509_hostname_type /*type*/,
1189	const char */*hostname*/,
1190	const struct sockaddr */*sa*/,
1191	int /*sa_size*/);
1192
1193int
1194hx509_verify_init_ctx (
1195	hx509_context /*context*/,
1196	hx509_verify_ctx */*ctx*/);
1197
1198int
1199hx509_verify_path (
1200	hx509_context /*context*/,
1201	hx509_verify_ctx /*ctx*/,
1202	hx509_cert /*cert*/,
1203	hx509_certs /*pool*/);
1204
1205void
1206hx509_verify_set_max_depth (
1207	hx509_verify_ctx /*ctx*/,
1208	unsigned int /*max_depth*/);
1209
1210void
1211hx509_verify_set_proxy_certificate (
1212	hx509_verify_ctx /*ctx*/,
1213	int /*boolean*/);
1214
1215void
1216hx509_verify_set_strict_rfc3280_verification (
1217	hx509_verify_ctx /*ctx*/,
1218	int /*boolean*/);
1219
1220void
1221hx509_verify_set_time (
1222	hx509_verify_ctx /*ctx*/,
1223	time_t /*t*/);
1224
1225int
1226hx509_verify_signature (
1227	hx509_context /*context*/,
1228	const hx509_cert /*signer*/,
1229	const AlgorithmIdentifier */*alg*/,
1230	const heim_octet_string */*data*/,
1231	const heim_octet_string */*sig*/);
1232
1233void
1234hx509_xfree (void */*ptr*/);
1235
1236int
1237yywrap (void);
1238
1239#ifdef __cplusplus
1240}
1241#endif
1242
1243#endif /* __hx509_protos_h__ */
1244