]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - crypto/heimdal/lib/hx509/hx509-protos.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / crypto / heimdal / lib / hx509 / hx509-protos.h
1 /* This is a generated file */
2 #ifndef __hx509_protos_h__
3 #define __hx509_protos_h__
4
5 #include <stdarg.h>
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10
11 #ifndef HX509_LIB_FUNCTION
12 #if defined(_WIN32)
13 #define HX509_LIB_FUNCTION _stdcall
14 #else
15 #define HX509_LIB_FUNCTION
16 #endif
17 #endif
18
19 void
20 hx509_bitstring_print (
21         const heim_bit_string */*b*/,
22         hx509_vprint_func /*func*/,
23         void */*ctx*/);
24
25 int
26 hx509_ca_sign (
27         hx509_context /*context*/,
28         hx509_ca_tbs /*tbs*/,
29         hx509_cert /*signer*/,
30         hx509_cert */*certificate*/);
31
32 int
33 hx509_ca_sign_self (
34         hx509_context /*context*/,
35         hx509_ca_tbs /*tbs*/,
36         hx509_private_key /*signer*/,
37         hx509_cert */*certificate*/);
38
39 int
40 hx509_ca_tbs_add_crl_dp_uri (
41         hx509_context /*context*/,
42         hx509_ca_tbs /*tbs*/,
43         const char */*uri*/,
44         hx509_name /*issuername*/);
45
46 int
47 hx509_ca_tbs_add_eku (
48         hx509_context /*context*/,
49         hx509_ca_tbs /*tbs*/,
50         const heim_oid */*oid*/);
51
52 int
53 hx509_ca_tbs_add_san_hostname (
54         hx509_context /*context*/,
55         hx509_ca_tbs /*tbs*/,
56         const char */*dnsname*/);
57
58 int
59 hx509_ca_tbs_add_san_jid (
60         hx509_context /*context*/,
61         hx509_ca_tbs /*tbs*/,
62         const char */*jid*/);
63
64 int
65 hx509_ca_tbs_add_san_ms_upn (
66         hx509_context /*context*/,
67         hx509_ca_tbs /*tbs*/,
68         const char */*principal*/);
69
70 int
71 hx509_ca_tbs_add_san_otherName (
72         hx509_context /*context*/,
73         hx509_ca_tbs /*tbs*/,
74         const heim_oid */*oid*/,
75         const heim_octet_string */*os*/);
76
77 int
78 hx509_ca_tbs_add_san_pkinit (
79         hx509_context /*context*/,
80         hx509_ca_tbs /*tbs*/,
81         const char */*principal*/);
82
83 int
84 hx509_ca_tbs_add_san_rfc822name (
85         hx509_context /*context*/,
86         hx509_ca_tbs /*tbs*/,
87         const char */*rfc822Name*/);
88
89 void
90 hx509_ca_tbs_free (hx509_ca_tbs */*tbs*/);
91
92 int
93 hx509_ca_tbs_init (
94         hx509_context /*context*/,
95         hx509_ca_tbs */*tbs*/);
96
97 int
98 hx509_ca_tbs_set_ca (
99         hx509_context /*context*/,
100         hx509_ca_tbs /*tbs*/,
101         int /*pathLenConstraint*/);
102
103 int
104 hx509_ca_tbs_set_domaincontroller (
105         hx509_context /*context*/,
106         hx509_ca_tbs /*tbs*/);
107
108 int
109 hx509_ca_tbs_set_notAfter (
110         hx509_context /*context*/,
111         hx509_ca_tbs /*tbs*/,
112         time_t /*t*/);
113
114 int
115 hx509_ca_tbs_set_notAfter_lifetime (
116         hx509_context /*context*/,
117         hx509_ca_tbs /*tbs*/,
118         time_t /*delta*/);
119
120 int
121 hx509_ca_tbs_set_notBefore (
122         hx509_context /*context*/,
123         hx509_ca_tbs /*tbs*/,
124         time_t /*t*/);
125
126 int
127 hx509_ca_tbs_set_proxy (
128         hx509_context /*context*/,
129         hx509_ca_tbs /*tbs*/,
130         int /*pathLenConstraint*/);
131
132 int
133 hx509_ca_tbs_set_serialnumber (
134         hx509_context /*context*/,
135         hx509_ca_tbs /*tbs*/,
136         const heim_integer */*serialNumber*/);
137
138 int
139 hx509_ca_tbs_set_spki (
140         hx509_context /*context*/,
141         hx509_ca_tbs /*tbs*/,
142         const SubjectPublicKeyInfo */*spki*/);
143
144 int
145 hx509_ca_tbs_set_subject (
146         hx509_context /*context*/,
147         hx509_ca_tbs /*tbs*/,
148         hx509_name /*subject*/);
149
150 int
151 hx509_ca_tbs_set_template (
152         hx509_context /*context*/,
153         hx509_ca_tbs /*tbs*/,
154         int /*flags*/,
155         hx509_cert /*cert*/);
156
157 int
158 hx509_ca_tbs_subject_expand (
159         hx509_context /*context*/,
160         hx509_ca_tbs /*tbs*/,
161         hx509_env /*env*/);
162
163 const struct units *
164 hx509_ca_tbs_template_units (void);
165
166 int
167 hx509_cert_binary (
168         hx509_context /*context*/,
169         hx509_cert /*c*/,
170         heim_octet_string */*os*/);
171
172 int
173 hx509_cert_check_eku (
174         hx509_context /*context*/,
175         hx509_cert /*cert*/,
176         const heim_oid */*eku*/,
177         int /*allow_any_eku*/);
178
179 int
180 hx509_cert_cmp (
181         hx509_cert /*p*/,
182         hx509_cert /*q*/);
183
184 int
185 hx509_cert_find_subjectAltName_otherName (
186         hx509_context /*context*/,
187         hx509_cert /*cert*/,
188         const heim_oid */*oid*/,
189         hx509_octet_string_list */*list*/);
190
191 void
192 hx509_cert_free (hx509_cert /*cert*/);
193
194 int
195 hx509_cert_get_SPKI (
196         hx509_context /*context*/,
197         hx509_cert /*p*/,
198         SubjectPublicKeyInfo */*spki*/);
199
200 int
201 hx509_cert_get_SPKI_AlgorithmIdentifier (
202         hx509_context /*context*/,
203         hx509_cert /*p*/,
204         AlgorithmIdentifier */*alg*/);
205
206 hx509_cert_attribute
207 hx509_cert_get_attribute (
208         hx509_cert /*cert*/,
209         const heim_oid */*oid*/);
210
211 int
212 hx509_cert_get_base_subject (
213         hx509_context /*context*/,
214         hx509_cert /*c*/,
215         hx509_name */*name*/);
216
217 const char *
218 hx509_cert_get_friendly_name (hx509_cert /*cert*/);
219
220 int
221 hx509_cert_get_issuer (
222         hx509_cert /*p*/,
223         hx509_name */*name*/);
224
225 time_t
226 hx509_cert_get_notAfter (hx509_cert /*p*/);
227
228 time_t
229 hx509_cert_get_notBefore (hx509_cert /*p*/);
230
231 int
232 hx509_cert_get_serialnumber (
233         hx509_cert /*p*/,
234         heim_integer */*i*/);
235
236 int
237 hx509_cert_get_subject (
238         hx509_cert /*p*/,
239         hx509_name */*name*/);
240
241 int
242 hx509_cert_have_private_key (hx509_cert /*p*/);
243
244 int
245 hx509_cert_init (
246         hx509_context /*context*/,
247         const Certificate */*c*/,
248         hx509_cert */*cert*/);
249
250 int
251 hx509_cert_init_data (
252         hx509_context /*context*/,
253         const void */*ptr*/,
254         size_t /*len*/,
255         hx509_cert */*cert*/);
256
257 int
258 hx509_cert_keyusage_print (
259         hx509_context /*context*/,
260         hx509_cert /*c*/,
261         char **/*s*/);
262
263 hx509_cert
264 hx509_cert_ref (hx509_cert /*cert*/);
265
266 int
267 hx509_cert_set_friendly_name (
268         hx509_cert /*cert*/,
269         const char */*name*/);
270
271 int
272 hx509_certs_add (
273         hx509_context /*context*/,
274         hx509_certs /*certs*/,
275         hx509_cert /*cert*/);
276
277 int
278 hx509_certs_append (
279         hx509_context /*context*/,
280         hx509_certs /*to*/,
281         hx509_lock /*lock*/,
282         const char */*name*/);
283
284 int
285 hx509_certs_end_seq (
286         hx509_context /*context*/,
287         hx509_certs /*certs*/,
288         hx509_cursor /*cursor*/);
289
290 int
291 hx509_certs_find (
292         hx509_context /*context*/,
293         hx509_certs /*certs*/,
294         const hx509_query */*q*/,
295         hx509_cert */*r*/);
296
297 void
298 hx509_certs_free (hx509_certs */*certs*/);
299
300 int
301 hx509_certs_info (
302         hx509_context /*context*/,
303         hx509_certs /*certs*/,
304         int (*/*func*/)(void *, const char *),
305         void */*ctx*/);
306
307 int
308 hx509_certs_init (
309         hx509_context /*context*/,
310         const char */*name*/,
311         int /*flags*/,
312         hx509_lock /*lock*/,
313         hx509_certs */*certs*/);
314
315 int
316 hx509_certs_iter (
317         hx509_context /*context*/,
318         hx509_certs /*certs*/,
319         int (*/*func*/)(hx509_context, void *, hx509_cert),
320         void */*ctx*/);
321
322 int
323 hx509_certs_merge (
324         hx509_context /*context*/,
325         hx509_certs /*to*/,
326         hx509_certs /*from*/);
327
328 int
329 hx509_certs_next_cert (
330         hx509_context /*context*/,
331         hx509_certs /*certs*/,
332         hx509_cursor /*cursor*/,
333         hx509_cert */*cert*/);
334
335 int
336 hx509_certs_start_seq (
337         hx509_context /*context*/,
338         hx509_certs /*certs*/,
339         hx509_cursor */*cursor*/);
340
341 int
342 hx509_certs_store (
343         hx509_context /*context*/,
344         hx509_certs /*certs*/,
345         int /*flags*/,
346         hx509_lock /*lock*/);
347
348 int
349 hx509_ci_print_names (
350         hx509_context /*context*/,
351         void */*ctx*/,
352         hx509_cert /*c*/);
353
354 void
355 hx509_clear_error_string (hx509_context /*context*/);
356
357 int
358 hx509_cms_create_signed_1 (
359         hx509_context /*context*/,
360         int /*flags*/,
361         const heim_oid */*eContentType*/,
362         const void */*data*/,
363         size_t /*length*/,
364         const AlgorithmIdentifier */*digest_alg*/,
365         hx509_cert /*cert*/,
366         hx509_peer_info /*peer*/,
367         hx509_certs /*anchors*/,
368         hx509_certs /*pool*/,
369         heim_octet_string */*signed_data*/);
370
371 int
372 hx509_cms_decrypt_encrypted (
373         hx509_context /*context*/,
374         hx509_lock /*lock*/,
375         const void */*data*/,
376         size_t /*length*/,
377         heim_oid */*contentType*/,
378         heim_octet_string */*content*/);
379
380 int
381 hx509_cms_envelope_1 (
382         hx509_context /*context*/,
383         int /*flags*/,
384         hx509_cert /*cert*/,
385         const void */*data*/,
386         size_t /*length*/,
387         const heim_oid */*encryption_type*/,
388         const heim_oid */*contentType*/,
389         heim_octet_string */*content*/);
390
391 int
392 hx509_cms_unenvelope (
393         hx509_context /*context*/,
394         hx509_certs /*certs*/,
395         int /*flags*/,
396         const void */*data*/,
397         size_t /*length*/,
398         const heim_octet_string */*encryptedContent*/,
399         heim_oid */*contentType*/,
400         heim_octet_string */*content*/);
401
402 int
403 hx509_cms_unwrap_ContentInfo (
404         const heim_octet_string */*in*/,
405         heim_oid */*oid*/,
406         heim_octet_string */*out*/,
407         int */*have_data*/);
408
409 int
410 hx509_cms_verify_signed (
411         hx509_context /*context*/,
412         hx509_verify_ctx /*ctx*/,
413         const void */*data*/,
414         size_t /*length*/,
415         const heim_octet_string */*signedContent*/,
416         hx509_certs /*pool*/,
417         heim_oid */*contentType*/,
418         heim_octet_string */*content*/,
419         hx509_certs */*signer_certs*/);
420
421 int
422 hx509_cms_wrap_ContentInfo (
423         const heim_oid */*oid*/,
424         const heim_octet_string */*buf*/,
425         heim_octet_string */*res*/);
426
427 void
428 hx509_context_free (hx509_context */*context*/);
429
430 int
431 hx509_context_init (hx509_context */*context*/);
432
433 void
434 hx509_context_set_missing_revoke (
435         hx509_context /*context*/,
436         int /*flag*/);
437
438 int
439 hx509_crl_add_revoked_certs (
440         hx509_context /*context*/,
441         hx509_crl /*crl*/,
442         hx509_certs /*certs*/);
443
444 int
445 hx509_crl_alloc (
446         hx509_context /*context*/,
447         hx509_crl */*crl*/);
448
449 void
450 hx509_crl_free (
451         hx509_context /*context*/,
452         hx509_crl */*crl*/);
453
454 int
455 hx509_crl_lifetime (
456         hx509_context /*context*/,
457         hx509_crl /*crl*/,
458         int /*delta*/);
459
460 int
461 hx509_crl_sign (
462         hx509_context /*context*/,
463         hx509_cert /*signer*/,
464         hx509_crl /*crl*/,
465         heim_octet_string */*os*/);
466
467 const AlgorithmIdentifier *
468 hx509_crypto_aes128_cbc (void);
469
470 const AlgorithmIdentifier *
471 hx509_crypto_aes256_cbc (void);
472
473 int
474 hx509_crypto_available (
475         hx509_context /*context*/,
476         int /*type*/,
477         hx509_cert /*source*/,
478         AlgorithmIdentifier **/*val*/,
479         unsigned int */*plen*/);
480
481 int
482 hx509_crypto_decrypt (
483         hx509_crypto /*crypto*/,
484         const void */*data*/,
485         const size_t /*length*/,
486         heim_octet_string */*ivec*/,
487         heim_octet_string */*clear*/);
488
489 const AlgorithmIdentifier *
490 hx509_crypto_des_rsdi_ede3_cbc (void);
491
492 void
493 hx509_crypto_destroy (hx509_crypto /*crypto*/);
494
495 int
496 hx509_crypto_encrypt (
497         hx509_crypto /*crypto*/,
498         const void */*data*/,
499         const size_t /*length*/,
500         const heim_octet_string */*ivec*/,
501         heim_octet_string **/*ciphertext*/);
502
503 const heim_oid *
504 hx509_crypto_enctype_by_name (const char */*name*/);
505
506 void
507 hx509_crypto_free_algs (
508         AlgorithmIdentifier */*val*/,
509         unsigned int /*len*/);
510
511 int
512 hx509_crypto_get_params (
513         hx509_context /*context*/,
514         hx509_crypto /*crypto*/,
515         const heim_octet_string */*ivec*/,
516         heim_octet_string */*param*/);
517
518 int
519 hx509_crypto_init (
520         hx509_context /*context*/,
521         const char */*provider*/,
522         const heim_oid */*enctype*/,
523         hx509_crypto */*crypto*/);
524
525 const char *
526 hx509_crypto_provider (hx509_crypto /*crypto*/);
527
528 int
529 hx509_crypto_random_iv (
530         hx509_crypto /*crypto*/,
531         heim_octet_string */*ivec*/);
532
533 int
534 hx509_crypto_select (
535         const hx509_context /*context*/,
536         int /*type*/,
537         const hx509_private_key /*source*/,
538         hx509_peer_info /*peer*/,
539         AlgorithmIdentifier */*selected*/);
540
541 int
542 hx509_crypto_set_key_data (
543         hx509_crypto /*crypto*/,
544         const void */*data*/,
545         size_t /*length*/);
546
547 int
548 hx509_crypto_set_key_name (
549         hx509_crypto /*crypto*/,
550         const char */*name*/);
551
552 int
553 hx509_crypto_set_params (
554         hx509_context /*context*/,
555         hx509_crypto /*crypto*/,
556         const heim_octet_string */*param*/,
557         heim_octet_string */*ivec*/);
558
559 int
560 hx509_crypto_set_random_key (
561         hx509_crypto /*crypto*/,
562         heim_octet_string */*key*/);
563
564 int
565 hx509_env_add (
566         hx509_context /*context*/,
567         hx509_env /*env*/,
568         const char */*key*/,
569         const char */*value*/);
570
571 void
572 hx509_env_free (hx509_env */*env*/);
573
574 int
575 hx509_env_init (
576         hx509_context /*context*/,
577         hx509_env */*env*/);
578
579 const char *
580 hx509_env_lfind (
581         hx509_context /*context*/,
582         hx509_env /*env*/,
583         const char */*key*/,
584         size_t /*len*/);
585
586 void
587 hx509_err (
588         hx509_context /*context*/,
589         int /*exit_code*/,
590         int /*error_code*/,
591         const char */*fmt*/,
592         ...);
593
594 void
595 hx509_free_error_string (char */*str*/);
596
597 void
598 hx509_free_octet_string_list (hx509_octet_string_list */*list*/);
599
600 int
601 hx509_general_name_unparse (
602         GeneralName */*name*/,
603         char **/*str*/);
604
605 char *
606 hx509_get_error_string (
607         hx509_context /*context*/,
608         int /*error_code*/);
609
610 int
611 hx509_get_one_cert (
612         hx509_context /*context*/,
613         hx509_certs /*certs*/,
614         hx509_cert */*c*/);
615
616 int
617 hx509_lock_add_cert (
618         hx509_context /*context*/,
619         hx509_lock /*lock*/,
620         hx509_cert /*cert*/);
621
622 int
623 hx509_lock_add_certs (
624         hx509_context /*context*/,
625         hx509_lock /*lock*/,
626         hx509_certs /*certs*/);
627
628 int
629 hx509_lock_add_password (
630         hx509_lock /*lock*/,
631         const char */*password*/);
632
633 int
634 hx509_lock_command_string (
635         hx509_lock /*lock*/,
636         const char */*string*/);
637
638 void
639 hx509_lock_free (hx509_lock /*lock*/);
640
641 int
642 hx509_lock_init (
643         hx509_context /*context*/,
644         hx509_lock */*lock*/);
645
646 int
647 hx509_lock_prompt (
648         hx509_lock /*lock*/,
649         hx509_prompt */*prompt*/);
650
651 void
652 hx509_lock_reset_certs (
653         hx509_context /*context*/,
654         hx509_lock /*lock*/);
655
656 void
657 hx509_lock_reset_passwords (hx509_lock /*lock*/);
658
659 void
660 hx509_lock_reset_promper (hx509_lock /*lock*/);
661
662 int
663 hx509_lock_set_prompter (
664         hx509_lock /*lock*/,
665         hx509_prompter_fct /*prompt*/,
666         void */*data*/);
667
668 int
669 hx509_name_binary (
670         const hx509_name /*name*/,
671         heim_octet_string */*os*/);
672
673 int
674 hx509_name_cmp (
675         hx509_name /*n1*/,
676         hx509_name /*n2*/);
677
678 int
679 hx509_name_copy (
680         hx509_context /*context*/,
681         const hx509_name /*from*/,
682         hx509_name */*to*/);
683
684 int
685 hx509_name_expand (
686         hx509_context /*context*/,
687         hx509_name /*name*/,
688         hx509_env /*env*/);
689
690 void
691 hx509_name_free (hx509_name */*name*/);
692
693 int
694 hx509_name_is_null_p (const hx509_name /*name*/);
695
696 int
697 hx509_name_normalize (
698         hx509_context /*context*/,
699         hx509_name /*name*/);
700
701 int
702 hx509_name_to_Name (
703         const hx509_name /*from*/,
704         Name */*to*/);
705
706 int
707 hx509_name_to_string (
708         const hx509_name /*name*/,
709         char **/*str*/);
710
711 int
712 hx509_ocsp_request (
713         hx509_context /*context*/,
714         hx509_certs /*reqcerts*/,
715         hx509_certs /*pool*/,
716         hx509_cert /*signer*/,
717         const AlgorithmIdentifier */*digest*/,
718         heim_octet_string */*request*/,
719         heim_octet_string */*nonce*/);
720
721 int
722 hx509_ocsp_verify (
723         hx509_context /*context*/,
724         time_t /*now*/,
725         hx509_cert /*cert*/,
726         int /*flags*/,
727         const void */*data*/,
728         size_t /*length*/,
729         time_t */*expiration*/);
730
731 void
732 hx509_oid_print (
733         const heim_oid */*oid*/,
734         hx509_vprint_func /*func*/,
735         void */*ctx*/);
736
737 int
738 hx509_oid_sprint (
739         const heim_oid */*oid*/,
740         char **/*str*/);
741
742 int
743 hx509_parse_name (
744         hx509_context /*context*/,
745         const char */*str*/,
746         hx509_name */*name*/);
747
748 int
749 hx509_peer_info_alloc (
750         hx509_context /*context*/,
751         hx509_peer_info */*peer*/);
752
753 void
754 hx509_peer_info_free (hx509_peer_info /*peer*/);
755
756 int
757 hx509_peer_info_set_cert (
758         hx509_peer_info /*peer*/,
759         hx509_cert /*cert*/);
760
761 int
762 hx509_peer_info_set_cms_algs (
763         hx509_context /*context*/,
764         hx509_peer_info /*peer*/,
765         const AlgorithmIdentifier */*val*/,
766         size_t /*len*/);
767
768 int
769 hx509_pem_add_header (
770         hx509_pem_header **/*headers*/,
771         const char */*header*/,
772         const char */*value*/);
773
774 const char *
775 hx509_pem_find_header (
776         const hx509_pem_header */*h*/,
777         const char */*header*/);
778
779 void
780 hx509_pem_free_header (hx509_pem_header */*headers*/);
781
782 int
783 hx509_pem_read (
784         hx509_context /*context*/,
785         FILE */*f*/,
786         hx509_pem_read_func /*func*/,
787         void */*ctx*/);
788
789 int
790 hx509_pem_write (
791         hx509_context /*context*/,
792         const char */*type*/,
793         hx509_pem_header */*headers*/,
794         FILE */*f*/,
795         const void */*data*/,
796         size_t /*size*/);
797
798 void
799 hx509_print_stdout (
800         void */*ctx*/,
801         const char */*fmt*/,
802         va_list /*va*/);
803
804 int
805 hx509_prompt_hidden (hx509_prompt_type /*type*/);
806
807 int
808 hx509_query_alloc (
809         hx509_context /*context*/,
810         hx509_query **/*q*/);
811
812 void
813 hx509_query_free (
814         hx509_context /*context*/,
815         hx509_query */*q*/);
816
817 int
818 hx509_query_match_cmp_func (
819         hx509_query */*q*/,
820         int (*/*func*/)(void *, hx509_cert),
821         void */*ctx*/);
822
823 int
824 hx509_query_match_friendly_name (
825         hx509_query */*q*/,
826         const char */*name*/);
827
828 int
829 hx509_query_match_issuer_serial (
830         hx509_query */*q*/,
831         const Name */*issuer*/,
832         const heim_integer */*serialNumber*/);
833
834 void
835 hx509_query_match_option (
836         hx509_query */*q*/,
837         hx509_query_option /*option*/);
838
839 void
840 hx509_query_statistic_file (
841         hx509_context /*context*/,
842         const char */*fn*/);
843
844 void
845 hx509_query_unparse_stats (
846         hx509_context /*context*/,
847         int /*printtype*/,
848         FILE */*out*/);
849
850 int
851 hx509_revoke_add_crl (
852         hx509_context /*context*/,
853         hx509_revoke_ctx /*ctx*/,
854         const char */*path*/);
855
856 int
857 hx509_revoke_add_ocsp (
858         hx509_context /*context*/,
859         hx509_revoke_ctx /*ctx*/,
860         const char */*path*/);
861
862 void
863 hx509_revoke_free (hx509_revoke_ctx */*ctx*/);
864
865 int
866 hx509_revoke_init (
867         hx509_context /*context*/,
868         hx509_revoke_ctx */*ctx*/);
869
870 int
871 hx509_revoke_ocsp_print (
872         hx509_context /*context*/,
873         const char */*path*/,
874         FILE */*out*/);
875
876 int
877 hx509_revoke_verify (
878         hx509_context /*context*/,
879         hx509_revoke_ctx /*ctx*/,
880         hx509_certs /*certs*/,
881         time_t /*now*/,
882         hx509_cert /*cert*/,
883         hx509_cert /*parent_cert*/);
884
885 void
886 hx509_set_error_string (
887         hx509_context /*context*/,
888         int /*flags*/,
889         int /*code*/,
890         const char */*fmt*/,
891         ...);
892
893 void
894 hx509_set_error_stringv (
895         hx509_context /*context*/,
896         int /*flags*/,
897         int /*code*/,
898         const char */*fmt*/,
899         va_list /*ap*/);
900
901 const AlgorithmIdentifier *
902 hx509_signature_md2 (void);
903
904 const AlgorithmIdentifier *
905 hx509_signature_md5 (void);
906
907 const AlgorithmIdentifier *
908 hx509_signature_rsa (void);
909
910 const AlgorithmIdentifier *
911 hx509_signature_rsa_pkcs1_x509 (void);
912
913 const AlgorithmIdentifier *
914 hx509_signature_rsa_with_md2 (void);
915
916 const AlgorithmIdentifier *
917 hx509_signature_rsa_with_md5 (void);
918
919 const AlgorithmIdentifier *
920 hx509_signature_rsa_with_sha1 (void);
921
922 const AlgorithmIdentifier *
923 hx509_signature_rsa_with_sha256 (void);
924
925 const AlgorithmIdentifier *
926 hx509_signature_rsa_with_sha384 (void);
927
928 const AlgorithmIdentifier *
929 hx509_signature_rsa_with_sha512 (void);
930
931 const AlgorithmIdentifier *
932 hx509_signature_sha1 (void);
933
934 const AlgorithmIdentifier *
935 hx509_signature_sha256 (void);
936
937 const AlgorithmIdentifier *
938 hx509_signature_sha384 (void);
939
940 const AlgorithmIdentifier *
941 hx509_signature_sha512 (void);
942
943 int
944 hx509_unparse_der_name (
945         const void */*data*/,
946         size_t /*length*/,
947         char **/*str*/);
948
949 int
950 hx509_validate_cert (
951         hx509_context /*context*/,
952         hx509_validate_ctx /*ctx*/,
953         hx509_cert /*cert*/);
954
955 void
956 hx509_validate_ctx_add_flags (
957         hx509_validate_ctx /*ctx*/,
958         int /*flags*/);
959
960 void
961 hx509_validate_ctx_free (hx509_validate_ctx /*ctx*/);
962
963 int
964 hx509_validate_ctx_init (
965         hx509_context /*context*/,
966         hx509_validate_ctx */*ctx*/);
967
968 void
969 hx509_validate_ctx_set_print (
970         hx509_validate_ctx /*ctx*/,
971         hx509_vprint_func /*func*/,
972         void */*c*/);
973
974 void
975 hx509_verify_attach_anchors (
976         hx509_verify_ctx /*ctx*/,
977         hx509_certs /*set*/);
978
979 void
980 hx509_verify_attach_revoke (
981         hx509_verify_ctx /*ctx*/,
982         hx509_revoke_ctx /*revoke_ctx*/);
983
984 void
985 hx509_verify_ctx_f_allow_default_trustanchors (
986         hx509_verify_ctx /*ctx*/,
987         int /*boolean*/);
988
989 void
990 hx509_verify_destroy_ctx (hx509_verify_ctx /*ctx*/);
991
992 int
993 hx509_verify_hostname (
994         hx509_context /*context*/,
995         const hx509_cert /*cert*/,
996         int /*flags*/,
997         hx509_hostname_type /*type*/,
998         const char */*hostname*/,
999         const struct sockaddr */*sa*/,
1000         int /*sa_size*/);
1001
1002 int
1003 hx509_verify_init_ctx (
1004         hx509_context /*context*/,
1005         hx509_verify_ctx */*ctx*/);
1006
1007 int
1008 hx509_verify_path (
1009         hx509_context /*context*/,
1010         hx509_verify_ctx /*ctx*/,
1011         hx509_cert /*cert*/,
1012         hx509_certs /*pool*/);
1013
1014 void
1015 hx509_verify_set_max_depth (
1016         hx509_verify_ctx /*ctx*/,
1017         unsigned int /*max_depth*/);
1018
1019 void
1020 hx509_verify_set_proxy_certificate (
1021         hx509_verify_ctx /*ctx*/,
1022         int /*boolean*/);
1023
1024 void
1025 hx509_verify_set_strict_rfc3280_verification (
1026         hx509_verify_ctx /*ctx*/,
1027         int /*boolean*/);
1028
1029 void
1030 hx509_verify_set_time (
1031         hx509_verify_ctx /*ctx*/,
1032         time_t /*t*/);
1033
1034 int
1035 hx509_verify_signature (
1036         hx509_context /*context*/,
1037         const hx509_cert /*signer*/,
1038         const AlgorithmIdentifier */*alg*/,
1039         const heim_octet_string */*data*/,
1040         const heim_octet_string */*sig*/);
1041
1042 void
1043 hx509_xfree (void */*ptr*/);
1044
1045 #ifdef __cplusplus
1046 }
1047 #endif
1048
1049 #endif /* __hx509_protos_h__ */