共用方式為


PKCS #7 密碼編譯傳訊語法概念

CryptoAPI 訊息函式遵守 PKCS #7 密碼編譯訊息語法 (CMS) 標準。 開發人員必須熟悉此規格,才能有效地使用 低階訊息函式。 此處會醒目提示其中一些定義。

PKCS #7 標準描述可能已套用密碼編譯之數據的一般語法,例如數位簽名數位信封。 語法承認遞歸,因此,例如,一個信封可以巢狀在另一個信封內,或者一方可以簽署已經放入信封中的數字數據。 它也允許任意屬性,例如簽署時間,連同訊息的內容一起進行驗證。 此外,它會提供與簽章相關聯的其他屬性,例如反符號

PKCS #7 訊息中包含的數據類型稱為其內容類型。 內容類型有兩種類別:基底和增強。

  • 基底內容類型只包含沒有密碼編譯增強功能的數據。 目前這個類別中只有一個內容類型,即數據內容類型
  • 增強的內容類型 包含某些類型的數據(可能已加密),以及其他密碼編譯增強功能(例如哈希或簽章)。

Enhanced 類別中的內容會採用封裝,產生 外部內容 詞彙(包含增強功能)和 內部內容 (正在增強的內容)。 例如,Enhanced 類別可能包含 包含簽章的數據內容類型 (基類)。 在此情況下,數據內容類型是 內部內容 ,而數據內容類型和簽章的組合會形成外部內容。

PKCS #7 標準中定義的內容類型如下所示。

內容類型 描述
資料 八位 (BYTE) 字串。
已簽署的數據 任何型別和加密訊息哈希的內容(摘要)內容為零個或多個簽署者。
信封數據 一或多個收件者的加密內容和加密的內容加密金鑰。 收件者的加密內容和加密內容加密密鑰的組合是 該收件者的數位信封
帶正負號和信封的數據 任何類型的加密內容、一或多個收件者的加密內容加密密鑰,以及一或多個簽署者的已加密郵件摘要。 雙重加密是由具有簽署者私鑰的加密所組成,後面接著具有內容加密密鑰的加密。
摘要數據 任何類型和內容訊息 哈希 (摘要)的內容。
加密的資料 任何類型的加密內容。 與 enveloped-data 內容類型不同,加密的數據內容類型既沒有收件者,也沒有加密的內容加密密鑰。 金鑰假設由其他方式管理。

 

注意

在整個 PKCS #7 規格中,摘要摘要詞彙是指將哈希演算法套用至數據所產生的值。 本檔會使用相同的詞彙 哈希哈希 。 例如,與低階訊息函式搭配使用的數據類型稱為哈希處理,而不是摘要。 為了本檔的目的,這兩組詞彙可以交替使用。