feat: 客户端授权防护——响应签名/激活令牌/宽限期/换座限制/在线清扫/疑似共享标记

This commit is contained in:
Logan.Li committed 2026-09-14 21:08:39 +08:00
1 parent 37d9e8ca56
commit b76111dfc3
11 files changed
+437 -54

No files matched your search

+20
View File
@@ -56,6 +56,26 @@ func (k *OfflineKeyPair) OfflinePublicKeyHex() string {
return hex.EncodeToString(k.Public)
}
// SignHexString 对任意字符串签名,返回 hex 编码的 Ed25519 签名(用于在线验证响应防篡改) // Logan.Li
func (k *OfflineKeyPair) SignHexString(msg string) string {
if k == nil || len(k.Private) == 0 {
return ""
}
return hex.EncodeToString(ed25519.Sign(k.Private, []byte(msg)))
}
// VerifyHexString 校验 SignHexString 产生的 hex 签名(供测试与桌面端对照实现) // Logan.Li
func (k *OfflineKeyPair) VerifyHexString(msg, sigHex string) bool {
if k == nil || len(k.Public) == 0 {
return false
}
sig, err := hex.DecodeString(strings.TrimSpace(sigHex))
if err != nil || len(sig) != ed25519.SignatureSize {
return false
}
return ed25519.Verify(k.Public, []byte(msg), sig)
}
// IsOfflineLicenseKey 判断是否为离线序列号 // Logan.Li
func IsOfflineLicenseKey(key string) bool {
return strings.HasPrefix(strings.TrimSpace(key), "LICOFF-")