核心加密 API 介面規範

引言

核心加密 API 提供了一套豐富的加密演算法以及其他資料轉換機制和呼叫這些機制的方法。本文件包含對 API 的描述並提供了示例程式碼。

為了理解和正確使用核心加密 API,本文簡要解釋了其結構。基於其架構,API 可以分為不同的元件。在架構規範之後,本文提供了對加密演算法開發者的提示。API 函式呼叫文件的指標在文末給出。

核心加密 API 將所有演算法都稱為“轉換”。因此,加密控制代碼變數通常命名為“tfm”。除了加密操作,核心加密 API 還識別壓縮轉換,並以與加密演算法相同的方式處理它們。

核心加密 API 服務於以下實體型別:

  • 請求加密服務的消費者

  • 資料轉換實現(通常是加密演算法),可供消費者使用核心加密 API 呼叫

本規範旨在供核心加密 API 的消費者以及實現加密演算法的開發者使用。然而,本 API 規範不討論資料轉換實現(即可以註冊到核心加密 API 的加密演算法和其他轉換(例如 CRC 甚至壓縮演算法)的實現)可用的所有 API 呼叫。

注意:“轉換”和加密演算法這兩個術語可互換使用。

術語

轉換實現是實際的程式碼或硬體介面,用於實現具有精確定義行為的特定轉換。

轉換物件 (TFM) 是轉換實現的一個例項。一個轉換實現可以關聯多個轉換物件。這些轉換物件中的每一個都由加密 API 消費者或另一個轉換持有。當加密 API 消費者請求一個轉換實現時,就會分配一個轉換物件。然後向消費者提供一個包含轉換物件 (TFM) 的結構。

包含轉換物件的結構也可以被稱為“加密控制代碼”。這樣的加密控制代碼總是經歷以下階段,這些階段反映在適用於此類加密控制代碼的 API 呼叫中:

  1. 加密控制代碼的初始化。

  2. 執行適用於該控制代碼的所有預期加密操作,其中加密控制代碼必須提供給每個 API 呼叫。

  3. 加密控制代碼的銷燬。

使用初始化 API 呼叫時,會建立一個加密控制代碼並返回給消費者。因此,請參考所有涉及消費者預期接收並隨後使用的資料結構型別的初始化 API 呼叫。初始化 API 呼叫都遵循相同的命名約定:crypto_alloc*。

轉換上下文是與轉換物件關聯的私有資料。