Microsoft Updater Application Block 1.4.3 KeyValidator类设计 [翻译]

来源:互联网 发布:我的第一本淘宝开店书 编辑:程序博客网 时间:2024/06/06 02:55
Microsoft Updater Application Block KeyValidator类设计

译者:Tony Qu

KeyValidator类提供一个基于对称密钥的验证器,该章节将介绍KeyValidator设计的以下几个方面:
问题描述
设计目标、权衡和问题
解决方案描述
具体实现

问题描述
一个通常使用的验证方法是使用对称密钥进行签名和验证数据。为了支持这项技术,必须实现一个基于对称密钥的验证器。

设计目标、权衡和问题
1. KeyValidator应该支持由.net的KeyedHashAlgorithm类支持的对称密钥。
2. 开发人员应该能够在应用程序升级器的配置文件中指定密钥,该密钥应该用base64字符串存储。如果没有密钥被指定,KeyValidator会抛出一个异常。

解决方案描述
KeyValidator类派生自IValidator接口,它使用.net的KeyedHashAlgorithm类基于一个对称密钥生成和验证签名。

具体实现
KeyValidator类由Microsoft.ApplicationBlocks.ApplicationUpdater.Validators命名空间实现。
实现KeyValidator需要考虑四个方面:
1. 密钥初始化
2. 签名
3. 验证
4. KeyValidator配置

密钥初始化
1. Init方法用于从应用程序升级器配置文件传递元素给KeyValidator类。该元素应该包含子元素,该元素中以base64字符串存储密钥。元素用于初始化验证密钥,该初始化过程代码在下面的代码片断中。
[VB.NET]
Sub Init (ByVal config As XmlNode) Implements IValidator.Init
  
Dim keyNode As XmlNode = config.SelectSingleNode( "key" )
  _key 
= ExtractKeyFromNode (keyNode)
  
If _key Is Nothing Then
    
'Throw a cryptographic exception
  End If
End Sub



原创粉丝点击