private IDkimRecordParser Create(IRsaPublicKeyEvaluator rsaPublicKeyEvaluator = null)
 {
     return(new ServiceCollection()
            .AddTransient <IDkimRecordParser, DkimRecordParser>()
            .AddTransient <IDkimSelectorRecordsParser, DkimSelectorRecordsParser>()
            .AddTransient <IDkimEvaluatorConfig, DkimEvaluatorConfig>()
            .AddTransient(_ => rsaPublicKeyEvaluator ?? new RsaPublicKeyEvaluator())
            .AddTransient <ITagParser, TagParser>()
            .AddTransient <ITagParserStrategy, PublicKeyTypeParserStrategy>()
            .AddTransient <ITagParserStrategy, FlagsParserStrategy>()
            .AddTransient <ITagParserStrategy, HashAlgorithmParserStrategy>()
            .AddTransient <ITagParserStrategy, NotesParserStrategy>()
            .AddTransient <ITagParserStrategy, PublicKeyDataParserStrategy>()
            .AddTransient <ITagParserStrategy, VersionParserStrategy>()
            .AddTransient <ITagParserStrategy, ServiceTypeParserStrategy>()
            .AddTransient <IEvaluator <DkimRecord>, Evaluator <DkimRecord> >()
            .AddTransient <IRule <DkimRecord>, SelectorShouldBeWellConfigured>()
            .AddTransient <IRule <DkimRecord>, TagShouldHavePublicKeyData>()
            .AddTransient <IImplicitProvider <Tag>, ImplicitProvider <Tag> >()
            .AddTransient <IImplicitProviderStrategy <Tag>, FlagTypeImplicitProvider>()
            .AddTransient <IImplicitProviderStrategy <Tag>, HashAlgorithImplicitProvider>()
            .AddTransient <IImplicitProviderStrategy <Tag>, NotesImplicitProvider>()
            .AddTransient <IImplicitProviderStrategy <Tag>, PublicKeyTypeImplicitProvider>()
            .AddTransient <IImplicitProviderStrategy <Tag>, ServiceTypeImplicitProvider>()
            .AddTransient <IImplicitProviderStrategy <Tag>, FlagTypeImplicitProvider>()
            .BuildServiceProvider()
            .GetRequiredService <IDkimRecordParser>());
 }
        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")));
        }
Esempio n. 3
0
 public void SetUp()
 {
     _rsaPublicKeyEvaluator          = A.Fake <IRsaPublicKeyEvaluator>();
     _selectorShouldBeWellConfigured = new SelectorShouldBeWellConfigured(_rsaPublicKeyEvaluator);
 }
Esempio n. 4
0
 public SelectorShouldBeWellConfigured(IRsaPublicKeyEvaluator publicKeyEvaluator)
 {
     _publicKeyEvaluator = publicKeyEvaluator;
 }