我正在尝试使用 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(无论我是否使用随机数)。
我在这里上传了一个非常基本的示例项目:https ://github.com/sandorfr/sandor/tree/master/W8/HardwareTokenSample
有人遇到/解决了这个问题吗?
最好的祝福,