PHP8 OpenSSL PKCS7 flag/常量

2024-03-11 16:49 更新

S/MIME 函數(shù)使用通過一個(gè)位閾來表示的標(biāo)志位,該位閾可包含如下一個(gè)或多個(gè)值:

PKCS7 常量
常量名描述
PKCS7_TEXT (int)把純文本類型的 header 頭添加到加密/簽名的消息中。如果解密或者驗(yàn)證,將會從輸出中剝離這些 header 頭 - 如果這些被解密或驗(yàn)證的消息不是 MIME 類型的純文本文件將會導(dǎo)致一個(gè)錯誤。
PKCS7_BINARY (int)通常輸入消息將被轉(zhuǎn)成以 CR 和 LF 作行末的 "canonical" 格式(S/MIME規(guī)范中的聲明)。當(dāng)該選項(xiàng)出現(xiàn)時(shí),消息將不會被轉(zhuǎn)化。 當(dāng)處理非 MIME 格式的二進(jìn)制數(shù)據(jù)時(shí),這個(gè)選項(xiàng)會很有用。
PKCS7_NOINTERN (int)在驗(yàn)證消息時(shí),在消息中包含的證書(如果有的話)通常會被搜索簽名證書。 對于該選項(xiàng),只有當(dāng) openssl_pkcs7_verify() 函數(shù)的參數(shù) untrusted_certificates_filename 指定了的證書才會被使用。然而提供的證書仍然被當(dāng)做不受信任的證書使用。
PKCS7_NOVERIFY (int)不要驗(yàn)證簽名消息的簽名者證書。
PKCS7_NOCHAIN (int)不要約束驗(yàn)證簽名者證書:不要把簽名消息中的證書當(dāng)做不受信任的證書。
PKCS7_NOCERTS (int)在簽署消息時(shí),簽名者的證書通常包括在內(nèi),但是有了這個(gè)選項(xiàng)后,就不需要包括證書了。這將會縮小被簽名消息的大小,但是驗(yàn)證人在本地必須有可用的簽名者證書副本(比如由 openssl_pkcs7_verify() 函數(shù)中的 untrusted_certificates_filename 參數(shù)傳遞) 。
PKCS7_NOATTR (int)通常當(dāng)消息被簽名了,一些屬性的集合將會包含在內(nèi),比如簽名時(shí)間和支持的對稱算法。使用該選項(xiàng)用來設(shè)置不包含這些屬性。
PKCS7_DETACHED (int)當(dāng)簽名消息時(shí),使用 MIME 類型("multipart/signed")的明文簽名。 如果你為 openssl_pkcs7_sign() 函數(shù)沒有指定任何 flags,這個(gè)將會是默認(rèn)的值。 如果你關(guān)閉這個(gè)選項(xiàng),消息將使用不透明的簽名來簽名, 這將會使消息更能抵抗郵件中繼的翻譯,但是不支持 S/MIME 的郵件客戶端將不能讀取該消息。
PKCS7_NOSIGS (int)不要嘗試在消息中驗(yàn)證簽名
PKCS7_NOOLDMIMETYPE (int)自 PHP 8.3.0 起可用。 將 content-type 設(shè)置為 application/pkcs7-mime,而不是 application/x-pkcs7-mime 來加密消息。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號