Make X509_SIG and X509_CERT_AUX opaque.
I meant to grab more interesting types this round, but I missed a few
spots. We should be able to get these out of the way though.
Update-Note: Direct access of these structs should be replaced by
accessors.
Change-Id: I43cb8f949d53754cfebef2f84be66e89d2b96f96
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/47384
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/x509/internal.h b/crypto/x509/internal.h
index a5f31c2..1e5a7d9 100644
--- a/crypto/x509/internal.h
+++ b/crypto/x509/internal.h
@@ -42,6 +42,14 @@
STACK_OF(ASN1_TYPE) *set;
} /* X509_ATTRIBUTE */;
+struct x509_cert_aux_st {
+ STACK_OF(ASN1_OBJECT) *trust; // trusted uses
+ STACK_OF(ASN1_OBJECT) *reject; // rejected uses
+ ASN1_UTF8STRING *alias; // "friendly name"
+ ASN1_OCTET_STRING *keyid; // key id of private key
+ STACK_OF(X509_ALGOR) *other; // other unspecified info
+} /* X509_CERT_AUX */;
+
/* RSA-PSS functions. */
diff --git a/crypto/x509/t_x509a.c b/crypto/x509/t_x509a.c
index 5436828..7fbb47b 100644
--- a/crypto/x509/t_x509a.c
+++ b/crypto/x509/t_x509a.c
@@ -60,6 +60,9 @@
#include <openssl/obj.h>
#include <openssl/x509.h>
+#include "internal.h"
+
+
/* X509_CERT_AUX and string set routines */
int X509_CERT_AUX_print(BIO *out, X509_CERT_AUX *aux, int indent)
diff --git a/crypto/x509/x509_trs.c b/crypto/x509/x509_trs.c
index d3002e8..c95d6fc 100644
--- a/crypto/x509/x509_trs.c
+++ b/crypto/x509/x509_trs.c
@@ -60,6 +60,8 @@
#include <openssl/x509v3.h>
#include "../x509v3/internal.h"
+#include "internal.h"
+
static int tr_cmp(const X509_TRUST **a, const X509_TRUST **b);
static void trtable_free(X509_TRUST *p);
diff --git a/crypto/x509/x_sig.c b/crypto/x509/x_sig.c
index ca08c64..8f9a5b7 100644
--- a/crypto/x509/x_sig.c
+++ b/crypto/x509/x_sig.c
@@ -61,6 +61,11 @@
#include <openssl/x509.h>
+struct X509_sig_st {
+ X509_ALGOR *algor;
+ ASN1_OCTET_STRING *digest;
+} /* X509_SIG */;
+
ASN1_SEQUENCE(X509_SIG) = {
ASN1_SIMPLE(X509_SIG, algor, X509_ALGOR),
ASN1_SIMPLE(X509_SIG, digest, ASN1_OCTET_STRING)
diff --git a/crypto/x509/x_x509a.c b/crypto/x509/x_x509a.c
index 823fa5c..fca02a6 100644
--- a/crypto/x509/x_x509a.c
+++ b/crypto/x509/x_x509a.c
@@ -61,6 +61,9 @@
#include <openssl/obj.h>
#include <openssl/x509.h>
+#include "internal.h"
+
+
/*
* X509_CERT_AUX routines. These are used to encode additional user
* modifiable data about a certificate. This data is appended to the X509
diff --git a/include/openssl/x509.h b/include/openssl/x509.h
index 67153c4..3e1435b 100644
--- a/include/openssl/x509.h
+++ b/include/openssl/x509.h
@@ -115,11 +115,6 @@
typedef STACK_OF(X509_ALGOR) X509_ALGORS;
-struct X509_sig_st {
- X509_ALGOR *algor;
- ASN1_OCTET_STRING *digest;
-} /* X509_SIG */;
-
struct X509_name_entry_st {
ASN1_OBJECT *object;
ASN1_STRING *value;
@@ -192,14 +187,6 @@
// stores and databases. When used this is tagged onto
// the end of the certificate itself
-struct x509_cert_aux_st {
- STACK_OF(ASN1_OBJECT) *trust; // trusted uses
- STACK_OF(ASN1_OBJECT) *reject; // rejected uses
- ASN1_UTF8STRING *alias; // "friendly name"
- ASN1_OCTET_STRING *keyid; // key id of private key
- STACK_OF(X509_ALGOR) *other; // other unspecified info
-} /* X509_CERT_AUX */;
-
DECLARE_STACK_OF(DIST_POINT)
DECLARE_STACK_OF(GENERAL_NAME)