Documentation
¶
Index ¶
- func Exists(ctx context.Context, pkg PackageVerify) bool
- func Verify(alg encrypt.EncryptAlg, pkg PackageVerify) error
- type ApplyRequest
- type ComponentLicense
- type ComponentLicenseData
- type DummyPackage
- type ExportLicense
- type ExportLicenseResp
- type ExportLicenseRespData
- type LMSPackage
- type License
- type LicenseCount
- type LicenseHeart
- type LicenseHeartData
- type LicenseHeartReq
- type LicenseHeartResp
- type LicenseRange
- type LicenseSummary
- type LmsPackageJson
- type MonthSign
- type PackageDetail
- type PackageVerify
- type SignChainNode
- type SignCount
- type SignOperation
- type SubPackage
- type SummaryResp
- type SummaryRespData
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Verify ¶
func Verify(alg encrypt.EncryptAlg, pkg PackageVerify) error
Types ¶
type ApplyRequest ¶
type ApplyRequest struct {
// 组件ID
ComponentId string `json:"component_id,omitempty" yaml:"component_id,omitempty"`
// 组件ip
ComponentIp string `json:"component_ip,omitempty" yaml:"component_ip,omitempty"`
// 组件Mac地址
ComponentMac string `json:"component_mac,omitempty" yaml:"component_mac,omitempty"`
// 组件名称
ComponentName string `json:"component_name,omitempty" yaml:"component_name,omitempty"`
// 组件类型,Firewall,Waf,DBAudit,...
ComponentType string `json:"component_type,omitempty" yaml:"component_type,omitempty"`
// 申请的时长,以月为单位, 例如如果申请一年, duration就是12m
Duration string `json:"duration,omitempty" yaml:"duration,omitempty"`
// 规格
Spec string `json:"spec,omitempty" yaml:"spec,omitempty"`
}
type ComponentLicense ¶
type ComponentLicense struct {
// Code corresponds to the JSON schema field "code".
Code int `json:"code,omitempty" yaml:"code,omitempty"`
// Data corresponds to the JSON schema field "data".
Data ComponentLicenseData `json:"data,omitempty" yaml:"data,omitempty"`
// Msg corresponds to the JSON schema field "msg".
Msg string `json:"msg,omitempty" yaml:"msg,omitempty"`
}
组件授权信息
type ComponentLicenseData ¶
type ComponentLicenseData struct {
// LicenseInfo corresponds to the JSON schema field "license_info".
LicenseInfo License `json:"license_info,omitempty" yaml:"license_info,omitempty"`
}
type DummyPackage ¶
func (DummyPackage) TableName ¶
func (d DummyPackage) TableName() string
type ExportLicense ¶
type ExportLicense struct {
// ExpiredSign corresponds to the JSON schema field "expired_sign".
ExpiredSign SignCount `json:"expired_sign,omitempty" yaml:"expired_sign,omitempty"`
// RevertedSign corresponds to the JSON schema field "reverted_sign".
RevertedSign SignCount `json:"reverted_sign,omitempty" yaml:"reverted_sign,omitempty"`
// SignedChains corresponds to the JSON schema field "signed_chains".
SignedChains []SignChainNode `json:"signed_chains,omitempty" yaml:"signed_chains,omitempty"`
// 授权签发者
Signer string `json:"signer,omitempty" yaml:"signer,omitempty"`
// TotalSign corresponds to the JSON schema field "total_sign".
TotalSign SignCount `json:"total_sign,omitempty" yaml:"total_sign,omitempty"`
// UsingSign corresponds to the JSON schema field "using_sign".
UsingSign SignCount `json:"using_sign,omitempty" yaml:"using_sign,omitempty"`
}
导出授权内容
type ExportLicenseResp ¶
type ExportLicenseResp struct {
// Code corresponds to the JSON schema field "code".
Code int `json:"code,omitempty" yaml:"code,omitempty"`
// Data corresponds to the JSON schema field "data".
Data ExportLicenseRespData `json:"data,omitempty" yaml:"data,omitempty"`
// Msg corresponds to the JSON schema field "msg".
Msg string `json:"msg,omitempty" yaml:"msg,omitempty"`
}
导出授权信息
type ExportLicenseRespData ¶
type ExportLicenseRespData struct {
// ExportedLicense corresponds to the JSON schema field "exported_license".
ExportedLicense ExportLicense `json:"exported_license,omitempty" yaml:"exported_license,omitempty"`
}
type LMSPackage ¶
type LMSPackage struct {
// 授权包创建的时间
CreatedAt string `json:"created_at,omitempty" yaml:"created_at,omitempty"`
// 此次导入的概要信息,例如描述下意图等等
Description string `json:"description,omitempty" yaml:"description,omitempty"`
// Detail corresponds to the JSON schema field "detail".
Detail PackageDetail `json:"detail,omitempty" yaml:"detail,omitempty"`
// 授权包导入截止时间
ImportDeadline string `json:"import_deadline,omitempty" yaml:"import_deadline,omitempty"`
// 签名加密后的数据,base64码方式存储
PackageData string `json:"package_data,omitempty" yaml:"package_data,omitempty"`
// PackageId corresponds to the JSON schema field "package_id".
PackageId string `json:"package_id,omitempty" yaml:"package_id,omitempty"`
// 总包的签名
Signature string `json:"signature,omitempty" yaml:"signature,omitempty"`
// SubPackages corresponds to the JSON schema field "sub_packages".
SubPackages []SubPackage `json:"sub_packages,omitempty" yaml:"sub_packages,omitempty"`
// Append(追加), Overwrite(重置)
WriteMode string `json:"write_mode,omitempty" yaml:"write_mode,omitempty"`
}
func (*LMSPackage) GetPackageID ¶
func (l *LMSPackage) GetPackageID() string
func (*LMSPackage) VerifiedData ¶
func (l *LMSPackage) VerifiedData() []byte
func (*LMSPackage) VerifiedSignature ¶
func (l *LMSPackage) VerifiedSignature() string
type License ¶
type License struct {
// 授权分配时间
AssignedAt string `json:"assigned_at,omitempty" yaml:"assigned_at,omitempty"`
// 组件id
ComponentId string `json:"component_id,omitempty" yaml:"component_id,omitempty"`
// 组件ip
ComponentIp string `json:"component_ip,omitempty" yaml:"component_ip,omitempty"`
// 组件名称
ComponentName string `json:"component_name,omitempty" yaml:"component_name,omitempty"`
// 组件类型,Firewall,Waf,DBAudit,...
ComponentType string `json:"component_type,omitempty" yaml:"component_type,omitempty"`
// 授权到期时间
ExpiredAt string `json:"expired_at,omitempty" yaml:"expired_at,omitempty"`
// 授权对应的唯一uuid
LicenseId string `json:"license_id,omitempty" yaml:"license_id,omitempty"`
// MonthSigns corresponds to the JSON schema field "month_signs".
MonthSigns []MonthSign `json:"month_signs,omitempty" yaml:"month_signs,omitempty"`
// 授权分配者
Signer string `json:"signer,omitempty" yaml:"signer,omitempty"`
// 规格
Spec string `json:"spec,omitempty" yaml:"spec,omitempty"`
}
type LicenseCount ¶
type LicenseCount struct {
// Assigned corresponds to the JSON schema field "assigned".
Assigned int `json:"assigned,omitempty" yaml:"assigned,omitempty"`
// Available corresponds to the JSON schema field "available".
Available int `json:"available,omitempty" yaml:"available,omitempty"`
// Expired corresponds to the JSON schema field "expired".
Expired int `json:"expired,omitempty" yaml:"expired,omitempty"`
// ExpiredIn2Month corresponds to the JSON schema field "expired_in_2_month".
ExpiredIn2Month int `json:"expired_in_2_month,omitempty" yaml:"expired_in_2_month,omitempty"`
// Failed corresponds to the JSON schema field "failed".
Failed int `json:"failed,omitempty" yaml:"failed,omitempty"`
// Reverted corresponds to the JSON schema field "reverted".
Reverted int `json:"reverted,omitempty" yaml:"reverted,omitempty"` // Signer corresponds to the JSON schema field "signer".
Signer string `json:"signer,omitempty" yaml:"signer,omitempty"`
// Total corresponds to the JSON schema field "total".
Total int `json:"total,omitempty" yaml:"total,omitempty"`
}
type LicenseHeart ¶
type LicenseHeart struct {
// Code corresponds to the JSON schema field "code".
Code int `json:"code,omitempty" yaml:"code,omitempty"`
// Data corresponds to the JSON schema field "data".
Data LicenseHeartData `json:"data,omitempty" yaml:"data,omitempty"`
// Msg corresponds to the JSON schema field "msg".
Msg string `json:"msg,omitempty" yaml:"msg,omitempty"`
}
授权心跳同步信息
type LicenseHeartData ¶
type LicenseHeartData struct {
// ExportedLicense corresponds to the JSON schema field "exported_license".
ExportedLicense LicenseHeartResp `json:"exported_license,omitempty" yaml:"exported_license,omitempty"`
}
type LicenseHeartReq ¶
type LicenseHeartReq struct {
// 设备管理网IP
DeviceIp string `json:"device_ip,omitempty" yaml:"device_ip,omitempty"`
// 授权到期时间
ExpiredAt string `json:"expired_at,omitempty" yaml:"expired_at,omitempty"`
// 一些网元特定的内容, 在进行序列化后存在这个字段
Extra string `json:"extra,omitempty" yaml:"extra,omitempty"`
// 心跳时间
HeartbeatAt string `json:"heartbeat_at,omitempty" yaml:"heartbeat_at,omitempty"`
// 授权ID
LicenseId string `json:"license_id,omitempty" yaml:"license_id,omitempty"`
// 设备的序列号
SerialNum string `json:"serial_num,omitempty" yaml:"serial_num,omitempty"`
// Signature corresponds to the JSON schema field "signature".
Signature string `json:"signature,omitempty" yaml:"signature,omitempty"`
// 规格
Spec string `json:"spec,omitempty" yaml:"spec,omitempty"`
}
授权心跳同步信息
type LicenseHeartResp ¶
type LicenseHeartResp struct {
// 对device的请求的响应,valid代表接受,invalid代表失效
Action string `json:"action,omitempty" yaml:"action,omitempty"`
// 设备管理网IP
DeviceIp string `json:"device_ip,omitempty" yaml:"device_ip,omitempty"`
// HeartbeatAt corresponds to the JSON schema field "heartbeat_at".
HeartbeatAt string `json:"heartbeat_at,omitempty" yaml:"heartbeat_at,omitempty"`
// 授权ID
LicenseId string `json:"license_id,omitempty" yaml:"license_id,omitempty"`
// 设备的序列号
SerialNum string `json:"serial_num,omitempty" yaml:"serial_num,omitempty"`
// Signature corresponds to the JSON schema field "signature".
Signature string `json:"signature,omitempty" yaml:"signature,omitempty"`
// Signer corresponds to the JSON schema field "signer".
Signer string `json:"signer,omitempty" yaml:"signer,omitempty"`
}
授权服务器的响应
type LicenseRange ¶
type LicenseRange struct {
// ExpiredAt corresponds to the JSON schema field "expired_at".
ExpiredAt string `json:"expired_at,omitempty" yaml:"expired_at,omitempty"`
// ImportedAt corresponds to the JSON schema field "imported_at".
ImportedAt string `json:"imported_at,omitempty" yaml:"imported_at,omitempty"`
}
type LicenseSummary ¶
type LicenseSummary struct {
// CountsBySigner corresponds to the JSON schema field "counts_by_signer".
CountsBySigner []LicenseCount `json:"counts_by_signer,omitempty" yaml:"counts_by_signer,omitempty"`
// CountsTotal corresponds to the JSON schema field "counts_total".
CountsTotal LicenseCount `json:"counts_total,omitempty" yaml:"counts_total,omitempty"`
// UpdatedAt corresponds to the JSON schema field "updated_at".
UpdatedAt string `json:"updated_at,omitempty" yaml:"updated_at,omitempty"`
}
type MonthSign ¶
type MonthSign struct {
// 签名内容
Sign string `json:"sign,omitempty" yaml:"sign,omitempty"`
// 签名时间
SignedAt string `json:"signed_at,omitempty" yaml:"signed_at,omitempty"`
}
每月签名一次
type PackageDetail ¶
type PackageDetail struct {
// 增加可用组件数, 暂时不考虑将这部分的权限收归LMS
AddCountLimit int `json:"add_count_limit,omitempty" yaml:"add_count_limit,omitempty"`
// 一个授权代表一个月的使用期,最小单位是月
AddLicense int `json:"add_license,omitempty" yaml:"add_license,omitempty"`
// 授权最大申请时长,如果为空就代表不改变,示例如12m,36m等等
MaxDuration string `json:"max_duration,omitempty" yaml:"max_duration,omitempty"`
}
记录这次主要操作的信息
type PackageVerify ¶
type SignChainNode ¶
type SignChainNode struct {
// 在链中的ID,连续递增的
NodeId int `json:"node_id,omitempty" yaml:"node_id,omitempty"`
// Operation corresponds to the JSON schema field "operation".
Operation SignOperation `json:"operation,omitempty" yaml:"operation,omitempty"`
// 每个月要签发一次
SignedAt string `json:"signed_at,omitempty" yaml:"signed_at,omitempty"`
// 签名内容
SignedDigest string `json:"signed_digest,omitempty" yaml:"signed_digest,omitempty"`
}
type SignOperation ¶
type SignOperation struct {
// 操作发生时间
ActionAt string `json:"action_at,omitempty" yaml:"action_at,omitempty"`
// 授权应该到期时间
ExpiredAt string `json:"expired_at,omitempty" yaml:"expired_at,omitempty"`
// license uuid
LicenseId string `json:"license_id,omitempty" yaml:"license_id,omitempty"`
// assign,revert,expire
Optype string `json:"optype,omitempty" yaml:"optype,omitempty"`
// 规格
Spec string `json:"spec,omitempty" yaml:"spec,omitempty"`
}
type SubPackage ¶
type SubPackage struct {
// 授权包创建的时间
CreatedAt string `json:"created_at,omitempty" yaml:"created_at,omitempty"`
// Description corresponds to the JSON schema field "description".
Description string `json:"description,omitempty" yaml:"description,omitempty"`
// Detail corresponds to the JSON schema field "detail".
Detail PackageDetail `json:"detail,omitempty" yaml:"detail,omitempty"`
// 授权包导入截止时间
ImportDeadline string `json:"import_deadline,omitempty" yaml:"import_deadline,omitempty"`
// 签名加密后的数据,base64码方式存储
PackageData string `json:"package_data,omitempty" yaml:"package_data,omitempty"`
// 子包的UUID
PackageId string `json:"package_id,omitempty" yaml:"package_id,omitempty"`
// 包提供者的UUID
PackageVendorId string `json:"package_vendor_id,omitempty" yaml:"package_vendor_id,omitempty"`
// 防护类型, 例如firewall,waf,ips等等
ProtectType string `json:"protect_type,omitempty" yaml:"protect_type,omitempty"`
// 子包的签名
Signature string `json:"signature,omitempty" yaml:"signature,omitempty"`
}
子包信息
func (*SubPackage) GetPackageID ¶
func (l *SubPackage) GetPackageID() string
func (*SubPackage) VerifiedData ¶
func (l *SubPackage) VerifiedData() []byte
func (*SubPackage) VerifiedSignature ¶
func (l *SubPackage) VerifiedSignature() string
type SummaryResp ¶
type SummaryResp struct {
// Code corresponds to the JSON schema field "code".
Code int `json:"code,omitempty" yaml:"code,omitempty"`
// Data corresponds to the JSON schema field "data".
Data SummaryRespData `json:"data,omitempty" yaml:"data,omitempty"`
// Msg corresponds to the JSON schema field "msg".
Msg string `json:"msg,omitempty" yaml:"msg,omitempty"`
}
授权汇总信息
type SummaryRespData ¶
type SummaryRespData struct {
// Summary corresponds to the JSON schema field "summary".
Summary LicenseSummary `json:"summary,omitempty" yaml:"summary,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.