Giter Site home page Giter Site logo

arc_test_suite's People

Contributors

geneshuman avatar kitterma avatar marcbradshaw avatar petergoldstein avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arc_test_suite's Issues

Signing suite documentation needed around standard formatting

The test suite readme.md makes it clear that certain standard formatting is required for the signing suite to run.

However, once the test suite is installed, it is never clear that running the signing suite requires the references implementation to match said formatting. The suite itself (either as part of the -h output, or when running the signing suite) should make it clear what is needed for the signing suite to properly run.

the arc_test_suite should not have hardcoded paths to external environments

The openarc runners all reference files that exist within https://github.com/ValiMail/OpenARCDev, but this relationship should not be assumed.

Both of these files contains hardcoded paths that should be removed:

validateopenarc.py also has two other issues:

It might make sense to have a configuration file for these, and then OpenARCDev can just have its own settings file with appropriate paths.

arc test suite issues with new dkimpy

I've recently released dkimpy 0.7.0. When I try to run the test suite against it, I get quite a number of errors for signing and the verification tests just hang. It's possible I'm doing it wrong, but it would be nice to see the test suite updated to match the current ARC document revisions and some feedback about potential issues in dkimpy before I release 0.7.1 (there's already one bug identified in the ARC code that I should fix soon).

Add ARC result to AR (Section 5.2)

Need to add signing test to verify ARC results are added to AR

The end result of this Validation algorithm SHOULD be included within
the Authentication-Results header field for the ADMD.

Updates for RFC 8617

Now that the IETF published RFC 8617, we should update the test suite.

In particular, the instance tag for AMS and AS headers now MUST appear before all other tags (e.g. see the ABNF in § 4.1.3)

c= tag is not required

The result for ams_fields_c_na is incorrect. c= is not a required tag in a DKIM signature and there's nothing in ARC to specify it should be otherwise for AMS.

Test suite needs a better mechanism for dealing with different signing schemes

Right now, the test suite signing suite needs the validated implementation to sign in a very specific way, detailed here (https://github.com/ValiMail/arc_test_suite#signing-header-format-standardization).

Realistically, this is a bad idea, as it creates too high a bar for implementations to check their signing status at best, and at worst introduces divergent code paths for testing within implementations.

Instead, there should be a way to define how the signed messages are generated by the implementation, and the test suite should be able to generate signing tests to match.

While this will generate a suite of signing tests instead of a single test, this will make the test suite far more useable for those with differing implementations.

Test for CFWS around authserv-id

From RFC7601, section 2.2

authres-header = "Authentication-Results:" [CFWS] authserv-id
[ CFWS authres-version ]
( no-result / 1*resinfo ) [CFWS] CRLF

For example
Authentication-Results: (testing) lists.example.org (test); arc=none;

Is a valid Authentication-Results header, Mail::DKIM was not doing the right thing with an authserv-id followed by a comment.

arc-draft-sign-tests.yml should include this use case, and possible one with an authres-version, and should set an expectation for what should be added in the corresponding AAR.

ARC does not use h= tag from DKIM for AS

Need new signing and verification tests for this

Must not add DKIM h= tag (Section 4.1.3)
Must fail if DKIM h= tag is present (Section 4.1.3)
Must verify without using h= tag to determine signed headers (Section 4.1.3)

The only supported tags are "i" (from Section 4.2.1 of this
document), and "a", "b", "d, "s", "t" from [RFC6376] Section 3.5.
Note especially that the DKIM "h" tag is NOT allowed and if found,
MUST result in a cv status of "fail" (for more information see
Section 5.1.1);

Test suite output needs to be parseable

Right now, the test suite output is poorly formatted and impossible to parse programmatically due to inconsistent quoting of strings and random newlines in the output.

There should be consistent output (on either stdout or stderr) that can be parsed appropriately and separately from all other output.

Suggested output, for each test, per line:
[test name] | [test status] | [test output]

e.g.:

cv_fail_i1_as_na | fail | '' != 'fail'

All ADMD results in AAR (Section 4.1.1)

Need signing tests to validate this is done.

Because there is only one AAR allowed per ARC set, the AAR MUST
contain the combined authres-payload with all of the authentication
results from within the participating ADMD, regardless of how many
Authentication-Results header fields are attached to the message.

All previous cv MUST != fail (Section 5.2, Step 3.3)

Need verification tests for this.

The "cv" value for all ARC-Seal header fields MUST NOT be
"fail". For ARC Sets with instance values > 1, the values
MUST be "pass". For the ARC Set with instance value = 1, the
value MUST be "none".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.