if (!BUF_MEM_grow(buf,size+1024*10))
if (!BUF_MEM_grow_clean(buf,size+1024*10))
load_netscape_key(BIO *err, BIO *key, const char *file,		const char *key_descrip, int format)	{	EVP_PKEY *pkey;	BUF_MEM *buf;	RSA	*rsa;	const unsigned char *p;	int size, i;	buf=BUF_MEM_new();	pkey = EVP_PKEY_new();	size = 0;	if (buf == NULL || pkey == NULL)		goto error;	for (;;)		{		if (!BUF_MEM_grow(buf,size+1024*10))			goto error;		i = BIO_read(key, &(buf->data[size]), 1024*10);		size += i;		if (i == 0)			break;		if (i < 0)			{				BIO_printf(err, "Error reading %s %s",					key_descrip, file);				goto error;			}		}	p=(unsigned char *)buf->data;	rsa = d2i_RSA_NET(NULL,&p,(long)size,NULL,		(format == FORMAT_IISSGC ? 1 : 0));	if (rsa == NULL)		goto error;	BUF_MEM_free(buf);	EVP_PKEY_set1_RSA(pkey, rsa);	return pkey;error:	BUF_MEM_free(buf);	EVP_PKEY_free(pkey);	return NULL;	}