跳到主要内容

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​

ParameterType
optsCreateKeyringOptions

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​

ParameterType
argsDecryptArgs

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​

ParameterType
argsEncryptArgs

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​

ParameterType
optsUnlockOptions

Returns​

Promise<void>

Throws​

EncryptedConfigurationError 参数形态、密钥或持久化 KDF 不受支持

Throws​

EncryptedUnlockError verifier 不匹配、provider 失败或在途解锁被 lock() 取消