From 95ed0e7c1f4206191c1b0288e352010e70e252db Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Wed, 16 Sep 2015 18:46:16 +0100 Subject: [PATCH] Embed X509_REQ_INFO Reviewed-by: Rich Salz --- crypto/asn1/t_req.c | 4 ++-- crypto/asn1/x_req.c | 2 +- crypto/include/internal/x509_int.h | 2 +- crypto/x509/x509_r2x.c | 2 +- crypto/x509/x509_req.c | 30 +++++++++++++++--------------- crypto/x509/x509rset.c | 16 ++++++++-------- crypto/x509/x_all.c | 6 +++--- crypto/x509v3/v3_skey.c | 2 +- 8 files changed, 32 insertions(+), 32 deletions(-) diff --git a/crypto/asn1/t_req.c b/crypto/asn1/t_req.c index 7d72e0a26f..d9966a3848 100644 --- a/crypto/asn1/t_req.c +++ b/crypto/asn1/t_req.c @@ -108,7 +108,7 @@ int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflags, if (nmflags == X509_FLAG_COMPAT) nmindent = 16; - ri = x->req_info; + ri = &x->req_info; if (!(cflag & X509_FLAG_NO_HEADER)) { if (BIO_write(bp, "Certificate Request:\n", 21) <= 0) goto err; @@ -153,7 +153,7 @@ int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflags, if (BIO_printf(bp, "%8sAttributes:\n", "") <= 0) goto err; - sk = x->req_info->attributes; + sk = x->req_info.attributes; if (sk_X509_ATTRIBUTE_num(sk) == 0) { if (BIO_printf(bp, "%12sa0:00\n", "") <= 0) goto err; diff --git a/crypto/asn1/x_req.c b/crypto/asn1/x_req.c index 102b1f6332..bd07d72627 100644 --- a/crypto/asn1/x_req.c +++ b/crypto/asn1/x_req.c @@ -107,7 +107,7 @@ ASN1_SEQUENCE_enc(X509_REQ_INFO, enc, rinf_cb) = { IMPLEMENT_ASN1_FUNCTIONS(X509_REQ_INFO) ASN1_SEQUENCE_ref(X509_REQ, 0, CRYPTO_LOCK_X509_REQ) = { - ASN1_SIMPLE(X509_REQ, req_info, X509_REQ_INFO), + ASN1_EMBED(X509_REQ, req_info, X509_REQ_INFO), ASN1_SIMPLE(X509_REQ, sig_alg, X509_ALGOR), ASN1_SIMPLE(X509_REQ, signature, ASN1_BIT_STRING) } ASN1_SEQUENCE_END_ref(X509_REQ, X509_REQ) diff --git a/crypto/include/internal/x509_int.h b/crypto/include/internal/x509_int.h index 7c31289f9e..96c15e3c90 100644 --- a/crypto/include/internal/x509_int.h +++ b/crypto/include/internal/x509_int.h @@ -100,7 +100,7 @@ struct X509_req_info_st { }; struct X509_req_st { - X509_REQ_INFO *req_info; + X509_REQ_INFO req_info; X509_ALGOR *sig_alg; ASN1_BIT_STRING *signature; int references; diff --git a/crypto/x509/x509_r2x.c b/crypto/x509/x509_r2x.c index 00f772a373..c5c58f5fd3 100644 --- a/crypto/x509/x509_r2x.c +++ b/crypto/x509/x509_r2x.c @@ -80,7 +80,7 @@ X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey) /* duplicate the request */ xi = &ret->cert_info; - if (sk_X509_ATTRIBUTE_num(r->req_info->attributes) != 0) { + if (sk_X509_ATTRIBUTE_num(r->req_info.attributes) != 0) { if ((xi->version = ASN1_INTEGER_new()) == NULL) goto err; if (!ASN1_INTEGER_set(xi->version, 2)) diff --git a/crypto/x509/x509_req.c b/crypto/x509/x509_req.c index 70e27b8306..34336941e5 100644 --- a/crypto/x509/x509_req.c +++ b/crypto/x509/x509_req.c @@ -81,7 +81,7 @@ X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md) goto err; } - ri = ret->req_info; + ri = &ret->req_info; ri->version->length = 1; ri->version->data = OPENSSL_malloc(1); @@ -112,9 +112,9 @@ X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md) EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req) { - if ((req == NULL) || (req->req_info == NULL)) + if (req == NULL) return (NULL); - return (X509_PUBKEY_get(req->req_info->pubkey)); + return (X509_PUBKEY_get(req->req_info.pubkey)); } int X509_REQ_check_private_key(X509_REQ *x, EVP_PKEY *k) @@ -195,7 +195,7 @@ STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req) int idx, *pnid; const unsigned char *p; - if ((req == NULL) || (req->req_info == NULL) || !ext_nids) + if ((req == NULL) || !ext_nids) return (NULL); for (pnid = ext_nids; *pnid != NID_undef; pnid++) { idx = X509_REQ_get_attr_by_NID(req, *pnid, -1); @@ -244,33 +244,33 @@ int X509_REQ_add_extensions(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts) int X509_REQ_get_attr_count(const X509_REQ *req) { - return X509at_get_attr_count(req->req_info->attributes); + return X509at_get_attr_count(req->req_info.attributes); } int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos) { - return X509at_get_attr_by_NID(req->req_info->attributes, nid, lastpos); + return X509at_get_attr_by_NID(req->req_info.attributes, nid, lastpos); } int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, ASN1_OBJECT *obj, int lastpos) { - return X509at_get_attr_by_OBJ(req->req_info->attributes, obj, lastpos); + return X509at_get_attr_by_OBJ(req->req_info.attributes, obj, lastpos); } X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc) { - return X509at_get_attr(req->req_info->attributes, loc); + return X509at_get_attr(req->req_info.attributes, loc); } X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc) { - return X509at_delete_attr(req->req_info->attributes, loc); + return X509at_delete_attr(req->req_info.attributes, loc); } int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr) { - if (X509at_add1_attr(&req->req_info->attributes, attr)) + if (X509at_add1_attr(&req->req_info.attributes, attr)) return 1; return 0; } @@ -279,7 +279,7 @@ int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, const ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len) { - if (X509at_add1_attr_by_OBJ(&req->req_info->attributes, obj, + if (X509at_add1_attr_by_OBJ(&req->req_info.attributes, obj, type, bytes, len)) return 1; return 0; @@ -289,7 +289,7 @@ int X509_REQ_add1_attr_by_NID(X509_REQ *req, int nid, int type, const unsigned char *bytes, int len) { - if (X509at_add1_attr_by_NID(&req->req_info->attributes, nid, + if (X509at_add1_attr_by_NID(&req->req_info.attributes, nid, type, bytes, len)) return 1; return 0; @@ -299,7 +299,7 @@ int X509_REQ_add1_attr_by_txt(X509_REQ *req, const char *attrname, int type, const unsigned char *bytes, int len) { - if (X509at_add1_attr_by_txt(&req->req_info->attributes, attrname, + if (X509at_add1_attr_by_txt(&req->req_info.attributes, attrname, type, bytes, len)) return 1; return 0; @@ -307,10 +307,10 @@ int X509_REQ_add1_attr_by_txt(X509_REQ *req, long X509_REQ_get_version(X509_REQ *req) { - return ASN1_INTEGER_get(req->req_info->version); + return ASN1_INTEGER_get(req->req_info.version); } X509_NAME *X509_REQ_get_subject_name(X509_REQ *req) { - return req->req_info->subject; + return req->req_info.subject; } diff --git a/crypto/x509/x509rset.c b/crypto/x509/x509rset.c index cf9bdfb3e0..817400c0af 100644 --- a/crypto/x509/x509rset.c +++ b/crypto/x509/x509rset.c @@ -68,22 +68,22 @@ int X509_REQ_set_version(X509_REQ *x, long version) { if (x == NULL) return (0); - x->req_info->enc.modified = 1; - return (ASN1_INTEGER_set(x->req_info->version, version)); + x->req_info.enc.modified = 1; + return (ASN1_INTEGER_set(x->req_info.version, version)); } int X509_REQ_set_subject_name(X509_REQ *x, X509_NAME *name) { - if ((x == NULL) || (x->req_info == NULL)) + if (x == NULL) return (0); - x->req_info->enc.modified = 1; - return (X509_NAME_set(&x->req_info->subject, name)); + x->req_info.enc.modified = 1; + return (X509_NAME_set(&x->req_info.subject, name)); } int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey) { - if ((x == NULL) || (x->req_info == NULL)) + if (x == NULL) return (0); - x->req_info->enc.modified = 1; - return (X509_PUBKEY_set(&x->req_info->pubkey, pkey)); + x->req_info.enc.modified = 1; + return (X509_PUBKEY_set(&x->req_info.pubkey, pkey)); } diff --git a/crypto/x509/x_all.c b/crypto/x509/x_all.c index ca5a95a08f..b7f6be13bc 100644 --- a/crypto/x509/x_all.c +++ b/crypto/x509/x_all.c @@ -83,7 +83,7 @@ int X509_verify(X509 *a, EVP_PKEY *r) int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r) { return (ASN1_item_verify(ASN1_ITEM_rptr(X509_REQ_INFO), - a->sig_alg, a->signature, a->req_info, r)); + a->sig_alg, a->signature, &a->req_info, r)); } int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r) @@ -116,13 +116,13 @@ int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert) int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md) { return (ASN1_item_sign(ASN1_ITEM_rptr(X509_REQ_INFO), x->sig_alg, NULL, - x->signature, x->req_info, pkey, md)); + x->signature, &x->req_info, pkey, md)); } int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx) { return ASN1_item_sign_ctx(ASN1_ITEM_rptr(X509_REQ_INFO), - x->sig_alg, NULL, x->signature, x->req_info, + x->sig_alg, NULL, x->signature, &x->req_info, ctx); } diff --git a/crypto/x509v3/v3_skey.c b/crypto/x509v3/v3_skey.c index 641104ab08..cf3521304d 100644 --- a/crypto/x509v3/v3_skey.c +++ b/crypto/x509v3/v3_skey.c @@ -126,7 +126,7 @@ static ASN1_OCTET_STRING *s2i_skey_id(X509V3_EXT_METHOD *method, } if (ctx->subject_req) - pk = ctx->subject_req->req_info->pubkey->public_key; + pk = ctx->subject_req->req_info.pubkey->public_key; else pk = ctx->subject_cert->cert_info.key->public_key; -- 2.25.1