Make PKCS12 structures opaque
authorDr. Stephen Henson <steve@openssl.org>
Sat, 26 Sep 2015 11:26:51 +0000 (12:26 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Mon, 8 Feb 2016 18:43:48 +0000 (18:43 +0000)
Reviewed-by: Rich Salz <rsalz@openssl.org>
crypto/pkcs12/p12_add.c
crypto/pkcs12/p12_asn.c
crypto/pkcs12/p12_attr.c
crypto/pkcs12/p12_crt.c
crypto/pkcs12/p12_init.c
include/openssl/pkcs12.h

index 4f2070e9416246c84c6c008d7a9cdf6b4d6417c2..85f9faf3a4fd6208ee568f5b7104134814b7c661 100644 (file)
@@ -59,6 +59,7 @@
 #include <stdio.h>
 #include "internal/cryptlib.h"
 #include <openssl/pkcs12.h>
+#include "p12_lcl.h"
 
 /* Pack an object into an OCTET STRING and turn into a safebag */
 
index 5a432613bff21da1ef9c83cfcc8f0f6b32e417e5..2f9481ec721ce5db85108471096ab67305528f6d 100644 (file)
@@ -60,6 +60,7 @@
 #include "internal/cryptlib.h"
 #include <openssl/asn1t.h>
 #include <openssl/pkcs12.h>
+#include "p12_lcl.h"
 
 /* PKCS#12 ASN1 module */
 
index 792e3811ff2fec204a4f3c7f647df6a673c701c9..5746a7b502ce09c0edd928fe705ea47e973e385c 100644 (file)
@@ -59,6 +59,7 @@
 #include <stdio.h>
 #include "internal/cryptlib.h"
 #include <openssl/pkcs12.h>
+#include "p12_lcl.h"
 
 /* Add a local keyid to a safebag */
 
index ae52d9ec4b4391f71007d73ac1c25ed9b6e758ad..c4632a9b95ca62fea69ccb2b11dc28d4d938bda5 100644 (file)
@@ -59,6 +59,7 @@
 #include <stdio.h>
 #include "internal/cryptlib.h"
 #include <openssl/pkcs12.h>
+#include "p12_lcl.h"
 
 static int pkcs12_add_bag(STACK_OF(PKCS12_SAFEBAG) **pbags,
                           PKCS12_SAFEBAG *bag);
index 3597e1320483bba01989d53ac0d283221163172d..9c82969b3874312370957a2917cf0707540859de 100644 (file)
@@ -59,6 +59,7 @@
 #include <stdio.h>
 #include "internal/cryptlib.h"
 #include <openssl/pkcs12.h>
+#include "p12_lcl.h"
 
 /* Initialise a PKCS12 structure to take data */
 
index b164a00d5bb563f314d8818ef54ef7df84e35776..24425d3293790acfd1f18ff1f8c5b35c50810edd 100644 (file)
@@ -98,42 +98,15 @@ extern "C" {
 # define KEY_EX  0x10
 # define KEY_SIG 0x80
 
-typedef struct {
-    X509_SIG *dinfo;
-    ASN1_OCTET_STRING *salt;
-    ASN1_INTEGER *iter;         /* defaults to 1 */
-} PKCS12_MAC_DATA;
-
-typedef struct {
-    ASN1_INTEGER *version;
-    PKCS12_MAC_DATA *mac;
-    PKCS7 *authsafes;
-} PKCS12;
-
-typedef struct {
-    ASN1_OBJECT *type;
-    union {
-        struct pkcs12_bag_st *bag; /* secret, crl and certbag */
-        struct pkcs8_priv_key_info_st *keybag; /* keybag */
-        X509_SIG *shkeybag;     /* shrouded key bag */
-        STACK_OF(PKCS12_SAFEBAG) *safes;
-        ASN1_TYPE *other;
-    } value;
-    STACK_OF(X509_ATTRIBUTE) *attrib;
-} PKCS12_SAFEBAG;
+typedef struct PKCS12_MAC_DATA_st PKCS12_MAC_DATA;
+
+typedef struct PKCS12_st PKCS12;
+
+typedef struct PKCS12_SAFEBAG_st PKCS12_SAFEBAG;
 
 DEFINE_STACK_OF(PKCS12_SAFEBAG)
 
-typedef struct pkcs12_bag_st {
-    ASN1_OBJECT *type;
-    union {
-        ASN1_OCTET_STRING *x509cert;
-        ASN1_OCTET_STRING *x509crl;
-        ASN1_OCTET_STRING *octet;
-        ASN1_IA5STRING *sdsicert;
-        ASN1_TYPE *other;       /* Secret or other bag */
-    } value;
-} PKCS12_BAGS;
+typedef struct pkcs12_bag_st PKCS12_BAGS;
 
 # define PKCS12_ERROR    0
 # define PKCS12_OK       1