コード例 #1
0
        public SignedPrivateApiRequest SignRequest(PrivateApiRequest request, long nonce)
        {
            string signableString = request.FormatIntoSignableString(nonce);
            var    signature      = SigningExtensions.SignStringUsingSha512(signableString,
                                                                            currentRsaParameters);

            return(new SignedPrivateApiRequest(request, signature, nonce));
        }
 private static void AssertSignatureIsValide(PrivateApiRequest request,
                                             SignedPrivateApiRequest signedRequest)
 {
     using (var rsa = RSA.Create())
     {
         rsa.ImportParameters(TestData.Credentials.PrivateRsaParameters);
         string signableString     = request.FormatIntoSignableString(TestData.RequestNonce);
         var    signableStringData = Encoding.UTF8.GetBytes(signableString);
         bool   isValidSignature   = rsa.VerifyData(signableStringData, signedRequest.Signature,
                                                    HashAlgorithmName.SHA512, RSASignaturePadding.Pkcs1);
         Assert.That(isValidSignature, Is.True);
     }
 }
コード例 #3
0
 public SignedPrivateApiRequest SignRequest(PrivateApiRequest request, long nonce)
 => null;                     //ncrunch: no coverage
コード例 #4
0
 /// <summary>
 /// https://github.com/Fairlay/FairlayDotNetClient/wiki/Private-API#fairlay-private-api-documentation-v0
 /// </summary>
 public static string FormatIntoSignableString(this PrivateApiRequest request, long nonce)
 => $"{nonce}|{request.UserId}|{request.Header}|{request.Body}";
 private static void AssertIsEmptyRequestBody(PrivateApiRequest request)
 => Assert.That(request.Body, Is.Empty);
コード例 #6
0
 public SignedPrivateApiRequest(PrivateApiRequest request, byte[] signature, long nonce) : base(
         request.UserId, request.Header, request.Body)
 {
     Signature = signature;
     Nonce     = nonce;
 }