public void TestEvaluation() { IDkimRecordParser dkimRecordParser = Create(); //string record = "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxBwakMBSvmNXD9UJvNVpP3X+QanFgeep6e89Yb5yVeHE7hs7UYglXEG2a2KEGnkOqxu7IfsHtbv3ibbZVSqk8OV9n58Gzl6uGs9MCQAa0JhIodRMzjF20PhxBhKBnSp9SX1E5RlgOplNF2Bat0+2ypb+TKmEgnMkjok9YXL8ddwIDAQAB; n=1024,1462785360,1"; string record = "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIl6aF27aG0BCld/lgh2vC+1Mw55QdjrYKUsI/NksVASi9XQzh05yW87rlnSnmNg13k2E+gJaQL483/jUTGKwMWLlFUUQ8WwazUpw+xsuMdksHyp+RcHizR+reXNmNikJ3xbCKxaFW3er6MiZGRkf64zf87NwEvU8r47LGPcjK6wIDAQAB"; DkimRecord dkimRecord = dkimRecordParser.Parse(new DnsRecord(record, new List <string>())); }
public void ParseWithEd25519KeyDkimRecord() { IDkimRecordParser parser = Create(); string record = "v=DKIM1;" + "k=ed25519;" + "n=hello world;" + "s=*;" + "h=sha256;" + "t=y;" + "p=pEd4PDHp7GcYy1yc/0ZYw/aidpwIUPL2Z4433ZnuWoA="; DkimRecord dkimRecord = parser.Parse(new DnsRecord(record, new List <string>())); Assert.That(dkimRecord.Errors, Is.Empty); }
public void ParseWithRsa2048KeyDkimRecord() { IDkimRecordParser parser = Create(); string record = "v=DKIM1;" + "k=rsa;" + "n=hello world;" + "s=*;" + "h=sha256;" + "t=y;" + "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvtzV5FCafF4GWCsuV0qhyDpV8pz7QrFxF8JABDl+kewpUIhTRujuKQbeAIuPzbiTe0djy1tPIyzEASChfPpSg7C9RrJlKlluyYN1H4ORJQsnAuwAy8+Eur+Zjo1o6xItxsac9RUvl4eCm8ZSkhtdu1HMRV0+rq2S1+E0cqwyO7xw2alhLRmu96Dgy2j4dz/8teguAUEaNGQECcd7h7DM" + "8vo8IZgyJHJdaMQHX7zhuRUP8fjsrD5YUfOsm/kzSJfSKEk9cXwKk8p5QoiHG+W4/tc/nyl+uqz9fUF/K0d9qCvHE31mu3to2GCakABPU9XpczhIwYkGB6ASdd53PKhXJwIDAQAB"; DkimRecord dkimRecord = parser.Parse(new DnsRecord(record, new List <string>())); Assert.That(dkimRecord.Errors.Count, Is.EqualTo(0)); }
public void ParseWithPublicKeyDataTagMissing() { IDkimRecordParser parser = Create(); string record = "v=DKIM1;" + "k=rsa;" + "n=hello world;" + "s=*;" + "h=sha256;" + "t=y"; DkimRecord dkimRecord = parser.Parse(new DnsRecord(record, new List <string>())); Assert.That(dkimRecord.Errors.Count, Is.EqualTo(1)); Assert.That(dkimRecord.Errors.First().ErrorType, Is.EqualTo(EvaluationErrorType.Error)); Assert.That(dkimRecord.Errors.First().Id, Is.EqualTo(Guid.Parse("f3895ef6-8709-499a-8c5c-40118a818087"))); }
public void ParseWithCorruptPublicKeyDkimRecordShouldError() { IDkimRecordParser parser = Create(); string record = "v=DKIM1;" + "k=rsa;" + "n=hello world;" + "s=*;" + "h=sha256;" + "t=y;" + "p=ABCfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCDsRhw52Ldz6Cz4LYdSfDdCGi1x+SmR/xT+6PhGzvZfEgQN8SzRrQBnvmTW/Rizuivul+iq4bbS3Dc4S0ZoDkdG30jr4NRK35lGcDRWUV3XYsgX8Y5FzTFP73dbO9vHv3UVxmH0/giIOZ2j4xzIad7VHjn2AvDUafv2UkIwk/qlQIDAQAB"; DkimRecord dkimRecord = parser.Parse(new DnsRecord(record, new List <string>())); Assert.That(dkimRecord.Errors.Count, Is.EqualTo(1)); Assert.That(dkimRecord.Errors.First().ErrorType, Is.EqualTo(EvaluationErrorType.Error)); Assert.That(dkimRecord.Errors.First().Id, Is.EqualTo(Guid.Parse("21B09D43-685C-4CAE-989E-7194CA093863"))); }
public void ParseWithRsa1024KeyDkimRecordShouldError() { IDkimRecordParser parser = Create(); string record = "v=DKIM1;" + "k=rsa;" + "n=hello world;" + "s=*;" + "h=sha256;" + "t=y;" + "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCDsRhw52Ldz6Cz4LYdSfDdCGi1x+SmR/xT+6PhGzvZfEgQN8SzRrQBnvmTW/Rizuivul+iq4bbS3Dc4S0ZoDkdG30jr4NRK35lGcDRWUV3XYsgX8Y5FzTFP73dbO9vHv3UVxmH0/giIOZ2j4xzIad7VHjn2AvDUafv2UkIwk/qlQIDAQAB"; DkimRecord dkimRecord = parser.Parse(new DnsRecord(record, new List <string>())); Assert.That(dkimRecord.Errors.Count, Is.EqualTo(1)); Assert.That(dkimRecord.Errors.First().ErrorType, Is.EqualTo(EvaluationErrorType.Warning)); Assert.That(dkimRecord.Errors.First().Id, Is.EqualTo(Guid.Parse("d16be8d5-8ed6-4dd0-a8aa-c8f1380a8d3c"))); }
public void ParseWithRsa1985KeyDkimRecord() { IRsaPublicKeyEvaluator rsaPublicKeyEvaluator = A.Fake <IRsaPublicKeyEvaluator>(); int anOut; A.CallTo(() => rsaPublicKeyEvaluator.TryGetKeyLengthSize(A <string> ._, out anOut)).Returns(true).AssignsOutAndRefParameters(1985); IDkimRecordParser parser = Create(rsaPublicKeyEvaluator); string record = "v=DKIM1;" + "k=rsa;" + "n=hello world;" + "s=*;" + "h=sha256;" + "t=y;" + "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvtzV5FCafF4GWCsuV0qhyDpV8pz7QrFxF8JABDl+kewpUIhTRujuKQbeAIuPzbiTe0djy1tPIyzEASChfPpSg7C9RrJlKlluyYN1H4ORJQsnAuwAy8+Eur+Zjo1o6xItxsac9RUvl4eCm8ZSkhtdu1HMRV0+rq2S1+E0cqwyO7xw2alhLRmu96Dgy2j4dz/8teguAUEaNGQECcd7h7DM" + "8vo8IZgyJHJdaMQHX7zhuRUP8fjsrD5YUfOsm/kzSJfSKEk9cXwKk8p5QoiHG+W4/tc/nyl+uqz9fUF/K0d9qCvHE31mu3to2GCakABPU9XpczhIwYkGB6ASdd53PKhXJwIDAQAB"; DkimRecord dkimRecord = parser.Parse(new DnsRecord(record, new List <string>())); Assert.That(dkimRecord.Errors.Count, Is.EqualTo(1)); Assert.That(dkimRecord.Errors.First().ErrorType, Is.EqualTo(EvaluationErrorType.Warning)); Assert.That(dkimRecord.Errors.First().Id, Is.EqualTo(Guid.Parse("d16be8d5-8ed6-4dd0-a8aa-c8f1380a8d3c"))); }
private DkimSelectorRecords Parse(DkimSelector selector) { return(new DkimSelectorRecords(new DkimSelector(selector.Selector, selector.CName, selector.Records, selector.PollError), selector.Records.Select(_ => _dkimRecordParser.Parse(_.DnsRecord)).ToList())); }