Keyring
Defined in: packages/rxdb-adapter-encrypted/src/keyring.ts:166
数据库级 AES-GCM-256 密钥生命周期与单元格信封加解密器。
keyring 初始为锁定态;unlock() 会校验或初始化持久化 verifier。lock() 是完成屏障:
它会取消更早启动但尚未完成的 unlock/encrypt/decrypt,解密出的临时明文会先清零再拒绝。
新写入固定生成 v2 信封;v1 默认拒绝,仅可通过 legacyEnvelopePolicy: 'migration' 临时读取。
Constructors
Constructor
new Keyring(opts): Keyring;
Defined in: packages/rxdb-adapter-encrypted/src/keyring.ts:200
Parameters
| Parameter | Type |
|---|---|
opts | CreateKeyringOptions |
Returns
Keyring
Properties
namespace
readonly namespace: string;
Defined in: packages/rxdb-adapter-encrypted/src/keyring.ts:183
参与所有 v2 AAD 的数据库认证域。
Accessors
isLocked
Get Signature
get isLocked(): boolean;
Defined in: packages/rxdb-adapter-encrypted/src/keyring.ts:186
当前是否没有可用内存密钥。
Returns
boolean
kid
Get Signature
get kid(): string | null;
Defined in: packages/rxdb-adapter-encrypted/src/keyring.ts:191
当前已解锁密钥的持久化 ID;锁定时为 null。
Returns
string | null
lockChange$
Get Signature
get lockChange$(): Observable<boolean>;
Defined in: packages/rxdb-adapter-encrypted/src/keyring.ts:196
锁定状态流;初始值为 true。
Returns
Observable<boolean>
Methods
decrypt()
decrypt(args): Promise<Uint8Array<ArrayBufferLike>>;
Defined in: packages/rxdb-adapter-encrypted/src/keyring.ts:266
校验信封、kid 与 AAD 后返回明文字节。
Parameters
| Parameter | Type |
|---|---|
args | DecryptArgs |
Returns
Promise<Uint8Array<ArrayBufferLike>>
Throws
EncryptedLockedError 调用时已锁定,或操作完成前发生 lock()
Throws
EncryptedDecryptError 信封损坏、kid/AAD 不匹配、鉴权失败或旧版读取未获授权
encrypt()
encrypt(args): Promise<string>;
Defined in: packages/rxdb-adapter-encrypted/src/keyring.ts:238
用随机 96 位 IV 和绑定数据库、实体、表、列、类型化主键及 kid 的 v2 AAD 加密。
Parameters
| Parameter | Type |
|---|---|
args | EncryptArgs |
Returns
Promise<string>
Throws
EncryptedLockedError 调用时已锁定,或操作完成前发生 lock()
isInitialized()
isInitialized(): Promise<boolean>;
Defined in: packages/rxdb-adapter-encrypted/src/keyring.ts:206
keyring 单例行是否已经初始化。此检查不会解锁或校验 verifier。
Returns
Promise<boolean>
lock()
lock(): void;
Defined in: packages/rxdb-adapter-encrypted/src/keyring.ts:227
清除内存密钥、取消空闲计时器,并取消此前启动但尚未完成的敏感操作。
Returns
void
touch()
touch(): void;
Defined in: packages/rxdb-adapter-encrypted/src/keyring.ts:335
重新触发空闲自动锁定计时器。 在每次成功的 encrypt/decrypt 内部调用。 对外暴露供测试或高级调用方在不做加解密操作的前提下延长空闲窗口。
Returns
void
unlock()
unlock(opts): Promise<void>;
Defined in: packages/rxdb-adapter-encrypted/src/keyring.ts:217
串行执行解锁并校验持久化 verifier。
Parameters
| Parameter | Type |
|---|---|
opts | UnlockOptions |
Returns
Promise<void>
Throws
EncryptedConfigurationError 参数形态、密钥或持久化 KDF 不受支持
Throws
EncryptedUnlockError verifier 不匹配、provider 失败或在途解锁被 lock() 取消