Fix ASN1_INTEGER_to_BN properly this time...
[oweals/openssl.git] / crypto / asn1 / p7_s_e.c
index 7b3440c1dec5d931b0c7f148fb3274189a1fd1c6..709eb24b27cc73b46c3d699bfc0d7f2b72aa17f6 100644 (file)
@@ -66,7 +66,8 @@ int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **pp)
        M_ASN1_I2D_vars(a);
 
        M_ASN1_I2D_len(a->version,i2d_ASN1_INTEGER);
-       M_ASN1_I2D_len_SET(a->recipientinfo,i2d_PKCS7_RECIP_INFO);
+       M_ASN1_I2D_len_SET_type(PKCS7_RECIP_INFO,a->recipientinfo,
+                               i2d_PKCS7_RECIP_INFO);
        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);
@@ -77,7 +78,8 @@ int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **pp)
        M_ASN1_I2D_seq_total();
 
        M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER);
-       M_ASN1_I2D_put_SET(a->recipientinfo,i2d_PKCS7_RECIP_INFO);
+       M_ASN1_I2D_put_SET_type(PKCS7_RECIP_INFO,a->recipientinfo,
+                               i2d_PKCS7_RECIP_INFO);
        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);
@@ -96,8 +98,8 @@ PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a,
        M_ASN1_D2I_Init();
        M_ASN1_D2I_start_sequence();
        M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER);
-       M_ASN1_D2I_get_set(ret->recipientinfo,d2i_PKCS7_RECIP_INFO,
-               PKCS7_RECIP_INFO_free);
+       M_ASN1_D2I_get_set_type(PKCS7_RECIP_INFO,ret->recipientinfo,
+                               d2i_PKCS7_RECIP_INFO,PKCS7_RECIP_INFO_free);
        M_ASN1_D2I_get_set_type(X509_ALGOR,ret->md_algs,d2i_X509_ALGOR,
                                X509_ALGOR_free);
        M_ASN1_D2I_get(ret->enc_data,d2i_PKCS7_ENC_CONTENT);
@@ -117,8 +119,8 @@ PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void)
        ASN1_CTX c;
 
        M_ASN1_New_Malloc(ret,PKCS7_SIGN_ENVELOPE);
-       M_ASN1_New(ret->version,ASN1_INTEGER_new);
-       M_ASN1_New(ret->recipientinfo,sk_new_null);
+       M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
+       M_ASN1_New(ret->recipientinfo,sk_PKCS7_RECIP_INFO_new_null);
        M_ASN1_New(ret->md_algs,sk_X509_ALGOR_new_null);
        M_ASN1_New(ret->enc_data,PKCS7_ENC_CONTENT_new);
        ret->cert=NULL;
@@ -131,13 +133,13 @@ PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void)
 void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a)
        {
        if (a == NULL) return;
-       ASN1_INTEGER_free(a->version);
-       sk_pop_free(a->recipientinfo,PKCS7_RECIP_INFO_free);
+       M_ASN1_INTEGER_free(a->version);
+       sk_PKCS7_RECIP_INFO_pop_free(a->recipientinfo,PKCS7_RECIP_INFO_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_X509_CRL_pop_free(a->crl,X509_CRL_free);
        sk_PKCS7_SIGNER_INFO_pop_free(a->signer_info,PKCS7_SIGNER_INFO_free);
-       Free((char *)a);
+       OPENSSL_free(a);
        }