Microsoft Updater Application Block 1.4.2 IValidator接口设计 [翻译]
来源:互联网 发布:java单引号转义字符 编辑:程序博客网 时间:2024/06/06 08:39
Microsoft Updater Application Block IValidator接口设计
译者:Tony Qu
IValidator接口使得通过实现验证器扩展Updater Application Block成为可能。
问题描述
为了允许程序员把自己的验证器实现插入到Updater Application Block中,一个用于定义验证器类型的公共接口必须被显露出来,验证器类型将被manifest工具使用。
设计目的、权衡和问题
Updater Application Block的开发人员认识到以下一些目标、权衡和问题
1. Updater Application Block应该有足够的灵活性来支持各式各样的验证技术和密钥。
2. 验证器应该既能够生成签名,又能够验证这些签名。
3. 虽然大多数加密技术内部包含对字节数组或流的修改,但这决定了验证器必须以字符串类型暴露所有的密钥和签名。这使得验证基于xml的manifest文件中的签名变得更加简单,并且给了开发人员在选择验证算法方面更多的自由。
解决方案
IValidator接口形成的构建验证器类的基础,它暴露出三个方法:
1. Init —— 用于初始化验证器
2. Validate —— 重载方法,该方法用于验证一个文件或一个xml节点
3. Sign —— 重载方法,用于为一个文件或xml节点生成签名。
具体实现
IValidator接口位于Microsoft.ApplicationBlocks.ApplicationUpdater.Interfaces命名空间。
[VB.NET]
译者:Tony Qu
IValidator接口使得通过实现验证器扩展Updater Application Block成为可能。
问题描述
为了允许程序员把自己的验证器实现插入到Updater Application Block中,一个用于定义验证器类型的公共接口必须被显露出来,验证器类型将被manifest工具使用。
设计目的、权衡和问题
Updater Application Block的开发人员认识到以下一些目标、权衡和问题
1. Updater Application Block应该有足够的灵活性来支持各式各样的验证技术和密钥。
2. 验证器应该既能够生成签名,又能够验证这些签名。
3. 虽然大多数加密技术内部包含对字节数组或流的修改,但这决定了验证器必须以字符串类型暴露所有的密钥和签名。这使得验证基于xml的manifest文件中的签名变得更加简单,并且给了开发人员在选择验证算法方面更多的自由。
解决方案
IValidator接口形成的构建验证器类的基础,它暴露出三个方法:
1. Init —— 用于初始化验证器
2. Validate —— 重载方法,该方法用于验证一个文件或一个xml节点
3. Sign —— 重载方法,用于为一个文件或xml节点生成签名。
具体实现
IValidator接口位于Microsoft.ApplicationBlocks.ApplicationUpdater.Interfaces命名空间。
[VB.NET]
Public Interface IValidatorInterface IValidator
Inherits IDisposable
Sub Init()Sub Init (ByVal config As XmlNode)
Function Validate()Function Validate (ByVal filePath As String, ByVal signature As String) _
As Boolean
Function Validate()Function Validate (ByVal xml As XmlNode, ByVal signature As String) _
As Boolean
Function Sign()Function Sign (ByVal filePath As String, ByVal key As String) As String
Function Sign()Function Sign (ByVal xml As XmlNode, ByVal key As String) As String
End Interface
Inherits IDisposable
Sub Init()Sub Init (ByVal config As XmlNode)
Function Validate()Function Validate (ByVal filePath As String, ByVal signature As String) _
As Boolean
Function Validate()Function Validate (ByVal xml As XmlNode, ByVal signature As String) _
As Boolean
Function Sign()Function Sign (ByVal filePath As String, ByVal key As String) As String
Function Sign()Function Sign (ByVal xml As XmlNode, ByVal key As String) As String
End Interface
- Microsoft Updater Application Block 1.4.2 IValidator接口设计 [翻译]
- Microsoft Updater Application Block 1.4.2 IValidator接口设计 [翻译]
- Microsoft Updater Application Block IValidator接口设计
- Microsoft Updater Application Block 1.3.2 IDownloader接口设计 [翻译]
- Microsoft Updater Application Block 1.3.2 IDownloader接口设计 [翻译]
- Microsoft Updater Application Block 1.4.3 KeyValidator类设计 [翻译]
- Microsoft Updater Application Block 1.4.1 验证器设计 [翻译]
- Microsoft Updater Application Block 1.4.3 KeyValidator类设计 [翻译]
- Microsoft Updater Application Block 1.4.1 验证器设计 [翻译]
- Microsoft Updater Application Block 1.2.2 ApplicationUpdater assembly设计 [翻译]
- Microsoft Updater Application Block 1.2.2 ApplicationUpdater assembly设计 [翻译]
- Microsoft Updater Application Block 1.3.3 BITSDownloader类设计 [翻译]
- Microsoft Updater Application Block 1.3.1 下载器设计 [翻译]
- Microsoft Updater Application Block 1.1 设计篇 [翻译]
- Microsoft Updater Application Block 1.3.3 BITSDownloader类设计 [翻译]
- Microsoft Updater Application Block 1.3.1 下载器设计 [翻译]
- Microsoft Updater Application Block 1.1 设计篇 [翻译]
- Microsoft Updater Application Block 1.4.1 验证器设计
- Linux安全之道 安全部署五个步骤
- 英文版Windows2k服务器无法正常返回中文的问题
- 《给初学者的Windows Vista的补遗手册》之038
- 《给初学者的Windows Vista的补遗手册》之037
- 《给初学者的Windows Vista的补遗手册》之036
- Microsoft Updater Application Block 1.4.2 IValidator接口设计 [翻译]
- 《给初学者的Windows Vista的补遗手册》之035
- 《给初学者的Windows Vista的补遗手册》之034
- 《给初学者的Windows Vista的补遗手册》之033
- An Algorithm Summary of Programming Collective Intelligence (3)
- 《给初学者的Windows Vista的补遗手册》之032
- 《给初学者的Windows Vista的补遗手册》之031
- Microsoft Updater Application Block 1.4.1 验证器设计 [翻译]
- 《给初学者的Windows Vista的补遗手册》之030