in linux/sks.go [128:148]
func (tpm *tpmDevice) FindPubKey(keyID string) ([]byte, error) {
// Load the stored key from disk
key, err := tpm.LoadDiskKey(keyID)
if err != nil {
return nil, fmt.Errorf("could not find key %q: %w", keyID, err)
}
if key == nil {
return nil, nil
}
if key.IsEmpty() {
return nil, fmt.Errorf("key is empty: %q", keyID)
}
defer key.Close()
pubKey, err := key.GetECPublicKey()
if err != nil {
return nil, fmt.Errorf("error getting public key for key %q: %w", keyID, err)
}
return elliptic.Marshal(elliptic.P256(), pubKey.X, pubKey.Y), nil
}