签名、验证解密和加密资源
XML资源可以签名,签名可以验证,解密和加密。键的Windows证书存储或者一个Java密钥存储也可以使用。
![]() |
必须满足下列条件为了测试作为一个任意的用户:
|
Windows证书存储和Java密钥存储库中
证书(键)存储在Windows证书存储或Java可以使用的密钥存储库CertificateData模块。
的ModuleAttribute证书包含两个专门化:CertificateStoreData和JavaKeyStoreData。专门化选择在创建TestCase (见“归纳和专门化”章)。
专门化,使用模块CertificateStoreData和JavaKeyStoreData。
这些模块的一部分标准的子集。你可以找到它们标准模块- >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,KeyAlias和KeyPassword需要选择一个唯一键。
![]() |
在这个例子中,TestStepValueStoreFile用于指定密钥存储库文件的路径。指定密钥存储库的密码StorePassword指定,而访问参数的关键KeyAlias和KeyPassword。 示例使用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。
专业化SessionKeyEncryption必须启用加密的证书存储(看到章”Windows证书存储和Java密钥存储”)。
专业化SymmetricKeyEncryption必须启用对称加密。
的TestStepValueKeyType对于对称加密和包含专门化PlainTextSymmetricKey和HexCodeSymmetricKey,对于纯文本和十六进制代码。
的长度PlainTextSymmetricKey必须匹配AES加密类型的密钥长度字节。
![]() |
如果加密类型aes - 128被选中的关键(PlainTextSymmetricKey)必须由16字符(16个字节等于128位)。
|
加密和纯文本
用十六进制值加密
加密的密钥从窗户进口证书存储
类似于加密解密功能。的TestStepValueXPath不需要指定,因为加密节点自动识别。
的ModuleAttributeEncryptionMethod用这样一种方式类似于加密。
该模块解密XML资源
![]() |
这个例子包含以下步骤:
加密和解密的示例工作流 |