PKCS7 標(biāo)志/常量

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

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

注意:

這些常量在 4.0.6 版本中被添加。