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"); } }
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"); } }