char str[256];
char *f;
unsigned long X509_issuer_and_serial_hash(X509 *a)	{	unsigned long ret=0;	EVP_MD_CTX ctx;	unsigned char md[16];	char str[256];	EVP_MD_CTX_init(&ctx);	X509_NAME_oneline(a->cert_info->issuer,str,256);	ret=strlen(str);	EVP_DigestInit_ex(&ctx, EVP_md5(), NULL);	EVP_DigestUpdate(&ctx,(unsigned char *)str,ret);	EVP_DigestUpdate(&ctx,(unsigned char *)a->cert_info->serialNumber->data,		(unsigned long)a->cert_info->serialNumber->length);	EVP_DigestFinal_ex(&ctx,&(md[0]),NULL);	ret=(	((unsigned long)md[0]     )|((unsigned long)md[1]<<8L)|		((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L)		)&0xffffffffL;	EVP_MD_CTX_cleanup(&ctx);	return(ret);	}