if ((p7->d.signed_and_enveloped=PKCS7_SIGN_ENVELOPE_new())
== NULL) goto err;
ASN1_INTEGER_set(p7->d.signed_and_enveloped->version,1);
-/* p7->d.signed_and_enveloped->enc_data->content_type=
- OBJ_nid2obj(NID_pkcs7_encrypted);*/
-
break;
case NID_pkcs7_enveloped:
p7->type=obj;
== NULL) goto err;
ASN1_INTEGER_set(p7->d.enveloped->version,0);
break;
- case NID_pkcs7_digest:
case NID_pkcs7_encrypted:
+ p7->type=obj;
+ if ((p7->d.encrypted=PKCS7_ENCRYPT_new())
+ == NULL) goto err;
+ ASN1_INTEGER_set(p7->d.encrypted->version,0);
+ break;
+
+ case NID_pkcs7_digest:
default:
PKCS7err(PKCS7_F_PKCS7_SET_TYPE,PKCS7_R_UNSUPPORTED_CONTENT_TYPE);
goto err;
{
int i,j,nid;
X509_ALGOR *alg;
- STACK *signer_sk;
- STACK *md_sk;
+ STACK_OF(PKCS7_SIGNER_INFO) *signer_sk;
+ STACK_OF(X509_ALGOR) *md_sk;
i=OBJ_obj2nid(p7->type);
switch (i)
/* If the digest is not currently listed, add it */
j=0;
- for (i=0; i<sk_num(md_sk); i++)
+ for (i=0; i<sk_X509_ALGOR_num(md_sk); i++)
{
- alg=(X509_ALGOR *)sk_value(md_sk,i);
+ alg=sk_X509_ALGOR_value(md_sk,i);
if (OBJ_obj2nid(alg->algorithm) == nid)
{
j=1;
{
alg=X509_ALGOR_new();
alg->algorithm=OBJ_nid2obj(nid);
- sk_push(md_sk,(char *)alg);
+ sk_X509_ALGOR_push(md_sk,alg);
}
- sk_push(signer_sk,(char *)psi);
+ sk_PKCS7_SIGNER_INFO_push(signer_sk,psi);
return(1);
}
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)
}
if (*sk == NULL)
- *sk=sk_new_null();
+ *sk=sk_X509_CRL_new_null();
CRYPTO_add(&crl->references,1,CRYPTO_LOCK_X509_CRL);
- sk_push(*sk,(char *)crl);
+ sk_X509_CRL_push(*sk,crl);
return(1);
}
return(NULL);
}
-STACK *PKCS7_get_signer_info(PKCS7 *p7)
+STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7)
{
if (PKCS7_type_is_signed(p7))
{
int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri)
{
int i;
- STACK *sk;
+ STACK_OF(PKCS7_RECIP_INFO) *sk;
i=OBJ_obj2nid(p7->type);
switch (i)
return(0);
}
- sk_push(sk,(char *)ri);
+ sk_PKCS7_RECIP_INFO_push(sk,ri);
return(1);
}