alg->parameter->type = V_ASN1_NULL;
int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *psi)	{	int i,j,nid;	X509_ALGOR *alg;	STACK_OF(PKCS7_SIGNER_INFO) *signer_sk;	STACK_OF(X509_ALGOR) *md_sk;	i=OBJ_obj2nid(p7->type);	switch (i)		{	case NID_pkcs7_signed:		signer_sk=	p7->d.sign->signer_info;		md_sk=		p7->d.sign->md_algs;		break;	case NID_pkcs7_signedAndEnveloped:		signer_sk=	p7->d.signed_and_enveloped->signer_info;		md_sk=		p7->d.signed_and_enveloped->md_algs;		break;	default:		PKCS7err(PKCS7_F_PKCS7_ADD_SIGNER,PKCS7_R_WRONG_CONTENT_TYPE);		return(0);		}	nid=OBJ_obj2nid(psi->digest_alg->algorithm);	/* If the digest is not currently listed, add it */	j=0;	for (i=0; i<sk_X509_ALGOR_num(md_sk); i++)		{		alg=sk_X509_ALGOR_value(md_sk,i);		if (OBJ_obj2nid(alg->algorithm) == nid)			{			j=1;			break;			}		}	if (!j) /* we need to add another algorithm */		{		alg=X509_ALGOR_new();		alg->algorithm=OBJ_nid2obj(nid);		sk_X509_ALGOR_push(md_sk,alg);		}	sk_PKCS7_SIGNER_INFO_push(signer_sk,psi);	return(1);	}