public void SubscriptionSigningStringTest() { var validator = new AwsValidator(); var expectedBuilder = new StringBuilder(); expectedBuilder.Append("Message\n"); expectedBuilder.Append("You have chosen to subscribe to the topic arn:aws:sns:eu-west-1:138286856132:EmailWebhook.\nTo confirm the subscriptionDataBuilder, visit the SubscribeURL included in this message.\n"); expectedBuilder.Append("MessageId\n"); expectedBuilder.Append("3d4186f0-808e-4e2a-a3aa-79f6a95530c5\n"); expectedBuilder.Append("SubscribeURL\n"); expectedBuilder.Append("https://sns.eu-west-1.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:eu-west-1:138286856132:EmailWebhook&Token=2336412f37fb687f5d51e6e241da92fd739f58c44a4a1b9b163abcd8cd04eb9cd300541e6f85e09df3f9672fbde2f0e73b63610e602435cbff9a08a84a53104edbef275c2e2e61aeac9be4da44073fc7275e045191d125aa1c1c9c9dfdee64f7dd3b13c77670f1037843a9c6f2d05cc7\n"); expectedBuilder.Append("Timestamp\n"); expectedBuilder.Append("2018-06-06T12:38:33.131Z\n"); expectedBuilder.Append("Token\n"); expectedBuilder.Append("2336412f37fb687f5d51e6e241da92fd739f58c44a4a1b9b163abcd8cd04eb9cd300541e6f85e09df3f9672fbde2f0e73b63610e602435cbff9a08a84a53104edbef275c2e2e61aeac9be4da44073fc7275e045191d125aa1c1c9c9dfdee64f7dd3b13c77670f1037843a9c6f2d05cc7\n"); expectedBuilder.Append("TopicArn\n"); expectedBuilder.Append("arn:aws:sns:eu-west-1:138286856132:EmailWebhook\n"); expectedBuilder.Append("Type\n"); expectedBuilder.Append("SubscriptionConfirmation\n"); var content = validator.ParseContent(MessageType.SubscriptionConfirmation, Helpers.SubscriptionContent); var result = validator.BuildSigningString(content); Assert.AreEqual(expectedBuilder.ToString(), result, "SubscriptionConfirmation Signing string failed"); }
public void NotificationParseTest() { var validator = new AwsValidator(); var content = Encoding.UTF8.GetString(Helpers.CreateNotificationBody()); const string expectedSignatureVersion = "1"; const string expectedSignature = "EHfWWFB3hXW6kYukANmxNgrcipip/N0m4xPzbsZwtAVGL3tjlq+PXMEsuFFyd9ctR/sNf1rBeh690dvn8byG2WQ/DyaxpAm35yJvDvRaZIMJUOAEH97OEsH++dw3/2LOIb3AL0EDegY3/9/1jDmM+aHxCjziopCG8f9uEzZOpZ03SFxUQ9ZLrse0xZWvtVKSiSU23YzHrzhb44nLTYtonu9Xq5xm3xaRR9CwoXxZbQURLYWqVHyDWDH0cRxdcNW6s/1XpBQP3pzxh6KZs99uiAzL4w5rr05lqhOQGzPgfolI6n1qJJFTY4zPnzJhBKtfrqLikKCNFeg2UACr4dnN4Q=="; const string expectedSigningUrl = "https://sns.eu-west-1.amazonaws.com/SimpleNotificationService-eaea6120e66ea12e88dcd8bcbddca752.pem"; var result = validator.ParseContent(MessageType.Notification, content); Assert.AreEqual(typeof(AwsNotification), result.GetType(), "Notification parser failed"); Assert.AreEqual(expectedSignatureVersion, result.SignatureVersion, "Notification parser failed"); Assert.AreEqual(expectedSignature, result.Signature, "Notification parser failed"); Assert.AreEqual(expectedSigningUrl, result.SigningCertURL, "Notification parser failed"); }
public void NotificationSigningStringTest() { var validator = new AwsValidator(); var expectedBuilder = new StringBuilder(); expectedBuilder.Append("Message\n"); expectedBuilder.Append("{\"eventType\":\"Delivery\",\"mail\":{\"timestamp\":\"2018-06-06T12:39:12.765Z\",\"source\":\"[email protected]\",\"sourceArn\":\"arn:aws:ses:eu-west-1:138286856132:identity/[email protected]\",\"sendingAccountId\":\"138286856132\",\"messageId\":\"01020163d51bb47d-426d5135-0d53-4e67-87d0-27d654d5d3cf-000000\",\"destination\":[\"[email protected]\",\"[email protected]\"],\"headersTruncated\":false,\"headers\":[{\"name\":\"From\",\"value\":\"[email protected]\"},{\"name\":\"To\",\"value\":\"[email protected], [email protected]\"},{\"name\":\"Subject\",\"value\":\"AmazonMail\"},{\"name\":\"MIME-Version\",\"value\":\"1.0\"},{\"name\":\"Content-Type\",\"value\":\"text/plain; charset=UTF-8\"},{\"name\":\"Content-Transfer-Encoding\",\"value\":\"7bit\"}],\"commonHeaders\":{\"from\":[\"[email protected]\"],\"to\":[\"[email protected]\",\"[email protected]\"],\"messageId\":\"01020163d51bb47d-426d5135-0d53-4e67-87d0-27d654d5d3cf-000000\",\"subject\":\"AmazonMail\"},\"tags\":{\"ses:configuration-set\":[\"Callback\"],\"ses:source-ip\":[\"213.154.239.254\"],\"ses:from-domain\":[\"infosupport.com\"],\"ses:caller-identity\":[\"paul\"],\"tenant\":[\"twygger\"],\"ses:outgoing-ip\":[\"54.240.7.11\"]}},\"delivery\":{\"timestamp\":\"2018-06-06T12:39:13.742Z\",\"processingTimeMillis\":977,\"recipients\":[\"[email protected]\",\"[email protected]\"],\"smtpResponse\":\"250 ok 1528288753 qp 14158 server-6.tower-230.messagelabs.com!1528288753!1170990!1\",\"reportingMTA\":\"a7-11.smtp-out.eu-west-1.amazonses.com\"}}\n\n"); expectedBuilder.Append("MessageId\n"); expectedBuilder.Append("77153aac-352b-5f4c-a164-693ded1a1607\n"); expectedBuilder.Append("Subject\n"); expectedBuilder.Append("Amazon SES Email Event Notification\n"); expectedBuilder.Append("Timestamp\n"); expectedBuilder.Append("2018-06-06T12:39:13.865Z\n"); expectedBuilder.Append("TopicArn\n"); expectedBuilder.Append("arn:aws:sns:eu-west-1:138286856132:EmailWebhook\n"); expectedBuilder.Append("Type\n"); expectedBuilder.Append("Notification\n"); var content = validator.ParseContent(MessageType.Notification, Helpers.NotificationContent); var result = validator.BuildSigningString(content); Assert.AreEqual(expectedBuilder.ToString(), result, "Notification Signing string failed"); }