提交 3cea73a7 编写于 作者: D Dr. Stephen Henson

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: NRich Salz <rsalz@openssl.org>
上级 23dd09b5
......@@ -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;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册