签名、验证解密和加密资源

XML资源可以签名,签名可以验证,解密和加密。键的Windows证书存储或者一个Java密钥存储也可以使用。

必须满足下列条件为了测试作为一个任意的用户:

  • 私钥必须出口。

  • 用户必须具有管理员权限。

  • 必须禁用用户管理(用户帐户控制)。

Windows证书存储和Java密钥存储库中

证书(键)存储在Windows证书存储或Java可以使用的密钥存储库CertificateData模块。

的ModuleAttribute证书包含两个专门化:CertificateStoreDataJavaKeyStoreData。专门化选择在创建TestCase (见“归纳和专门化”章)。

专门化,使用模块CertificateStoreDataJavaKeyStoreData

这些模块的一部分标准的子集。你可以找到它们标准模块- >TBox XEngines- >参数数据

CertificateStoreData

正常范围内的任务,StoreLocationModuleAttribute用于证书存储(LocalMachine或CurrentUser),虽然StoreName(凭有效名称位于列表http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.storename.aspx),FindOptionsModuleAttributes识别哪些特定的使用证书。

操作,比如签名和解密需要访问私钥。访问可以限制在Windows。如果当前用户没有必要的授权,可以指定另一个用户。

在这个例子中,一个证书位于商店我的在特定于用户的证书存储CurrentUser都是确定的。

这是识别指纹,ModuleAttribute的价值在哪里FindType被设置为FindByThumbprint和ModuleAttributeFindValue使用指定的具体价值的关键。

示例使用Windows证书存储

JavaKeyStoreData

如果专业化JavaKeyStoreData使用,是ModuleAttributes吗StoreFile,StorePassword,KeyAliasKeyPassword需要选择一个唯一键。

在这个例子中,TestStepValueStoreFile用于指定密钥存储库文件的路径。指定密钥存储库的密码StorePassword指定,而访问参数的关键KeyAliasKeyPassword

示例使用Java KeyStore

创建一个XML签名

XML签名是用来保证数据的完整性和作者。托斯卡支持XML签名符合xml-dsig标准(见也http://www.w3.org/TR/xmldsig-core/)。签名也创建一个私钥。数据的接收方可以用相应的公钥验证其有效性。

证书从Windows证书存储或Java密钥存储库可以使用XML资源的迹象签名的XML资源模块。此模块的一部分标准的子集。你可以找到它标准模块- >TBox XEngines- >XML

签名类型包膜包络都是支持的。

该模块签名的XML资源包含所有ModuleAttributes需要签署一份XML资源。

这包括使用的规范与ModuleAttribute证书证书和签名的规范细节签名ModuleAttribute。的公钥签名的密钥也可以通过提供属性IncludeKeyInfo。这给收件人验证签名的机会。

的ModuleAttribute证书可以接收这两个专业:JavaKeyStoreDataJava密钥存储和CertificateStoreDataWindows证书存储。

在这个例子中,资源的最后一本书图书馆签署和结果保存到资源signedLibrary。此外,在ModuleAttribute的关键FindOptions从用户的证书存储中检索通过吗拇指指纹。通过创建签名包络。签署对象通过XPath发现的最后一本书书[last ()]

样本TestCase

验证XML签名

使用模块验证签名的XML资源来验证签名的XML。

此模块的一部分标准的子集。你可以找到它标准模块- >TBox XEngines- >XML

的ModuleAttribute证书可以接收这两个专业:JavaKeyStoreDataJava密钥存储和CertificateStoreDataWindows证书存储。更准确的描述两个章可以找到专门化“Windows证书存储和Java密钥存储”。如果证书属性是空的,托斯卡将搜索嵌入式关键并使用它。

在这个例子中,资源signedLibrary验证。预期的结果验证指定的参数ExpectedResult

样本TestCase

加密和解密XML内容

加密可以保证数据的安全。托斯卡支持对称AES加密过程以及不对称的加密程序RSAP-OAEP和RSA 1.5。按照建议的W3标题语法和处理XML加密、XML加密的内容可以如表所示http://www.w3.org/TR/xmlenc-core/

从RSAP-OAEP或RSA 1.5会话密钥进行加密,而数据加密与AES-WRAP (http://www.w3.org/TR/xmlenc-core/),算法如下表所示:

支持的对称加密算法

aes - 128

aes - 192

aes - 256

加密数据,使用模块加密XML资源

解密数据,使用模块解密XML资源

这些模块的一部分标准的子集。你可以找到它们标准模块- >TBox XEngines- >XML- >加密

支持加密粒度

所有列出的粒度类型http://www.w3.org/TR/xmlenc-core/ sec-eg-Granularity除了支持超级加密:

  • 加密一个元素

  • 加密元素内容

  • 加密数据和XML文档

XPath这个粒度ModuleAttribute可用于结构。如果ModuleAttribute自动加密整个文档是空的。

的关键可以创建为纯文本或十六进制值,或者可以从Windows证书存储进口。

首先,必须选择专业化的TestStepValue TestCaseEncryptionMethod

如果加密类型aes - 128被选中的关键(PlainTextSymmetricKey)必须由16字符(16个字节等于128位)。

长度的关键

字符的字节

aes - 128

16

aes - 192

24

aes - 256

32

加密和纯文本

用十六进制值加密

加密的密钥从窗户进口证书存储

类似于加密解密功能。的TestStepValueXPath不需要指定,因为加密节点自动识别。

的ModuleAttributeEncryptionMethod用这样一种方式类似于加密。

该模块解密XML资源

这个例子包含以下步骤:

  1. 一个资源命名encr4被创建。

  2. 在未来XTestStep的内容资源encr4都是确定的。

  3. 的XTestStepValueXPath指定一个作者的名字。这是加密和写入资源encr4out。在这个例子中,XTestStepValueEncryptionMethod接收专业化SymmetricKeyEncryption,XTestStepValueKeyType接收PlainTextSymmetricKey

  4. 资源encr4out解密和写入资源吗decr4out。使用的加密技术和密钥必须被指定。专门化应该设置和前面的步骤一样。

  5. 资源decr4out保存到一个XML文件。路径可以作为配置参数。

加密和解密的示例工作流