Q1: Which COSE header statement is correct?
Multiple ChoiceAn A2A profile uses COSE_Sign1 and must know which header values are covered by the signature.
An A2A profile uses COSE_Sign1 and must know which header values are covered by the signature.
A COSE_Sign1 object contains kid=h'17'. Three configured keys share that kid, but only one is authorized for this A2A issuer.
A COSE_Sign1 profile places alg only in the unprotected bucket. The verifier selects its verification algorithm from that value. The requirement is to prevent an intermediary from changing the algorithm selection while preserving the rest of the message.
A COSE_Sign1 object places crit=[1001] in protected headers, but parameter 1001 appears only in the unprotected bucket. The A2A profile says 1001 changes authorization semantics when understood.
The signer creates COSE_Sign1 with a detached payload and external_aad equal to the ASCII bytes of POST /tasks. The verifier uses the same payload bytes but supplies an empty external_aad. The profile requires the HTTP method and path to be bound to the signature.
An A2A gateway verifies a COSE_Sign1 request and confirms that its key is authorized for issuer I. It forwards decoded sub and role in ordinary HTTP headers. The backend owns the resource and requires authenticated issuer, role, payload digest, and operation context. It does not receive the COSE object or protected gateway evidence.