의 알고리즘 그룹이 있고, 캔트 찾기 솔루션을해야합니다. 푸시 알림 api에 대한 사과의 새로운 승인 방법입니다.키 나는 다음과 같은 문제가 ECDSA
Apple이 개인 키를 제공합니다.이 개인 키는 C# CngKey 개체를 만드는 데 사용되며 데이터를 서명하는 데 사용됩니다.
CngKey key = CngKey.Import(
Convert.FromBase64String(privateKey),
CngKeyBlobFormat.Pkcs8PrivateBlob);
using (ECDsaCng dsa = new ECDsaCng(key))
{
dsa.HashAlgorithm = CngAlgorithm.Sha256;
var unsignedJwtData =
Url.Base64urlEncode(Encoding.UTF8.GetBytes(header)) + "." + Url.Base64urlEncode(Encoding.UTF8.GetBytes(payload));
var signature =
dsa.SignData(Encoding.UTF8.GetBytes(unsignedJwtData));
return unsignedJwtData + "." + Url.Base64urlEncode(signature);
}
결과는 서명 된 토큰입니다.이 토큰은 API를 사용하고 푸시 알림을 보내는 동안 인증 헤더로 사용됩니다.
그것은 내 dev에 컴퓨터에서 잘 작동하지만 때 나는이 코드가 난 다음 얻을 실행하면, 윈도우 서버에 배포 :
System.ArgumentException: Keys used with the ECDsaCng algorithm must have an algorithm group of ECDsa.
Parameter name: key
at System.Security.Cryptography.ECDsaCng..ctor(CngKey key)
at OTTCommon.Encryption.ECDSA.SignES256(String privateKey, String header, String payload, ILog log)
나는 해결책을 찾을 수 없습니다, 그것은 윈도우 키 저장 또는 뭔가 뭔가 그런 ....
어떻게해야합니까?
대단히 빠른 답변을드립니다! 너무 빨리 그것을 기대하지 않았다 :) 어쨌든, 내 dev에 컴퓨터에 4.6.2 버전이 있고 서버에 4.6.1이있다. 서버를 4.6.2 net 버전으로 업그레이드하고 문제가 해결되는지 확인합니다. 정보처럼, 해결 방법이 내 컴퓨터 (Win7)에서 작동하지 않습니다. "요청한 작업이 지원되지 않습니다."라는 메시지가 나타납니다. 예외. – MIslavMIslav
Windows 서버 2012r2 .NET 버전을 4.6.2로 업그레이드 할 때 작동했습니다! 문제가 해결되었습니다. 대단히 감사합니다! – MIslavMIslav