mirror of https://github.com/openssl/openssl
Fix print of ASN.1 BIGNUM type.
The ASN.1 BIGNUM type needs to be handled in a custom way as it is not a generic ASN1_STRING type. Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
parent
23dd09b5e9
commit
3cea73a7fc
|
@ -31,6 +31,8 @@ static int bn_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
|
|||
int utype, char *free_cont, const ASN1_ITEM *it);
|
||||
static int bn_secure_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
|
||||
int utype, char *free_cont, const ASN1_ITEM *it);
|
||||
static int bn_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it,
|
||||
int indent, const ASN1_PCTX *pctx);
|
||||
|
||||
static ASN1_PRIMITIVE_FUNCS bignum_pf = {
|
||||
NULL, 0,
|
||||
|
@ -38,7 +40,8 @@ static ASN1_PRIMITIVE_FUNCS bignum_pf = {
|
|||
bn_free,
|
||||
0,
|
||||
bn_c2i,
|
||||
bn_i2c
|
||||
bn_i2c,
|
||||
bn_print
|
||||
};
|
||||
|
||||
static ASN1_PRIMITIVE_FUNCS cbignum_pf = {
|
||||
|
@ -47,7 +50,8 @@ static ASN1_PRIMITIVE_FUNCS cbignum_pf = {
|
|||
bn_free,
|
||||
0,
|
||||
bn_secure_c2i,
|
||||
bn_i2c
|
||||
bn_i2c,
|
||||
bn_print
|
||||
};
|
||||
|
||||
ASN1_ITEM_start(BIGNUM)
|
||||
|
@ -130,3 +134,13 @@ static int bn_secure_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
|
|||
bn_secure_new(pval, it);
|
||||
return bn_c2i(pval, cont, len, utype, free_cont, it);
|
||||
}
|
||||
|
||||
static int bn_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it,
|
||||
int indent, const ASN1_PCTX *pctx)
|
||||
{
|
||||
if (!BN_print(out, *(BIGNUM **)pval))
|
||||
return 0;
|
||||
if (BIO_puts(out, "\n") <= 0)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue