]>
Commit | Line | Data |
---|---|---|
dd8dec69 UM |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | BN_set_bit, BN_clear_bit, BN_is_bit_set, BN_mask_bits, BN_lshift, | |
4d524e10 | 6 | BN_lshift1, BN_rshift, BN_rshift1 - bit operations on BIGNUMs |
dd8dec69 UM |
7 | |
8 | =head1 SYNOPSIS | |
9 | ||
10 | #include <openssl/bn.h> | |
11 | ||
12 | int BN_set_bit(BIGNUM *a, int n); | |
13 | int BN_clear_bit(BIGNUM *a, int n); | |
14 | ||
15 | int BN_is_bit_set(const BIGNUM *a, int n); | |
16 | ||
17 | int BN_mask_bits(BIGNUM *a, int n); | |
18 | ||
19 | int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); | |
20 | int BN_lshift1(BIGNUM *r, BIGNUM *a); | |
21 | ||
22 | int BN_rshift(BIGNUM *r, BIGNUM *a, int n); | |
23 | int BN_rshift1(BIGNUM *r, BIGNUM *a); | |
24 | ||
25 | =head1 DESCRIPTION | |
26 | ||
27 | BN_set_bit() sets bit B<n> in B<a> to 1 (C<a|=(1E<lt>E<lt>n)>). The | |
28 | number is expanded if necessary. | |
29 | ||
30 | BN_clear_bit() sets bit B<n> in B<a> to 0 (C<a&=~(1E<lt>E<lt>n)>). An | |
387ca353 | 31 | error occurs if B<a> is shorter than B<n> bits. |
dd8dec69 UM |
32 | |
33 | BN_is_bit_set() tests if bit B<n> in B<a> is set. | |
34 | ||
35 | BN_mask_bits() truncates B<a> to an B<n> bit number | |
387ca353 | 36 | (C<a&=~((~0)E<gt>E<gt>n)>). An error occurs if B<a> already is |
dd8dec69 UM |
37 | shorter than B<n> bits. |
38 | ||
39 | BN_lshift() shifts B<a> left by B<n> bits and places the result in | |
7cc18d81 MC |
40 | B<r> (C<r=a*2^n>). Note that B<n> must be non-negative. BN_lshift1() shifts |
41 | B<a> left by one and places the result in B<r> (C<r=2*a>). | |
dd8dec69 UM |
42 | |
43 | BN_rshift() shifts B<a> right by B<n> bits and places the result in | |
7cc18d81 MC |
44 | B<r> (C<r=a/2^n>). Note that B<n> must be non-negative. BN_rshift1() shifts |
45 | B<a> right by one and places the result in B<r> (C<r=a/2>). | |
dd8dec69 | 46 | |
4facdbb5 UM |
47 | For the shift functions, B<r> and B<a> may be the same variable. |
48 | ||
dd8dec69 UM |
49 | =head1 RETURN VALUES |
50 | ||
51 | BN_is_bit_set() returns 1 if the bit is set, 0 otherwise. | |
52 | ||
53 | All other functions return 1 for success, 0 on error. The error codes | |
9b86974e | 54 | can be obtained by L<ERR_get_error(3)>. |
dd8dec69 UM |
55 | |
56 | =head1 SEE ALSO | |
57 | ||
9b86974e | 58 | L<bn(3)>, L<BN_num_bytes(3)>, L<BN_add(3)> |
dd8dec69 UM |
59 | |
60 | =head1 HISTORY | |
61 | ||
62 | BN_set_bit(), BN_clear_bit(), BN_is_bit_set(), BN_mask_bits(), | |
63 | BN_lshift(), BN_lshift1(), BN_rshift(), and BN_rshift1() are available | |
64 | in all versions of SSLeay and OpenSSL. | |
65 | ||
66 | =cut |