fix: issues discovered by invocation validation tests
This commit is contained in:
@@ -78,7 +78,7 @@ func MustParse(str string) DID {
|
|||||||
|
|
||||||
// Defined tells if the DID is defined, not equal to Undef.
|
// Defined tells if the DID is defined, not equal to Undef.
|
||||||
func (d DID) Defined() bool {
|
func (d DID) Defined() bool {
|
||||||
return d.code == 0 || len(d.bytes) > 0
|
return d.code != 0 || len(d.bytes) > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// PubKey returns the public key encapsulated by the did:key.
|
// PubKey returns the public key encapsulated by the did:key.
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ func (t *Token) IsValidNow() bool {
|
|||||||
// IsValidNow verifies that the token can be used at the given time, based on expiration or "not before" fields.
|
// IsValidNow verifies that the token can be used at the given time, based on expiration or "not before" fields.
|
||||||
// This does NOT do any other kind of verifications.
|
// This does NOT do any other kind of verifications.
|
||||||
func (t *Token) IsValidAt(ti time.Time) bool {
|
func (t *Token) IsValidAt(ti time.Time) bool {
|
||||||
if t.expiration == nil && ti.After(*t.expiration) {
|
if t.expiration != nil && ti.After(*t.expiration) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if t.notBefore != nil && ti.Before(*t.notBefore) {
|
if t.notBefore != nil && ti.Before(*t.notBefore) {
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ func TestToken_ExecutionAllowed(t *testing.T) {
|
|||||||
|
|
||||||
args := invocationtest.EmptyArguments
|
args := invocationtest.EmptyArguments
|
||||||
prf := invocationtest.Proof(t, dlg1TknCIDStr, expiredDlg0TknCIDStr, rootTknCIDStr)
|
prf := invocationtest.Proof(t, dlg1TknCIDStr, expiredDlg0TknCIDStr, rootTknCIDStr)
|
||||||
testFails(t, invocation.ErrDelegationExpired, []string{"seg0"}, args, prf)
|
testFails(t, invocation.ErrTokenInvalidNow, []string{"seg0"}, args, prf)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("fails - referenced delegation inactive", func(t *testing.T) {
|
t.Run("fails - referenced delegation inactive", func(t *testing.T) {
|
||||||
@@ -102,7 +102,7 @@ func TestToken_ExecutionAllowed(t *testing.T) {
|
|||||||
|
|
||||||
args := invocationtest.EmptyArguments
|
args := invocationtest.EmptyArguments
|
||||||
prf := invocationtest.Proof(t, dlg1TknCIDStr, inactiveDlg0TknCIDStr, rootTknCIDStr)
|
prf := invocationtest.Proof(t, dlg1TknCIDStr, inactiveDlg0TknCIDStr, rootTknCIDStr)
|
||||||
testFails(t, invocation.ErrDelegationInactive, []string{"seg0"}, args, prf)
|
testFails(t, invocation.ErrTokenInvalidNow, []string{"seg0"}, args, prf)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("fails - last (or only) delegation not root", func(t *testing.T) {
|
t.Run("fails - last (or only) delegation not root", func(t *testing.T) {
|
||||||
@@ -126,7 +126,7 @@ func TestToken_ExecutionAllowed(t *testing.T) {
|
|||||||
|
|
||||||
args := invocationtest.EmptyArguments
|
args := invocationtest.EmptyArguments
|
||||||
prf := invocationtest.Proof(t, dlg0TknCIDStr, rootTknCIDStr)
|
prf := invocationtest.Proof(t, dlg0TknCIDStr, rootTknCIDStr)
|
||||||
testFails(t, invocation.ErrNotIssuedToInvoker, []string{"seg0"}, args, prf)
|
testFails(t, invocation.ErrBrokenChain, []string{"seg0"}, args, prf)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ func (t *Token) verifyProofs(delegations []*delegation.Token) error {
|
|||||||
aud = t.subject
|
aud = t.subject
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fmt.Println("Subject:", t.subject, ", Audience:", aud)
|
||||||
|
|
||||||
var last *delegation.Token
|
var last *delegation.Token
|
||||||
|
|
||||||
// control from the invocation to the root
|
// control from the invocation to the root
|
||||||
|
|||||||
Reference in New Issue
Block a user