0

하늘색 (.net 4.5) 서비스로 HardwareIdentification.GetPackageSpecificToken에서 발급 한 HardwareToken의 유효성을 검사하려고합니다. 나는 guidance 공식을 따랐다. 그러나 나는 마지막 검사에서 막혔다. 나는 왜 서명 검사가 항상 실패하고 있는지 (Cheking 인증서 체인, 하드웨어 토큰 비교 가중치 또는 root certiticate publicKey matching과 같은 다른 모든 검사가 잘 작동하는지 파악할 수 없다).클라우드의 ASHWID (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를 사용해 보았지만 항상 nonce를 사용하는지 여부에 관계없이 False를 반환합니다.

나는 여기 아주 기본적인 샘플 프로젝트를 업로드 : https://github.com/sandorfr/sandor/tree/master/W8/HardwareTokenSample

누군가가/직면이 문제를 해결 했습니까? 이 PSS를 사용하기 때문에

안부, 종류 ASHWID에서 사용

+0

거기에 몇 가지 추가 정보가 있습니다. http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/186a75e9-abec-4e23-8b62-75a344c49be6 –

답변

0

서명 .NET에서 지원하지 않는, 그래서 NCryptVerifySignature에 대한 기본 전화를했습니다.