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