make X509_REQ opaque
Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
parent
bc3686dfb0
commit
124055a96e
@ -1479,7 +1479,6 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509,
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
X509_REQ_set_subject_name(req, n);
|
X509_REQ_set_subject_name(req, n);
|
||||||
req->req_info->enc.modified = 1;
|
|
||||||
X509_NAME_free(n);
|
X509_NAME_free(n);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1993,7 +1992,6 @@ static int certify_spkac(X509 **xret, char *infile, EVP_PKEY *pkey,
|
|||||||
X509_REQ *req = NULL;
|
X509_REQ *req = NULL;
|
||||||
CONF_VALUE *cv = NULL;
|
CONF_VALUE *cv = NULL;
|
||||||
NETSCAPE_SPKI *spki = NULL;
|
NETSCAPE_SPKI *spki = NULL;
|
||||||
X509_REQ_INFO *ri;
|
|
||||||
char *type, *buf;
|
char *type, *buf;
|
||||||
EVP_PKEY *pktmp = NULL;
|
EVP_PKEY *pktmp = NULL;
|
||||||
X509_NAME *n = NULL;
|
X509_NAME *n = NULL;
|
||||||
@ -2037,8 +2035,7 @@ static int certify_spkac(X509 **xret, char *infile, EVP_PKEY *pkey,
|
|||||||
/*
|
/*
|
||||||
* Build up the subject name set.
|
* Build up the subject name set.
|
||||||
*/
|
*/
|
||||||
ri = req->req_info;
|
n = X509_REQ_get_subject_name(req);
|
||||||
n = ri->subject;
|
|
||||||
|
|
||||||
for (i = 0;; i++) {
|
for (i = 0;; i++) {
|
||||||
if (sk_CONF_VALUE_num(sk) <= i)
|
if (sk_CONF_VALUE_num(sk) <= i)
|
||||||
|
@ -726,8 +726,6 @@ int req_main(int argc, char **argv)
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
req->req_info->enc.modified = 1;
|
|
||||||
|
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
print_name(bio_err, "new subject=",
|
print_name(bio_err, "new subject=",
|
||||||
X509_REQ_get_subject_name(req), nmflag);
|
X509_REQ_get_subject_name(req), nmflag);
|
||||||
|
13
apps/x509.c
13
apps/x509.c
@ -567,15 +567,6 @@ int x509_main(int argc, char **argv)
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((req->req_info == NULL) ||
|
|
||||||
(req->req_info->pubkey == NULL) ||
|
|
||||||
(req->req_info->pubkey->public_key == NULL) ||
|
|
||||||
(req->req_info->pubkey->public_key->data == NULL)) {
|
|
||||||
BIO_printf(bio_err,
|
|
||||||
"The certificate request appears to corrupted\n");
|
|
||||||
BIO_printf(bio_err, "It does not contain a public key\n");
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
if ((pkey = X509_REQ_get_pubkey(req)) == NULL) {
|
if ((pkey = X509_REQ_get_pubkey(req)) == NULL) {
|
||||||
BIO_printf(bio_err, "error unpacking public key\n");
|
BIO_printf(bio_err, "error unpacking public key\n");
|
||||||
goto end;
|
goto end;
|
||||||
@ -611,9 +602,9 @@ int x509_main(int argc, char **argv)
|
|||||||
} else if (!X509_set_serialNumber(x, sno))
|
} else if (!X509_set_serialNumber(x, sno))
|
||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
if (!X509_set_issuer_name(x, req->req_info->subject))
|
if (!X509_set_issuer_name(x, X509_REQ_get_subject_name(req)))
|
||||||
goto end;
|
goto end;
|
||||||
if (!X509_set_subject_name(x, req->req_info->subject))
|
if (!X509_set_subject_name(x, X509_REQ_get_subject_name(req)))
|
||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
X509_gmtime_adj(X509_get_notBefore(x), 0);
|
X509_gmtime_adj(X509_get_notBefore(x), 0);
|
||||||
|
@ -62,6 +62,7 @@
|
|||||||
#include <openssl/bn.h>
|
#include <openssl/bn.h>
|
||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
#include "internal/x509_int.h"
|
||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
# include <openssl/rsa.h>
|
# include <openssl/rsa.h>
|
||||||
|
@ -60,6 +60,7 @@
|
|||||||
#include "internal/cryptlib.h"
|
#include "internal/cryptlib.h"
|
||||||
#include <openssl/asn1t.h>
|
#include <openssl/asn1t.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
#include "internal/x509_int.h"
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* X509_REQ_INFO is handled in an unusual way to get round
|
* X509_REQ_INFO is handled in an unusual way to get round
|
||||||
|
@ -89,3 +89,19 @@ struct x509_cert_aux_st {
|
|||||||
ASN1_OCTET_STRING *keyid; /* key id of private key */
|
ASN1_OCTET_STRING *keyid; /* key id of private key */
|
||||||
STACK_OF(X509_ALGOR) *other; /* other unspecified info */
|
STACK_OF(X509_ALGOR) *other; /* other unspecified info */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct X509_req_info_st {
|
||||||
|
ASN1_ENCODING enc;
|
||||||
|
ASN1_INTEGER *version;
|
||||||
|
X509_NAME *subject;
|
||||||
|
X509_PUBKEY *pubkey;
|
||||||
|
/* d=2 hl=2 l= 0 cons: cont: 00 */
|
||||||
|
STACK_OF(X509_ATTRIBUTE) *attributes; /* [ 0 ] */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct X509_req_st {
|
||||||
|
X509_REQ_INFO *req_info;
|
||||||
|
X509_ALGOR *sig_alg;
|
||||||
|
ASN1_BIT_STRING *signature;
|
||||||
|
int references;
|
||||||
|
};
|
||||||
|
@ -62,6 +62,7 @@
|
|||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/asn1.h>
|
#include <openssl/asn1.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
#include "internal/x509_int.h"
|
||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/buffer.h>
|
#include <openssl/buffer.h>
|
||||||
|
|
||||||
|
@ -63,6 +63,7 @@
|
|||||||
#include <openssl/asn1.h>
|
#include <openssl/asn1.h>
|
||||||
#include <openssl/asn1t.h>
|
#include <openssl/asn1t.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
#include "internal/x509_int.h"
|
||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/buffer.h>
|
#include <openssl/buffer.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
@ -303,3 +304,13 @@ int X509_REQ_add1_attr_by_txt(X509_REQ *req,
|
|||||||
return 1;
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long X509_REQ_get_version(X509_REQ *req)
|
||||||
|
{
|
||||||
|
return ASN1_INTEGER_get(req->req_info->version);
|
||||||
|
}
|
||||||
|
|
||||||
|
X509_NAME *X509_REQ_get_subject_name(X509_REQ *req)
|
||||||
|
{
|
||||||
|
return req->req_info->subject;
|
||||||
|
}
|
||||||
|
@ -62,11 +62,13 @@
|
|||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
#include "internal/x509_int.h"
|
||||||
|
|
||||||
int X509_REQ_set_version(X509_REQ *x, long version)
|
int X509_REQ_set_version(X509_REQ *x, long version)
|
||||||
{
|
{
|
||||||
if (x == NULL)
|
if (x == NULL)
|
||||||
return (0);
|
return (0);
|
||||||
|
x->req_info->enc.modified = 1;
|
||||||
return (ASN1_INTEGER_set(x->req_info->version, version));
|
return (ASN1_INTEGER_set(x->req_info->version, version));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,6 +76,7 @@ int X509_REQ_set_subject_name(X509_REQ *x, X509_NAME *name)
|
|||||||
{
|
{
|
||||||
if ((x == NULL) || (x->req_info == NULL))
|
if ((x == NULL) || (x->req_info == NULL))
|
||||||
return (0);
|
return (0);
|
||||||
|
x->req_info->enc.modified = 1;
|
||||||
return (X509_NAME_set(&x->req_info->subject, name));
|
return (X509_NAME_set(&x->req_info->subject, name));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,5 +84,6 @@ int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey)
|
|||||||
{
|
{
|
||||||
if ((x == NULL) || (x->req_info == NULL))
|
if ((x == NULL) || (x->req_info == NULL))
|
||||||
return (0);
|
return (0);
|
||||||
|
x->req_info->enc.modified = 1;
|
||||||
return (X509_PUBKEY_set(&x->req_info->pubkey, pkey));
|
return (X509_PUBKEY_set(&x->req_info->pubkey, pkey));
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,7 @@
|
|||||||
#include <openssl/asn1.h>
|
#include <openssl/asn1.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
#include "internal/x509_int.h"
|
||||||
#include <openssl/ocsp.h>
|
#include <openssl/ocsp.h>
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
# include <openssl/rsa.h>
|
# include <openssl/rsa.h>
|
||||||
|
@ -60,6 +60,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "internal/cryptlib.h"
|
#include "internal/cryptlib.h"
|
||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
|
#include "internal/x509_int.h"
|
||||||
|
|
||||||
static ASN1_OCTET_STRING *s2i_skey_id(X509V3_EXT_METHOD *method,
|
static ASN1_OCTET_STRING *s2i_skey_id(X509V3_EXT_METHOD *method,
|
||||||
X509V3_CTX *ctx, char *str);
|
X509V3_CTX *ctx, char *str);
|
||||||
|
@ -63,6 +63,7 @@
|
|||||||
#include "internal/cryptlib.h"
|
#include "internal/cryptlib.h"
|
||||||
#include <openssl/conf.h>
|
#include <openssl/conf.h>
|
||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
|
#include "internal/x509_int.h"
|
||||||
#include <openssl/bn.h>
|
#include <openssl/bn.h>
|
||||||
|
|
||||||
static char *strip_spaces(char *name);
|
static char *strip_spaces(char *name);
|
||||||
|
@ -166,21 +166,9 @@ typedef struct x509_attributes_st X509_ATTRIBUTE;
|
|||||||
|
|
||||||
DECLARE_STACK_OF(X509_ATTRIBUTE)
|
DECLARE_STACK_OF(X509_ATTRIBUTE)
|
||||||
|
|
||||||
typedef struct X509_req_info_st {
|
typedef struct X509_req_info_st X509_REQ_INFO;
|
||||||
ASN1_ENCODING enc;
|
|
||||||
ASN1_INTEGER *version;
|
|
||||||
X509_NAME *subject;
|
|
||||||
X509_PUBKEY *pubkey;
|
|
||||||
/* d=2 hl=2 l= 0 cons: cont: 00 */
|
|
||||||
STACK_OF(X509_ATTRIBUTE) *attributes; /* [ 0 ] */
|
|
||||||
} X509_REQ_INFO;
|
|
||||||
|
|
||||||
typedef struct X509_req_st {
|
typedef struct X509_req_st X509_REQ;
|
||||||
X509_REQ_INFO *req_info;
|
|
||||||
X509_ALGOR *sig_alg;
|
|
||||||
ASN1_BIT_STRING *signature;
|
|
||||||
int references;
|
|
||||||
} X509_REQ;
|
|
||||||
|
|
||||||
typedef struct x509_cinf_st {
|
typedef struct x509_cinf_st {
|
||||||
ASN1_INTEGER *version; /* [ 0 ] default of v1 */
|
ASN1_INTEGER *version; /* [ 0 ] default of v1 */
|
||||||
@ -508,8 +496,6 @@ extern "C" {
|
|||||||
# define X509_get_notBefore(x) ((x)->cert_info->validity->notBefore)
|
# define X509_get_notBefore(x) ((x)->cert_info->validity->notBefore)
|
||||||
# define X509_get_notAfter(x) ((x)->cert_info->validity->notAfter)
|
# define X509_get_notAfter(x) ((x)->cert_info->validity->notAfter)
|
||||||
# define X509_extract_key(x) X509_get_pubkey(x)/*****/
|
# define X509_extract_key(x) X509_get_pubkey(x)/*****/
|
||||||
# define X509_REQ_get_version(x) ASN1_INTEGER_get((x)->req_info->version)
|
|
||||||
# define X509_REQ_get_subject_name(x) ((x)->req_info->subject)
|
|
||||||
# define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a)
|
# define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a)
|
||||||
# define X509_name_cmp(a,b) X509_NAME_cmp((a),(b))
|
# define X509_name_cmp(a,b) X509_NAME_cmp((a),(b))
|
||||||
# define X509_get_signature_type(x) EVP_PKEY_type(OBJ_obj2nid((x)->sig_alg->algorithm))
|
# define X509_get_signature_type(x) EVP_PKEY_type(OBJ_obj2nid((x)->sig_alg->algorithm))
|
||||||
@ -816,7 +802,9 @@ EVP_PKEY *X509_get_pubkey(X509 *x);
|
|||||||
ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x);
|
ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x);
|
||||||
int X509_certificate_type(X509 *x, EVP_PKEY *pubkey /* optional */ );
|
int X509_certificate_type(X509 *x, EVP_PKEY *pubkey /* optional */ );
|
||||||
|
|
||||||
|
long X509_REQ_get_version(X509_REQ *req);
|
||||||
int X509_REQ_set_version(X509_REQ *x, long version);
|
int X509_REQ_set_version(X509_REQ *x, long version);
|
||||||
|
X509_NAME *X509_REQ_get_subject_name(X509_REQ *req);
|
||||||
int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name);
|
int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name);
|
||||||
int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey);
|
int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey);
|
||||||
EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req);
|
EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req);
|
||||||
|
Loading…
Reference in New Issue
Block a user