Beispiel #1
0
        public void TestAuth()
        {
            var(privateRSAParameters, publicRSAParameters) = GenerateRSAKey();
            TestAddUser("adam", publicRSAParameters);
            var signedData = new SignedData
            {
                Content   = Encoding.UTF8.GetBytes(DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString()),
                PublicKey = publicRSAParameters
            };

            signedData.GenerateSignedData(privateRSAParameters);
            Assert.AreEqual(HttpStatusCode.OK, TestAuthSendRequest(signedData));

            signedData.Content = Encoding.UTF8.GetBytes((DateTimeOffset.UtcNow.ToUnixTimeSeconds() + 40).ToString());
            signedData.GenerateSignedData(privateRSAParameters);
            Assert.AreEqual(HttpStatusCode.OK, TestAuthSendRequest(signedData));

            var badSignedData = (SignedData)signedData.Clone();

            badSignedData.SHA256Hash[0] = 0;
            Assert.AreEqual(HttpStatusCode.Unauthorized, TestAuthSendRequest(badSignedData));

            badSignedData = (SignedData)signedData.Clone();
            badSignedData.Signature[0] = 0;
            Assert.AreEqual(HttpStatusCode.Unauthorized, TestAuthSendRequest(badSignedData));

            badSignedData = (SignedData)signedData.Clone();
            badSignedData.PublicKey.Modulus[0] = 0;
            Assert.AreEqual(HttpStatusCode.Unauthorized, TestAuthSendRequest(badSignedData));
        }