CMS 函式使用透過位元欄位指定的旗標,該位元欄位可以包含下列一或多個值
常數 | 說明 |
---|---|
OPENSSL_CMS_TEXT (整數) |
為加密/簽章訊息加入 text/plain 內容類型標頭。如果是解密或驗證,它會從輸出中移除這些標頭 - 如果解密或驗證後的訊息不是 MIME 類型 text/plain,則會發生錯誤。 |
OPENSSL_CMS_BINARY (整數) |
通常輸入訊息會被轉換為「標準」格式,實際上是使用 CR 和 LF 作為行尾:這是 CMS 規範的要求。當存在此選項時,不會進行轉換。這在處理可能不是 CMS 格式的二進位資料時很有用。 |
OPENSSL_CMS_NOINTERN (整數) |
驗證訊息時,通常會在訊息中包含的憑證(如果有)中搜尋簽章憑證。使用此選項時,只會使用 openssl_cms_verify() 的 untrusted_certificates_filename 參數中指定的憑證。提供的憑證仍然可以用作不受信任的 CA。 |
OPENSSL_CMS_NOVERIFY (整數) |
不要驗證已簽章訊息的簽署者憑證。 |
OPENSSL_CMS_NOCERTS (整數) |
簽章訊息時,通常會包含簽署者的憑證 - 使用此選項時會排除它。這將減少已簽章訊息的大小,但驗證者必須在本地擁有簽署者憑證的副本(例如,使用 untrusted_certificates_filename 傳遞給 openssl_cms_verify())。 |
OPENSSL_CMS_NOATTR (整數) |
通常在簽章訊息時,會包含一組屬性,其中包含簽章時間和支援的對稱演算法。使用此選項時,不會包含它們。 |
OPENSSL_CMS_DETACHED (整數) |
簽章訊息時,使用 MIME 類型 "multipart/signed" 進行明文簽章。如果您沒有為 openssl_cms_sign() 指定任何 flags ,則這是預設值。如果您關閉此選項,訊息將使用不透明簽章進行簽章,這種方式更能抵抗郵件轉發的轉換,但無法被不支援 S/MIME 的郵件代理程式讀取。 |
OPENSSL_CMS_NOSIGS (整數) |
不要嘗試驗證訊息上的簽章。 |
OPENSSL_CMS_OLDMIMETYPE (整數) |
從 PHP 8.3.0 開始可用。將內容類型設定為 application/x-pkcs7-mime 而不是 application/pkcs7-mime 來加密訊息。 |