Skip to content

Commit ed1e3c5

Browse files
committed
Manual patching required after generating x509_vfy.d
* struct definitions removed from x509_vfy are instead added as declarations in ossl_typ. * imports translated according to #include's in header-file, dstep doesn't resolve imports. * macros used as function aliasesas without argument list are incorrectly generated into enum types.
1 parent bd3954e commit ed1e3c5

File tree

3 files changed

+38
-9
lines changed

3 files changed

+38
-9
lines changed

deimos/openssl/asn1.d

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -820,6 +820,8 @@ ASN1_OBJECT* d2i_ASN1_OBJECT(ASN1_OBJECT** a,const(ubyte)** pp,
820820
mixin(DECLARE_ASN1_ITEM!"ASN1_OBJECT");
821821

822822
/+mixin DECLARE_STACK_OF!(ASN1_OBJECT);+/
823+
struct stack_st_ASN1_OBJECT; // define type to make it compile, needed until this module and safestack.d is converted and supports "DEFINE_STACK_OF"
824+
823825
mixin DECLARE_ASN1_SET_OF!(ASN1_OBJECT);
824826

825827
ASN1_STRING* ASN1_STRING_new();

deimos/openssl/ossl_typ.d

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,10 @@ alias ecdsa_method ECDSA_METHOD;
171171

172172
import deimos.openssl.x509;
173173
import deimos.openssl.x509_vfy;
174+
175+
struct ssl_dane_st;
176+
alias SSL_DANE = ssl_dane_st;
177+
174178
alias x509_st X509;
175179
alias X509_algor_st X509_ALGOR;
176180
alias X509_crl_st X509_CRL;
@@ -179,9 +183,21 @@ alias x509_crl_method_st X509_CRL_METHOD;
179183
alias x509_revoked_st X509_REVOKED;
180184
alias X509_name_st X509_NAME;
181185
alias X509_pubkey_st X509_PUBKEY;
186+
struct x509_store_st;
182187
alias x509_store_st X509_STORE;
183-
/*struct x509_store_ctx_st;*/
188+
struct x509_store_ctx_st;
184189
alias x509_store_ctx_st X509_STORE_CTX;
190+
struct x509_lookup_st;
191+
alias X509_LOOKUP = x509_lookup_st;
192+
193+
struct x509_object_st;
194+
alias X509_OBJECT = x509_object_st;
195+
struct x509_lookup_method_st;
196+
alias X509_LOOKUP_METHOD = x509_lookup_method_st;
197+
struct X509_VERIFY_PARAM_st;
198+
alias X509_VERIFY_PARAM = X509_VERIFY_PARAM_st;
199+
200+
185201
alias pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO;
186202

187203
import deimos.openssl.x509v3;

deimos/openssl/x509_vfy.d

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,21 @@
77
* https://www.openssl.org/source/license.html
88
*/
99

10-
import core.stdc.config;
11-
import core.sys.posix.sched;
10+
module deimos.openssl.x509_vfy;
11+
12+
import core.stdc.time;
13+
14+
import deimos.openssl._d_util;
15+
import deimos.openssl.asn1:ASN1_OBJECT, stack_st_ASN1_OBJECT;
16+
17+
public import deimos.openssl.opensslconf;
18+
public import deimos.openssl.lhash;
19+
public import deimos.openssl.bio;
20+
public import deimos.openssl.crypto;
21+
public import deimos.openssl.symhacks;
1222

1323
extern (C):
24+
nothrow:
1425

1526
/*
1627
* Protect against recursion, x509.h and x509_vfy.h each include the other.
@@ -449,12 +460,12 @@ X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(X509_STORE_CTX* c
449460
X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(X509_STORE_CTX* ctx);
450461
X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(X509_STORE_CTX* ctx);
451462

452-
enum X509_STORE_CTX_get_chain = X509_STORE_CTX_get0_chain;
453-
enum X509_STORE_CTX_set_chain = X509_STORE_CTX_set0_untrusted;
454-
enum X509_STORE_CTX_trusted_stack = X509_STORE_CTX_set0_trusted_stack;
455-
enum X509_STORE_get_by_subject = X509_STORE_CTX_get_by_subject;
456-
enum X509_STORE_get1_cert = X509_STORE_CTX_get1_certs;
457-
enum X509_STORE_get1_crl = X509_STORE_CTX_get1_crls;
463+
alias X509_STORE_CTX_get_chain = X509_STORE_CTX_get0_chain;
464+
alias X509_STORE_CTX_set_chain = X509_STORE_CTX_set0_untrusted;
465+
alias X509_STORE_CTX_trusted_stack = X509_STORE_CTX_set0_trusted_stack;
466+
alias X509_STORE_get_by_subject = X509_STORE_CTX_get_by_subject;
467+
alias X509_STORE_get1_cert = X509_STORE_CTX_get1_certs;
468+
alias X509_STORE_get1_crl = X509_STORE_CTX_get1_crls;
458469

459470
X509_LOOKUP* X509_STORE_add_lookup(X509_STORE* v, X509_LOOKUP_METHOD* m);
460471
X509_LOOKUP_METHOD* X509_LOOKUP_hash_dir();

0 commit comments

Comments
 (0)