diff --git a/go.mod b/go.mod
index b7d829235efe28b898a49706bc9981ccefa82eba..7450bb8c38bddf4c4cae3da659b3dfc24feeb818 100644
--- a/go.mod
+++ b/go.mod
@@ -6,14 +6,14 @@ require (
 	github.com/google/go-configfs-tsm v0.2.2
 	github.com/lestrrat-go/jwx/v2 v2.0.8
 	github.com/veraison/apiclient v0.3.0
-	github.com/veraison/ccatoken v1.1.0
+	github.com/veraison/ccatoken v1.3.1
 	github.com/veraison/ear v1.1.2
 )
 
 require (
 	github.com/davecgh/go-spew v1.1.1 // indirect
 	github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
-	github.com/fxamacker/cbor/v2 v2.4.0 // indirect
+	github.com/fxamacker/cbor/v2 v2.5.0 // indirect
 	github.com/goccy/go-json v0.9.11 // indirect
 	github.com/golang/protobuf v1.5.3 // indirect
 	github.com/huandu/xstrings v1.3.3 // indirect
@@ -28,8 +28,8 @@ require (
 	github.com/stretchr/testify v1.8.2 // indirect
 	github.com/veraison/cmw v0.1.0 // indirect
 	github.com/veraison/eat v0.0.0-20220117140849-ddaf59d69f53 // indirect
-	github.com/veraison/go-cose v1.0.0-rc.1 // indirect
-	github.com/veraison/psatoken v1.2.0 // indirect
+	github.com/veraison/go-cose v1.3.0-rc.1 // indirect
+	github.com/veraison/psatoken v1.2.1-0.20240912124429-aec3ece7886e // indirect
 	github.com/x448/float16 v0.8.4 // indirect
 	go.uber.org/multierr v1.11.0 // indirect
 	golang.org/x/crypto v0.12.0 // indirect
diff --git a/go.sum b/go.sum
index e1afb05ecc92af05be63e64ebc16915ae30f52ff..739e2e5a6dd7eee68ffaa5171645a1837e2c76d3 100644
--- a/go.sum
+++ b/go.sum
@@ -8,6 +8,8 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2U
 github.com/fxamacker/cbor/v2 v2.2.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo=
 github.com/fxamacker/cbor/v2 v2.4.0 h1:ri0ArlOR+5XunOP8CRUowT0pSJOwhW098ZCUyskZD88=
 github.com/fxamacker/cbor/v2 v2.4.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo=
+github.com/fxamacker/cbor/v2 v2.5.0 h1:oHsG0V/Q6E/wqTS2O1Cozzsy69nqCiguo5Q1a1ADivE=
+github.com/fxamacker/cbor/v2 v2.5.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo=
 github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk=
 github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -58,6 +60,8 @@ github.com/veraison/apiclient v0.3.0 h1:nlkIsec2iAwrjCHSEUfX9J34aqj7/rW2BPja6Msa
 github.com/veraison/apiclient v0.3.0/go.mod h1:LCXFZ3D/tJ3HLAOHUg8bnAKGvgTl53e1ntwdwjVbQ5A=
 github.com/veraison/ccatoken v1.1.0 h1:U0Z5fOQRsdz3ksvvxVzTITczo+kfRxIlkWahJNP6Irs=
 github.com/veraison/ccatoken v1.1.0/go.mod h1:qh/KBwsrhPyGJqttlh8PU56wt1rPkUCX9A3ZAA/53Nc=
+github.com/veraison/ccatoken v1.3.1 h1:zUHXr2mPprxMYv5Mm2mumxzQZ3I9wy7QGayXqa9Rv/E=
+github.com/veraison/ccatoken v1.3.1/go.mod h1:vMqdbW4H/8A3oT+24qssuIK3Aefy06XqzTELGg+gWAg=
 github.com/veraison/cmw v0.1.0 h1:vD6tBlGPROCW/HlDcG1jh+XUJi5ihrjXatKZBjrv8mU=
 github.com/veraison/cmw v0.1.0/go.mod h1:WoBrlgByc6C1FeHhdze1/bQx1kv5d1sWKO5ezEf4Hs4=
 github.com/veraison/ear v1.1.2 h1:Xs41FqAG8IyJaceqNFcX2+nf51Et1uyhmCJV8SZqw/8=
@@ -67,8 +71,14 @@ github.com/veraison/eat v0.0.0-20220117140849-ddaf59d69f53 h1:5gnX2TrGd/Xz8DOp2O
 github.com/veraison/eat v0.0.0-20220117140849-ddaf59d69f53/go.mod h1:+kxt8iuFiVvKRs2VQ1Ho7bbAScXAB/kHFFuP5Biw19I=
 github.com/veraison/go-cose v1.0.0-rc.1 h1:4qA7dbFJGvt7gcqv5MCIyCQvN+NpHFPkW7do3EeDLb8=
 github.com/veraison/go-cose v1.0.0-rc.1/go.mod h1:7ziE85vSq4ScFTg6wyoMXjucIGOf4JkFEZi/an96Ct4=
+github.com/veraison/go-cose v1.3.0-rc.1 h1:j7mMBdwkbq4c+pgEZVbbWG8UwVIgGHPp6+TAAYJj+UY=
+github.com/veraison/go-cose v1.3.0-rc.1/go.mod h1:df09OV91aHoQWLmy1KsDdYiagtXgyAwAl8vFeFn1gMc=
 github.com/veraison/psatoken v1.2.0 h1:PeHy6YUbhFE9Z9xaQBoAMpMWUEqSHrF2JgfcwMTmFIA=
 github.com/veraison/psatoken v1.2.0/go.mod h1:2tHLoYMOIS4V4mO8MJT4VstRtpO50FLmhoOR35FyIr4=
+github.com/veraison/psatoken v1.2.1-0.20240719122628-26fe500fd5d4 h1:N7qg7vDF2mUg7I+8AoU+ieJ20cgcShwFHXHkV5b2YAA=
+github.com/veraison/psatoken v1.2.1-0.20240719122628-26fe500fd5d4/go.mod h1:6+WZzXr0ACXYiUAJJqTaCxW43gY2+gEaCoVNdDv3+Bw=
+github.com/veraison/psatoken v1.2.1-0.20240912124429-aec3ece7886e h1:W1OWcrRvfN0EWyldcpFgwl9xdKBbZUlk5pnbLTcR8Ec=
+github.com/veraison/psatoken v1.2.1-0.20240912124429-aec3ece7886e/go.mod h1:bXUwdYAGcRoclxe73JmO8Z9ngV9KDHqW20afM9Q0FKo=
 github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
 github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
 go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
diff --git a/main.go b/main.go
index ac485c42e4a2da3cd717261a09bc932611b90c9b..b6470539692c28df0d85e9b24bc08f8ddfa8cadd 100644
--- a/main.go
+++ b/main.go
@@ -186,9 +186,7 @@ func golden() {
 		log.Fatalf("getEvidence failed: %v", err)
 	}
 
-	var evidence ccatoken.Evidence
-
-	err = evidence.FromCBOR(cbor)
+	evidence, err := ccatoken.DecodeAndValidateEvidenceFromCBOR(cbor)
 	if err != nil {
 		log.Fatalf("Parsing CCA evidence from CBOR failed: %v", err)
 	}
@@ -203,9 +201,7 @@ func report(out string) {
 		log.Fatalf("getEvidence failed: %v", err)
 	}
 
-	var evidence ccatoken.Evidence
-
-	err = evidence.FromCBOR(cbor)
+	evidence, err := ccatoken.DecodeAndValidateEvidenceFromCBOR(cbor)
 	if err != nil {
 		log.Fatalf("Parsing CCA evidence from CBOR failed: %v", err)
 	}
@@ -224,7 +220,7 @@ func report(out string) {
 	log.Printf("CCA token saved to %q", out)
 }
 
-func prettyPrintToken(e ccatoken.Evidence) (string, error) {
+func prettyPrintToken(e *ccatoken.Evidence) (string, error) {
 	j, err := e.MarshalJSON()
 	if err != nil {
 		return "", fmt.Errorf("serializing CCA claims-set to JSON failed: %w", err)