Helper methods for manipulating Feeds.
コード例 #1
0
        public void TestSignFeed()
        {
            using (var stream = new MemoryStream())
            {
                var          feed       = FeedTest.CreateTestFeed();
                const string passphrase = "passphrase123";
                var          signature  = new byte[] { 1, 2, 3 };
                var          secretKey  = new OpenPgpSecretKey(keyID: 123, fingerprint: new byte[] { 1, 2, 3 }, userID: "user");

                var openPgpMock = CreateMock <IOpenPgp>();
                openPgpMock.Setup(x => x.Sign(It.IsAny <byte[]>(), secretKey, passphrase))
                .Returns(signature);
                feed.SaveXml(stream);
                FeedUtils.SignFeed(stream, secretKey, passphrase, openPgpMock.Object);

                string signedFeed   = stream.ReadToString();
                string expectedFeed = feed.ToXmlString() + Store.Feeds.FeedUtils.SignatureBlockStart +
                                      Convert.ToBase64String(signature) + "\n" + Store.Feeds.FeedUtils.SignatureBlockEnd;
                signedFeed.Should().Be(expectedFeed, because: "Feed should remain unchanged except for appended XML signatre");
            }
        }
コード例 #2
0
        public void TestSignFeed()
        {
            using (var stream = new MemoryStream())
            {
                var          feed        = FeedTest.CreateTestFeed();
                var          secretKey   = new OpenPgpSecretKey("fingerprint", "key", "*****@*****.**", new DateTime(2000, 1, 1), OpenPgpAlgorithm.Rsa, 128);
                var          openPgpMock = MockRepository.Create <IOpenPgp>();
                const string passphrase  = "passphrase123";
                const string signature   = "iQEcB";

                openPgpMock.Setup(x => x.DetachSign(It.IsAny <Stream>(), secretKey.Fingerprint, passphrase))
                .Returns(signature);
                feed.SaveXml(stream);
                FeedUtils.SignFeed(stream, secretKey, passphrase, openPgpMock.Object);

                string signedFeed   = stream.ReadToString();
                string expectedFeed = feed.ToXmlString() + Store.Feeds.FeedUtils.SignatureBlockStart +
                                      signature + "\n" + Store.Feeds.FeedUtils.SignatureBlockEnd;
                Assert.AreEqual(expectedFeed, signedFeed,
                                "Feed should remain unchanged except for appended XML signatre");
            }
        }