google / google/go-tpm

Policy sessions need to know authValue for parameter encryption

Open
#273 3 comments 0 reactions 0 assignees View on GitHub
tpmdirect
Dominant language
Go
Stars
673
Forks
188
PR merge metrics
No merged PRs in 30d

Description

According to Part 1, 21.1: Session-based encryption introduction:

> If a session is also being used for authorization, sessionValue (see 21.2 and 21.3) is sessionKey || authValue. The binding of the session is ignored. If the session is not being used for authorization, sessionValue is sessionKey.
>
> NOTE 1 A policy session that is used for parameter encryption uses authValue to calculate sessionValue even if the policy does not include TPM2_PolicyAuthValue().

This means we need to hook in some way for a caller who's using a policy session for authorization and parameter encryption with an object with non-empty auth value, to pass that auth value, in an ergonomic way.

Contributor guide

Open the contributing guide

Research direction

Start with the cited Part 1, section 21.1, and trace the policy-session parameter-encryption entry points in go-tpm. Determine how a caller can provide an object's non-empty authValue when the policy omits TPM2_PolicyAuthValue(), then confirm the API remains ergonomic and covers both authorization and parameter encryption.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cryptography, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.