summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/ts/ts_lib.c33
1 files changed, 19 insertions, 14 deletions
diff --git a/src/lib/libcrypto/ts/ts_lib.c b/src/lib/libcrypto/ts/ts_lib.c
index 1e94922aa1..7e40101752 100644
--- a/src/lib/libcrypto/ts/ts_lib.c
+++ b/src/lib/libcrypto/ts/ts_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ts_lib.c,v 1.14 2023/07/07 07:25:21 beck Exp $ */ 1/* $OpenBSD: ts_lib.c,v 1.15 2025/01/07 14:22:19 tb Exp $ */
2/* Written by Zoltan Glozik (zglozik@stones.com) for the OpenSSL 2/* Written by Zoltan Glozik (zglozik@stones.com) for the OpenSSL
3 * project 2002. 3 * project 2002.
4 */ 4 */
@@ -74,20 +74,25 @@
74int 74int
75TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num) 75TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num)
76{ 76{
77 BIGNUM num_bn; 77 BIGNUM *bn = NULL;
78 int result = 0; 78 char *hex = NULL;
79 char *hex; 79 int ret = 0;
80 80
81 BN_init(&num_bn); 81 /* XXX - OpenSSL decided to return -1 here for some stupid reason. */
82 ASN1_INTEGER_to_BN(num, &num_bn); 82 if ((bn = ASN1_INTEGER_to_BN(num, NULL)) == NULL)
83 if ((hex = BN_bn2hex(&num_bn))) { 83 goto err;
84 result = BIO_write(bio, "0x", 2) > 0; 84 if ((hex = BN_bn2hex(bn)) == NULL)
85 result = result && BIO_write(bio, hex, strlen(hex)) > 0; 85 goto err;
86 free(hex); 86 if (BIO_printf(bio, "0x%s", hex) <= 0)
87 } 87 goto err;
88 BN_free(&num_bn); 88
89 ret = 1;
90
91 err:
92 BN_free(bn);
93 free(hex);
89 94
90 return result; 95 return ret;
91} 96}
92LCRYPTO_ALIAS(TS_ASN1_INTEGER_print_bio); 97LCRYPTO_ALIAS(TS_ASN1_INTEGER_print_bio);
93 98