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
11233294Sstas#ifndef HX509_LIB
12178825Sdfr#ifndef HX509_LIB_FUNCTION
13178825Sdfr#if defined(_WIN32)
14233294Sstas#define HX509_LIB_FUNCTION __declspec(dllimport)
15233294Sstas#define HX509_LIB_CALL __stdcall
16233294Sstas#define HX509_LIB_VARIABLE __declspec(dllimport)
17178825Sdfr#else
18178825Sdfr#define HX509_LIB_FUNCTION
19233294Sstas#define HX509_LIB_CALL
20233294Sstas#define HX509_LIB_VARIABLE
21178825Sdfr#endif
22178825Sdfr#endif
23233294Sstas#endif
24178825Sdfrvoid
25178825Sdfrhx509_bitstring_print (
26178825Sdfr	const heim_bit_string */*b*/,
27178825Sdfr	hx509_vprint_func /*func*/,
28178825Sdfr	void */*ctx*/);
29178825Sdfr
30178825Sdfrint
31178825Sdfrhx509_ca_sign (
32178825Sdfr	hx509_context /*context*/,
33178825Sdfr	hx509_ca_tbs /*tbs*/,
34178825Sdfr	hx509_cert /*signer*/,
35178825Sdfr	hx509_cert */*certificate*/);
36178825Sdfr
37178825Sdfrint
38178825Sdfrhx509_ca_sign_self (
39178825Sdfr	hx509_context /*context*/,
40178825Sdfr	hx509_ca_tbs /*tbs*/,
41178825Sdfr	hx509_private_key /*signer*/,
42178825Sdfr	hx509_cert */*certificate*/);
43178825Sdfr
44178825Sdfrint
45178825Sdfrhx509_ca_tbs_add_crl_dp_uri (
46178825Sdfr	hx509_context /*context*/,
47178825Sdfr	hx509_ca_tbs /*tbs*/,
48178825Sdfr	const char */*uri*/,
49178825Sdfr	hx509_name /*issuername*/);
50178825Sdfr
51178825Sdfrint
52178825Sdfrhx509_ca_tbs_add_eku (
53178825Sdfr	hx509_context /*context*/,
54178825Sdfr	hx509_ca_tbs /*tbs*/,
55178825Sdfr	const heim_oid */*oid*/);
56178825Sdfr
57178825Sdfrint
58178825Sdfrhx509_ca_tbs_add_san_hostname (
59178825Sdfr	hx509_context /*context*/,
60178825Sdfr	hx509_ca_tbs /*tbs*/,
61178825Sdfr	const char */*dnsname*/);
62178825Sdfr
63178825Sdfrint
64178825Sdfrhx509_ca_tbs_add_san_jid (
65178825Sdfr	hx509_context /*context*/,
66178825Sdfr	hx509_ca_tbs /*tbs*/,
67178825Sdfr	const char */*jid*/);
68178825Sdfr
69178825Sdfrint
70178825Sdfrhx509_ca_tbs_add_san_ms_upn (
71178825Sdfr	hx509_context /*context*/,
72178825Sdfr	hx509_ca_tbs /*tbs*/,
73178825Sdfr	const char */*principal*/);
74178825Sdfr
75178825Sdfrint
76178825Sdfrhx509_ca_tbs_add_san_otherName (
77178825Sdfr	hx509_context /*context*/,
78178825Sdfr	hx509_ca_tbs /*tbs*/,
79178825Sdfr	const heim_oid */*oid*/,
80178825Sdfr	const heim_octet_string */*os*/);
81178825Sdfr
82178825Sdfrint
83178825Sdfrhx509_ca_tbs_add_san_pkinit (
84178825Sdfr	hx509_context /*context*/,
85178825Sdfr	hx509_ca_tbs /*tbs*/,
86178825Sdfr	const char */*principal*/);
87178825Sdfr
88178825Sdfrint
89178825Sdfrhx509_ca_tbs_add_san_rfc822name (
90178825Sdfr	hx509_context /*context*/,
91178825Sdfr	hx509_ca_tbs /*tbs*/,
92178825Sdfr	const char */*rfc822Name*/);
93178825Sdfr
94178825Sdfrvoid
95178825Sdfrhx509_ca_tbs_free (hx509_ca_tbs */*tbs*/);
96178825Sdfr
97178825Sdfrint
98178825Sdfrhx509_ca_tbs_init (
99178825Sdfr	hx509_context /*context*/,
100178825Sdfr	hx509_ca_tbs */*tbs*/);
101178825Sdfr
102178825Sdfrint
103178825Sdfrhx509_ca_tbs_set_ca (
104178825Sdfr	hx509_context /*context*/,
105178825Sdfr	hx509_ca_tbs /*tbs*/,
106178825Sdfr	int /*pathLenConstraint*/);
107178825Sdfr
108178825Sdfrint
109178825Sdfrhx509_ca_tbs_set_domaincontroller (
110178825Sdfr	hx509_context /*context*/,
111178825Sdfr	hx509_ca_tbs /*tbs*/);
112178825Sdfr
113178825Sdfrint
114178825Sdfrhx509_ca_tbs_set_notAfter (
115178825Sdfr	hx509_context /*context*/,
116178825Sdfr	hx509_ca_tbs /*tbs*/,
117178825Sdfr	time_t /*t*/);
118178825Sdfr
119178825Sdfrint
120178825Sdfrhx509_ca_tbs_set_notAfter_lifetime (
121178825Sdfr	hx509_context /*context*/,
122178825Sdfr	hx509_ca_tbs /*tbs*/,
123178825Sdfr	time_t /*delta*/);
124178825Sdfr
125178825Sdfrint
126178825Sdfrhx509_ca_tbs_set_notBefore (
127178825Sdfr	hx509_context /*context*/,
128178825Sdfr	hx509_ca_tbs /*tbs*/,
129178825Sdfr	time_t /*t*/);
130178825Sdfr
131178825Sdfrint
132178825Sdfrhx509_ca_tbs_set_proxy (
133178825Sdfr	hx509_context /*context*/,
134178825Sdfr	hx509_ca_tbs /*tbs*/,
135178825Sdfr	int /*pathLenConstraint*/);
136178825Sdfr
137178825Sdfrint
138178825Sdfrhx509_ca_tbs_set_serialnumber (
139178825Sdfr	hx509_context /*context*/,
140178825Sdfr	hx509_ca_tbs /*tbs*/,
141178825Sdfr	const heim_integer */*serialNumber*/);
142178825Sdfr
143178825Sdfrint
144178825Sdfrhx509_ca_tbs_set_spki (
145178825Sdfr	hx509_context /*context*/,
146178825Sdfr	hx509_ca_tbs /*tbs*/,
147178825Sdfr	const SubjectPublicKeyInfo */*spki*/);
148178825Sdfr
149178825Sdfrint
150178825Sdfrhx509_ca_tbs_set_subject (
151178825Sdfr	hx509_context /*context*/,
152178825Sdfr	hx509_ca_tbs /*tbs*/,
153178825Sdfr	hx509_name /*subject*/);
154178825Sdfr
155178825Sdfrint
156178825Sdfrhx509_ca_tbs_set_template (
157178825Sdfr	hx509_context /*context*/,
158178825Sdfr	hx509_ca_tbs /*tbs*/,
159178825Sdfr	int /*flags*/,
160178825Sdfr	hx509_cert /*cert*/);
161178825Sdfr
162178825Sdfrint
163233294Sstashx509_ca_tbs_set_unique (
164233294Sstas	hx509_context /*context*/,
165233294Sstas	hx509_ca_tbs /*tbs*/,
166233294Sstas	const heim_bit_string */*subjectUniqueID*/,
167233294Sstas	const heim_bit_string */*issuerUniqueID*/);
168233294Sstas
169233294Sstasint
170178825Sdfrhx509_ca_tbs_subject_expand (
171178825Sdfr	hx509_context /*context*/,
172178825Sdfr	hx509_ca_tbs /*tbs*/,
173178825Sdfr	hx509_env /*env*/);
174178825Sdfr
175178825Sdfrconst struct units *
176178825Sdfrhx509_ca_tbs_template_units (void);
177178825Sdfr
178178825Sdfrint
179178825Sdfrhx509_cert_binary (
180178825Sdfr	hx509_context /*context*/,
181178825Sdfr	hx509_cert /*c*/,
182178825Sdfr	heim_octet_string */*os*/);
183178825Sdfr
184178825Sdfrint
185178825Sdfrhx509_cert_check_eku (
186178825Sdfr	hx509_context /*context*/,
187178825Sdfr	hx509_cert /*cert*/,
188178825Sdfr	const heim_oid */*eku*/,
189178825Sdfr	int /*allow_any_eku*/);
190178825Sdfr
191178825Sdfrint
192178825Sdfrhx509_cert_cmp (
193178825Sdfr	hx509_cert /*p*/,
194178825Sdfr	hx509_cert /*q*/);
195178825Sdfr
196178825Sdfrint
197178825Sdfrhx509_cert_find_subjectAltName_otherName (
198178825Sdfr	hx509_context /*context*/,
199178825Sdfr	hx509_cert /*cert*/,
200178825Sdfr	const heim_oid */*oid*/,
201178825Sdfr	hx509_octet_string_list */*list*/);
202178825Sdfr
203178825Sdfrvoid
204178825Sdfrhx509_cert_free (hx509_cert /*cert*/);
205178825Sdfr
206178825Sdfrint
207178825Sdfrhx509_cert_get_SPKI (
208178825Sdfr	hx509_context /*context*/,
209178825Sdfr	hx509_cert /*p*/,
210178825Sdfr	SubjectPublicKeyInfo */*spki*/);
211178825Sdfr
212178825Sdfrint
213178825Sdfrhx509_cert_get_SPKI_AlgorithmIdentifier (
214178825Sdfr	hx509_context /*context*/,
215178825Sdfr	hx509_cert /*p*/,
216178825Sdfr	AlgorithmIdentifier */*alg*/);
217178825Sdfr
218178825Sdfrhx509_cert_attribute
219178825Sdfrhx509_cert_get_attribute (
220178825Sdfr	hx509_cert /*cert*/,
221178825Sdfr	const heim_oid */*oid*/);
222178825Sdfr
223178825Sdfrint
224178825Sdfrhx509_cert_get_base_subject (
225178825Sdfr	hx509_context /*context*/,
226178825Sdfr	hx509_cert /*c*/,
227178825Sdfr	hx509_name */*name*/);
228178825Sdfr
229178825Sdfrconst char *
230178825Sdfrhx509_cert_get_friendly_name (hx509_cert /*cert*/);
231178825Sdfr
232178825Sdfrint
233178825Sdfrhx509_cert_get_issuer (
234178825Sdfr	hx509_cert /*p*/,
235178825Sdfr	hx509_name */*name*/);
236178825Sdfr
237233294Sstasint
238233294Sstashx509_cert_get_issuer_unique_id (
239233294Sstas	hx509_context /*context*/,
240233294Sstas	hx509_cert /*p*/,
241233294Sstas	heim_bit_string */*issuer*/);
242233294Sstas
243178825Sdfrtime_t
244178825Sdfrhx509_cert_get_notAfter (hx509_cert /*p*/);
245178825Sdfr
246178825Sdfrtime_t
247178825Sdfrhx509_cert_get_notBefore (hx509_cert /*p*/);
248178825Sdfr
249178825Sdfrint
250178825Sdfrhx509_cert_get_serialnumber (
251178825Sdfr	hx509_cert /*p*/,
252178825Sdfr	heim_integer */*i*/);
253178825Sdfr
254178825Sdfrint
255178825Sdfrhx509_cert_get_subject (
256178825Sdfr	hx509_cert /*p*/,
257178825Sdfr	hx509_name */*name*/);
258178825Sdfr
259178825Sdfrint
260233294Sstashx509_cert_get_subject_unique_id (
261233294Sstas	hx509_context /*context*/,
262233294Sstas	hx509_cert /*p*/,
263233294Sstas	heim_bit_string */*subject*/);
264233294Sstas
265233294Sstasint
266178825Sdfrhx509_cert_have_private_key (hx509_cert /*p*/);
267178825Sdfr
268178825Sdfrint
269178825Sdfrhx509_cert_init (
270178825Sdfr	hx509_context /*context*/,
271178825Sdfr	const Certificate */*c*/,
272178825Sdfr	hx509_cert */*cert*/);
273178825Sdfr
274178825Sdfrint
275178825Sdfrhx509_cert_init_data (
276178825Sdfr	hx509_context /*context*/,
277178825Sdfr	const void */*ptr*/,
278178825Sdfr	size_t /*len*/,
279178825Sdfr	hx509_cert */*cert*/);
280178825Sdfr
281178825Sdfrint
282178825Sdfrhx509_cert_keyusage_print (
283178825Sdfr	hx509_context /*context*/,
284178825Sdfr	hx509_cert /*c*/,
285178825Sdfr	char **/*s*/);
286178825Sdfr
287233294Sstasint
288233294Sstashx509_cert_public_encrypt (
289233294Sstas	hx509_context /*context*/,
290233294Sstas	const heim_octet_string */*cleartext*/,
291233294Sstas	const hx509_cert /*p*/,
292233294Sstas	heim_oid */*encryption_oid*/,
293233294Sstas	heim_octet_string */*ciphertext*/);
294233294Sstas
295178825Sdfrhx509_cert
296178825Sdfrhx509_cert_ref (hx509_cert /*cert*/);
297178825Sdfr
298178825Sdfrint
299178825Sdfrhx509_cert_set_friendly_name (
300178825Sdfr	hx509_cert /*cert*/,
301178825Sdfr	const char */*name*/);
302178825Sdfr
303178825Sdfrint
304178825Sdfrhx509_certs_add (
305178825Sdfr	hx509_context /*context*/,
306178825Sdfr	hx509_certs /*certs*/,
307178825Sdfr	hx509_cert /*cert*/);
308178825Sdfr
309178825Sdfrint
310178825Sdfrhx509_certs_append (
311178825Sdfr	hx509_context /*context*/,
312178825Sdfr	hx509_certs /*to*/,
313178825Sdfr	hx509_lock /*lock*/,
314178825Sdfr	const char */*name*/);
315178825Sdfr
316178825Sdfrint
317178825Sdfrhx509_certs_end_seq (
318178825Sdfr	hx509_context /*context*/,
319178825Sdfr	hx509_certs /*certs*/,
320178825Sdfr	hx509_cursor /*cursor*/);
321178825Sdfr
322178825Sdfrint
323233294Sstashx509_certs_filter (
324233294Sstas	hx509_context /*context*/,
325233294Sstas	hx509_certs /*certs*/,
326233294Sstas	const hx509_query */*q*/,
327233294Sstas	hx509_certs */*result*/);
328233294Sstas
329233294Sstasint
330178825Sdfrhx509_certs_find (
331178825Sdfr	hx509_context /*context*/,
332178825Sdfr	hx509_certs /*certs*/,
333178825Sdfr	const hx509_query */*q*/,
334178825Sdfr	hx509_cert */*r*/);
335178825Sdfr
336178825Sdfrvoid
337178825Sdfrhx509_certs_free (hx509_certs */*certs*/);
338178825Sdfr
339178825Sdfrint
340178825Sdfrhx509_certs_info (
341178825Sdfr	hx509_context /*context*/,
342178825Sdfr	hx509_certs /*certs*/,
343178825Sdfr	int (*/*func*/)(void *, const char *),
344178825Sdfr	void */*ctx*/);
345178825Sdfr
346178825Sdfrint
347178825Sdfrhx509_certs_init (
348178825Sdfr	hx509_context /*context*/,
349178825Sdfr	const char */*name*/,
350178825Sdfr	int /*flags*/,
351178825Sdfr	hx509_lock /*lock*/,
352178825Sdfr	hx509_certs */*certs*/);
353178825Sdfr
354233294Sstas#ifdef __BLOCKS__
355178825Sdfrint
356178825Sdfrhx509_certs_iter (
357178825Sdfr	hx509_context /*context*/,
358178825Sdfr	hx509_certs /*certs*/,
359233294Sstas	int (^func)(hx509_cert));
360233294Sstas#endif /* __BLOCKS__ */
361233294Sstas
362233294Sstasint
363233294Sstashx509_certs_iter_f (
364233294Sstas	hx509_context /*context*/,
365233294Sstas	hx509_certs /*certs*/,
366178825Sdfr	int (*/*func*/)(hx509_context, void *, hx509_cert),
367178825Sdfr	void */*ctx*/);
368178825Sdfr
369178825Sdfrint
370178825Sdfrhx509_certs_merge (
371178825Sdfr	hx509_context /*context*/,
372178825Sdfr	hx509_certs /*to*/,
373178825Sdfr	hx509_certs /*from*/);
374178825Sdfr
375178825Sdfrint
376178825Sdfrhx509_certs_next_cert (
377178825Sdfr	hx509_context /*context*/,
378178825Sdfr	hx509_certs /*certs*/,
379178825Sdfr	hx509_cursor /*cursor*/,
380178825Sdfr	hx509_cert */*cert*/);
381178825Sdfr
382233294Sstashx509_certs
383233294Sstashx509_certs_ref (hx509_certs /*certs*/);
384233294Sstas
385178825Sdfrint
386178825Sdfrhx509_certs_start_seq (
387178825Sdfr	hx509_context /*context*/,
388178825Sdfr	hx509_certs /*certs*/,
389178825Sdfr	hx509_cursor */*cursor*/);
390178825Sdfr
391178825Sdfrint
392178825Sdfrhx509_certs_store (
393178825Sdfr	hx509_context /*context*/,
394178825Sdfr	hx509_certs /*certs*/,
395178825Sdfr	int /*flags*/,
396178825Sdfr	hx509_lock /*lock*/);
397178825Sdfr
398178825Sdfrint
399178825Sdfrhx509_ci_print_names (
400178825Sdfr	hx509_context /*context*/,
401178825Sdfr	void */*ctx*/,
402178825Sdfr	hx509_cert /*c*/);
403178825Sdfr
404178825Sdfrvoid
405178825Sdfrhx509_clear_error_string (hx509_context /*context*/);
406178825Sdfr
407178825Sdfrint
408233294Sstashx509_cms_create_signed (
409233294Sstas	hx509_context /*context*/,
410233294Sstas	int /*flags*/,
411233294Sstas	const heim_oid */*eContentType*/,
412233294Sstas	const void */*data*/,
413233294Sstas	size_t /*length*/,
414233294Sstas	const AlgorithmIdentifier */*digest_alg*/,
415233294Sstas	hx509_certs /*certs*/,
416233294Sstas	hx509_peer_info /*peer*/,
417233294Sstas	hx509_certs /*anchors*/,
418233294Sstas	hx509_certs /*pool*/,
419233294Sstas	heim_octet_string */*signed_data*/);
420233294Sstas
421233294Sstasint
422178825Sdfrhx509_cms_create_signed_1 (
423178825Sdfr	hx509_context /*context*/,
424178825Sdfr	int /*flags*/,
425178825Sdfr	const heim_oid */*eContentType*/,
426178825Sdfr	const void */*data*/,
427178825Sdfr	size_t /*length*/,
428178825Sdfr	const AlgorithmIdentifier */*digest_alg*/,
429178825Sdfr	hx509_cert /*cert*/,
430178825Sdfr	hx509_peer_info /*peer*/,
431178825Sdfr	hx509_certs /*anchors*/,
432178825Sdfr	hx509_certs /*pool*/,
433178825Sdfr	heim_octet_string */*signed_data*/);
434178825Sdfr
435178825Sdfrint
436178825Sdfrhx509_cms_decrypt_encrypted (
437178825Sdfr	hx509_context /*context*/,
438178825Sdfr	hx509_lock /*lock*/,
439178825Sdfr	const void */*data*/,
440178825Sdfr	size_t /*length*/,
441178825Sdfr	heim_oid */*contentType*/,
442178825Sdfr	heim_octet_string */*content*/);
443178825Sdfr
444178825Sdfrint
445178825Sdfrhx509_cms_envelope_1 (
446178825Sdfr	hx509_context /*context*/,
447178825Sdfr	int /*flags*/,
448178825Sdfr	hx509_cert /*cert*/,
449178825Sdfr	const void */*data*/,
450178825Sdfr	size_t /*length*/,
451178825Sdfr	const heim_oid */*encryption_type*/,
452178825Sdfr	const heim_oid */*contentType*/,
453178825Sdfr	heim_octet_string */*content*/);
454178825Sdfr
455178825Sdfrint
456178825Sdfrhx509_cms_unenvelope (
457178825Sdfr	hx509_context /*context*/,
458178825Sdfr	hx509_certs /*certs*/,
459178825Sdfr	int /*flags*/,
460178825Sdfr	const void */*data*/,
461178825Sdfr	size_t /*length*/,
462178825Sdfr	const heim_octet_string */*encryptedContent*/,
463233294Sstas	time_t /*time_now*/,
464178825Sdfr	heim_oid */*contentType*/,
465178825Sdfr	heim_octet_string */*content*/);
466178825Sdfr
467178825Sdfrint
468178825Sdfrhx509_cms_unwrap_ContentInfo (
469178825Sdfr	const heim_octet_string */*in*/,
470178825Sdfr	heim_oid */*oid*/,
471178825Sdfr	heim_octet_string */*out*/,
472178825Sdfr	int */*have_data*/);
473178825Sdfr
474178825Sdfrint
475178825Sdfrhx509_cms_verify_signed (
476178825Sdfr	hx509_context /*context*/,
477178825Sdfr	hx509_verify_ctx /*ctx*/,
478233294Sstas	unsigned int /*flags*/,
479178825Sdfr	const void */*data*/,
480178825Sdfr	size_t /*length*/,
481178825Sdfr	const heim_octet_string */*signedContent*/,
482178825Sdfr	hx509_certs /*pool*/,
483178825Sdfr	heim_oid */*contentType*/,
484178825Sdfr	heim_octet_string */*content*/,
485178825Sdfr	hx509_certs */*signer_certs*/);
486178825Sdfr
487178825Sdfrint
488178825Sdfrhx509_cms_wrap_ContentInfo (
489178825Sdfr	const heim_oid */*oid*/,
490178825Sdfr	const heim_octet_string */*buf*/,
491178825Sdfr	heim_octet_string */*res*/);
492178825Sdfr
493178825Sdfrvoid
494178825Sdfrhx509_context_free (hx509_context */*context*/);
495178825Sdfr
496178825Sdfrint
497178825Sdfrhx509_context_init (hx509_context */*context*/);
498178825Sdfr
499178825Sdfrvoid
500178825Sdfrhx509_context_set_missing_revoke (
501178825Sdfr	hx509_context /*context*/,
502178825Sdfr	int /*flag*/);
503178825Sdfr
504178825Sdfrint
505178825Sdfrhx509_crl_add_revoked_certs (
506178825Sdfr	hx509_context /*context*/,
507178825Sdfr	hx509_crl /*crl*/,
508178825Sdfr	hx509_certs /*certs*/);
509178825Sdfr
510178825Sdfrint
511178825Sdfrhx509_crl_alloc (
512178825Sdfr	hx509_context /*context*/,
513178825Sdfr	hx509_crl */*crl*/);
514178825Sdfr
515178825Sdfrvoid
516178825Sdfrhx509_crl_free (
517178825Sdfr	hx509_context /*context*/,
518178825Sdfr	hx509_crl */*crl*/);
519178825Sdfr
520178825Sdfrint
521178825Sdfrhx509_crl_lifetime (
522178825Sdfr	hx509_context /*context*/,
523178825Sdfr	hx509_crl /*crl*/,
524178825Sdfr	int /*delta*/);
525178825Sdfr
526178825Sdfrint
527178825Sdfrhx509_crl_sign (
528178825Sdfr	hx509_context /*context*/,
529178825Sdfr	hx509_cert /*signer*/,
530178825Sdfr	hx509_crl /*crl*/,
531178825Sdfr	heim_octet_string */*os*/);
532178825Sdfr
533178825Sdfrconst AlgorithmIdentifier *
534178825Sdfrhx509_crypto_aes128_cbc (void);
535178825Sdfr
536178825Sdfrconst AlgorithmIdentifier *
537178825Sdfrhx509_crypto_aes256_cbc (void);
538178825Sdfr
539233294Sstasvoid
540233294Sstashx509_crypto_allow_weak (hx509_crypto /*crypto*/);
541233294Sstas
542178825Sdfrint
543178825Sdfrhx509_crypto_available (
544178825Sdfr	hx509_context /*context*/,
545178825Sdfr	int /*type*/,
546178825Sdfr	hx509_cert /*source*/,
547178825Sdfr	AlgorithmIdentifier **/*val*/,
548178825Sdfr	unsigned int */*plen*/);
549178825Sdfr
550178825Sdfrint
551178825Sdfrhx509_crypto_decrypt (
552178825Sdfr	hx509_crypto /*crypto*/,
553178825Sdfr	const void */*data*/,
554178825Sdfr	const size_t /*length*/,
555178825Sdfr	heim_octet_string */*ivec*/,
556178825Sdfr	heim_octet_string */*clear*/);
557178825Sdfr
558178825Sdfrconst AlgorithmIdentifier *
559178825Sdfrhx509_crypto_des_rsdi_ede3_cbc (void);
560178825Sdfr
561178825Sdfrvoid
562178825Sdfrhx509_crypto_destroy (hx509_crypto /*crypto*/);
563178825Sdfr
564178825Sdfrint
565178825Sdfrhx509_crypto_encrypt (
566178825Sdfr	hx509_crypto /*crypto*/,
567178825Sdfr	const void */*data*/,
568178825Sdfr	const size_t /*length*/,
569178825Sdfr	const heim_octet_string */*ivec*/,
570178825Sdfr	heim_octet_string **/*ciphertext*/);
571178825Sdfr
572178825Sdfrconst heim_oid *
573178825Sdfrhx509_crypto_enctype_by_name (const char */*name*/);
574178825Sdfr
575178825Sdfrvoid
576178825Sdfrhx509_crypto_free_algs (
577178825Sdfr	AlgorithmIdentifier */*val*/,
578178825Sdfr	unsigned int /*len*/);
579178825Sdfr
580178825Sdfrint
581178825Sdfrhx509_crypto_get_params (
582178825Sdfr	hx509_context /*context*/,
583178825Sdfr	hx509_crypto /*crypto*/,
584178825Sdfr	const heim_octet_string */*ivec*/,
585178825Sdfr	heim_octet_string */*param*/);
586178825Sdfr
587178825Sdfrint
588178825Sdfrhx509_crypto_init (
589178825Sdfr	hx509_context /*context*/,
590178825Sdfr	const char */*provider*/,
591178825Sdfr	const heim_oid */*enctype*/,
592178825Sdfr	hx509_crypto */*crypto*/);
593178825Sdfr
594178825Sdfrconst char *
595178825Sdfrhx509_crypto_provider (hx509_crypto /*crypto*/);
596178825Sdfr
597178825Sdfrint
598178825Sdfrhx509_crypto_random_iv (
599178825Sdfr	hx509_crypto /*crypto*/,
600178825Sdfr	heim_octet_string */*ivec*/);
601178825Sdfr
602178825Sdfrint
603178825Sdfrhx509_crypto_select (
604178825Sdfr	const hx509_context /*context*/,
605178825Sdfr	int /*type*/,
606178825Sdfr	const hx509_private_key /*source*/,
607178825Sdfr	hx509_peer_info /*peer*/,
608178825Sdfr	AlgorithmIdentifier */*selected*/);
609178825Sdfr
610178825Sdfrint
611178825Sdfrhx509_crypto_set_key_data (
612178825Sdfr	hx509_crypto /*crypto*/,
613178825Sdfr	const void */*data*/,
614178825Sdfr	size_t /*length*/);
615178825Sdfr
616178825Sdfrint
617178825Sdfrhx509_crypto_set_key_name (
618178825Sdfr	hx509_crypto /*crypto*/,
619178825Sdfr	const char */*name*/);
620178825Sdfr
621233294Sstasvoid
622233294Sstashx509_crypto_set_padding (
623233294Sstas	hx509_crypto /*crypto*/,
624233294Sstas	int /*padding_type*/);
625233294Sstas
626178825Sdfrint
627178825Sdfrhx509_crypto_set_params (
628178825Sdfr	hx509_context /*context*/,
629178825Sdfr	hx509_crypto /*crypto*/,
630178825Sdfr	const heim_octet_string */*param*/,
631178825Sdfr	heim_octet_string */*ivec*/);
632178825Sdfr
633178825Sdfrint
634178825Sdfrhx509_crypto_set_random_key (
635178825Sdfr	hx509_crypto /*crypto*/,
636178825Sdfr	heim_octet_string */*key*/);
637178825Sdfr
638178825Sdfrint
639178825Sdfrhx509_env_add (
640178825Sdfr	hx509_context /*context*/,
641233294Sstas	hx509_env */*env*/,
642178825Sdfr	const char */*key*/,
643178825Sdfr	const char */*value*/);
644178825Sdfr
645178825Sdfrint
646233294Sstashx509_env_add_binding (
647178825Sdfr	hx509_context /*context*/,
648233294Sstas	hx509_env */*env*/,
649233294Sstas	const char */*key*/,
650233294Sstas	hx509_env /*list*/);
651178825Sdfr
652178825Sdfrconst char *
653233294Sstashx509_env_find (
654233294Sstas	hx509_context /*context*/,
655233294Sstas	hx509_env /*env*/,
656233294Sstas	const char */*key*/);
657233294Sstas
658233294Sstashx509_env
659233294Sstashx509_env_find_binding (
660233294Sstas	hx509_context /*context*/,
661233294Sstas	hx509_env /*env*/,
662233294Sstas	const char */*key*/);
663233294Sstas
664233294Sstasvoid
665233294Sstashx509_env_free (hx509_env */*env*/);
666233294Sstas
667233294Sstasconst char *
668178825Sdfrhx509_env_lfind (
669178825Sdfr	hx509_context /*context*/,
670178825Sdfr	hx509_env /*env*/,
671178825Sdfr	const char */*key*/,
672178825Sdfr	size_t /*len*/);
673178825Sdfr
674178825Sdfrvoid
675178825Sdfrhx509_err (
676178825Sdfr	hx509_context /*context*/,
677178825Sdfr	int /*exit_code*/,
678178825Sdfr	int /*error_code*/,
679178825Sdfr	const char */*fmt*/,
680178825Sdfr	...);
681178825Sdfr
682233294Sstashx509_private_key_ops *
683233294Sstashx509_find_private_alg (const heim_oid */*oid*/);
684233294Sstas
685178825Sdfrvoid
686178825Sdfrhx509_free_error_string (char */*str*/);
687178825Sdfr
688178825Sdfrvoid
689178825Sdfrhx509_free_octet_string_list (hx509_octet_string_list */*list*/);
690178825Sdfr
691178825Sdfrint
692178825Sdfrhx509_general_name_unparse (
693178825Sdfr	GeneralName */*name*/,
694178825Sdfr	char **/*str*/);
695178825Sdfr
696178825Sdfrchar *
697178825Sdfrhx509_get_error_string (
698178825Sdfr	hx509_context /*context*/,
699178825Sdfr	int /*error_code*/);
700178825Sdfr
701178825Sdfrint
702178825Sdfrhx509_get_one_cert (
703178825Sdfr	hx509_context /*context*/,
704178825Sdfr	hx509_certs /*certs*/,
705178825Sdfr	hx509_cert */*c*/);
706178825Sdfr
707178825Sdfrint
708178825Sdfrhx509_lock_add_cert (
709178825Sdfr	hx509_context /*context*/,
710178825Sdfr	hx509_lock /*lock*/,
711178825Sdfr	hx509_cert /*cert*/);
712178825Sdfr
713178825Sdfrint
714178825Sdfrhx509_lock_add_certs (
715178825Sdfr	hx509_context /*context*/,
716178825Sdfr	hx509_lock /*lock*/,
717178825Sdfr	hx509_certs /*certs*/);
718178825Sdfr
719178825Sdfrint
720178825Sdfrhx509_lock_add_password (
721178825Sdfr	hx509_lock /*lock*/,
722178825Sdfr	const char */*password*/);
723178825Sdfr
724178825Sdfrint
725178825Sdfrhx509_lock_command_string (
726178825Sdfr	hx509_lock /*lock*/,
727178825Sdfr	const char */*string*/);
728178825Sdfr
729178825Sdfrvoid
730178825Sdfrhx509_lock_free (hx509_lock /*lock*/);
731178825Sdfr
732178825Sdfrint
733178825Sdfrhx509_lock_init (
734178825Sdfr	hx509_context /*context*/,
735178825Sdfr	hx509_lock */*lock*/);
736178825Sdfr
737178825Sdfrint
738178825Sdfrhx509_lock_prompt (
739178825Sdfr	hx509_lock /*lock*/,
740178825Sdfr	hx509_prompt */*prompt*/);
741178825Sdfr
742178825Sdfrvoid
743178825Sdfrhx509_lock_reset_certs (
744178825Sdfr	hx509_context /*context*/,
745178825Sdfr	hx509_lock /*lock*/);
746178825Sdfr
747178825Sdfrvoid
748178825Sdfrhx509_lock_reset_passwords (hx509_lock /*lock*/);
749178825Sdfr
750178825Sdfrvoid
751178825Sdfrhx509_lock_reset_promper (hx509_lock /*lock*/);
752178825Sdfr
753178825Sdfrint
754178825Sdfrhx509_lock_set_prompter (
755178825Sdfr	hx509_lock /*lock*/,
756178825Sdfr	hx509_prompter_fct /*prompt*/,
757178825Sdfr	void */*data*/);
758178825Sdfr
759178825Sdfrint
760178825Sdfrhx509_name_binary (
761178825Sdfr	const hx509_name /*name*/,
762178825Sdfr	heim_octet_string */*os*/);
763178825Sdfr
764178825Sdfrint
765178825Sdfrhx509_name_cmp (
766178825Sdfr	hx509_name /*n1*/,
767178825Sdfr	hx509_name /*n2*/);
768178825Sdfr
769178825Sdfrint
770178825Sdfrhx509_name_copy (
771178825Sdfr	hx509_context /*context*/,
772178825Sdfr	const hx509_name /*from*/,
773178825Sdfr	hx509_name */*to*/);
774178825Sdfr
775178825Sdfrint
776178825Sdfrhx509_name_expand (
777178825Sdfr	hx509_context /*context*/,
778178825Sdfr	hx509_name /*name*/,
779178825Sdfr	hx509_env /*env*/);
780178825Sdfr
781178825Sdfrvoid
782178825Sdfrhx509_name_free (hx509_name */*name*/);
783178825Sdfr
784178825Sdfrint
785178825Sdfrhx509_name_is_null_p (const hx509_name /*name*/);
786178825Sdfr
787178825Sdfrint
788178825Sdfrhx509_name_normalize (
789178825Sdfr	hx509_context /*context*/,
790178825Sdfr	hx509_name /*name*/);
791178825Sdfr
792178825Sdfrint
793178825Sdfrhx509_name_to_Name (
794178825Sdfr	const hx509_name /*from*/,
795178825Sdfr	Name */*to*/);
796178825Sdfr
797178825Sdfrint
798178825Sdfrhx509_name_to_string (
799178825Sdfr	const hx509_name /*name*/,
800178825Sdfr	char **/*str*/);
801178825Sdfr
802178825Sdfrint
803178825Sdfrhx509_ocsp_request (
804178825Sdfr	hx509_context /*context*/,
805178825Sdfr	hx509_certs /*reqcerts*/,
806178825Sdfr	hx509_certs /*pool*/,
807178825Sdfr	hx509_cert /*signer*/,
808178825Sdfr	const AlgorithmIdentifier */*digest*/,
809178825Sdfr	heim_octet_string */*request*/,
810178825Sdfr	heim_octet_string */*nonce*/);
811178825Sdfr
812178825Sdfrint
813178825Sdfrhx509_ocsp_verify (
814178825Sdfr	hx509_context /*context*/,
815178825Sdfr	time_t /*now*/,
816178825Sdfr	hx509_cert /*cert*/,
817178825Sdfr	int /*flags*/,
818178825Sdfr	const void */*data*/,
819178825Sdfr	size_t /*length*/,
820178825Sdfr	time_t */*expiration*/);
821178825Sdfr
822178825Sdfrvoid
823178825Sdfrhx509_oid_print (
824178825Sdfr	const heim_oid */*oid*/,
825178825Sdfr	hx509_vprint_func /*func*/,
826178825Sdfr	void */*ctx*/);
827178825Sdfr
828178825Sdfrint
829178825Sdfrhx509_oid_sprint (
830178825Sdfr	const heim_oid */*oid*/,
831178825Sdfr	char **/*str*/);
832178825Sdfr
833178825Sdfrint
834178825Sdfrhx509_parse_name (
835178825Sdfr	hx509_context /*context*/,
836178825Sdfr	const char */*str*/,
837178825Sdfr	hx509_name */*name*/);
838178825Sdfr
839178825Sdfrint
840233294Sstashx509_parse_private_key (
841233294Sstas	hx509_context /*context*/,
842233294Sstas	const AlgorithmIdentifier */*keyai*/,
843233294Sstas	const void */*data*/,
844233294Sstas	size_t /*len*/,
845233294Sstas	hx509_key_format_t /*format*/,
846233294Sstas	hx509_private_key */*private_key*/);
847233294Sstas
848233294Sstasint
849233294Sstashx509_peer_info_add_cms_alg (
850233294Sstas	hx509_context /*context*/,
851233294Sstas	hx509_peer_info /*peer*/,
852233294Sstas	const AlgorithmIdentifier */*val*/);
853233294Sstas
854233294Sstasint
855178825Sdfrhx509_peer_info_alloc (
856178825Sdfr	hx509_context /*context*/,
857178825Sdfr	hx509_peer_info */*peer*/);
858178825Sdfr
859178825Sdfrvoid
860178825Sdfrhx509_peer_info_free (hx509_peer_info /*peer*/);
861178825Sdfr
862178825Sdfrint
863178825Sdfrhx509_peer_info_set_cert (
864178825Sdfr	hx509_peer_info /*peer*/,
865178825Sdfr	hx509_cert /*cert*/);
866178825Sdfr
867178825Sdfrint
868178825Sdfrhx509_peer_info_set_cms_algs (
869178825Sdfr	hx509_context /*context*/,
870178825Sdfr	hx509_peer_info /*peer*/,
871178825Sdfr	const AlgorithmIdentifier */*val*/,
872178825Sdfr	size_t /*len*/);
873178825Sdfr
874178825Sdfrint
875178825Sdfrhx509_pem_add_header (
876178825Sdfr	hx509_pem_header **/*headers*/,
877178825Sdfr	const char */*header*/,
878178825Sdfr	const char */*value*/);
879178825Sdfr
880178825Sdfrconst char *
881178825Sdfrhx509_pem_find_header (
882178825Sdfr	const hx509_pem_header */*h*/,
883178825Sdfr	const char */*header*/);
884178825Sdfr
885178825Sdfrvoid
886178825Sdfrhx509_pem_free_header (hx509_pem_header */*headers*/);
887178825Sdfr
888178825Sdfrint
889178825Sdfrhx509_pem_read (
890178825Sdfr	hx509_context /*context*/,
891178825Sdfr	FILE */*f*/,
892178825Sdfr	hx509_pem_read_func /*func*/,
893178825Sdfr	void */*ctx*/);
894178825Sdfr
895178825Sdfrint
896178825Sdfrhx509_pem_write (
897178825Sdfr	hx509_context /*context*/,
898178825Sdfr	const char */*type*/,
899178825Sdfr	hx509_pem_header */*headers*/,
900178825Sdfr	FILE */*f*/,
901178825Sdfr	const void */*data*/,
902178825Sdfr	size_t /*size*/);
903178825Sdfr
904233294Sstasint
905233294Sstashx509_print_cert (
906233294Sstas	hx509_context /*context*/,
907233294Sstas	hx509_cert /*cert*/,
908233294Sstas	FILE */*out*/);
909233294Sstas
910178825Sdfrvoid
911178825Sdfrhx509_print_stdout (
912178825Sdfr	void */*ctx*/,
913178825Sdfr	const char */*fmt*/,
914178825Sdfr	va_list /*va*/);
915178825Sdfr
916178825Sdfrint
917233294Sstashx509_private_key2SPKI (
918233294Sstas	hx509_context /*context*/,
919233294Sstas	hx509_private_key /*private_key*/,
920233294Sstas	SubjectPublicKeyInfo */*spki*/);
921233294Sstas
922233294Sstasvoid
923233294Sstashx509_private_key_assign_rsa (
924233294Sstas	hx509_private_key /*key*/,
925233294Sstas	void */*ptr*/);
926233294Sstas
927233294Sstasint
928233294Sstashx509_private_key_free (hx509_private_key */*key*/);
929233294Sstas
930233294Sstasint
931233294Sstashx509_private_key_init (
932233294Sstas	hx509_private_key */*key*/,
933233294Sstas	hx509_private_key_ops */*ops*/,
934233294Sstas	void */*keydata*/);
935233294Sstas
936233294Sstasint
937233294Sstashx509_private_key_private_decrypt (
938233294Sstas	hx509_context /*context*/,
939233294Sstas	const heim_octet_string */*ciphertext*/,
940233294Sstas	const heim_oid */*encryption_oid*/,
941233294Sstas	hx509_private_key /*p*/,
942233294Sstas	heim_octet_string */*cleartext*/);
943233294Sstas
944233294Sstasint
945178825Sdfrhx509_prompt_hidden (hx509_prompt_type /*type*/);
946178825Sdfr
947178825Sdfrint
948178825Sdfrhx509_query_alloc (
949178825Sdfr	hx509_context /*context*/,
950178825Sdfr	hx509_query **/*q*/);
951178825Sdfr
952178825Sdfrvoid
953178825Sdfrhx509_query_free (
954178825Sdfr	hx509_context /*context*/,
955178825Sdfr	hx509_query */*q*/);
956178825Sdfr
957178825Sdfrint
958178825Sdfrhx509_query_match_cmp_func (
959178825Sdfr	hx509_query */*q*/,
960233294Sstas	int (*/*func*/)(hx509_context, hx509_cert, void *),
961178825Sdfr	void */*ctx*/);
962178825Sdfr
963178825Sdfrint
964233294Sstashx509_query_match_eku (
965233294Sstas	hx509_query */*q*/,
966233294Sstas	const heim_oid */*eku*/);
967233294Sstas
968233294Sstasint
969233294Sstashx509_query_match_expr (
970233294Sstas	hx509_context /*context*/,
971233294Sstas	hx509_query */*q*/,
972233294Sstas	const char */*expr*/);
973233294Sstas
974233294Sstasint
975178825Sdfrhx509_query_match_friendly_name (
976178825Sdfr	hx509_query */*q*/,
977178825Sdfr	const char */*name*/);
978178825Sdfr
979178825Sdfrint
980178825Sdfrhx509_query_match_issuer_serial (
981178825Sdfr	hx509_query */*q*/,
982178825Sdfr	const Name */*issuer*/,
983178825Sdfr	const heim_integer */*serialNumber*/);
984178825Sdfr
985178825Sdfrvoid
986178825Sdfrhx509_query_match_option (
987178825Sdfr	hx509_query */*q*/,
988178825Sdfr	hx509_query_option /*option*/);
989178825Sdfr
990178825Sdfrvoid
991178825Sdfrhx509_query_statistic_file (
992178825Sdfr	hx509_context /*context*/,
993178825Sdfr	const char */*fn*/);
994178825Sdfr
995178825Sdfrvoid
996178825Sdfrhx509_query_unparse_stats (
997178825Sdfr	hx509_context /*context*/,
998178825Sdfr	int /*printtype*/,
999178825Sdfr	FILE */*out*/);
1000178825Sdfr
1001233294Sstasvoid
1002233294Sstashx509_request_free (hx509_request */*req*/);
1003233294Sstas
1004178825Sdfrint
1005233294Sstashx509_request_get_SubjectPublicKeyInfo (
1006233294Sstas	hx509_context /*context*/,
1007233294Sstas	hx509_request /*req*/,
1008233294Sstas	SubjectPublicKeyInfo */*key*/);
1009233294Sstas
1010233294Sstasint
1011233294Sstashx509_request_get_name (
1012233294Sstas	hx509_context /*context*/,
1013233294Sstas	hx509_request /*req*/,
1014233294Sstas	hx509_name */*name*/);
1015233294Sstas
1016233294Sstasint
1017233294Sstashx509_request_init (
1018233294Sstas	hx509_context /*context*/,
1019233294Sstas	hx509_request */*req*/);
1020233294Sstas
1021233294Sstasint
1022233294Sstashx509_request_set_SubjectPublicKeyInfo (
1023233294Sstas	hx509_context /*context*/,
1024233294Sstas	hx509_request /*req*/,
1025233294Sstas	const SubjectPublicKeyInfo */*key*/);
1026233294Sstas
1027233294Sstasint
1028233294Sstashx509_request_set_name (
1029233294Sstas	hx509_context /*context*/,
1030233294Sstas	hx509_request /*req*/,
1031233294Sstas	hx509_name /*name*/);
1032233294Sstas
1033233294Sstasint
1034178825Sdfrhx509_revoke_add_crl (
1035178825Sdfr	hx509_context /*context*/,
1036178825Sdfr	hx509_revoke_ctx /*ctx*/,
1037178825Sdfr	const char */*path*/);
1038178825Sdfr
1039178825Sdfrint
1040178825Sdfrhx509_revoke_add_ocsp (
1041178825Sdfr	hx509_context /*context*/,
1042178825Sdfr	hx509_revoke_ctx /*ctx*/,
1043178825Sdfr	const char */*path*/);
1044178825Sdfr
1045178825Sdfrvoid
1046178825Sdfrhx509_revoke_free (hx509_revoke_ctx */*ctx*/);
1047178825Sdfr
1048178825Sdfrint
1049178825Sdfrhx509_revoke_init (
1050178825Sdfr	hx509_context /*context*/,
1051178825Sdfr	hx509_revoke_ctx */*ctx*/);
1052178825Sdfr
1053178825Sdfrint
1054178825Sdfrhx509_revoke_ocsp_print (
1055178825Sdfr	hx509_context /*context*/,
1056178825Sdfr	const char */*path*/,
1057178825Sdfr	FILE */*out*/);
1058178825Sdfr
1059178825Sdfrint
1060178825Sdfrhx509_revoke_verify (
1061178825Sdfr	hx509_context /*context*/,
1062178825Sdfr	hx509_revoke_ctx /*ctx*/,
1063178825Sdfr	hx509_certs /*certs*/,
1064178825Sdfr	time_t /*now*/,
1065178825Sdfr	hx509_cert /*cert*/,
1066178825Sdfr	hx509_cert /*parent_cert*/);
1067178825Sdfr
1068178825Sdfrvoid
1069178825Sdfrhx509_set_error_string (
1070178825Sdfr	hx509_context /*context*/,
1071178825Sdfr	int /*flags*/,
1072178825Sdfr	int /*code*/,
1073178825Sdfr	const char */*fmt*/,
1074178825Sdfr	...);
1075178825Sdfr
1076178825Sdfrvoid
1077178825Sdfrhx509_set_error_stringv (
1078178825Sdfr	hx509_context /*context*/,
1079178825Sdfr	int /*flags*/,
1080178825Sdfr	int /*code*/,
1081178825Sdfr	const char */*fmt*/,
1082178825Sdfr	va_list /*ap*/);
1083178825Sdfr
1084178825Sdfrconst AlgorithmIdentifier *
1085233294Sstashx509_signature_ecPublicKey (void);
1086178825Sdfr
1087178825Sdfrconst AlgorithmIdentifier *
1088233294Sstashx509_signature_ecdsa_with_sha1 (void);
1089233294Sstas
1090233294Sstasconst AlgorithmIdentifier *
1091233294Sstashx509_signature_ecdsa_with_sha256 (void);
1092233294Sstas
1093233294Sstasconst AlgorithmIdentifier *
1094178825Sdfrhx509_signature_md5 (void);
1095178825Sdfr
1096178825Sdfrconst AlgorithmIdentifier *
1097178825Sdfrhx509_signature_rsa (void);
1098178825Sdfr
1099178825Sdfrconst AlgorithmIdentifier *
1100178825Sdfrhx509_signature_rsa_pkcs1_x509 (void);
1101178825Sdfr
1102178825Sdfrconst AlgorithmIdentifier *
1103178825Sdfrhx509_signature_rsa_with_md5 (void);
1104178825Sdfr
1105178825Sdfrconst AlgorithmIdentifier *
1106178825Sdfrhx509_signature_rsa_with_sha1 (void);
1107178825Sdfr
1108178825Sdfrconst AlgorithmIdentifier *
1109178825Sdfrhx509_signature_rsa_with_sha256 (void);
1110178825Sdfr
1111178825Sdfrconst AlgorithmIdentifier *
1112178825Sdfrhx509_signature_rsa_with_sha384 (void);
1113178825Sdfr
1114178825Sdfrconst AlgorithmIdentifier *
1115178825Sdfrhx509_signature_rsa_with_sha512 (void);
1116178825Sdfr
1117178825Sdfrconst AlgorithmIdentifier *
1118178825Sdfrhx509_signature_sha1 (void);
1119178825Sdfr
1120178825Sdfrconst AlgorithmIdentifier *
1121178825Sdfrhx509_signature_sha256 (void);
1122178825Sdfr
1123178825Sdfrconst AlgorithmIdentifier *
1124178825Sdfrhx509_signature_sha384 (void);
1125178825Sdfr
1126178825Sdfrconst AlgorithmIdentifier *
1127178825Sdfrhx509_signature_sha512 (void);
1128178825Sdfr
1129178825Sdfrint
1130178825Sdfrhx509_unparse_der_name (
1131178825Sdfr	const void */*data*/,
1132178825Sdfr	size_t /*length*/,
1133178825Sdfr	char **/*str*/);
1134178825Sdfr
1135178825Sdfrint
1136178825Sdfrhx509_validate_cert (
1137178825Sdfr	hx509_context /*context*/,
1138178825Sdfr	hx509_validate_ctx /*ctx*/,
1139178825Sdfr	hx509_cert /*cert*/);
1140178825Sdfr
1141178825Sdfrvoid
1142178825Sdfrhx509_validate_ctx_add_flags (
1143178825Sdfr	hx509_validate_ctx /*ctx*/,
1144178825Sdfr	int /*flags*/);
1145178825Sdfr
1146178825Sdfrvoid
1147178825Sdfrhx509_validate_ctx_free (hx509_validate_ctx /*ctx*/);
1148178825Sdfr
1149178825Sdfrint
1150178825Sdfrhx509_validate_ctx_init (
1151178825Sdfr	hx509_context /*context*/,
1152178825Sdfr	hx509_validate_ctx */*ctx*/);
1153178825Sdfr
1154178825Sdfrvoid
1155178825Sdfrhx509_validate_ctx_set_print (
1156178825Sdfr	hx509_validate_ctx /*ctx*/,
1157178825Sdfr	hx509_vprint_func /*func*/,
1158178825Sdfr	void */*c*/);
1159178825Sdfr
1160178825Sdfrvoid
1161178825Sdfrhx509_verify_attach_anchors (
1162178825Sdfr	hx509_verify_ctx /*ctx*/,
1163178825Sdfr	hx509_certs /*set*/);
1164178825Sdfr
1165178825Sdfrvoid
1166178825Sdfrhx509_verify_attach_revoke (
1167178825Sdfr	hx509_verify_ctx /*ctx*/,
1168178825Sdfr	hx509_revoke_ctx /*revoke_ctx*/);
1169178825Sdfr
1170178825Sdfrvoid
1171233294Sstashx509_verify_ctx_f_allow_best_before_signature_algs (
1172233294Sstas	hx509_context /*ctx*/,
1173233294Sstas	int /*boolean*/);
1174233294Sstas
1175233294Sstasvoid
1176178825Sdfrhx509_verify_ctx_f_allow_default_trustanchors (
1177178825Sdfr	hx509_verify_ctx /*ctx*/,
1178178825Sdfr	int /*boolean*/);
1179178825Sdfr
1180178825Sdfrvoid
1181178825Sdfrhx509_verify_destroy_ctx (hx509_verify_ctx /*ctx*/);
1182178825Sdfr
1183178825Sdfrint
1184178825Sdfrhx509_verify_hostname (
1185178825Sdfr	hx509_context /*context*/,
1186178825Sdfr	const hx509_cert /*cert*/,
1187178825Sdfr	int /*flags*/,
1188178825Sdfr	hx509_hostname_type /*type*/,
1189178825Sdfr	const char */*hostname*/,
1190178825Sdfr	const struct sockaddr */*sa*/,
1191178825Sdfr	int /*sa_size*/);
1192178825Sdfr
1193178825Sdfrint
1194178825Sdfrhx509_verify_init_ctx (
1195178825Sdfr	hx509_context /*context*/,
1196178825Sdfr	hx509_verify_ctx */*ctx*/);
1197178825Sdfr
1198178825Sdfrint
1199178825Sdfrhx509_verify_path (
1200178825Sdfr	hx509_context /*context*/,
1201178825Sdfr	hx509_verify_ctx /*ctx*/,
1202178825Sdfr	hx509_cert /*cert*/,
1203178825Sdfr	hx509_certs /*pool*/);
1204178825Sdfr
1205178825Sdfrvoid
1206178825Sdfrhx509_verify_set_max_depth (
1207178825Sdfr	hx509_verify_ctx /*ctx*/,
1208178825Sdfr	unsigned int /*max_depth*/);
1209178825Sdfr
1210178825Sdfrvoid
1211178825Sdfrhx509_verify_set_proxy_certificate (
1212178825Sdfr	hx509_verify_ctx /*ctx*/,
1213178825Sdfr	int /*boolean*/);
1214178825Sdfr
1215178825Sdfrvoid
1216178825Sdfrhx509_verify_set_strict_rfc3280_verification (
1217178825Sdfr	hx509_verify_ctx /*ctx*/,
1218178825Sdfr	int /*boolean*/);
1219178825Sdfr
1220178825Sdfrvoid
1221178825Sdfrhx509_verify_set_time (
1222178825Sdfr	hx509_verify_ctx /*ctx*/,
1223178825Sdfr	time_t /*t*/);
1224178825Sdfr
1225178825Sdfrint
1226178825Sdfrhx509_verify_signature (
1227178825Sdfr	hx509_context /*context*/,
1228178825Sdfr	const hx509_cert /*signer*/,
1229178825Sdfr	const AlgorithmIdentifier */*alg*/,
1230178825Sdfr	const heim_octet_string */*data*/,
1231178825Sdfr	const heim_octet_string */*sig*/);
1232178825Sdfr
1233178825Sdfrvoid
1234178825Sdfrhx509_xfree (void */*ptr*/);
1235178825Sdfr
1236233294Sstasint
1237233294Sstasyywrap (void);
1238233294Sstas
1239178825Sdfr#ifdef __cplusplus
1240178825Sdfr}
1241178825Sdfr#endif
1242178825Sdfr
1243178825Sdfr#endif /* __hx509_protos_h__ */
1244