ASN1_STRING_LENGTH(3ssl) OpenSSL ASN1_STRING_LENGTH(3ssl)

ASN1_STRING_dup, ASN1_STRING_cmp, ASN1_STRING_set, ASN1_STRING_length, ASN1_STRING_type, ASN1_STRING_get0_data, ASN1_STRING_data, ASN1_STRING_to_UTF8 - funcții utilitare ASN1_STRING

#include <openssl/asn1.h>
int ASN1_STRING_length(ASN1_STRING *x);
const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x);
unsigned char *ASN1_STRING_data(ASN1_STRING *x);
ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a);
int ASN1_STRING_cmp(ASN1_STRING *a, ASN1_STRING *b);
int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len);
int ASN1_STRING_type(const ASN1_STRING *x);
int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in);

Aceste funcții permit manipularea unei structuri ASN1_STRING.

ASN1_STRING_length() returnează lungimea conținutului x. x NU TREBUIE să fie NULL.

ASN1_STRING_get0_data() returnează un indicator intern către datele din x. Deoarece acesta este un indicator intern, el nu trebuie eliberat sau modificat în niciun fel. x NU TREBUIE să fie NULL.

ASN1_STRING_data() este similară cu ASN1_STRING_get0_data(), cu excepția faptului că valoarea returnată nu este constantă. Această funcție este depreciată: aplicațiile ar trebui să utilizeze în schimb ASN1_STRING_get0_data().

ASN1_STRING_dup() returnează o copie a structurii a.

ASN1_STRING_cmp() compară a și b, returnând 0 dacă cele două sunt identice. Se compară tipurile și conținutul șirurilor.

ASN1_STRING_set() stabilește datele șirului str în tamponul data sau lungimea len. Datele furnizate sunt copiate. Dacă len este -1, atunci lungimea este determinată de strlen(data).

ASN1_STRING_type() returnează tipul lui x, utilizând constante standard precum V_ASN1_OCTET_STRING.

ASN1_STRING_to_UTF8() convertește șirul in în format UTF8, datele convertite fiind alocate într-un tampon în *out. Se returnează lungimea out sau un cod de eroare negativ. Tamponul *out trebuie eliberat folosind OPENSSL_free().

Aproape toate tipurile ASN1 din OpenSSL sunt reprezentate ca o structură ASN1_STRING. Alte tipuri, cum ar fi ASN1_OCTET_STRING, sunt pur și simplu „tipedef”-ate la ASN1_STRING, iar funcțiile apelează echivalentele ASN1_STRING. ASN1_STRING este utilizat și pentru unele tipuri CHOICE care constau în întregime din tipuri de șiruri primitive, cum ar fi DirectoryString și Time.

Aceste funcții nu trebuie utilizate pentru a examina sau modifica tipurile ASN1_INTEGER sau ASN1_ENUMERATED: în schimb, trebuie utilizate funcțiile utilitare relevante INTEGER sau ENUMERATED.

În general, nu se poate presupune că datele returnate de ASN1_STRING_data() sunt terminate cu null sau nu conțin null-uri încorporate. Formatul real al datelor va depinde de tipul real al șirului în sine: de exemplu, pentru un IA5String, datele vor fi ASCII, pentru un BMPString, vor fi doi octeți per caracter în format big endian, iar pentru un UTF8String, vor fi în format UTF8.

Trebuie să se acorde o atenție similară pentru a se asigura că datele sunt în formatul corect atunci când se apelează ASN1_STRING_set().

ASN1_STRING_length() returnează lungimea conținutului x.

ASN1_STRING_get0_data() și ASN1_STRING_data() returnează un indicator intern către datele din x.

ASN1_STRING_dup() returnează o structură ASN1_STRING validă sau NULL dacă a apărut o eroare.

ASN1_STRING_cmp() returnează un număr întreg mai mare, egal sau mai mic decât 0, în funcție de faptul dacă a este mai mare, egal sau mai mic decât b.

ASN1_STRING_set() returnează 1 în caz de succes sau 0 în caz de eroare.

ASN1_STRING_type() returnează tipul lui x.

ASN1_STRING_to_UTF8() returnează numărul de octeți din șirul de ieșire out sau o valoare negativă dacă a apărut o eroare.

ERR_get_error(3)

Drepturi de autor 2002-2020 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