CryptoAPI 訊息函式遵守 PKCS #7 密碼編譯訊息語法 (CMS) 標準。 開發人員必須熟悉此規格,才能有效地使用 低階訊息函式。 此處會醒目提示其中一些定義。
PKCS #7 標準描述可能已套用密碼編譯之數據的一般語法,例如數位簽名和數位信封。 語法承認遞歸,因此,例如,一個信封可以巢狀在另一個信封內,或者一方可以簽署已經放入信封中的數字數據。 它也允許任意屬性,例如簽署時間,連同訊息的內容一起進行驗證。 此外,它會提供與簽章相關聯的其他屬性,例如反符號。
PKCS #7 訊息中包含的數據類型稱為其內容類型。 內容類型有兩種類別:基底和增強。
Enhanced 類別中的內容會採用封裝,產生 外部內容 詞彙(包含增強功能)和 內部內容 (正在增強的內容)。 例如,Enhanced 類別可能包含 包含簽章的數據內容類型 (基類)。 在此情況下,數據內容類型是 內部內容 ,而數據內容類型和簽章的組合會形成外部內容。
PKCS #7 標準中定義的內容類型如下所示。
內容類型 | 描述 |
---|---|
資料 | 八位 (BYTE) 字串。 |
已簽署的數據 | 任何型別和加密訊息哈希的內容(摘要)內容為零個或多個簽署者。 |
信封數據 | 一或多個收件者的加密內容和加密的內容加密金鑰。 收件者的加密內容和加密內容加密密鑰的組合是 該收件者的數位信封 。 |
帶正負號和信封的數據 | 任何類型的加密內容、一或多個收件者的加密內容加密密鑰,以及一或多個簽署者的已加密郵件摘要。 雙重加密是由具有簽署者私鑰的加密所組成,後面接著具有內容加密密鑰的加密。 |
摘要數據 | 任何類型和內容訊息 哈希 (摘要)的內容。 |
加密的資料 | 任何類型的加密內容。 與 enveloped-data 內容類型不同,加密的數據內容類型既沒有收件者,也沒有加密的內容加密密鑰。 金鑰假設由其他方式管理。 |
注意
在整個 PKCS #7 規格中,摘要和摘要詞彙是指將哈希演算法套用至數據所產生的值。 本檔會使用相同的詞彙 哈希 和 哈希 。 例如,與低階訊息函式搭配使用的數據類型稱為哈希處理,而不是摘要。 為了本檔的目的,這兩組詞彙可以交替使用。