Documentation
¶
Overview ¶
Package licensenext 的错误定义。 所有 sentinel 错误均从 internal/core 透传,外部调用方可直接判断。
Package licensenext 是 license-next 的客户端入口包。 使用方只需 import "github.com/doc-war/license-next", 通过 New(cfg) 创建 Checker,然后调用 Check() 完成校验。
Index ¶
Constants ¶
View Source
const ( // ResultOK 本地缓存验证通过,且签名新鲜度在 FreshWindow 内 ResultOK = types.ResultOK // ResultNeedRemote 本地缓存验证通过但签名已过期,需要联网刷新 ResultNeedRemote = types.ResultNeedRemote // ResultInvalid 校验失败(签名无效 / 过期 / 机器码不匹配等) ResultInvalid = types.ResultInvalid )
Variables ¶
View Source
var ( ErrBadSignature = core.ErrBadSignature // 签名验证失败 ErrMachineID = core.ErrMachineID // 机器码不匹配 ErrExpired = core.ErrExpired // License 已过期 ErrProductMismatch = core.ErrProductMismatch // 产品名不匹配 )
Functions ¶
Types ¶
type Checker ¶
type Checker struct {
// contains filtered or unexported fields
}
Checker 客户端校验器,持有公钥、机器码等运行时上下文
func (*Checker) SimpleCheck ¶
SimpleCheck 执行完全的本地校验,不解码缓存、不联网、不检查新鲜度。 适用于不依赖远端刷新场景的离线校验。
type Config ¶
type Config struct {
Product string // 必填,产品名
PublicKey string // 必填,PEM 格式的 ECC 公钥
MasterKey string // 必填,CKD MasterKey
RemoteURL string // 选填,远端 License 查询接口
StorageDir string // 选填,缓存目录(默认 ~/.license-next/<product>)
FreshWindow time.Duration // 选填,签名新鲜度(默认 7 天)
RefreshInterval time.Duration // 选填,异步刷新间隔(默认 3 天)
HTTPTimeout time.Duration // 选填,HTTP 超时(默认 5 秒)
}
Config 客户端配置,传给 New 创建 Checker
Directories
¶
| Path | Synopsis |
|---|---|
|
examples
|
|
|
checker
command
Package main 客户端集成示例。
|
Package main 客户端集成示例。 |
|
full
command
Package main 端到端全流程演示: 加载密钥 → 签发 License → 验签 → 解码 → 篡改检测 → CKD 确定性测试
|
Package main 端到端全流程演示: 加载密钥 → 签发 License → 验签 → 解码 → 篡改检测 → CKD 确定性测试 |
|
issuer
command
Package main 服务端签发示例。
|
Package main 服务端签发示例。 |
|
internal
|
|
|
core
Package core 封装了 license-next 所有客户端核心逻辑, 包括:错误定义、机器码获取、Base64 编解码。
|
Package core 封装了 license-next 所有客户端核心逻辑, 包括:错误定义、机器码获取、Base64 编解码。 |
|
types
Package types 定义 license-next 的核心数据结构和常量。
|
Package types 定义 license-next 的核心数据结构和常量。 |
|
Package issuer 是服务端签发 License 的工具包。
|
Package issuer 是服务端签发 License 的工具包。 |
|
Package main 浏览器 WASM 入口,编译目标 GOOS=js GOARCH=wasm。
|
Package main 浏览器 WASM 入口,编译目标 GOOS=js GOARCH=wasm。 |
Click to show internal directories.
Click to hide internal directories.