chore: refresh gramsrv public release
This commit is contained in:
parent
75cebe8dbf
commit
70b6820474
1274 changed files with 378751 additions and 59919 deletions
50
internal/domain/passkey.go
Normal file
50
internal/domain/passkey.go
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
package domain
|
||||
|
||||
import "errors"
|
||||
|
||||
// Passkey 相关错误。
|
||||
var (
|
||||
ErrPasskeyChallengeInvalid = errors.New("passkey challenge invalid")
|
||||
ErrPasskeyNotFound = errors.New("passkey not found")
|
||||
ErrPasskeyInvalid = errors.New("passkey invalid")
|
||||
ErrPasskeyUserHandleInvalid = errors.New("passkey user handle invalid")
|
||||
)
|
||||
|
||||
// PasskeyChallengePurpose 区分注册挑战与登录挑战。
|
||||
type PasskeyChallengePurpose string
|
||||
|
||||
const (
|
||||
PasskeyChallengeLogin PasskeyChallengePurpose = "login"
|
||||
PasskeyChallengeRegister PasskeyChallengePurpose = "register"
|
||||
)
|
||||
|
||||
// PasskeyChallenge 是一次性 WebAuthn 挑战的元数据(短 TTL、用后即焚)。
|
||||
// 注册挑战绑定发起用户;登录挑战(discoverable)UserID=0,用户由 user_handle 反查。
|
||||
type PasskeyChallenge struct {
|
||||
Purpose PasskeyChallengePurpose
|
||||
UserID int64
|
||||
ExpiresAt int64 // unix 秒
|
||||
}
|
||||
|
||||
// PasskeyCredential 是一条已注册的 passkey 凭据(WebAuthn 公钥)。
|
||||
type PasskeyCredential struct {
|
||||
CredentialID []byte // 原始 credential id 字节(对外以 base64url 暴露)
|
||||
UserID int64
|
||||
PublicKey []byte // COSE 公钥原始字节
|
||||
SignCount uint32
|
||||
AAGUID []byte
|
||||
Name string
|
||||
Transports []string
|
||||
CreatedAt int64 // unix 秒
|
||||
LastUsedAt int64 // unix 秒;0 表示从未用于登录
|
||||
}
|
||||
|
||||
// Clone 深拷贝(切片字段),避免内存 store 暴露内部引用。
|
||||
func (c PasskeyCredential) Clone() PasskeyCredential {
|
||||
out := c
|
||||
out.CredentialID = append([]byte(nil), c.CredentialID...)
|
||||
out.PublicKey = append([]byte(nil), c.PublicKey...)
|
||||
out.AAGUID = append([]byte(nil), c.AAGUID...)
|
||||
out.Transports = append([]string(nil), c.Transports...)
|
||||
return out
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue