BN_SET_BIT(3ssl) OpenSSL BN_SET_BIT(3ssl)

BN_set_bit, BN_clear_bit, BN_is_bit_set, BN_mask_bits, BN_lshift, BN_lshift1, BN_rshift, BN_rshift1 - operații de bit pe BIGNUM-uri

#include <openssl/bn.h>
int BN_set_bit(BIGNUM *a, int n);
int BN_clear_bit(BIGNUM *a, int n);
int BN_is_bit_set(const BIGNUM *a, int n);
int BN_mask_bits(BIGNUM *a, int n);
int BN_lshift(BIGNUM *r, const BIGNUM *a, int n);
int BN_lshift1(BIGNUM *r, BIGNUM *a);
int BN_rshift(BIGNUM *r, BIGNUM *a, int n);
int BN_rshift1(BIGNUM *r, BIGNUM *a);

BN_set_bit() stabilește bitul n din a la 1 ("a|=(1<<n)"). Numărul este extins dacă este necesar.

BN_clear_bit() stabilește bitul n din a la 0 ("a&=~(1<<n)"). O eroare apare dacă a este mai scurt decât n biți.

BN_is_bit_set() testează dacă bitul n din a este definit.

BN_mask_bits() trunchiază a la un număr de biți n ("a&=~((~0)<<n)"). O eroare apare dacă n este negativ. O eroare este de asemenea returnată dacă reprezentarea internă a lui a este deja mai scurtă decât n biți. Reprezentarea internă depinde de dimensiunea de cuvânt a platformei, iar această eroare poate fi ignorată în siguranță. Utilizați BN_num_bits(3) pentru a determina numărul exact de biți, dacă este necesar.

BN_lshift() deplasează a la stânga cu n biți și plasează rezultatul în r ("r=a*2^n")). Rețineți că n trebuie să fie nenegativ. BN_lshift1() deplasează a la stânga cu o unitate și plasează rezultatul în r ("r=2*a").

BN_rshift() deplasează a la dreapta cu n biți și plasează rezultatul în r ("r=a/2^n")). Rețineți că n trebuie să fie nenegativ. BN_rshift1() deplasează a la dreapta cu o unitate și plasează rezultatul în r ("r=a/2").

Pentru funcțiile de deplasare, r și a pot fi aceeași variabilă.

BN_is_bit_set() returnează 1 dacă bitul este definit, 0 în caz contrar.

Toate celelalte funcții returnează 1 pentru succes, 0 pentru eroare. Codurile de eroare pot fi obținute prin ERR_get_error(3).

BN_num_bytes(3), BN_add(3)

Drepturi de autor 2000-2024 The OpenSSL Project Authors. Toate drepturile rezervate.

Licențiat sub Licența Apache 2.0 („License”). Nu aveți voie să utilizați acest fișier decât în conformitate cu licența. Puteți obține o copie din fișierul LICENSE din distribuția sursei sau de la https://www.openssl.org/source/license.html.

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

5 august 2025 3.5.2