Files
soft_quay/app-modern/platform/windows/machine_hash.go
T

34 lines
1.0 KiB
Go

package windows
import (
"errors"
"softbox.local/core/licensing"
)
// ErrMachineFingerprintUnavailable reports that a required identifier could
// not be safely read or normalized. It intentionally contains no source value.
var ErrMachineFingerprintUnavailable = errors.New("machine fingerprint is unavailable")
type machineGUIDReader func() (string, error)
type systemVolumeSerialReader func() (uint32, error)
func machineHashFrom(readMachineGUID machineGUIDReader, readSystemVolumeSerial systemVolumeSerialReader) (string, error) {
if readMachineGUID == nil || readSystemVolumeSerial == nil {
return "", ErrMachineFingerprintUnavailable
}
machineGUID, err := readMachineGUID()
if err != nil {
return "", ErrMachineFingerprintUnavailable
}
systemVolumeSerial, err := readSystemVolumeSerial()
if err != nil {
return "", ErrMachineFingerprintUnavailable
}
machineHash, err := licensing.DeriveMachineHash(machineGUID, systemVolumeSerial)
if err != nil {
return "", ErrMachineFingerprintUnavailable
}
return machineHash, nil
}