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