EdgexAgent/device-gps-go/vendor/github.com/parallaxsecond/parsec-client-go/parsec/provider.go
2025-07-10 20:30:06 +08:00

69 lines
1.5 KiB
Go

// Copyright 2021 Contributors to the Parsec project.
// SPDX-License-Identifier: Apache-2.0
package parsec
import (
"github.com/parallaxsecond/parsec-client-go/interface/operations/listproviders"
"github.com/parallaxsecond/parsec-client-go/interface/requests"
)
// ProviderID for providers
type ProviderID uint8
// Provider UUIDs
const (
ProviderCore ProviderID = 0
ProviderMBed ProviderID = 1
ProviderPKCS11 ProviderID = 2
ProviderTPM ProviderID = 3
ProviderTrustedService ProviderID = 4
)
// HasCrypto returns true if the provider supports crypto
func (p *ProviderID) HasCrypto() bool {
return *p != ProviderCore
}
func (p ProviderID) String() string {
switch p {
case ProviderCore:
return "Core"
case ProviderMBed:
return "MBed"
case ProviderPKCS11:
return "PKCS11"
case ProviderTPM:
return "TPM"
case ProviderTrustedService:
return "TrustedService"
default:
return "Unknown"
}
}
type ProviderInfo struct {
UUID string
Description string
Vendor string
VersionMaj uint32
VersionMin uint32
VersionRev uint32
ID ProviderID
}
func newProviderIDFromOp(p requests.ProviderID) ProviderID {
return ProviderID(p)
}
func newProviderInfoFromOp(inf *listproviders.ProviderInfo) *ProviderInfo {
return &ProviderInfo{
UUID: inf.Uuid,
Description: inf.Description,
Vendor: inf.Vendor,
VersionMaj: inf.VersionMaj,
VersionMin: inf.VersionMin,
ID: newProviderIDFromOp(requests.ProviderID(inf.Id)),
}
}