r20640: Commit part 2/2
[ab/samba.git/.git] / source4 / 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 void
12 hx509_bitstring_print (
13         const heim_bit_string */*b*/,
14         hx509_vprint_func /*func*/,
15         void */*ctx*/);
16
17 int
18 hx509_ca_sign (
19         hx509_context /*context*/,
20         hx509_ca_tbs /*tbs*/,
21         hx509_cert /*signer*/,
22         hx509_cert */*certificate*/);
23
24 int
25 hx509_ca_sign_self (
26         hx509_context /*context*/,
27         hx509_ca_tbs /*tbs*/,
28         hx509_private_key /*signer*/,
29         hx509_cert */*certificate*/);
30
31 int
32 hx509_ca_tbs_add_eku (
33         hx509_context /*contex*/,
34         hx509_ca_tbs /*tbs*/,
35         const heim_oid */*oid*/);
36
37 int
38 hx509_ca_tbs_add_san_hostname (
39         hx509_context /*context*/,
40         hx509_ca_tbs /*tbs*/,
41         const char */*dnsname*/);
42
43 int
44 hx509_ca_tbs_add_san_otherName (
45         hx509_context /*context*/,
46         hx509_ca_tbs /*tbs*/,
47         const heim_oid */*oid*/,
48         const heim_octet_string */*os*/);
49
50 int
51 hx509_ca_tbs_add_san_pkinit (
52         hx509_context /*context*/,
53         hx509_ca_tbs /*tbs*/,
54         const char */*principal*/);
55
56 int
57 hx509_ca_tbs_add_san_rfc822name (
58         hx509_context /*context*/,
59         hx509_ca_tbs /*tbs*/,
60         const char */*rfc822Name*/);
61
62 void
63 hx509_ca_tbs_free (hx509_ca_tbs */*tbs*/);
64
65 int
66 hx509_ca_tbs_init (
67         hx509_context /*context*/,
68         hx509_ca_tbs */*tbs*/);
69
70 int
71 hx509_ca_tbs_set_ca (
72         hx509_context /*context*/,
73         hx509_ca_tbs /*tbs*/,
74         int /*pathLenConstraint*/);
75
76 int
77 hx509_ca_tbs_set_notAfter (
78         hx509_context /*context*/,
79         hx509_ca_tbs /*tbs*/,
80         time_t /*t*/);
81
82 int
83 hx509_ca_tbs_set_notAfter_lifetime (
84         hx509_context /*context*/,
85         hx509_ca_tbs /*tbs*/,
86         time_t /*delta*/);
87
88 int
89 hx509_ca_tbs_set_notBefore (
90         hx509_context /*context*/,
91         hx509_ca_tbs /*tbs*/,
92         time_t /*t*/);
93
94 int
95 hx509_ca_tbs_set_proxy (
96         hx509_context /*context*/,
97         hx509_ca_tbs /*tbs*/,
98         int /*pathLenConstraint*/);
99
100 int
101 hx509_ca_tbs_set_serialnumber (
102         hx509_context /*context*/,
103         hx509_ca_tbs /*tbs*/,
104         const heim_integer */*serialNumber*/);
105
106 int
107 hx509_ca_tbs_set_spki (
108         hx509_context /*context*/,
109         hx509_ca_tbs /*tbs*/,
110         const SubjectPublicKeyInfo */*spki*/);
111
112 int
113 hx509_ca_tbs_set_subject (
114         hx509_context /*context*/,
115         hx509_ca_tbs /*tbs*/,
116         hx509_name /*subject*/);
117
118 int
119 hx509_cert_check_eku (
120         hx509_context /*context*/,
121         hx509_cert /*cert*/,
122         const heim_oid */*eku*/,
123         int /*allow_any_eku*/);
124
125 int
126 hx509_cert_cmp (
127         hx509_cert /*p*/,
128         hx509_cert /*q*/);
129
130 int
131 hx509_cert_find_subjectAltName_otherName (
132         hx509_cert /*cert*/,
133         const heim_oid */*oid*/,
134         hx509_octet_string_list */*list*/);
135
136 void
137 hx509_cert_free (hx509_cert /*cert*/);
138
139 hx509_cert_attribute
140 hx509_cert_get_attribute (
141         hx509_cert /*cert*/,
142         const heim_oid */*oid*/);
143
144 int
145 hx509_cert_get_base_subject (
146         hx509_context /*context*/,
147         hx509_cert /*c*/,
148         hx509_name */*name*/);
149
150 const char *
151 hx509_cert_get_friendly_name (hx509_cert /*cert*/);
152
153 int
154 hx509_cert_get_issuer (
155         hx509_cert /*p*/,
156         hx509_name */*name*/);
157
158 int
159 hx509_cert_get_serialnumber (
160         hx509_cert /*p*/,
161         heim_integer */*i*/);
162
163 int
164 hx509_cert_get_subject (
165         hx509_cert /*p*/,
166         hx509_name */*name*/);
167
168 int
169 hx509_cert_init (
170         hx509_context /*context*/,
171         const Certificate */*c*/,
172         hx509_cert */*cert*/);
173
174 int
175 hx509_cert_keyusage_print (
176         hx509_context /*context*/,
177         hx509_cert /*c*/,
178         char **/*s*/);
179
180 hx509_cert
181 hx509_cert_ref (hx509_cert /*cert*/);
182
183 int
184 hx509_cert_set_friendly_name (
185         hx509_cert /*cert*/,
186         const char */*name*/);
187
188 int
189 hx509_certs_add (
190         hx509_context /*context*/,
191         hx509_certs /*certs*/,
192         hx509_cert /*cert*/);
193
194 int
195 hx509_certs_append (
196         hx509_context /*context*/,
197         hx509_certs /*to*/,
198         hx509_lock /*lock*/,
199         const char */*name*/);
200
201 int
202 hx509_certs_end_seq (
203         hx509_context /*context*/,
204         hx509_certs /*certs*/,
205         hx509_cursor /*cursor*/);
206
207 int
208 hx509_certs_find (
209         hx509_context /*context*/,
210         hx509_certs /*certs*/,
211         const hx509_query */*q*/,
212         hx509_cert */*r*/);
213
214 void
215 hx509_certs_free (hx509_certs */*certs*/);
216
217 int
218 hx509_certs_info (
219         hx509_context /*context*/,
220         hx509_certs /*certs*/,
221         int (*/*func*/)(void *, char *),
222         void */*ctx*/);
223
224 int
225 hx509_certs_init (
226         hx509_context /*context*/,
227         const char */*name*/,
228         int /*flags*/,
229         hx509_lock /*lock*/,
230         hx509_certs */*certs*/);
231
232 int
233 hx509_certs_iter (
234         hx509_context /*context*/,
235         hx509_certs /*certs*/,
236         int (*/*fn*/)(hx509_context, void *, hx509_cert),
237         void */*ctx*/);
238
239 int
240 hx509_certs_merge (
241         hx509_context /*context*/,
242         hx509_certs /*to*/,
243         hx509_certs /*from*/);
244
245 int
246 hx509_certs_next_cert (
247         hx509_context /*context*/,
248         hx509_certs /*certs*/,
249         hx509_cursor /*cursor*/,
250         hx509_cert */*cert*/);
251
252 int
253 hx509_certs_start_seq (
254         hx509_context /*context*/,
255         hx509_certs /*certs*/,
256         hx509_cursor */*cursor*/);
257
258 int
259 hx509_certs_store (
260         hx509_context /*context*/,
261         hx509_certs /*certs*/,
262         int /*flags*/,
263         hx509_lock /*lock*/);
264
265 int
266 hx509_ci_print_names (
267         hx509_context /*context*/,
268         void */*ctx*/,
269         hx509_cert /*c*/);
270
271 void
272 hx509_clear_error_string (hx509_context /*context*/);
273
274 int
275 hx509_cms_create_signed_1 (
276         hx509_context /*context*/,
277         const heim_oid */*eContentType*/,
278         const void */*data*/,
279         size_t /*length*/,
280         const AlgorithmIdentifier */*digest_alg*/,
281         hx509_cert /*cert*/,
282         hx509_peer_info /*peer*/,
283         hx509_certs /*anchors*/,
284         hx509_certs /*pool*/,
285         heim_octet_string */*signed_data*/);
286
287 int
288 hx509_cms_decrypt_encrypted (
289         hx509_context /*context*/,
290         hx509_lock /*lock*/,
291         const void */*data*/,
292         size_t /*length*/,
293         heim_oid */*contentType*/,
294         heim_octet_string */*content*/);
295
296 int
297 hx509_cms_envelope_1 (
298         hx509_context /*context*/,
299         hx509_cert /*cert*/,
300         const void */*data*/,
301         size_t /*length*/,
302         const heim_oid */*encryption_type*/,
303         const heim_oid */*contentType*/,
304         heim_octet_string */*content*/);
305
306 int
307 hx509_cms_unenvelope (
308         hx509_context /*context*/,
309         hx509_certs /*certs*/,
310         int /*flags*/,
311         const void */*data*/,
312         size_t /*length*/,
313         const heim_octet_string */*encryptedContent*/,
314         heim_oid */*contentType*/,
315         heim_octet_string */*content*/);
316
317 int
318 hx509_cms_unwrap_ContentInfo (
319         const heim_octet_string */*in*/,
320         heim_oid */*oid*/,
321         heim_octet_string */*out*/,
322         int */*have_data*/);
323
324 int
325 hx509_cms_verify_signed (
326         hx509_context /*context*/,
327         hx509_verify_ctx /*ctx*/,
328         const void */*data*/,
329         size_t /*length*/,
330         hx509_certs /*store*/,
331         heim_oid */*contentType*/,
332         heim_octet_string */*content*/,
333         hx509_certs */*signer_certs*/);
334
335 int
336 hx509_cms_wrap_ContentInfo (
337         const heim_oid */*oid*/,
338         const heim_octet_string */*buf*/,
339         heim_octet_string */*res*/);
340
341 void
342 hx509_context_free (hx509_context */*context*/);
343
344 int
345 hx509_context_init (hx509_context */*context*/);
346
347 void
348 hx509_context_set_missing_revoke (
349         hx509_context /*context*/,
350         int /*flag*/);
351
352 int
353 hx509_crypto_available (
354         hx509_context /*context*/,
355         int /*type*/,
356         hx509_cert /*source*/,
357         AlgorithmIdentifier **/*val*/,
358         unsigned int */*plen*/);
359
360 int
361 hx509_crypto_decrypt (
362         hx509_crypto /*crypto*/,
363         const void */*data*/,
364         const size_t /*length*/,
365         heim_octet_string */*ivec*/,
366         heim_octet_string */*clear*/);
367
368 void
369 hx509_crypto_destroy (hx509_crypto /*crypto*/);
370
371 int
372 hx509_crypto_encrypt (
373         hx509_crypto /*crypto*/,
374         const void */*data*/,
375         const size_t /*length*/,
376         heim_octet_string */*ivec*/,
377         heim_octet_string **/*ciphertext*/);
378
379 const heim_oid *
380 hx509_crypto_enctype_by_name (const char */*name*/);
381
382 void
383 hx509_crypto_free_algs (
384         AlgorithmIdentifier */*val*/,
385         unsigned int /*len*/);
386
387 int
388 hx509_crypto_get_params (
389         hx509_context /*context*/,
390         hx509_crypto /*crypto*/,
391         const heim_octet_string */*ivec*/,
392         heim_octet_string */*param*/);
393
394 int
395 hx509_crypto_init (
396         hx509_context /*context*/,
397         const char */*provider*/,
398         const heim_oid */*enctype*/,
399         hx509_crypto */*crypto*/);
400
401 const char *
402 hx509_crypto_provider (hx509_crypto /*crypto*/);
403
404 int
405 hx509_crypto_select (
406         const hx509_context /*context*/,
407         int /*type*/,
408         const hx509_private_key /*source*/,
409         hx509_peer_info /*peer*/,
410         AlgorithmIdentifier */*selected*/);
411
412 int
413 hx509_crypto_set_key_data (
414         hx509_crypto /*crypto*/,
415         const void */*data*/,
416         size_t /*length*/);
417
418 int
419 hx509_crypto_set_key_name (
420         hx509_crypto /*crypto*/,
421         const char */*name*/);
422
423 int
424 hx509_crypto_set_params (
425         hx509_context /*context*/,
426         hx509_crypto /*crypto*/,
427         const heim_octet_string */*param*/,
428         heim_octet_string */*ivec*/);
429
430 int
431 hx509_crypto_set_random_key (
432         hx509_crypto /*crypto*/,
433         heim_octet_string */*key*/);
434
435 void
436 hx509_err (
437         hx509_context /*context*/,
438         int /*exit_code*/,
439         int /*error_code*/,
440         char */*fmt*/,
441         ...);
442
443 void
444 hx509_free_octet_string_list (hx509_octet_string_list */*list*/);
445
446 char *
447 hx509_get_error_string (
448         hx509_context /*context*/,
449         int /*error_code*/);
450
451 int
452 hx509_get_one_cert (
453         hx509_context /*context*/,
454         hx509_certs /*certs*/,
455         hx509_cert */*c*/);
456
457 int
458 hx509_lock_add_cert (
459         hx509_context /*context*/,
460         hx509_lock /*lock*/,
461         hx509_cert /*cert*/);
462
463 int
464 hx509_lock_add_certs (
465         hx509_context /*context*/,
466         hx509_lock /*lock*/,
467         hx509_certs /*certs*/);
468
469 int
470 hx509_lock_add_password (
471         hx509_lock /*lock*/,
472         const char */*password*/);
473
474 int
475 hx509_lock_command_string (
476         hx509_lock /*lock*/,
477         const char */*string*/);
478
479 void
480 hx509_lock_free (hx509_lock /*lock*/);
481
482 int
483 hx509_lock_init (
484         hx509_context /*context*/,
485         hx509_lock */*lock*/);
486
487 int
488 hx509_lock_prompt (
489         hx509_lock /*lock*/,
490         hx509_prompt */*prompt*/);
491
492 void
493 hx509_lock_reset_certs (
494         hx509_context /*context*/,
495         hx509_lock /*lock*/);
496
497 void
498 hx509_lock_reset_passwords (hx509_lock /*lock*/);
499
500 void
501 hx509_lock_reset_promper (hx509_lock /*lock*/);
502
503 int
504 hx509_lock_set_prompter (
505         hx509_lock /*lock*/,
506         hx509_prompter_fct /*prompt*/,
507         void */*data*/);
508
509 int
510 hx509_name_copy (
511         hx509_context /*context*/,
512         const hx509_name /*from*/,
513         hx509_name */*to*/);
514
515 void
516 hx509_name_free (hx509_name */*name*/);
517
518 int
519 hx509_name_is_null_p (const hx509_name /*name*/);
520
521 int
522 hx509_name_to_Name (
523         const hx509_name /*from*/,
524         Name */*to*/);
525
526 int
527 hx509_name_to_der_name (
528         const hx509_name /*name*/,
529         void **/*data*/,
530         size_t */*length*/);
531
532 int
533 hx509_name_to_string (
534         const hx509_name /*name*/,
535         char **/*str*/);
536
537 int
538 hx509_ocsp_request (
539         hx509_context /*context*/,
540         hx509_certs /*reqcerts*/,
541         hx509_certs /*pool*/,
542         hx509_cert /*signer*/,
543         const AlgorithmIdentifier */*digest*/,
544         heim_octet_string */*request*/,
545         heim_octet_string */*nonce*/);
546
547 int
548 hx509_ocsp_verify (
549         hx509_context /*context*/,
550         time_t /*now*/,
551         hx509_cert /*cert*/,
552         int /*flags*/,
553         const void */*data*/,
554         size_t /*length*/,
555         time_t */*expiration*/);
556
557 void
558 hx509_oid_print (
559         const heim_oid */*oid*/,
560         hx509_vprint_func /*func*/,
561         void */*ctx*/);
562
563 int
564 hx509_oid_sprint (
565         const heim_oid */*oid*/,
566         char **/*str*/);
567
568 int
569 hx509_parse_name (
570         hx509_context /*context*/,
571         const char */*str*/,
572         hx509_name */*name*/);
573
574 int
575 hx509_peer_info_alloc (
576         hx509_context /*context*/,
577         hx509_peer_info */*peer*/);
578
579 int
580 hx509_peer_info_free (hx509_peer_info /*peer*/);
581
582 int
583 hx509_peer_info_set_cert (
584         hx509_peer_info /*peer*/,
585         hx509_cert /*cert*/);
586
587 int
588 hx509_peer_info_set_cms_algs (
589         hx509_context /*context*/,
590         hx509_peer_info /*peer*/,
591         const AlgorithmIdentifier */*val*/,
592         size_t /*len*/);
593
594 void
595 hx509_print_func (
596         hx509_vprint_func /*func*/,
597         void */*ctx*/,
598         const char */*fmt*/,
599         ...);
600
601 void
602 hx509_print_stdout (
603         void */*ctx*/,
604         const char */*fmt*/,
605         va_list /*va*/);
606
607 int
608 hx509_prompt_hidden (hx509_prompt_type /*type*/);
609
610 int
611 hx509_query_alloc (
612         hx509_context /*context*/,
613         hx509_query **/*q*/);
614
615 void
616 hx509_query_free (
617         hx509_context /*context*/,
618         hx509_query */*q*/);
619
620 int
621 hx509_query_match_cmp_func (
622         hx509_query */*q*/,
623         int (*/*func*/)(void *, hx509_cert),
624         void */*ctx*/);
625
626 int
627 hx509_query_match_friendly_name (
628         hx509_query */*q*/,
629         const char */*name*/);
630
631 int
632 hx509_query_match_issuer_serial (
633         hx509_query */*q*/,
634         const Name */*issuer*/,
635         const heim_integer */*serialNumber*/);
636
637 void
638 hx509_query_match_option (
639         hx509_query */*q*/,
640         hx509_query_option /*option*/);
641
642 int
643 hx509_revoke_add_crl (
644         hx509_context /*context*/,
645         hx509_revoke_ctx /*ctx*/,
646         const char */*path*/);
647
648 int
649 hx509_revoke_add_ocsp (
650         hx509_context /*context*/,
651         hx509_revoke_ctx /*ctx*/,
652         const char */*path*/);
653
654 void
655 hx509_revoke_free (hx509_revoke_ctx */*ctx*/);
656
657 int
658 hx509_revoke_init (
659         hx509_context /*context*/,
660         hx509_revoke_ctx */*ctx*/);
661
662 int
663 hx509_revoke_ocsp_print (
664         hx509_context /*context*/,
665         const char */*path*/,
666         FILE */*out*/);
667
668 int
669 hx509_revoke_verify (
670         hx509_context /*context*/,
671         hx509_revoke_ctx /*ctx*/,
672         hx509_certs /*certs*/,
673         time_t /*now*/,
674         hx509_cert /*cert*/,
675         hx509_cert /*parent_cert*/);
676
677 void
678 hx509_set_error_string (
679         hx509_context /*context*/,
680         int /*flags*/,
681         int /*code*/,
682         const char */*fmt*/,
683         ...);
684
685 void
686 hx509_set_error_stringv (
687         hx509_context /*context*/,
688         int /*flags*/,
689         int /*code*/,
690         const char */*fmt*/,
691         va_list /*ap*/);
692
693 const AlgorithmIdentifier *
694 hx509_signature_md2 (void);
695
696 const AlgorithmIdentifier *
697 hx509_signature_md5 (void);
698
699 const AlgorithmIdentifier *
700 hx509_signature_rsa (void);
701
702 const AlgorithmIdentifier *
703 hx509_signature_rsa_with_md2 (void);
704
705 const AlgorithmIdentifier *
706 hx509_signature_rsa_with_md5 (void);
707
708 const AlgorithmIdentifier *
709 hx509_signature_rsa_with_sha1 (void);
710
711 const AlgorithmIdentifier *
712 hx509_signature_rsa_with_sha256 (void);
713
714 const AlgorithmIdentifier *
715 hx509_signature_rsa_with_sha384 (void);
716
717 const AlgorithmIdentifier *
718 hx509_signature_rsa_with_sha512 (void);
719
720 const AlgorithmIdentifier *
721 hx509_signature_sha1 (void);
722
723 const AlgorithmIdentifier *
724 hx509_signature_sha256 (void);
725
726 const AlgorithmIdentifier *
727 hx509_signature_sha384 (void);
728
729 const AlgorithmIdentifier *
730 hx509_signature_sha512 (void);
731
732 int
733 hx509_unparse_der_name (
734         const void */*data*/,
735         size_t /*length*/,
736         char **/*str*/);
737
738 int
739 hx509_validate_cert (
740         hx509_context /*context*/,
741         hx509_validate_ctx /*ctx*/,
742         hx509_cert /*cert*/);
743
744 void
745 hx509_validate_ctx_add_flags (
746         hx509_validate_ctx /*ctx*/,
747         int /*flags*/);
748
749 void
750 hx509_validate_ctx_free (hx509_validate_ctx /*ctx*/);
751
752 int
753 hx509_validate_ctx_init (
754         hx509_context /*context*/,
755         hx509_validate_ctx */*ctx*/);
756
757 void
758 hx509_validate_ctx_set_print (
759         hx509_validate_ctx /*ctx*/,
760         hx509_vprint_func /*func*/,
761         void */*c*/);
762
763 void
764 hx509_verify_attach_anchors (
765         hx509_verify_ctx /*ctx*/,
766         hx509_certs /*set*/);
767
768 void
769 hx509_verify_attach_revoke (
770         hx509_verify_ctx /*ctx*/,
771         hx509_revoke_ctx /*revoke_ctx*/);
772
773 void
774 hx509_verify_destroy_ctx (hx509_verify_ctx /*ctx*/);
775
776 int
777 hx509_verify_hostname (
778         hx509_context /*context*/,
779         const hx509_cert /*cert*/,
780         int /*require_match*/,
781         const char */*hostname*/,
782         const struct sockaddr */*sa*/,
783         int /*sa_size*/);
784
785 int
786 hx509_verify_init_ctx (
787         hx509_context /*context*/,
788         hx509_verify_ctx */*ctx*/);
789
790 int
791 hx509_verify_path (
792         hx509_context /*context*/,
793         hx509_verify_ctx /*ctx*/,
794         hx509_cert /*cert*/,
795         hx509_certs /*pool*/);
796
797 void
798 hx509_verify_set_proxy_certificate (
799         hx509_verify_ctx /*ctx*/,
800         int /*boolean*/);
801
802 void
803 hx509_verify_set_strict_rfc3280_verification (
804         hx509_verify_ctx /*ctx*/,
805         int /*boolean*/);
806
807 void
808 hx509_verify_set_time (
809         hx509_verify_ctx /*ctx*/,
810         time_t /*t*/);
811
812 int
813 hx509_verify_signature (
814         hx509_context /*context*/,
815         const hx509_cert /*signer*/,
816         const AlgorithmIdentifier */*alg*/,
817         const heim_octet_string */*data*/,
818         const heim_octet_string */*sig*/);
819
820 #ifdef __cplusplus
821 }
822 #endif
823
824 #endif /* __hx509_protos_h__ */