int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data,
		   int datalen)
	{
	int i, j = 0;

	if (datalen < 1)
		return 1;

	for (i = 0; i < datalen - 1; i++)
		{
		if (i && !j) BIO_printf(out, "%*s", indent, "");

		BIO_printf(out, "%02X:", data[i]);

		j = (j + 1) % width;
		if (!j) BIO_printf(out, "\n");
		}

	if (i && !j) BIO_printf(out, "%*s", indent, "");
	BIO_printf(out, "%02X", data[datalen - 1]);
	return 1;
	}