Well, that depends on what you mean with number of bits. Take a number like 0x0432, how many bits does it have? You could view it as a word, and say it has 16 bits, or you could look at it more closely, and find out that it has 11 *significant* bits.
BN_num_bits() counts significant bits. Another way to find this out is to add the following line to your program: printf ("The number: "); BN_print_fp(stdout, pPubKey); printf ("\n"); Looking at the output, I counted 511 hex characters. 511 * 4 = 2044. I don't think this is a bug. If you want to know the size of pPubKey in byte increments, use BN_num_bytes() and multiply with 8. [EMAIL PROTECTED] - Thu Jul 1 10:03:21 2004]: > Hi, > > I think I've encountered a problem with BN_num_bits. I have experienced > that BN_num_bits often returns 1 (sometimes more) bits less than the > actual key size of a BIGNUM. With 2048 bit DH key pairs, I've often seen > 2047 bit returned by BN_num_bits (checking the public key). I'm seeing a > case now where it returns 2044 bit only. > > My environment: > OpenSSL 0.9.7d > SuSE Linux 9.0 > compiled with gcc 3.3.1 > > I have attached a test case (actually more or less a fragment of an > application of mine) which shows the 2044 bit case. Also, the output of > 'make report' is attached. > > Please e-mail me directly in case of any questions or comments, since > I'm not subscribed to any openssl-related mailing lists. > > > Michael > > -- Richard Levitte [EMAIL PROTECTED] ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]