php8.5
Home/ Manual/ openssl / functions/ openssl_cms_read

openssl_cms_read

PHP function Edit on GitHub ✎

(PHP 8)

Export the CMS file to an array of PEM certificates

Description

openssl_cms_read(string $input_filename, array $certificates): bool

Extracts the certificates and CRLs from a PEM-encoded CMS structure and returns them as PEM strings. This is the CMS analog of openssl_pkcs7_read().

Parameters

input_filename

The PEM-encoded CMS data to parse. Despite its name, this is the data itself, not a path to a file.

certificates

Filled with an array of PEM strings. Certificates and CRLs are only extracted from signed data; for other content types the array is left empty.

Return Values

Success

Examples

openssl_cms_read() example

php
<?php
// PEM-encoded CMS data
$data = file_get_contents('file.pem');

if (!openssl_cms_read($data, $certificates)) {
    exit('Not a valid PEM CMS structure: ' . openssl_error_string());
}

foreach ($certificates as $pem) {
    $info = openssl_x509_parse($pem);
    if ($info !== false) {
        echo $info['name'], PHP_EOL;
    }
}
?>

Source: reference/openssl/functions/openssl-cms-read.xml · from the official PHP manual (php/doc-en)