trust_config: bail if the data is a cert and is not fresh#156
trust_config: bail if the data is a cert and is not fresh#156a-thieme merged 2 commits intonamed-data:mainfrom tianyuan129:main
Conversation
There was a problem hiding this comment.
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 |
std/security/trust_config_test.go
Outdated
| _, 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)) |
There was a problem hiding this comment.
Variable name 'exeExpiredSigCov' appears to be a typo. It should be 'eveExpiredSigCov' to match the naming convention used for Eve's certificate.
| _, 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)) |
std/security/trust_config_test.go
Outdated
| _, eveCertData, exeSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts) | ||
| require.True(t, validateCerts(eveCertData, exeSigCov)) |
There was a problem hiding this comment.
Variable name 'exeSigCov' appears to be a typo. It should be 'eveSigCov' to match the naming convention used for Eve's certificate.
| _, 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)) |
std/security/trust_config_test.go
Outdated
| _, eveCertData, exeSigCov := signCert(rootSigner, tu.NoErr(signer.MarshalSecret(eveSigner)), opts) | ||
| require.True(t, validateCerts(eveCertData, exeSigCov)) |
There was a problem hiding this comment.
Variable name 'exeSigCov' appears to be a typo. It should be 'eveSigCov' to match the naming convention used for Eve's certificate.
| _, 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)) |
std/security/trust_config_test.go
Outdated
| _, 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)) |
There was a problem hiding this comment.
Variable name 'exeExpiredSigCov' appears to be a typo. It should be 'eveExpiredSigCov' to match the naming convention used for Eve's certificate.
| _, 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)) |
std/security/trust_config_test.go
Outdated
| // This cross schema should not be accepted | ||
| require.False(t, validateSyncWithCross("/test/alice/app/test/bob/data1", bobSigner, bobMCross)) | ||
|
|
||
| // ------------- Eve (certifcates only) ------------- |
There was a problem hiding this comment.
Spelling error in comment: 'certifcates' should be 'certificates'.
| // ------------- Eve (certifcates only) ------------- | |
| // ------------- Eve (certificates only) ------------- |
|
Copilot caught some typos but I think it does not matter. Please merge yourself when you feel ready. |
|
I don't have merge access 😆 |
To resolve #155