Vendor dependencies and expose control program binaries via nix build. Uses nixpkgs-unstable for Go 1.26 support. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
30 lines
1.3 KiB
Go
30 lines
1.3 KiB
Go
package tpm2
|
|
|
|
import (
|
|
"crypto"
|
|
|
|
legacy "github.com/google/go-tpm/legacy/tpm2"
|
|
)
|
|
|
|
// KDFa implements TPM 2.0's default key derivation function, as defined in
|
|
// section 11.4.9.2 of the TPM revision 2 specification part 1.
|
|
// See: https://trustedcomputinggroup.org/resource/tpm-library-specification/
|
|
// The key & label parameters must not be zero length.
|
|
// The label parameter is a non-null-terminated string.
|
|
// The contextU & contextV parameters are optional.
|
|
func KDFa(h crypto.Hash, key []byte, label string, contextU, contextV []byte, bits int) []byte {
|
|
return legacy.KDFaHash(h, key, label, contextU, contextV, bits)
|
|
}
|
|
|
|
// KDFe implements TPM 2.0's ECDH key derivation function, as defined in
|
|
// section 11.4.9.3 of the TPM revision 2 specification part 1.
|
|
// See: https://trustedcomputinggroup.org/resource/tpm-library-specification/
|
|
// The z parameter is the x coordinate of one party's private ECC key multiplied
|
|
// by the other party's public ECC point.
|
|
// The use parameter is a non-null-terminated string.
|
|
// The partyUInfo and partyVInfo are the x coordinates of the initiator's and
|
|
// the responder's ECC points, respectively.
|
|
func KDFe(h crypto.Hash, z []byte, use string, partyUInfo, partyVInfo []byte, bits int) []byte {
|
|
return legacy.KDFeHash(h, z, use, partyUInfo, partyVInfo, bits)
|
|
}
|