unsigned char *out, *p, *ret;
unsigned char *out, *p; char *ret;
char * PKCS12_decrypt_d2i (algor, d2i, free_func, pass, passlen, oct, seq)X509_ALGOR *algor;char * (*d2i)();void (*free_func)();unsigned char *pass;int passlen;ASN1_OCTET_STRING *oct;int seq;{	unsigned char *out, *p, *ret;	int outlen;	if (!PKCS12_pbe_crypt (algor, pass, passlen, oct->data, oct->length,				 &out, &outlen, 0)) {		PKCS12err(PKCS12_F_PKCS12_DECRYPT_D2I,PKCS12_R_PKCS12_PBE_CRYPT_ERROR);		return NULL;	}	p = out;#ifdef DEBUG_DECRYPT	{		FILE *op;		char fname[30];		static int fnm = 1;		sprintf(fname, "DER%d", fnm++);		op = fopen(fname, "wb");		fwrite (p, 1, outlen, op);		fclose(op);	}#endif	if (seq & 1) ret = (char *) d2i_ASN1_SET(NULL, &p, outlen, d2i,				free_func, V_ASN1_SEQUENCE, V_ASN1_UNIVERSAL);	else ret = d2i(NULL, &p, outlen);	if (seq & 2) memset(out, 0, outlen);	if(!ret) PKCS12err(PKCS12_F_PKCS12_DECRYPT_D2I,PKCS12_R_DECODE_ERROR);	Free (out);	return ret;}