mirror of
https://github.com/google/go-attestation.git
synced 2025-04-16 07:26:46 +00:00
Fix broken DLL MustFindProc. (#29)
This commit is contained in:
parent
55ce06b8f2
commit
7b5f790215
@ -60,9 +60,6 @@ var (
|
||||
|
||||
tbs = windows.MustLoadDLL("Tbs.dll")
|
||||
tbsGetDeviceInfo = tbs.MustFindProc("Tbsi_GetDeviceInfo")
|
||||
|
||||
tpm32 = windows.MustLoadDLL("Win32_tpm.dll")
|
||||
tpm32IsReadyInformation = tpm32.MustFindProc("IsReadyInformation")
|
||||
)
|
||||
|
||||
// Error codes.
|
||||
@ -228,33 +225,6 @@ func maybeWinErr(err error) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func queryTPMState() (bool, error) {
|
||||
var (
|
||||
isReady bool
|
||||
statusFlags uint32
|
||||
)
|
||||
|
||||
r, _, msg := tpm32IsReadyInformation.Call(uintptr(unsafe.Pointer(&isReady)), uintptr(unsafe.Pointer(&statusFlags)))
|
||||
if r != 0 {
|
||||
return false, fmt.Errorf("IsReadyInformation returned %X (%v)", r, msg)
|
||||
}
|
||||
if isReady {
|
||||
return true, nil
|
||||
}
|
||||
|
||||
var errStr string
|
||||
for mask, err := range isReadyErrors {
|
||||
if (statusFlags & mask) != 0 {
|
||||
if errStr == "" {
|
||||
errStr = err
|
||||
} else {
|
||||
errStr += ", " + err
|
||||
}
|
||||
}
|
||||
}
|
||||
return false, fmt.Errorf("TPM in invalid state: %s", errStr)
|
||||
}
|
||||
|
||||
func utf16ToString(buf []byte) (string, error) {
|
||||
b := make([]uint16, len(buf)/2)
|
||||
// LPCSTR (Windows' representation of utf16) is always little endian.
|
||||
|
@ -75,10 +75,6 @@ func tbsConvertVersion(info tbsDeviceInfo) (TPMVersion, error) {
|
||||
}
|
||||
|
||||
func openTPM(tpm probedTPM) (*TPM, error) {
|
||||
if ready, err := queryTPMState(); !ready || err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
pcp, err := openPCP()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("openPCP() failed: %v", err)
|
||||
|
Loading…
x
Reference in New Issue
Block a user