供应商类型

【勇芳软件工作室】汉化HomePreviousNext

密码学领域非常大。有数十种不同的“标准”数据格式和协议。这些通常被组织成组或“家庭”,每一个都有自己的数据格式和做事方式。即使它们使用相同的算法(例如,RC2块密码),两个系列通常会使用不同的填充方案,不同的密钥长度和不同的默认模式。CryptoAPI被设计成每个CSP类型代表一个特定的家族。

当应用程序连接到特定类型的CSP时,默认情况下,每个CryptoAPI功能将以与CSP类型对应的“系列”规定的方式运行。除此之外,应用程序的提供者类型的选择指定以下项目:

*密钥交换算法__每个提供者类型指定一个且只有一个密钥交换算法。特定类型的每个CSP必须实现该算法。应用程序可以指定使用哪种密钥交换算法的唯一方法是通过选择适当提供商类型的CSP。

*数字签名算法__这与密钥交换算法相同。每个提供者类型指定一个且只有一个数字签名算法。

*密钥blob格式__当公钥或会话密钥从CSP导出时,生成的“密钥blob”的格式由提供者类型指定。

*数字签名格式__提供者类型规定了特定的数字签名格式。这确保了CSP产生的给定提供者类型的签名可以由同一提供者类型的任何CSP进行验证。

*会话密钥导出方案__当一个密钥从哈希得到时,所使用的方法由提供者类型指定。

*密钥长度__某些提供者类型将指定公钥/私钥对或会话密钥具有一定长度。

*默认模式__提供商类型通常会为各种选项指定默认模式,例如块加密密码模式或块加密填充方法。

每个应用程序通常只能使用单一类型的CSP。(但是,一个雄心勃勃的应用程序可以一次连接到多个CSP。)在编写应用程序时,您通常需要获取与您正在使用的CSP类型相关的所有文档。例如,不建议您尝试使用PROV_RSA_FULL提供程序类型编写应用程序,而无需从RSA Data Security,Inc.获得公钥加密标准(PKCS)。有关每种提供商类型的相关第三方文档将在本节稍后列出。