Implement internally opaque bn access from ts

Reviewed-by: Tim Hudson <tjh@openssl.org>
diff --git a/crypto/ts/ts_lib.c b/crypto/ts/ts_lib.c
index ca51026..c8f41f6 100644
--- a/crypto/ts/ts_lib.c
+++ b/crypto/ts/ts_lib.c
@@ -69,19 +69,20 @@
 
 int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num)
 	{
-	BIGNUM num_bn;
+	BIGNUM *num_bn;
 	int result = 0;
 	char *hex;
 
-	BN_init(&num_bn);
-	ASN1_INTEGER_to_BN(num, &num_bn);
-	if ((hex = BN_bn2hex(&num_bn))) 
+	num_bn = BN_new();
+	if(!num_bn) return -1;
+	ASN1_INTEGER_to_BN(num, num_bn);
+	if ((hex = BN_bn2hex(num_bn)))
 		{
 		result = BIO_write(bio, "0x", 2) > 0;
 		result = result && BIO_write(bio, hex, strlen(hex)) > 0;
 		OPENSSL_free(hex);
 		}
-	BN_free(&num_bn);
+	BN_free(num_bn);
 
 	return result;
 	}