Windows 8 验证云中的ASHWID(HardwareToken)时出现问题

Windows 8 验证云中的ASHWID(HardwareToken)时出现问题,windows-8,windows-runtime,cryptoapi,rsacryptoserviceprovider,Windows 8,Windows Runtime,Cryptoapi,Rsacryptoserviceprovider,我正在尝试使用azure(.net 4.5)服务验证HardwareIdentification.GetPackageSpecificToken发布的HardwareToken。我跟着那位官员。但我被困在最后一次检查中。我不明白为什么签名检查总是失败(每一次其他检查,如检查证书链、加权硬件令牌比较或根认证公钥匹配都可以正常工作) 下面是我用来执行签名验证的代码: var publicKeyProvider=leaf.PublicKey.Key as System.Security.Cryptog

我正在尝试使用azure(.net 4.5)服务验证HardwareIdentification.GetPackageSpecificToken发布的HardwareToken。我跟着那位官员。但我被困在最后一次检查中。我不明白为什么签名检查总是失败(每一次其他检查,如检查证书链、加权硬件令牌比较或根认证公钥匹配都可以正常工作)

下面是我用来执行签名验证的代码: var publicKeyProvider=leaf.PublicKey.Key as System.Security.Cryptography.RSACryptoServiceProvider

var signedData = nonce.Concat(token).ToArray();
SHA1Managed hash = new SHA1Managed();
byte[] hashedData;
hashedData = hash.ComputeHash(signedData);

if (!publicKeyProvider.VerifyHash(hashedData, CryptoConfig.MapNameToOID("SHA1"), signature))
   throw new Exception("Invalid or Corrupted HardwareToken");
我还尝试使用VerifyData获得相同的结果,它总是返回False(无论我是否使用nonce)

我在这里上传了一个非常基本的示例项目:

有人面对/解决了这个问题吗


非常感谢,

ASHWID使用的签名类型不受.net支持,因为它使用PSS,所以我必须对NCryptVerifySignature进行本机调用。

这里有一些附加信息