CSWIFTerr(CSWIFT_F_CSWIFT_CTRL, CSWIFT_R_REQUEST_FAILED);
CSWIFTerr(CSWIFT_F_CSWIFT_RAND_BYTES, CSWIFT_R_REQUEST_FAILED);
static int cswift_rand_bytes(unsigned char *buf, int num){	SW_CONTEXT_HANDLE hac;	SW_STATUS swrc;	SW_LARGENUMBER largenum;	size_t nbytes = 0;	int acquired = 0;	int to_return = 0; /* assume failure */	if (!get_context(&hac))	{		CSWIFTerr(CSWIFT_F_CSWIFT_CTRL, CSWIFT_R_UNIT_FAILURE);		goto err;	}	acquired = 1;	while (nbytes < (size_t)num)	{		/* tell CryptoSwift how many bytes we want and where we want it.		 * Note: - CryptoSwift cannot do more than 4096 bytes at a time.		 *       - CryptoSwift can only do multiple of 32-bits. */		largenum.value = (SW_BYTE *) buf + nbytes;		if (4096 > num - nbytes)			largenum.nbytes = num - nbytes;		else			largenum.nbytes = 4096;		swrc = p_CSwift_SimpleRequest(hac, SW_CMD_RAND, NULL, 0, &largenum, 1);		if (swrc != SW_OK)		{			char tmpbuf[20];			CSWIFTerr(CSWIFT_F_CSWIFT_CTRL, CSWIFT_R_REQUEST_FAILED);			sprintf(tmpbuf, "%ld", swrc);			ERR_add_error_data(2, "CryptoSwift error number is ", tmpbuf);			goto err;		}		nbytes += largenum.nbytes;	}	to_return = 1;  /* success */err:	if (acquired)		release_context(hac);	return to_return;}