Skip to content

trust_config: bail if the data is a cert and is not fresh#156

Merged
a-thieme merged 2 commits intonamed-data:mainfrom
tianyuan129:main
Jul 11, 2025
Merged

trust_config: bail if the data is a cert and is not fresh#156
a-thieme merged 2 commits intonamed-data:mainfrom
tianyuan129:main

Conversation

@tianyuan129
Copy link
Collaborator

To resolve #155

@zjkmxy zjkmxy requested a review from Copilot July 11, 2025 00:02
Copy link
Contributor

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 implements certificate expiration validation to resolve issue #155, adding a check to reject expired certificates during trust validation. The changes include:

  • Added certificate expiration checking in the trust validation flow
  • Enhanced test infrastructure to support certificate expiration testing
  • Added comprehensive tests for both valid and expired certificates

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.

File Description
std/security/trust_config.go Added certificate expiration validation logic in the Validate method
std/security/trust_config_test.go Enhanced helper functions and added test cases for expired certificates

Comment on lines +474 to +477
_, eveExpiredCertData, exeExpiredSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), expiredOpts)
_, eveCertData, exeSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts)
require.True(t, validateCerts(eveCertData, exeSigCov))
require.False(t, validateCerts(eveExpiredCertData, exeExpiredSigCov))
Copy link

Copilot AI Jul 11, 2025

Choose a reason for hiding this comment

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

Variable name 'exeExpiredSigCov' appears to be a typo. It should be 'eveExpiredSigCov' to match the naming convention used for Eve's certificate.

Suggested change
_, eveExpiredCertData, exeExpiredSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), expiredOpts)
_, eveCertData, exeSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts)
require.True(t, validateCerts(eveCertData, exeSigCov))
require.False(t, validateCerts(eveExpiredCertData, exeExpiredSigCov))
_, eveExpiredCertData, eveExpiredSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), expiredOpts)
_, eveCertData, exeSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts)
require.True(t, validateCerts(eveCertData, exeSigCov))
require.False(t, validateCerts(eveExpiredCertData, eveExpiredSigCov))

Copilot uses AI. Check for mistakes.
Comment on lines +475 to +476
_, eveCertData, exeSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts)
require.True(t, validateCerts(eveCertData, exeSigCov))
Copy link

Copilot AI Jul 11, 2025

Choose a reason for hiding this comment

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

Variable name 'exeSigCov' appears to be a typo. It should be 'eveSigCov' to match the naming convention used for Eve's certificate.

Suggested change
_, eveCertData, exeSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts)
require.True(t, validateCerts(eveCertData, exeSigCov))
_, eveCertData, eveSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts)
require.True(t, validateCerts(eveCertData, eveSigCov))

Copilot uses AI. Check for mistakes.
Comment on lines +475 to +476
_, eveCertData, exeSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts)
require.True(t, validateCerts(eveCertData, exeSigCov))
Copy link

Copilot AI Jul 11, 2025

Choose a reason for hiding this comment

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

Variable name 'exeSigCov' appears to be a typo. It should be 'eveSigCov' to match the naming convention used for Eve's certificate.

Suggested change
_, eveCertData, exeSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts)
require.True(t, validateCerts(eveCertData, exeSigCov))
_, eveCertData, eveSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts)
require.True(t, validateCerts(eveCertData, eveSigCov))

Copilot uses AI. Check for mistakes.
Comment on lines +474 to +477
_, eveExpiredCertData, exeExpiredSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), expiredOpts)
_, eveCertData, exeSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts)
require.True(t, validateCerts(eveCertData, exeSigCov))
require.False(t, validateCerts(eveExpiredCertData, exeExpiredSigCov))
Copy link

Copilot AI Jul 11, 2025

Choose a reason for hiding this comment

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

Variable name 'exeExpiredSigCov' appears to be a typo. It should be 'eveExpiredSigCov' to match the naming convention used for Eve's certificate.

Suggested change
_, eveExpiredCertData, exeExpiredSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), expiredOpts)
_, eveCertData, exeSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts)
require.True(t, validateCerts(eveCertData, exeSigCov))
require.False(t, validateCerts(eveExpiredCertData, exeExpiredSigCov))
_, eveExpiredCertData, eveExpiredSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), expiredOpts)
_, eveCertData, exeSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts)
require.True(t, validateCerts(eveCertData, exeSigCov))
require.False(t, validateCerts(eveExpiredCertData, eveExpiredSigCov))

Copilot uses AI. Check for mistakes.
// This cross schema should not be accepted
require.False(t, validateSyncWithCross("/test/alice/app/test/bob/data1", bobSigner, bobMCross))

// ------------- Eve (certifcates only) -------------
Copy link

Copilot AI Jul 11, 2025

Choose a reason for hiding this comment

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

Spelling error in comment: 'certifcates' should be 'certificates'.

Suggested change
// ------------- Eve (certifcates only) -------------
// ------------- Eve (certificates only) -------------

Copilot uses AI. Check for mistakes.
@zjkmxy
Copy link
Member

zjkmxy commented Jul 11, 2025

Copilot caught some typos but I think it does not matter. Please merge yourself when you feel ready.

@tianyuan129
Copy link
Collaborator Author

I don't have merge access 😆

@a-thieme a-thieme merged commit d18cc01 into named-data:main Jul 11, 2025
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Validator returns false positive on expired cert

4 participants