stack.
authorBen Laurie <ben@openssl.org>
Mon, 31 May 1999 21:00:25 +0000 (21:00 +0000)
committerBen Laurie <ben@openssl.org>
Mon, 31 May 1999 21:00:25 +0000 (21:00 +0000)
apps/crl2p7.c
apps/pkcs7.c
crypto/asn1/p7_s_e.c
crypto/asn1/p7_signd.c
crypto/pkcs7/pk7_lib.c
crypto/pkcs7/pkcs7.h
crypto/x509/x509.h

index ba4eba16bf9ca1932dd5524ae80de0e9a00a1c89..f4b216f68b2a7e76cd3d253826a2b178e2fd789c 100644 (file)
@@ -92,7 +92,7 @@ int MAIN(int argc, char **argv)
        PKCS7_SIGNED *p7s = NULL;
        X509_CRL *crl=NULL;
        STACK *certflst=NULL;
        PKCS7_SIGNED *p7s = NULL;
        X509_CRL *crl=NULL;
        STACK *certflst=NULL;
-       STACK *crl_stack=NULL;
+       STACK_OF(X509_CRL) *crl_stack=NULL;
        STACK_OF(X509) *cert_stack=NULL;
        int ret=1,nocrl=0;
 
        STACK_OF(X509) *cert_stack=NULL;
        int ret=1,nocrl=0;
 
@@ -213,11 +213,11 @@ bad:
        p7s->contents->type=OBJ_nid2obj(NID_pkcs7_data);
 
        if (!ASN1_INTEGER_set(p7s->version,1)) goto end;
        p7s->contents->type=OBJ_nid2obj(NID_pkcs7_data);
 
        if (!ASN1_INTEGER_set(p7s->version,1)) goto end;
-       if ((crl_stack=sk_new(NULL)) == NULL) goto end;
+       if ((crl_stack=sk_X509_CRL_new(NULL)) == NULL) goto end;
        p7s->crl=crl_stack;
        if (crl != NULL)
                {
        p7s->crl=crl_stack;
        if (crl != NULL)
                {
-               sk_push(crl_stack,(char *)crl);
+               sk_X509_CRL_push(crl_stack,crl);
                crl=NULL; /* now part of p7 for Freeing */
                }
 
                crl=NULL; /* now part of p7 for Freeing */
                }
 
index 24b3e57882c516d28fe1debe157a01d6039e60af..9518983d5d6bea65361c0b2e931e43973dec892c 100644 (file)
@@ -222,7 +222,7 @@ bad:
        if (print_certs)
                {
                STACK_OF(X509) *certs=NULL;
        if (print_certs)
                {
                STACK_OF(X509) *certs=NULL;
-               STACK *crls=NULL;
+               STACK_OF(X509_CRL) *crls=NULL;
 
                i=OBJ_obj2nid(p7->type);
                switch (i)
 
                i=OBJ_obj2nid(p7->type);
                switch (i)
@@ -266,9 +266,9 @@ bad:
                        {
                        X509_CRL *crl;
 
                        {
                        X509_CRL *crl;
 
-                       for (i=0; i<sk_num(crls); i++)
+                       for (i=0; i<sk_X509_CRL_num(crls); i++)
                                {
                                {
-                               crl=(X509_CRL *)sk_value(crls,i);
+                               crl=sk_X509_CRL_value(crls,i);
 
                                X509_NAME_oneline(crl->crl->issuer,buf,256);
                                BIO_puts(out,"issuer= ");
 
                                X509_NAME_oneline(crl->crl->issuer,buf,256);
                                BIO_puts(out,"issuer= ");
index bf20fd0b6340a310b2cb108d4b4ae087822869d0..1df66ddbcb55b44f246e47002b58dee23b5776e1 100644 (file)
@@ -70,7 +70,7 @@ int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **pp)
        M_ASN1_I2D_len_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
        M_ASN1_I2D_len(a->enc_data,i2d_PKCS7_ENC_CONTENT);
        M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
        M_ASN1_I2D_len_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
        M_ASN1_I2D_len(a->enc_data,i2d_PKCS7_ENC_CONTENT);
        M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
-       M_ASN1_I2D_len_IMP_SET_opt(a->crl,i2d_X509_CRL,1);
+       M_ASN1_I2D_len_IMP_SET_opt_type(X509_CRL,a->crl,i2d_X509_CRL,1);
        M_ASN1_I2D_len_SET(a->signer_info,i2d_PKCS7_SIGNER_INFO);
 
        M_ASN1_I2D_seq_total();
        M_ASN1_I2D_len_SET(a->signer_info,i2d_PKCS7_SIGNER_INFO);
 
        M_ASN1_I2D_seq_total();
@@ -80,7 +80,7 @@ int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **pp)
        M_ASN1_I2D_put_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
        M_ASN1_I2D_put(a->enc_data,i2d_PKCS7_ENC_CONTENT);
        M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
        M_ASN1_I2D_put_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
        M_ASN1_I2D_put(a->enc_data,i2d_PKCS7_ENC_CONTENT);
        M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
-       M_ASN1_I2D_put_IMP_SET_opt(a->crl,i2d_X509_CRL,1);
+       M_ASN1_I2D_put_IMP_SET_opt_type(X509_CRL,a->crl,i2d_X509_CRL,1);
        M_ASN1_I2D_put_SET(a->signer_info,i2d_PKCS7_SIGNER_INFO);
 
        M_ASN1_I2D_finish();
        M_ASN1_I2D_put_SET(a->signer_info,i2d_PKCS7_SIGNER_INFO);
 
        M_ASN1_I2D_finish();
@@ -100,7 +100,8 @@ PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a,
                                X509_ALGOR_free);
        M_ASN1_D2I_get(ret->enc_data,d2i_PKCS7_ENC_CONTENT);
        M_ASN1_D2I_get_IMP_set_opt_type(X509,ret->cert,d2i_X509,X509_free,0);
                                X509_ALGOR_free);
        M_ASN1_D2I_get(ret->enc_data,d2i_PKCS7_ENC_CONTENT);
        M_ASN1_D2I_get_IMP_set_opt_type(X509,ret->cert,d2i_X509,X509_free,0);
-       M_ASN1_D2I_get_IMP_set_opt(ret->crl,d2i_X509_CRL,X509_CRL_free,1);
+       M_ASN1_D2I_get_IMP_set_opt_type(X509_CRL,ret->crl,d2i_X509_CRL,
+                                       X509_CRL_free,1);
        M_ASN1_D2I_get_set(ret->signer_info,d2i_PKCS7_SIGNER_INFO,
                PKCS7_SIGNER_INFO_free);
 
        M_ASN1_D2I_get_set(ret->signer_info,d2i_PKCS7_SIGNER_INFO,
                PKCS7_SIGNER_INFO_free);
 
@@ -133,7 +134,7 @@ void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a)
        sk_X509_ALGOR_pop_free(a->md_algs,X509_ALGOR_free);
        PKCS7_ENC_CONTENT_free(a->enc_data);
        sk_X509_pop_free(a->cert,X509_free);
        sk_X509_ALGOR_pop_free(a->md_algs,X509_ALGOR_free);
        PKCS7_ENC_CONTENT_free(a->enc_data);
        sk_X509_pop_free(a->cert,X509_free);
-       sk_pop_free(a->crl,X509_CRL_free);
+       sk_X509_CRL_pop_free(a->crl,X509_CRL_free);
        sk_pop_free(a->signer_info,PKCS7_SIGNER_INFO_free);
        Free((char *)a);
        }
        sk_pop_free(a->signer_info,PKCS7_SIGNER_INFO_free);
        Free((char *)a);
        }
index 1dbde84d4c68ccb8ac656e5c9baf46c1f03cc17e..f7a15a30f2b1e9237e22017ed5c2c85fb6816aa7 100644 (file)
@@ -69,7 +69,7 @@ int i2d_PKCS7_SIGNED(PKCS7_SIGNED *a, unsigned char **pp)
        M_ASN1_I2D_len_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
        M_ASN1_I2D_len(a->contents,i2d_PKCS7);
        M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
        M_ASN1_I2D_len_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
        M_ASN1_I2D_len(a->contents,i2d_PKCS7);
        M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
-       M_ASN1_I2D_len_IMP_SET_opt(a->crl,i2d_X509_CRL,1);
+       M_ASN1_I2D_len_IMP_SET_opt_type(X509_CRL,a->crl,i2d_X509_CRL,1);
        M_ASN1_I2D_len_SET(a->signer_info,i2d_PKCS7_SIGNER_INFO);
 
        M_ASN1_I2D_seq_total();
        M_ASN1_I2D_len_SET(a->signer_info,i2d_PKCS7_SIGNER_INFO);
 
        M_ASN1_I2D_seq_total();
@@ -78,7 +78,7 @@ int i2d_PKCS7_SIGNED(PKCS7_SIGNED *a, unsigned char **pp)
        M_ASN1_I2D_put_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
        M_ASN1_I2D_put(a->contents,i2d_PKCS7);
        M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
        M_ASN1_I2D_put_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
        M_ASN1_I2D_put(a->contents,i2d_PKCS7);
        M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
-       M_ASN1_I2D_put_IMP_SET_opt(a->crl,i2d_X509_CRL,1);
+       M_ASN1_I2D_put_IMP_SET_opt_type(X509_CRL,a->crl,i2d_X509_CRL,1);
        M_ASN1_I2D_put_SET(a->signer_info,i2d_PKCS7_SIGNER_INFO);
 
        M_ASN1_I2D_finish();
        M_ASN1_I2D_put_SET(a->signer_info,i2d_PKCS7_SIGNER_INFO);
 
        M_ASN1_I2D_finish();
@@ -96,7 +96,8 @@ PKCS7_SIGNED *d2i_PKCS7_SIGNED(PKCS7_SIGNED **a, unsigned char **pp,
                                X509_ALGOR_free);
        M_ASN1_D2I_get(ret->contents,d2i_PKCS7);
        M_ASN1_D2I_get_IMP_set_opt_type(X509,ret->cert,d2i_X509,X509_free,0);
                                X509_ALGOR_free);
        M_ASN1_D2I_get(ret->contents,d2i_PKCS7);
        M_ASN1_D2I_get_IMP_set_opt_type(X509,ret->cert,d2i_X509,X509_free,0);
-       M_ASN1_D2I_get_IMP_set_opt(ret->crl,d2i_X509_CRL,X509_CRL_free,1);
+       M_ASN1_D2I_get_IMP_set_opt_type(X509_CRL,ret->crl,d2i_X509_CRL,
+                                       X509_CRL_free,1);
        M_ASN1_D2I_get_set(ret->signer_info,d2i_PKCS7_SIGNER_INFO,
                PKCS7_SIGNER_INFO_free);
 
        M_ASN1_D2I_get_set(ret->signer_info,d2i_PKCS7_SIGNER_INFO,
                PKCS7_SIGNER_INFO_free);
 
@@ -126,10 +127,12 @@ void PKCS7_SIGNED_free(PKCS7_SIGNED *a)
        sk_X509_ALGOR_pop_free(a->md_algs,X509_ALGOR_free);
        PKCS7_free(a->contents);
        sk_X509_pop_free(a->cert,X509_free);
        sk_X509_ALGOR_pop_free(a->md_algs,X509_ALGOR_free);
        PKCS7_free(a->contents);
        sk_X509_pop_free(a->cert,X509_free);
-       sk_pop_free(a->crl,X509_CRL_free);
+       sk_X509_CRL_pop_free(a->crl,X509_CRL_free);
        sk_pop_free(a->signer_info,PKCS7_SIGNER_INFO_free);
        Free((char *)a);
        }
 
 IMPLEMENT_STACK_OF(X509_ALGOR)
 IMPLEMENT_ASN1_SET_OF(X509_ALGOR)
        sk_pop_free(a->signer_info,PKCS7_SIGNER_INFO_free);
        Free((char *)a);
        }
 
 IMPLEMENT_STACK_OF(X509_ALGOR)
 IMPLEMENT_ASN1_SET_OF(X509_ALGOR)
+IMPLEMENT_STACK_OF(X509_CRL)
+IMPLEMENT_ASN1_SET_OF(X509_CRL)
index e121ebf003f77471b13303608aec15ead5fb90dc..79f6f612dde68247229bb1c712eb6f697b415c8a 100644 (file)
@@ -262,7 +262,7 @@ int PKCS7_add_certificate(PKCS7 *p7, X509 *x509)
 int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl)
        {
        int i;
 int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl)
        {
        int i;
-       STACK **sk;
+       STACK_OF(X509_CRL) **sk;
 
        i=OBJ_obj2nid(p7->type);
        switch (i)
 
        i=OBJ_obj2nid(p7->type);
        switch (i)
@@ -279,10 +279,10 @@ int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl)
                }
 
        if (*sk == NULL)
                }
 
        if (*sk == NULL)
-               *sk=sk_new_null();
+               *sk=sk_X509_CRL_new_null();
 
        CRYPTO_add(&crl->references,1,CRYPTO_LOCK_X509_CRL);
 
        CRYPTO_add(&crl->references,1,CRYPTO_LOCK_X509_CRL);
-       sk_push(*sk,(char *)crl);
+       sk_X509_CRL_push(*sk,crl);
        return(1);
        }
 
        return(1);
        }
 
index 9d6ae038a4945ed8753f35bd22aba5ec7c7514cf..d10a14cf7d919354590e4305b56f3628c47c1523 100644 (file)
@@ -112,7 +112,7 @@ typedef struct pkcs7_signed_st
        ASN1_INTEGER                    *version;       /* version 1 */
        STACK_OF(X509_ALGOR)            *md_algs;       /* md used */
        STACK_OF(X509)                  *cert;          /* [ 0 ] */
        ASN1_INTEGER                    *version;       /* version 1 */
        STACK_OF(X509_ALGOR)            *md_algs;       /* md used */
        STACK_OF(X509)                  *cert;          /* [ 0 ] */
-       STACK /* X509_CRL */            *crl;           /* [ 1 ] */
+       STACK_OF(X509_CRL)              *crl;           /* [ 1 ] */
        STACK /* PKCS7_SIGNER_INFO */   *signer_info;
 
        struct pkcs7_st                 *contents;
        STACK /* PKCS7_SIGNER_INFO */   *signer_info;
 
        struct pkcs7_st                 *contents;
@@ -140,7 +140,7 @@ typedef struct pkcs7_signedandenveloped_st
        ASN1_INTEGER                    *version;       /* version 1 */
        STACK_OF(X509_ALGOR)            *md_algs;       /* md used */
        STACK_OF(X509)                  *cert;          /* [ 0 ] */
        ASN1_INTEGER                    *version;       /* version 1 */
        STACK_OF(X509_ALGOR)            *md_algs;       /* md used */
        STACK_OF(X509)                  *cert;          /* [ 0 ] */
-       STACK /* X509_CRL */            *crl;           /* [ 1 ] */
+       STACK_OF(X509_CRL)              *crl;           /* [ 1 ] */
        STACK /* PKCS7_SIGNER_INFO */   *signer_info;
 
        PKCS7_ENC_CONTENT               *enc_data;
        STACK /* PKCS7_SIGNER_INFO */   *signer_info;
 
        PKCS7_ENC_CONTENT               *enc_data;
index 125dbcfe2e0d47ebd490e5186f9853ec8c764d06..d15712c5615c009d692b3413446fca6dbcaf23b6 100644 (file)
@@ -275,6 +275,9 @@ typedef struct X509_crl_st
        int references;
        } X509_CRL;
 
        int references;
        } X509_CRL;
 
+DECLARE_STACK_OF(X509_CRL)
+DECLARE_ASN1_SET_OF(X509_CRL)
+
 typedef struct private_key_st
        {
        int version;
 typedef struct private_key_st
        {
        int version;