13
13
* SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
14
14
*/
15
15
16
- import core.stdc.config ;
17
- import core.stdc.stdio ;
18
- import core.sys.posix.sched ;
16
+ module deimos.openssl.x509 ;
17
+
18
+ import core.stdc.time ;
19
+
20
+ import deimos.openssl._d_util;
21
+ import deimos.openssl.x509v3 : stack_st_ASN1_OBJECT;
22
+
23
+ public import deimos.openssl.e_os2;
24
+ public import deimos.openssl.ossl_typ;
25
+ public import deimos.openssl.symhacks;
26
+ public import deimos.openssl.buffer;
27
+ public import deimos.openssl.evp;
28
+ public import deimos.openssl.bio;
29
+ public import deimos.openssl.stack;
30
+ public import deimos.openssl.asn1;
31
+ public import deimos.openssl.safestack;
32
+ public import deimos.openssl.ec;
33
+
34
+ /* if OPENSSL_API_COMPAT < 0x10100000L */
35
+ public import deimos.openssl.rsa;
36
+ public import deimos.openssl.dsa;
37
+ public import deimos.openssl.dh;
38
+ /* endif */
39
+
40
+ public import deimos.openssl.sha;
19
41
20
42
extern (C ):
43
+ nothrow :
21
44
22
45
enum X509_FILETYPE_PEM = 1 ;
23
46
enum X509_FILETYPE_ASN1 = 2 ;
@@ -563,14 +586,18 @@ int X509_signature_print(
563
586
int X509_sign (X509 * x, EVP_PKEY * pkey, const (EVP_MD )* md);
564
587
int X509_sign_ctx (X509 * x, EVP_MD_CTX * ctx);
565
588
589
+ version (OPENSSL_NO_OCSP) {} else {
566
590
int X509_http_nbio (OCSP_REQ_CTX * rctx, X509 ** pcert);
591
+ }
567
592
568
593
int X509_REQ_sign (X509_REQ * x, EVP_PKEY * pkey, const (EVP_MD )* md);
569
594
int X509_REQ_sign_ctx (X509_REQ * x, EVP_MD_CTX * ctx);
570
595
int X509_CRL_sign (X509_CRL * x, EVP_PKEY * pkey, const (EVP_MD )* md);
571
596
int X509_CRL_sign_ctx (X509_CRL * x, EVP_MD_CTX * ctx);
572
597
598
+ version (OPENSSL_NO_OCSP) {} else {
573
599
int X509_CRL_http_nbio (OCSP_REQ_CTX * rctx, X509_CRL ** pcrl);
600
+ }
574
601
575
602
int NETSCAPE_SPKI_sign (NETSCAPE_SPKI * x, EVP_PKEY * pkey, const (EVP_MD )* md);
576
603
@@ -596,29 +623,36 @@ int X509_NAME_digest(
596
623
ubyte * md,
597
624
uint * len);
598
625
626
+ version (OPENSSL_NO_STDIO) {} else {
599
627
X509 * d2i_X509_fp (FILE * fp, X509 ** x509);
600
628
int i2d_X509_fp (FILE * fp, X509 * x509);
601
629
X509_CRL * d2i_X509_CRL_fp (FILE * fp, X509_CRL ** crl);
602
630
int i2d_X509_CRL_fp (FILE * fp, X509_CRL * crl);
603
631
X509_REQ * d2i_X509_REQ_fp (FILE * fp, X509_REQ ** req);
604
632
int i2d_X509_REQ_fp (FILE * fp, X509_REQ * req);
605
633
634
+ version (OPENSSL_NO_RSA) {} else {
606
635
RSA * d2i_RSAPrivateKey_fp (FILE * fp, RSA ** rsa);
607
636
int i2d_RSAPrivateKey_fp (FILE * fp, RSA * rsa);
608
637
RSA * d2i_RSAPublicKey_fp (FILE * fp, RSA ** rsa);
609
638
int i2d_RSAPublicKey_fp (FILE * fp, RSA * rsa);
610
639
RSA * d2i_RSA_PUBKEY_fp (FILE * fp, RSA ** rsa);
611
640
int i2d_RSA_PUBKEY_fp (FILE * fp, RSA * rsa);
641
+ }
612
642
643
+ version (OPENSSL_NO_DSA) {} else {
613
644
DSA * d2i_DSA_PUBKEY_fp (FILE * fp, DSA ** dsa);
614
645
int i2d_DSA_PUBKEY_fp (FILE * fp, DSA * dsa);
615
646
DSA * d2i_DSAPrivateKey_fp (FILE * fp, DSA ** dsa);
616
647
int i2d_DSAPrivateKey_fp (FILE * fp, DSA * dsa);
648
+ }
617
649
650
+ version (OPENSSL_NO_EC) {} else {
618
651
EC_KEY * d2i_EC_PUBKEY_fp (FILE * fp, EC_KEY ** eckey);
619
652
int i2d_EC_PUBKEY_fp (FILE * fp, EC_KEY * eckey);
620
653
EC_KEY * d2i_ECPrivateKey_fp (FILE * fp, EC_KEY ** eckey);
621
654
int i2d_ECPrivateKey_fp (FILE * fp, EC_KEY * eckey);
655
+ }
622
656
623
657
X509_SIG * d2i_PKCS8_fp (FILE * fp, X509_SIG ** p8);
624
658
int i2d_PKCS8_fp (FILE * fp, X509_SIG * p8);
@@ -631,30 +665,36 @@ int i2d_PrivateKey_fp(FILE* fp, EVP_PKEY* pkey);
631
665
EVP_PKEY * d2i_PrivateKey_fp (FILE * fp, EVP_PKEY ** a);
632
666
int i2d_PUBKEY_fp (FILE * fp, EVP_PKEY * pkey);
633
667
EVP_PKEY * d2i_PUBKEY_fp (FILE * fp, EVP_PKEY ** a);
634
-
668
+ } /+ OPENSSL_NO_STDIO +/
635
669
X509 * d2i_X509_bio (BIO * bp, X509 ** x509);
636
670
int i2d_X509_bio (BIO * bp, X509 * x509);
637
671
X509_CRL * d2i_X509_CRL_bio (BIO * bp, X509_CRL ** crl);
638
672
int i2d_X509_CRL_bio (BIO * bp, X509_CRL * crl);
639
673
X509_REQ * d2i_X509_REQ_bio (BIO * bp, X509_REQ ** req);
640
674
int i2d_X509_REQ_bio (BIO * bp, X509_REQ * req);
641
675
676
+ version (OPENSSL_NO_RSA) {} else {
642
677
RSA * d2i_RSAPrivateKey_bio (BIO * bp, RSA ** rsa);
643
678
int i2d_RSAPrivateKey_bio (BIO * bp, RSA * rsa);
644
679
RSA * d2i_RSAPublicKey_bio (BIO * bp, RSA ** rsa);
645
680
int i2d_RSAPublicKey_bio (BIO * bp, RSA * rsa);
646
681
RSA * d2i_RSA_PUBKEY_bio (BIO * bp, RSA ** rsa);
647
682
int i2d_RSA_PUBKEY_bio (BIO * bp, RSA * rsa);
683
+ }
648
684
685
+ version (OPENSSL_NO_DSA) {} else {
649
686
DSA * d2i_DSA_PUBKEY_bio (BIO * bp, DSA ** dsa);
650
687
int i2d_DSA_PUBKEY_bio (BIO * bp, DSA * dsa);
651
688
DSA * d2i_DSAPrivateKey_bio (BIO * bp, DSA ** dsa);
652
689
int i2d_DSAPrivateKey_bio (BIO * bp, DSA * dsa);
690
+ }
653
691
692
+ version (OPENSSL_NO_EC) {} else {
654
693
EC_KEY * d2i_EC_PUBKEY_bio (BIO * bp, EC_KEY ** eckey);
655
694
int i2d_EC_PUBKEY_bio (BIO * bp, EC_KEY * eckey);
656
695
EC_KEY * d2i_ECPrivateKey_bio (BIO * bp, EC_KEY ** eckey);
657
696
int i2d_ECPrivateKey_bio (BIO * bp, EC_KEY * eckey);
697
+ }
658
698
659
699
X509_SIG * d2i_PKCS8_bio (BIO * bp, X509_SIG ** p8);
660
700
int i2d_PKCS8_bio (BIO * bp, X509_SIG * p8);
@@ -735,14 +775,20 @@ c_long X509_get_pathlen(X509* x);
735
775
int i2d_PUBKEY (EVP_PKEY * a, ubyte ** pp);
736
776
EVP_PKEY * d2i_PUBKEY (EVP_PKEY ** a, const (ubyte * )* pp, c_long length);
737
777
778
+ version (OPENSSL_NO_RSA) {} else {
738
779
int i2d_RSA_PUBKEY (RSA * a, ubyte ** pp);
739
780
RSA * d2i_RSA_PUBKEY (RSA ** a, const (ubyte * )* pp, c_long length);
781
+ }
740
782
783
+ version (OPENSSL_NO_DSA) {} else {
741
784
int i2d_DSA_PUBKEY (DSA * a, ubyte ** pp);
742
785
DSA * d2i_DSA_PUBKEY (DSA ** a, const (ubyte * )* pp, c_long length);
786
+ }
743
787
788
+ version (OPENSSL_NO_EC) {} else {
744
789
int i2d_EC_PUBKEY (EC_KEY * a, ubyte ** pp);
745
790
EC_KEY * d2i_EC_PUBKEY (EC_KEY ** a, const (ubyte * )* pp, c_long length);
791
+ }
746
792
747
793
X509_SIG * X509_SIG_new ();
748
794
void X509_SIG_free (X509_SIG * a);
@@ -971,10 +1017,10 @@ int X509_set_pubkey(X509* x, EVP_PKEY* pkey);
971
1017
int X509_up_ref (X509 * x);
972
1018
int X509_get_signature_type (const (X509 )* x);
973
1019
974
- enum X509_get_notBefore = X509_getm_notBefore;
975
- enum X509_get_notAfter = X509_getm_notAfter;
976
- enum X509_set_notBefore = X509_set1_notBefore;
977
- enum X509_set_notAfter = X509_set1_notAfter;
1020
+ alias X509_get_notBefore = X509_getm_notBefore;
1021
+ alias X509_get_notAfter = X509_getm_notAfter;
1022
+ alias X509_set_notBefore = X509_set1_notBefore;
1023
+ alias X509_set_notAfter = X509_set1_notAfter;
978
1024
979
1025
/*
980
1026
* This one is only used so that a binary form can output, as in
@@ -1051,8 +1097,8 @@ int X509_CRL_set1_nextUpdate(X509_CRL* x, const(ASN1_TIME)* tm);
1051
1097
int X509_CRL_sort (X509_CRL * crl);
1052
1098
int X509_CRL_up_ref (X509_CRL * crl);
1053
1099
1054
- enum X509_CRL_set_lastUpdate = X509_CRL_set1_lastUpdate;
1055
- enum X509_CRL_set_nextUpdate = X509_CRL_set1_nextUpdate;
1100
+ alias X509_CRL_set_lastUpdate = X509_CRL_set1_lastUpdate;
1101
+ alias X509_CRL_set_nextUpdate = X509_CRL_set1_nextUpdate;
1056
1102
1057
1103
c_long X509_CRL_get_version (const (X509_CRL )* crl);
1058
1104
const (ASN1_TIME )* X509_CRL_get0_lastUpdate (const (X509_CRL )* crl);
@@ -1103,8 +1149,10 @@ c_ulong X509_issuer_name_hash(X509* a);
1103
1149
int X509_subject_name_cmp (const (X509 )* a, const (X509 )* b);
1104
1150
c_ulong X509_subject_name_hash (X509 * x);
1105
1151
1152
+ version (OPENSSL_NO_MD5) {} else {
1106
1153
c_ulong X509_issuer_name_hash_old (X509 * a);
1107
1154
c_ulong X509_subject_name_hash_old (X509 * x);
1155
+ }
1108
1156
1109
1157
int X509_cmp (const (X509 )* a, const (X509 )* b);
1110
1158
int X509_NAME_cmp (const (X509_NAME )* a, const (X509_NAME )* b);
@@ -1115,6 +1163,7 @@ int X509_CRL_cmp(const(X509_CRL)* a, const(X509_CRL)* b);
1115
1163
int X509_CRL_match (const (X509_CRL )* a, const (X509_CRL )* b);
1116
1164
int X509_aux_print (BIO * out_, X509 * x, int indent);
1117
1165
1166
+ version (OPENSSL_NO_STDIO) {} else {
1118
1167
int X509_print_ex_fp (FILE * bp, X509 * x, c_ulong nmflag, c_ulong cflag);
1119
1168
int X509_print_fp (FILE * bp, X509 * x);
1120
1169
int X509_CRL_print_fp (FILE * bp, X509_CRL * x);
@@ -1124,6 +1173,7 @@ int X509_NAME_print_ex_fp(
1124
1173
const (X509_NAME )* nm,
1125
1174
int indent,
1126
1175
c_ulong flags);
1176
+ }
1127
1177
1128
1178
int X509_NAME_print (BIO * bp, const (X509_NAME )* name, int obase);
1129
1179
int X509_NAME_print_ex (
@@ -1450,6 +1500,7 @@ X509_ALGOR* PKCS5_pbe2_set_iv(
1450
1500
ubyte * aiv,
1451
1501
int prf_nid);
1452
1502
1503
+ version (OPENSSL_NO_SCRYPT) {} else {
1453
1504
X509_ALGOR * PKCS5_pbe2_set_scrypt (
1454
1505
const (EVP_CIPHER )* cipher,
1455
1506
const (ubyte )* salt,
@@ -1458,6 +1509,7 @@ X509_ALGOR* PKCS5_pbe2_set_scrypt(
1458
1509
ulong N,
1459
1510
ulong r,
1460
1511
ulong p);
1512
+ }
1461
1513
1462
1514
X509_ALGOR * PKCS5_pbkdf2_set (
1463
1515
int iter,
0 commit comments