BIO_NEW_CMS(3ssl) OpenSSL BIO_NEW_CMS(3ssl)

BIO_new_CMS - filtru de transmisie în flux CMS BIO

#include <openssl/cms.h>
BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms);

BIO_new_CMS() returnează un lanț BIO de filtrare a transmisiei în flux bazată pe cms. Rezultatul filtrării este scris în out. Orice date scrise în lanț sunt traduse automat într-o structură CMS în format BER de tipul corespunzător.

Lanțul returnat de această funcție se comportă ca un filtru BIO standard. Acesta acceptă In/Ieș fără blocare. Conținutul este procesat și transmis în timp real și nu este stocat în memorie în întregime: astfel, este posibilă codificarea structurilor foarte mari. După ce tot conținutul a fost scris prin lanț, trebuie apelată funcția BIO_flush() pentru a finaliza structura.

Fanionul CMS_STREAM trebuie inclus în parametrul flags corespunzător al funcției de creare cms.

Dacă o aplicație dorește să scrie date suplimentare în out, BIO-urile trebuie eliminate din lanț folosind BIO_pop() și eliberate cu BIO_free() până când se ajunge la out. Dacă nu este necesară scrierea de date suplimentare, se poate apela BIO_free_all() pentru a elibera întregul lanț.

Orice conținut scris prin filtru este utilizat literal: nu se efectuează nicio traducere canonică.

Este posibil să se conecteze mai multe BIO-uri pentru a crea, de exemplu, o structură triplă învelită, semnată și sigilată. În acest caz, aplicațiile au responsabilitatea de a defini tipul de conținut intern al oricărei structuri CMS_ContentInfo externe.

Trebuie evitate scrierile mici în număr mare prin lanț, deoarece acestea vor produce o ieșire formată din multe structuri OCTET STRING. Adăugarea unui tampon BIO BIO_f_buffer() va preveni acest lucru.

În prezent nu există o funcție inversă corespondentă: adică unul care poate decoda o structură CMS în timp real.

BIO_new_CMS() returnează un lanț BIO în cazul unui rezultat pozitiv sau NULL în cazul apariției unei erori. Eroarea poate fi obținută din ERR_get_error(3).

ERR_get_error(3), CMS_sign(3), CMS_encrypt(3)

Funcția BIO_new_CMS() a fost adăugată în OpenSSL 1.0.0.

Drepturi de autor 2008-2016 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