diff options
Diffstat (limited to 'openssl/crypto/bn/bn_print.c')
-rw-r--r-- | openssl/crypto/bn/bn_print.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/openssl/crypto/bn/bn_print.c b/openssl/crypto/bn/bn_print.c index 810dde34e..bebb466d0 100644 --- a/openssl/crypto/bn/bn_print.c +++ b/openssl/crypto/bn/bn_print.c @@ -294,6 +294,27 @@ err: return(0); } +int BN_asc2bn(BIGNUM **bn, const char *a) + { + const char *p = a; + if (*p == '-') + p++; + + if (p[0] == '0' && (p[1] == 'X' || p[1] == 'x')) + { + if (!BN_hex2bn(bn, p + 2)) + return 0; + } + else + { + if (!BN_dec2bn(bn, p)) + return 0; + } + if (*a == '-') + (*bn)->neg = 1; + return 1; + } + #ifndef OPENSSL_NO_BIO #ifndef OPENSSL_NO_FP_API int BN_print_fp(FILE *fp, const BIGNUM *a) |