1178825Sdfr/* This is a generated file */
2178825Sdfr#ifndef __hx509_private_h__
3178825Sdfr#define __hx509_private_h__
4178825Sdfr
5178825Sdfr#include <stdarg.h>
6178825Sdfr
7178825Sdfr#if !defined(__GNUC__) && !defined(__attribute__)
8178825Sdfr#define __attribute__(x)
9178825Sdfr#endif
10178825Sdfr
11178825Sdfrint
12178825Sdfr_hx509_AlgorithmIdentifier_cmp (
13178825Sdfr	const AlgorithmIdentifier */*p*/,
14178825Sdfr	const AlgorithmIdentifier */*q*/);
15178825Sdfr
16178825Sdfrint
17178825Sdfr_hx509_Certificate_cmp (
18178825Sdfr	const Certificate */*p*/,
19178825Sdfr	const Certificate */*q*/);
20178825Sdfr
21178825Sdfrint
22178825Sdfr_hx509_Name_to_string (
23178825Sdfr	const Name */*n*/,
24178825Sdfr	char **/*str*/);
25178825Sdfr
26178825Sdfrtime_t
27178825Sdfr_hx509_Time2time_t (const Time */*t*/);
28178825Sdfr
29178825Sdfrvoid
30178825Sdfr_hx509_abort (
31178825Sdfr	const char */*fmt*/,
32178825Sdfr	...)
33233294Sstas     __attribute__ ((noreturn, format (printf, 1, 2)));
34178825Sdfr
35178825Sdfrint
36178825Sdfr_hx509_calculate_path (
37178825Sdfr	hx509_context /*context*/,
38178825Sdfr	int /*flags*/,
39178825Sdfr	time_t /*time_now*/,
40178825Sdfr	hx509_certs /*anchors*/,
41178825Sdfr	unsigned int /*max_depth*/,
42178825Sdfr	hx509_cert /*cert*/,
43178825Sdfr	hx509_certs /*pool*/,
44178825Sdfr	hx509_path */*path*/);
45178825Sdfr
46178825Sdfrint
47178825Sdfr_hx509_cert_assign_key (
48178825Sdfr	hx509_cert /*cert*/,
49178825Sdfr	hx509_private_key /*private_key*/);
50178825Sdfr
51178825Sdfrint
52178825Sdfr_hx509_cert_get_eku (
53178825Sdfr	hx509_context /*context*/,
54178825Sdfr	hx509_cert /*cert*/,
55178825Sdfr	ExtKeyUsage */*e*/);
56178825Sdfr
57178825Sdfrint
58178825Sdfr_hx509_cert_get_keyusage (
59178825Sdfr	hx509_context /*context*/,
60178825Sdfr	hx509_cert /*c*/,
61178825Sdfr	KeyUsage */*ku*/);
62178825Sdfr
63178825Sdfrint
64178825Sdfr_hx509_cert_get_version (const Certificate */*t*/);
65178825Sdfr
66178825Sdfrint
67178825Sdfr_hx509_cert_is_parent_cmp (
68178825Sdfr	const Certificate */*subject*/,
69178825Sdfr	const Certificate */*issuer*/,
70178825Sdfr	int /*allow_self_signed*/);
71178825Sdfr
72178825Sdfrint
73178825Sdfr_hx509_cert_private_decrypt (
74178825Sdfr	hx509_context /*context*/,
75178825Sdfr	const heim_octet_string */*ciphertext*/,
76178825Sdfr	const heim_oid */*encryption_oid*/,
77178825Sdfr	hx509_cert /*p*/,
78178825Sdfr	heim_octet_string */*cleartext*/);
79178825Sdfr
80178825Sdfrhx509_private_key
81178825Sdfr_hx509_cert_private_key (hx509_cert /*p*/);
82178825Sdfr
83178825Sdfrint
84178825Sdfr_hx509_cert_private_key_exportable (hx509_cert /*p*/);
85178825Sdfr
86178825Sdfrvoid
87178825Sdfr_hx509_cert_set_release (
88178825Sdfr	hx509_cert /*cert*/,
89178825Sdfr	_hx509_cert_release_func /*release*/,
90178825Sdfr	void */*ctx*/);
91178825Sdfr
92178825Sdfrint
93233294Sstas_hx509_cert_to_env (
94233294Sstas	hx509_context /*context*/,
95233294Sstas	hx509_cert /*cert*/,
96233294Sstas	hx509_env */*env*/);
97233294Sstas
98233294Sstasint
99178825Sdfr_hx509_certs_keys_add (
100178825Sdfr	hx509_context /*context*/,
101178825Sdfr	hx509_certs /*certs*/,
102178825Sdfr	hx509_private_key /*key*/);
103178825Sdfr
104178825Sdfrvoid
105178825Sdfr_hx509_certs_keys_free (
106178825Sdfr	hx509_context /*context*/,
107178825Sdfr	hx509_private_key */*keys*/);
108178825Sdfr
109178825Sdfrint
110178825Sdfr_hx509_certs_keys_get (
111178825Sdfr	hx509_context /*context*/,
112178825Sdfr	hx509_certs /*certs*/,
113178825Sdfr	hx509_private_key **/*keys*/);
114178825Sdfr
115178825Sdfrint
116178825Sdfr_hx509_check_key_usage (
117178825Sdfr	hx509_context /*context*/,
118178825Sdfr	hx509_cert /*cert*/,
119178825Sdfr	unsigned /*flags*/,
120178825Sdfr	int /*req_present*/);
121178825Sdfr
122178825Sdfrint
123178825Sdfr_hx509_collector_alloc (
124178825Sdfr	hx509_context /*context*/,
125178825Sdfr	hx509_lock /*lock*/,
126178825Sdfr	struct hx509_collector **/*collector*/);
127178825Sdfr
128178825Sdfrint
129178825Sdfr_hx509_collector_certs_add (
130178825Sdfr	hx509_context /*context*/,
131178825Sdfr	struct hx509_collector */*c*/,
132178825Sdfr	hx509_cert /*cert*/);
133178825Sdfr
134178825Sdfrint
135178825Sdfr_hx509_collector_collect_certs (
136178825Sdfr	hx509_context /*context*/,
137178825Sdfr	struct hx509_collector */*c*/,
138178825Sdfr	hx509_certs */*ret_certs*/);
139178825Sdfr
140178825Sdfrint
141178825Sdfr_hx509_collector_collect_private_keys (
142178825Sdfr	hx509_context /*context*/,
143178825Sdfr	struct hx509_collector */*c*/,
144178825Sdfr	hx509_private_key **/*keys*/);
145178825Sdfr
146178825Sdfrvoid
147178825Sdfr_hx509_collector_free (struct hx509_collector */*c*/);
148178825Sdfr
149178825Sdfrhx509_lock
150178825Sdfr_hx509_collector_get_lock (struct hx509_collector */*c*/);
151178825Sdfr
152178825Sdfrint
153178825Sdfr_hx509_collector_private_key_add (
154178825Sdfr	hx509_context /*context*/,
155178825Sdfr	struct hx509_collector */*c*/,
156178825Sdfr	const AlgorithmIdentifier */*alg*/,
157178825Sdfr	hx509_private_key /*private_key*/,
158178825Sdfr	const heim_octet_string */*key_data*/,
159178825Sdfr	const heim_octet_string */*localKeyId*/);
160178825Sdfr
161178825Sdfrint
162178825Sdfr_hx509_create_signature (
163178825Sdfr	hx509_context /*context*/,
164178825Sdfr	const hx509_private_key /*signer*/,
165178825Sdfr	const AlgorithmIdentifier */*alg*/,
166178825Sdfr	const heim_octet_string */*data*/,
167178825Sdfr	AlgorithmIdentifier */*signatureAlgorithm*/,
168178825Sdfr	heim_octet_string */*sig*/);
169178825Sdfr
170178825Sdfrint
171178825Sdfr_hx509_create_signature_bitstring (
172178825Sdfr	hx509_context /*context*/,
173178825Sdfr	const hx509_private_key /*signer*/,
174178825Sdfr	const AlgorithmIdentifier */*alg*/,
175178825Sdfr	const heim_octet_string */*data*/,
176178825Sdfr	AlgorithmIdentifier */*signatureAlgorithm*/,
177178825Sdfr	heim_bit_string */*sig*/);
178178825Sdfr
179178825Sdfrint
180233294Sstas_hx509_expr_eval (
181233294Sstas	hx509_context /*context*/,
182233294Sstas	hx509_env /*env*/,
183233294Sstas	struct hx_expr */*expr*/);
184233294Sstas
185233294Sstasvoid
186233294Sstas_hx509_expr_free (struct hx_expr */*expr*/);
187233294Sstas
188233294Sstasstruct hx_expr *
189233294Sstas_hx509_expr_parse (const char */*buf*/);
190233294Sstas
191233294Sstasint
192178825Sdfr_hx509_find_extension_subject_key_id (
193178825Sdfr	const Certificate */*issuer*/,
194178825Sdfr	SubjectKeyIdentifier */*si*/);
195178825Sdfr
196178825Sdfrint
197178825Sdfr_hx509_generate_private_key (
198178825Sdfr	hx509_context /*context*/,
199178825Sdfr	struct hx509_generate_private_context */*ctx*/,
200178825Sdfr	hx509_private_key */*private_key*/);
201178825Sdfr
202178825Sdfrint
203178825Sdfr_hx509_generate_private_key_bits (
204178825Sdfr	hx509_context /*context*/,
205178825Sdfr	struct hx509_generate_private_context */*ctx*/,
206178825Sdfr	unsigned long /*bits*/);
207178825Sdfr
208178825Sdfrvoid
209178825Sdfr_hx509_generate_private_key_free (struct hx509_generate_private_context **/*ctx*/);
210178825Sdfr
211178825Sdfrint
212178825Sdfr_hx509_generate_private_key_init (
213178825Sdfr	hx509_context /*context*/,
214178825Sdfr	const heim_oid */*oid*/,
215178825Sdfr	struct hx509_generate_private_context **/*ctx*/);
216178825Sdfr
217178825Sdfrint
218178825Sdfr_hx509_generate_private_key_is_ca (
219178825Sdfr	hx509_context /*context*/,
220178825Sdfr	struct hx509_generate_private_context */*ctx*/);
221178825Sdfr
222178825SdfrCertificate *
223178825Sdfr_hx509_get_cert (hx509_cert /*cert*/);
224178825Sdfr
225178825Sdfrvoid
226178825Sdfr_hx509_ks_dir_register (hx509_context /*context*/);
227178825Sdfr
228178825Sdfrvoid
229178825Sdfr_hx509_ks_file_register (hx509_context /*context*/);
230178825Sdfr
231178825Sdfrvoid
232178825Sdfr_hx509_ks_keychain_register (hx509_context /*context*/);
233178825Sdfr
234178825Sdfrvoid
235178825Sdfr_hx509_ks_mem_register (hx509_context /*context*/);
236178825Sdfr
237178825Sdfrvoid
238178825Sdfr_hx509_ks_null_register (hx509_context /*context*/);
239178825Sdfr
240178825Sdfrvoid
241178825Sdfr_hx509_ks_pkcs11_register (hx509_context /*context*/);
242178825Sdfr
243178825Sdfrvoid
244178825Sdfr_hx509_ks_pkcs12_register (hx509_context /*context*/);
245178825Sdfr
246178825Sdfrvoid
247178825Sdfr_hx509_ks_register (
248178825Sdfr	hx509_context /*context*/,
249178825Sdfr	struct hx509_keyset_ops */*ops*/);
250178825Sdfr
251178825Sdfrint
252178825Sdfr_hx509_lock_find_cert (
253178825Sdfr	hx509_lock /*lock*/,
254178825Sdfr	const hx509_query */*q*/,
255178825Sdfr	hx509_cert */*c*/);
256178825Sdfr
257178825Sdfrconst struct _hx509_password *
258178825Sdfr_hx509_lock_get_passwords (hx509_lock /*lock*/);
259178825Sdfr
260178825Sdfrhx509_certs
261178825Sdfr_hx509_lock_unlock_certs (hx509_lock /*lock*/);
262178825Sdfr
263233294Sstasstruct hx_expr *
264233294Sstas_hx509_make_expr (
265233294Sstas	enum hx_expr_op /*op*/,
266233294Sstas	void */*arg1*/,
267233294Sstas	void */*arg2*/);
268178825Sdfr
269178825Sdfrint
270178825Sdfr_hx509_map_file_os (
271178825Sdfr	const char */*fn*/,
272233294Sstas	heim_octet_string */*os*/);
273178825Sdfr
274178825Sdfrint
275178825Sdfr_hx509_match_keys (
276178825Sdfr	hx509_cert /*c*/,
277233294Sstas	hx509_private_key /*key*/);
278178825Sdfr
279178825Sdfrint
280178825Sdfr_hx509_name_cmp (
281178825Sdfr	const Name */*n1*/,
282233294Sstas	const Name */*n2*/,
283233294Sstas	int */*c*/);
284178825Sdfr
285178825Sdfrint
286178825Sdfr_hx509_name_ds_cmp (
287178825Sdfr	const DirectoryString */*ds1*/,
288233294Sstas	const DirectoryString */*ds2*/,
289233294Sstas	int */*diff*/);
290178825Sdfr
291178825Sdfrint
292178825Sdfr_hx509_name_from_Name (
293178825Sdfr	const Name */*n*/,
294178825Sdfr	hx509_name */*name*/);
295178825Sdfr
296178825Sdfrint
297178825Sdfr_hx509_name_modify (
298178825Sdfr	hx509_context /*context*/,
299178825Sdfr	Name */*name*/,
300178825Sdfr	int /*append*/,
301178825Sdfr	const heim_oid */*oid*/,
302178825Sdfr	const char */*str*/);
303178825Sdfr
304178825Sdfrint
305178825Sdfr_hx509_path_append (
306178825Sdfr	hx509_context /*context*/,
307178825Sdfr	hx509_path */*path*/,
308178825Sdfr	hx509_cert /*cert*/);
309178825Sdfr
310178825Sdfrvoid
311178825Sdfr_hx509_path_free (hx509_path */*path*/);
312178825Sdfr
313178825Sdfrint
314178825Sdfr_hx509_pbe_decrypt (
315178825Sdfr	hx509_context /*context*/,
316178825Sdfr	hx509_lock /*lock*/,
317178825Sdfr	const AlgorithmIdentifier */*ai*/,
318178825Sdfr	const heim_octet_string */*econtent*/,
319178825Sdfr	heim_octet_string */*content*/);
320178825Sdfr
321178825Sdfrint
322178825Sdfr_hx509_pbe_encrypt (
323178825Sdfr	hx509_context /*context*/,
324178825Sdfr	hx509_lock /*lock*/,
325178825Sdfr	const AlgorithmIdentifier */*ai*/,
326178825Sdfr	const heim_octet_string */*content*/,
327178825Sdfr	heim_octet_string */*econtent*/);
328178825Sdfr
329178825Sdfrvoid
330178825Sdfr_hx509_pi_printf (
331178825Sdfr	int (*/*func*/)(void *, const char *),
332178825Sdfr	void */*ctx*/,
333178825Sdfr	const char */*fmt*/,
334178825Sdfr	...);
335178825Sdfr
336178825Sdfrint
337178825Sdfr_hx509_private_key_export (
338178825Sdfr	hx509_context /*context*/,
339178825Sdfr	const hx509_private_key /*key*/,
340233294Sstas	hx509_key_format_t /*format*/,
341178825Sdfr	heim_octet_string */*data*/);
342178825Sdfr
343178825Sdfrint
344178825Sdfr_hx509_private_key_exportable (hx509_private_key /*key*/);
345178825Sdfr
346178825SdfrBIGNUM *
347178825Sdfr_hx509_private_key_get_internal (
348178825Sdfr	hx509_context /*context*/,
349178825Sdfr	hx509_private_key /*key*/,
350178825Sdfr	const char */*type*/);
351178825Sdfr
352178825Sdfrint
353178825Sdfr_hx509_private_key_oid (
354178825Sdfr	hx509_context /*context*/,
355178825Sdfr	const hx509_private_key /*key*/,
356178825Sdfr	heim_oid */*data*/);
357178825Sdfr
358178825Sdfrhx509_private_key
359178825Sdfr_hx509_private_key_ref (hx509_private_key /*key*/);
360178825Sdfr
361178825Sdfrconst char *
362178825Sdfr_hx509_private_pem_name (hx509_private_key /*key*/);
363178825Sdfr
364178825Sdfrint
365178825Sdfr_hx509_public_encrypt (
366178825Sdfr	hx509_context /*context*/,
367178825Sdfr	const heim_octet_string */*cleartext*/,
368178825Sdfr	const Certificate */*cert*/,
369178825Sdfr	heim_oid */*encryption_oid*/,
370178825Sdfr	heim_octet_string */*ciphertext*/);
371178825Sdfr
372178825Sdfrvoid
373178825Sdfr_hx509_query_clear (hx509_query */*q*/);
374178825Sdfr
375178825Sdfrint
376178825Sdfr_hx509_query_match_cert (
377178825Sdfr	hx509_context /*context*/,
378178825Sdfr	const hx509_query */*q*/,
379178825Sdfr	hx509_cert /*cert*/);
380178825Sdfr
381178825Sdfrvoid
382178825Sdfr_hx509_query_statistic (
383178825Sdfr	hx509_context /*context*/,
384178825Sdfr	int /*type*/,
385178825Sdfr	const hx509_query */*q*/);
386178825Sdfr
387178825Sdfrint
388178825Sdfr_hx509_request_add_dns_name (
389178825Sdfr	hx509_context /*context*/,
390178825Sdfr	hx509_request /*req*/,
391178825Sdfr	const char */*hostname*/);
392178825Sdfr
393178825Sdfrint
394178825Sdfr_hx509_request_add_eku (
395178825Sdfr	hx509_context /*context*/,
396178825Sdfr	hx509_request /*req*/,
397178825Sdfr	const heim_oid */*oid*/);
398178825Sdfr
399178825Sdfrint
400178825Sdfr_hx509_request_add_email (
401178825Sdfr	hx509_context /*context*/,
402178825Sdfr	hx509_request /*req*/,
403178825Sdfr	const char */*email*/);
404178825Sdfr
405178825Sdfrint
406178825Sdfr_hx509_request_parse (
407178825Sdfr	hx509_context /*context*/,
408178825Sdfr	const char */*path*/,
409178825Sdfr	hx509_request */*req*/);
410178825Sdfr
411178825Sdfrint
412178825Sdfr_hx509_request_print (
413178825Sdfr	hx509_context /*context*/,
414178825Sdfr	hx509_request /*req*/,
415178825Sdfr	FILE */*f*/);
416178825Sdfr
417178825Sdfrint
418178825Sdfr_hx509_request_to_pkcs10 (
419178825Sdfr	hx509_context /*context*/,
420178825Sdfr	const hx509_request /*req*/,
421178825Sdfr	const hx509_private_key /*signer*/,
422178825Sdfr	heim_octet_string */*request*/);
423178825Sdfr
424178825Sdfrhx509_revoke_ctx
425178825Sdfr_hx509_revoke_ref (hx509_revoke_ctx /*ctx*/);
426178825Sdfr
427233294Sstasvoid
428233294Sstas_hx509_sel_yyerror (const char */*s*/);
429233294Sstas
430178825Sdfrint
431233294Sstas_hx509_self_signed_valid (
432233294Sstas	hx509_context /*context*/,
433233294Sstas	const AlgorithmIdentifier */*alg*/);
434233294Sstas
435233294Sstasint
436178825Sdfr_hx509_set_cert_attribute (
437178825Sdfr	hx509_context /*context*/,
438178825Sdfr	hx509_cert /*cert*/,
439178825Sdfr	const heim_oid */*oid*/,
440178825Sdfr	const heim_octet_string */*attr*/);
441178825Sdfr
442233294Sstasint
443233294Sstas_hx509_signature_best_before (
444233294Sstas	hx509_context /*context*/,
445233294Sstas	const AlgorithmIdentifier */*alg*/,
446233294Sstas	time_t /*t*/);
447178825Sdfr
448178825Sdfrvoid
449178825Sdfr_hx509_unmap_file_os (heim_octet_string */*os*/);
450178825Sdfr
451178825Sdfrint
452178825Sdfr_hx509_unparse_Name (
453178825Sdfr	const Name */*aname*/,
454178825Sdfr	char **/*str*/);
455178825Sdfr
456233294Sstastime_t
457233294Sstas_hx509_verify_get_time (hx509_verify_ctx /*ctx*/);
458233294Sstas
459178825Sdfrint
460178825Sdfr_hx509_verify_signature (
461178825Sdfr	hx509_context /*context*/,
462233294Sstas	const hx509_cert /*cert*/,
463178825Sdfr	const AlgorithmIdentifier */*alg*/,
464178825Sdfr	const heim_octet_string */*data*/,
465178825Sdfr	const heim_octet_string */*sig*/);
466178825Sdfr
467178825Sdfrint
468178825Sdfr_hx509_verify_signature_bitstring (
469178825Sdfr	hx509_context /*context*/,
470233294Sstas	const hx509_cert /*signer*/,
471178825Sdfr	const AlgorithmIdentifier */*alg*/,
472178825Sdfr	const heim_octet_string */*data*/,
473178825Sdfr	const heim_bit_string */*sig*/);
474178825Sdfr
475178825Sdfrint
476178825Sdfr_hx509_write_file (
477178825Sdfr	const char */*fn*/,
478178825Sdfr	const void */*data*/,
479178825Sdfr	size_t /*length*/);
480178825Sdfr
481178825Sdfr#endif /* __hx509_private_h__ */
482