As funções do CMS usam opções que são especificados usando um campo de bits que pode incluir um ou mais dos seguintes valores:
| Constante | Descrição | 
|---|---|
| OPENSSL_CMS_TEXT(int) | Adiciona cabeçalhos de tipo de conteúdo text/plain a mensagens criptografadas/assinadas. Se estiver descriptografando ou verificando, ela remove esses cabeçalhos da saída - se a mensagem descriptografada ou verificada não for do tipo MIME text/plain, ocorrerá um erro. | 
| OPENSSL_CMS_BINARY(int) | Normalmente, a mensagem de entrada é convertida para o formato "canônico",
          que está efetivamente usando CReLFcomo fim de linha: conforme exigido pela especificação CMS. Quando esta
          opção está presente, nenhuma tradução ocorre. Isso é útil ao
          manipular dados binários que podem não estar no formato CMS. | 
| OPENSSL_CMS_NOINTERN(int) | Ao verificar uma mensagem, os certificados (se
          houver) incluídos na mensagem são normalmente pesquisados para o
          certificado de assinatura. Com esta opção, apenas os
          certificados especificados no parâmetro untrusted_certificates_filenamede openssl_cms_verify() são
          usados. No entanto, os certificados fornecidos ainda podem ser usados como
          CAs não confiáveis. | 
| OPENSSL_CMS_NOVERIFY(int) | Não verifica o certificado do signatário de uma mensagem assinada. | 
| OPENSSL_CMS_NOCERTS(int) | Ao assinar uma mensagem, o certificado do signatário normalmente é
          incluído - com esta opção, ele é excluído. Isso reduzirá o
          tamanho da mensagem assinada, mas o verificador deve ter uma cópia do
          certificado do signatário disponível localmente (passado usando o untrusted_certificates_filenamepara
          openssl_cms_verify(), por exemplo). | 
| OPENSSL_CMS_NOATTR(int) | Normalmente, quando uma mensagem é assinada, um conjunto de atributos é incluído, que inclui o tempo de assinatura e os algoritmos simétricos suportados. Com esta opção, eles não são incluídos. | 
| OPENSSL_CMS_DETACHED(int) | Ao assinar uma mensagem, use a assinatura de texto simples com o tipo MIME "multipart/signed". Este é o padrão
          se não for especificada nenhuma opção no parâmetroflagspara
          openssl_cms_sign().
          Se esta opção for desativada, a mensagem será assinada usando assinatura
          opaca, que é mais resistente à tradução por retransmissões de e-mail,
          mas não pode ser lida por agentes de e-mail que não suportam S/MIME. | 
| OPENSSL_CMS_NOSIGS(int) | Não tenta verificar as assinaturas em uma mensagem | 
| OPENSSL_CMS_OLDMIMETYPE(int) | Disponível a partir do PHP 8.3.0.
          Define o content-type como application/x-pkcs7-mimeem vez deapplication/pkcs7-mimepara criptografar uma mensagem. | 
