summaryrefslogtreecommitdiff
path: root/lib/libcrypto/man/BN_bn2bin.3
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libcrypto/man/BN_bn2bin.3')
-rw-r--r--lib/libcrypto/man/BN_bn2bin.3237
1 files changed, 237 insertions, 0 deletions
diff --git a/lib/libcrypto/man/BN_bn2bin.3 b/lib/libcrypto/man/BN_bn2bin.3
new file mode 100644
index 00000000000..02d6b2c8b83
--- /dev/null
+++ b/lib/libcrypto/man/BN_bn2bin.3
@@ -0,0 +1,237 @@
+.Dd $Mdocdate: February 23 2015 $
+.Dt BN_BN2BIN 3
+.Os
+.Sh NAME
+.Nm BN_bn2bin ,
+.Nm BN_bin2bn ,
+.Nm BN_bn2hex ,
+.Nm BN_bn2dec ,
+.Nm BN_hex2bn ,
+.Nm BN_dec2bn ,
+.Nm BN_print ,
+.Nm BN_print_fp ,
+.Nm BN_bn2mpi ,
+.Nm BN_mpi2bn
+.Nd format conversions
+.Sh SYNOPSIS
+.In openssl/bn.h
+.Ft int
+.Fo BN_bn2bin
+.Fa "const BIGNUM *a"
+.Fa "unsigned char *to"
+.Fc
+.Ft BIGNUM *
+.Fo BN_bin2bn
+.Fa "const unsigned char *s"
+.Fa "int len"
+.Fa "BIGNUM *ret"
+.Fc
+.Ft char *
+.Fo BN_bn2hex
+.Fa "const BIGNUM *a"
+.Fc
+.Ft char *
+.Fo BN_bn2dec
+.Fa "const BIGNUM *a"
+.Fc
+.Ft int
+.Fo BN_hex2bn
+.Fa "BIGNUM **a"
+.Fa "const char *str"
+.Fc
+.Ft int
+.Fo BN_dec2bn
+.Fa "BIGNUM **a"
+.Fa "const char *str"
+.Fc
+.Ft int
+.Fo BN_print
+.Fa "BIO *fp"
+.Fa "const BIGNUM *a"
+.Fc
+.Ft int
+.Fo BN_print_fp
+.Fa "FILE *fp"
+.Fa "const BIGNUM *a"
+.Fc
+.Ft int
+.Fo BN_bn2mpi
+.Fa "const BIGNUM *a"
+.Fa "unsigned char *to"
+.Fc
+.Ft BIGNUM *
+.Fo BN_mpi2bn
+.Fa "unsigned char *s"
+.Fa "int len"
+.Fa "BIGNUM *ret"
+.Fc
+.Sh DESCRIPTION
+.Fn BN_bn2bin
+converts the absolute value of
+.Fa a
+into big-endian form and stores it at
+.Fa to .
+.Fa to
+must point to
+.Fn BN_num_bytes a
+bytes of memory.
+.Pp
+.Fn BN_bin2bn
+converts the positive integer in big-endian form of length
+.Fa len
+at
+.Fa s
+into a
+.Vt BIGNUM
+and places it in
+.Fa ret .
+If
+.Fa ret
+is
+.Dv NULL ,
+a new
+.Vt BIGNUM
+is created.
+.Pp
+.Fn BN_bn2hex
+and
+.Fn BN_bn2dec
+return printable strings containing the hexadecimal and decimal encoding of
+.Fa a
+respectively.
+For negative numbers, the string is prefaced with a leading minus sign.
+The string must be freed later using
+.Xr free 3 .
+.Pp
+.Fn BN_hex2bn
+converts the string
+.Fa str
+containing a hexadecimal number to a
+.Vt BIGNUM
+and stores it in
+.Pf * Fa a .
+If
+.Pf * Fa a
+is
+.Dv NULL ,
+a new
+.Vt BIGNUM
+is created.
+If
+.Fa a
+is
+.Dv NULL ,
+it only computes the number's length in hexadecimal digits.
+If the string starts with a minus sign, the number is negative.
+.Fn BN_dec2bn
+is the same using the decimal system.
+.Pp
+.Fn BN_print
+and
+.Fn BN_print_fp
+write the hexadecimal encoding of
+.Fa a ,
+with a leading minus sign for negative numbers, to the
+.Vt BIO
+or
+.Vt FILE
+.Fa fp .
+.Pp
+.Fn BN_bn2mpi
+and
+.Fn BN_mpi2bn
+convert
+.Vt BIGNUM Ns s
+from and to a format that consists of the number's length in bytes
+represented as a 4-byte big-endian number, and the number itself in
+big-endian format, where the most significant bit signals a negative
+number (the representation of numbers with the MSB set is prefixed with
+a NUL byte).
+.Pp
+.Fn BN_bn2mpi
+stores the representation of
+.Fa a
+at
+.Fa to ,
+where
+.Fa to
+must be large enough to hold the result.
+The size can be determined by calling
+.Fn BN_bn2mpi a , NULL .
+.Pp
+.Fn BN_mpi2bn
+converts the
+.Fa len
+bytes long representation at
+.Fa s
+to a
+.Vt BIGNUM
+and stores it at
+.Fa ret ,
+or in a newly allocated
+.Vt BIGNUM
+if
+.Fa ret
+is
+.Dv NULL .
+.Sh RETURN VALUES
+.Fn BN_bn2bin
+returns the length of the big-endian number placed at
+.Fa to .
+.Fn BN_bin2bn
+returns the
+.Vt BIGNUM ,
+or
+.Dv NULL
+on error.
+.Pp
+.Fn BN_bn2hex
+and
+.Fn BN_bn2dec
+return a NUL-terminated string, or
+.Dv NULL
+on error.
+.Fn BN_hex2bn
+and
+.Fn BN_dec2bn
+return the number's length in hexadecimal or decimal digits, and 0 on
+error.
+.Pp
+.Fn BN_print_fp
+and
+.Fn BN_print
+return 1 on success, 0 on write errors.
+.Pp
+.Fn BN_bn2mpi
+returns the length of the representation.
+.Fn BN_mpi2bn
+returns the
+.Vt BIGNUM ,
+or
+.Dv NULL
+on error.
+.Pp
+The error codes can be obtained by
+.Xr ERR_get_error 3 .
+.Sh SEE ALSO
+.Xr ASN1_INTEGER_to_BN 3 ,
+.Xr bn 3 ,
+.Xr BN_num_bytes 3 ,
+.Xr BN_zero 3 ,
+.Xr ERR_get_error 3
+.Sh HISTORY
+.Fn BN_bn2bin ,
+.Fn BN_bin2bn ,
+.Fn BN_print_fp ,
+and
+.Fn BN_print
+are available in all versions of SSLeay and OpenSSL.
+.Pp
+.Fn BN_bn2hex ,
+.Fn BN_bn2dec ,
+.Fn BN_hex2bn ,
+.Fn BN_dec2bn ,
+.Fn BN_bn2mpi ,
+and
+.Fn BN_mpi2bn
+were added in SSLeay 0.9.0.