Skip to content
This repository was archived by the owner on Sep 3, 2025. It is now read-only.

Conversation

@illyasch
Copy link
Contributor

@illyasch illyasch commented Mar 11, 2025

This PR improves DKIM record parsing and validation and enhances error handling.

1. New Error Definitions

The patch introduces explicit error constants to improve clarity and debugging:

  • ErrEmptyRecord: Indicates an empty DKIM record.
  • ErrUnsupportedVersion: Indicates an unsupported DKIM record version.
  • ErrUnsupportedAlgorithm: Indicates an unsupported algorithm in DKIM.
  • ErrDecodeBase64: Indicates errors during base64 decoding.
  • ErrParsePublicKey: Indicates failures during public key parsing.
  • ErrUnsupportedServices: Indicates unsupported service types listed in the DKIM key.
  • ErrMissedPTag: Indicates the absence of the mandatory p tag.

2. Improvements in ParsePublicKey

  • Multiple Error Reporting:
    The function now collects and returns multiple errors encountered during parsing instead of halting after the first error.

  • Updated Function Signature:
    ParsePublicKey returns a slice of errors ([]error) instead of a single error.

@illyasch illyasch changed the title DKIM record validation updated in ParsePublicKey(). [IPF-87-1] DKIM record validation updated in ParsePublicKey(). Mar 12, 2025
@illyasch illyasch force-pushed the feature/error-attribution branch 8 times, most recently from da91a5c to 49fb29c Compare March 13, 2025 18:32
@illyasch illyasch force-pushed the feature/error-attribution branch from 49fb29c to b2f53ea Compare March 13, 2025 19:14
@illyasch illyasch requested a review from dmotylev March 14, 2025 09:08
@illyasch illyasch marked this pull request as ready for review March 14, 2025 09:18
@dmotylev dmotylev requested a review from Copilot March 14, 2025 15:45
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR improves DKIM record parsing and validation by introducing explicit error constants and enabling the collection of multiple errors during parsing. Key changes include:

  • Adding new error constants and updating error messages.
  • Refactoring ParsePublicKey to return a slice of errors, accumulating all validation issues.
  • Adjusting tests and cache logic to account for the updated error handling and removing obsolete tool dependency code.

Reviewed Changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

File Description
dkim.go Updated constants, ParsePublicKey and validatePublicKey to support multiple error reporting.
dkim_test.go Updated tests to reflect the new multi-error handling and error joining logic.
internal/tooldeps/toolsdeps.go Removed unused tool dependency file.
Comments suppressed due to low confidence (1)

dkim.go:726

  • [nitpick] The variable 'required' is used to track if the mandatory 'p' tag is present. For improved clarity, consider renaming it to 'pTagFound' or a similar descriptive name.
var errs []error
	required := false

@illyasch illyasch merged commit 388881b into master Mar 18, 2025
7 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants