@agentunion/fastaun 0.2.20 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +63 -23
- package/_packed_docs/CHANGELOG.md +63 -23
- package/_packed_docs/design/2026-05-22-aun-rpc-trace-enhancement.md +542 -0
- package/_packed_docs/protocol/06-/346/234/215/345/212/241/345/215/217/350/256/256.md +1 -24
- package/_packed_docs/protocol/15-/347/246/273/347/272/277/346/216/250/351/200/201/351/200/232/347/237/245/345/215/217/350/256/256.md +419 -0
- package/_packed_docs/protocol/index.md +13 -3
- package/_packed_docs/python-sdk-v2-only-changelog.md +189 -0
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +39 -16
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +131 -39
- package/_packed_docs/sdk/09-message-rpc-manual.md +30 -67
- package/dist/auth.js +26 -7
- package/dist/auth.js.map +1 -1
- package/dist/client.d.ts +117 -166
- package/dist/client.js +2130 -3419
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +0 -4
- package/dist/config.js +0 -4
- package/dist/config.js.map +1 -1
- package/dist/e2ee.d.ts +5 -139
- package/dist/e2ee.js +4 -1151
- package/dist/e2ee.js.map +1 -1
- package/dist/errors.d.ts +0 -8
- package/dist/errors.js +0 -14
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +9 -5
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/keystore/aid-db.d.ts +12 -61
- package/dist/keystore/aid-db.js +41 -539
- package/dist/keystore/aid-db.js.map +1 -1
- package/dist/keystore/file.d.ts +5 -41
- package/dist/keystore/file.js +8 -64
- package/dist/keystore/file.js.map +1 -1
- package/dist/keystore/index.d.ts +1 -49
- package/dist/namespaces/auth.d.ts +8 -0
- package/dist/namespaces/auth.js +169 -2
- package/dist/namespaces/auth.js.map +1 -1
- package/dist/protected-headers.d.ts +13 -0
- package/dist/protected-headers.js +47 -0
- package/dist/protected-headers.js.map +1 -0
- package/dist/seq-tracker.d.ts +7 -2
- package/dist/seq-tracker.js +33 -13
- package/dist/seq-tracker.js.map +1 -1
- package/dist/transport.d.ts +11 -1
- package/dist/transport.js +255 -6
- package/dist/transport.js.map +1 -1
- package/dist/types.d.ts +0 -56
- package/dist/v2/crypto/aead.d.ts +20 -0
- package/dist/v2/crypto/aead.js +59 -0
- package/dist/v2/crypto/aead.js.map +1 -0
- package/dist/v2/crypto/canonical.d.ts +20 -0
- package/dist/v2/crypto/canonical.js +119 -0
- package/dist/v2/crypto/canonical.js.map +1 -0
- package/dist/v2/crypto/dh-path.d.ts +39 -0
- package/dist/v2/crypto/dh-path.js +55 -0
- package/dist/v2/crypto/dh-path.js.map +1 -0
- package/dist/v2/crypto/ecdh.d.ts +29 -0
- package/dist/v2/crypto/ecdh.js +122 -0
- package/dist/v2/crypto/ecdh.js.map +1 -0
- package/dist/v2/crypto/ecdsa.d.ts +29 -0
- package/dist/v2/crypto/ecdsa.js +120 -0
- package/dist/v2/crypto/ecdsa.js.map +1 -0
- package/dist/v2/crypto/hkdf.d.ts +19 -0
- package/dist/v2/crypto/hkdf.js +47 -0
- package/dist/v2/crypto/hkdf.js.map +1 -0
- package/dist/v2/crypto/index.d.ts +8 -0
- package/dist/v2/crypto/index.js +8 -0
- package/dist/v2/crypto/index.js.map +1 -0
- package/dist/v2/crypto/recipients.d.ts +32 -0
- package/dist/v2/crypto/recipients.js +183 -0
- package/dist/v2/crypto/recipients.js.map +1 -0
- package/dist/v2/e2ee/decrypt.d.ts +29 -0
- package/dist/v2/e2ee/decrypt.js +159 -0
- package/dist/v2/e2ee/decrypt.js.map +1 -0
- package/dist/v2/e2ee/encrypt-group.d.ts +17 -0
- package/dist/v2/e2ee/encrypt-group.js +143 -0
- package/dist/v2/e2ee/encrypt-group.js.map +1 -0
- package/dist/v2/e2ee/encrypt-p2p.d.ts +31 -0
- package/dist/v2/e2ee/encrypt-p2p.js +190 -0
- package/dist/v2/e2ee/encrypt-p2p.js.map +1 -0
- package/dist/v2/e2ee/index.d.ts +9 -0
- package/dist/v2/e2ee/index.js +9 -0
- package/dist/v2/e2ee/index.js.map +1 -0
- package/dist/v2/e2ee/metadata-auth.d.ts +15 -0
- package/dist/v2/e2ee/metadata-auth.js +50 -0
- package/dist/v2/e2ee/metadata-auth.js.map +1 -0
- package/dist/v2/e2ee/types.d.ts +57 -0
- package/dist/v2/e2ee/types.js +7 -0
- package/dist/v2/e2ee/types.js.map +1 -0
- package/dist/v2/session/index.d.ts +4 -0
- package/dist/v2/session/index.js +3 -0
- package/dist/v2/session/index.js.map +1 -0
- package/dist/v2/session/keystore.d.ts +50 -0
- package/dist/v2/session/keystore.js +138 -0
- package/dist/v2/session/keystore.js.map +1 -0
- package/dist/v2/session/session.d.ts +124 -0
- package/dist/v2/session/session.js +318 -0
- package/dist/v2/session/session.js.map +1 -0
- package/dist/v2/state/commitment.d.ts +58 -0
- package/dist/v2/state/commitment.js +85 -0
- package/dist/v2/state/commitment.js.map +1 -0
- package/dist/v2/state/index.d.ts +2 -0
- package/dist/v2/state/index.js +2 -0
- package/dist/v2/state/index.js.map +1 -0
- package/package.json +4 -3
package/dist/config.d.ts
CHANGED
|
@@ -26,10 +26,6 @@ export interface AUNConfig {
|
|
|
26
26
|
discoveryPort: number | null;
|
|
27
27
|
/** 是否启用群组 E2EE */
|
|
28
28
|
groupE2ee: boolean;
|
|
29
|
-
/** epoch 自动轮换间隔(秒,0 表示不自动轮换) */
|
|
30
|
-
epochAutoRotateInterval: number;
|
|
31
|
-
/** 旧 epoch 保留时长(秒,默认 7 天) */
|
|
32
|
-
oldEpochRetentionSeconds: number;
|
|
33
29
|
/** 是否验证 TLS 证书 */
|
|
34
30
|
verifySsl: boolean;
|
|
35
31
|
/** 是否要求前向保密 */
|
package/dist/config.js
CHANGED
|
@@ -88,8 +88,6 @@ export function defaultConfig() {
|
|
|
88
88
|
seedPassword: null,
|
|
89
89
|
discoveryPort: null,
|
|
90
90
|
groupE2ee: true,
|
|
91
|
-
epochAutoRotateInterval: 0,
|
|
92
|
-
oldEpochRetentionSeconds: 604800,
|
|
93
91
|
verifySsl: resolveVerifySslFromEnv(),
|
|
94
92
|
requireForwardSecrecy: true,
|
|
95
93
|
replayWindowSeconds: 300,
|
|
@@ -110,8 +108,6 @@ export function configFromMap(raw) {
|
|
|
110
108
|
: (raw.encryptionSeed != null ? String(raw.encryptionSeed) : null))),
|
|
111
109
|
discoveryPort: readOptionalNumber(raw.discovery_port ?? raw.discoveryPort, def.discoveryPort),
|
|
112
110
|
groupE2ee: true, // 必备能力,不可配置
|
|
113
|
-
epochAutoRotateInterval: readOptionalNumber(raw.epoch_auto_rotate_interval ?? raw.epochAutoRotateInterval, def.epochAutoRotateInterval) ?? def.epochAutoRotateInterval,
|
|
114
|
-
oldEpochRetentionSeconds: readOptionalNumber(raw.old_epoch_retention_seconds ?? raw.oldEpochRetentionSeconds, def.oldEpochRetentionSeconds) ?? def.oldEpochRetentionSeconds,
|
|
115
111
|
verifySsl: readBoolean(raw.verify_ssl ?? raw.verifySSL ?? raw.verifySsl, def.verifySsl),
|
|
116
112
|
requireForwardSecrecy: readBoolean(raw.require_forward_secrecy ?? raw.requireForwardSecrecy, def.requireForwardSecrecy),
|
|
117
113
|
replayWindowSeconds: readOptionalNumber(raw.replay_window_seconds ?? raw.replayWindowSeconds, def.replayWindowSeconds) ?? def.replayWindowSeconds,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,8DAA8D;AAE9D,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AACtD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAEhE,MAAM,UAAU,mBAAmB,CACjC,KAAc,EACd,KAAa,EACb,OAAiC,EAAE;IAEnC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,eAAe,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,IAAI,GAAG,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IAChD,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAE9C,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1D,IAAI,MAAM;gBAAE,OAAO,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/e2ee.d.ts
CHANGED
|
@@ -1,142 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* E2EE V2-only 兼容入口。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* 内置本地防重放(seen set),裸 WebSocket 开发者无需额外实现。
|
|
4
|
+
* 旧版 manager 已移除;这里仅保留应用层可能直接使用的
|
|
5
|
+
* protected headers helper。
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import type { ModuleLogger } from './logger.js';
|
|
11
|
-
export declare const SUITE = "P256_HKDF_SHA256_AES_256_GCM";
|
|
12
|
-
/** 四路 ECDH:prekey + identity */
|
|
13
|
-
export declare const MODE_PREKEY_ECDH_V2 = "prekey_ecdh_v2";
|
|
14
|
-
/** 降级:长期公钥加密 */
|
|
15
|
-
export declare const MODE_LONG_TERM_KEY = "long_term_key";
|
|
16
|
-
/** 离线消息 AAD 字段 */
|
|
17
|
-
export declare const AAD_FIELDS_OFFLINE: readonly string[];
|
|
18
|
-
/** 离线消息 AAD 匹配字段(不含 timestamp) */
|
|
19
|
-
export declare const AAD_MATCH_FIELDS_OFFLINE: readonly string[];
|
|
20
|
-
/** 兼容型可选 AAD 字段:存在时才参与 AAD,不为旧消息补 null。 */
|
|
21
|
-
export declare const AAD_OPTIONAL_FIELDS: readonly string[];
|
|
22
|
-
export interface PrekeyMaterial extends JsonObject {
|
|
23
|
-
prekey_id: string;
|
|
24
|
-
public_key: string;
|
|
25
|
-
signature: string;
|
|
26
|
-
created_at?: number;
|
|
27
|
-
device_id?: string;
|
|
28
|
-
cert_fingerprint?: string;
|
|
29
|
-
}
|
|
30
|
-
export type ProtectedHeadersInput = ProtectedHeaders | Record<string, unknown> | null | undefined;
|
|
31
|
-
/** 端到端保护的信封元数据,语义接近 HTTP headers。 */
|
|
32
|
-
export declare class ProtectedHeaders {
|
|
33
|
-
private _items;
|
|
34
|
-
constructor(values?: Record<string, unknown> | null);
|
|
35
|
-
private static normalizeKey;
|
|
36
|
-
set(key: string, value: unknown): this;
|
|
37
|
-
get(key: string, defaultValue?: string | null): string | null;
|
|
38
|
-
remove(key: string): this;
|
|
39
|
-
toObject(): Record<string, string>;
|
|
40
|
-
toJSON(): Record<string, string>;
|
|
41
|
-
static from(values?: Record<string, unknown> | null): ProtectedHeaders;
|
|
42
|
-
}
|
|
43
|
-
export declare class E2EEManager {
|
|
44
|
-
private _identityFn;
|
|
45
|
-
private _deviceIdFn;
|
|
46
|
-
private _keystore;
|
|
47
|
-
/** 本地防重放 seen set */
|
|
48
|
-
private _seenMessages;
|
|
49
|
-
private _seenMaxSize;
|
|
50
|
-
/** 对方 prekey 内存缓存(TTL) */
|
|
51
|
-
private _prekeyCache;
|
|
52
|
-
private _prekeyCacheTtl;
|
|
53
|
-
/** 本地 prekey 私钥内存缓存 {prekeyId: privateKeyPem} */
|
|
54
|
-
private _localPrekeyCache;
|
|
55
|
-
/** 防重放时间窗口(秒) */
|
|
56
|
-
private _replayWindowSeconds;
|
|
57
|
-
private _logger;
|
|
58
|
-
constructor(opts: {
|
|
59
|
-
identityFn: () => IdentityRecord;
|
|
60
|
-
deviceIdFn?: () => string;
|
|
61
|
-
keystore: KeyStore;
|
|
62
|
-
prekeyCacheTtl?: number;
|
|
63
|
-
replayWindowSeconds?: number;
|
|
64
|
-
logger?: ModuleLogger;
|
|
65
|
-
});
|
|
66
|
-
/**
|
|
67
|
-
* 加密消息(便利方法)。
|
|
68
|
-
* 有 prekey 时用 prekey_ecdh_v2(四路 ECDH),无 prekey 时降级为 long_term_key。
|
|
69
|
-
*/
|
|
70
|
-
encryptMessage(toAid: string, payload: JsonObject, opts: {
|
|
71
|
-
peerCertPem: string;
|
|
72
|
-
prekey?: PrekeyMaterial | null;
|
|
73
|
-
messageId?: string;
|
|
74
|
-
timestamp?: number;
|
|
75
|
-
protectedHeaders?: ProtectedHeadersInput;
|
|
76
|
-
protected_headers?: ProtectedHeadersInput;
|
|
77
|
-
headers?: ProtectedHeadersInput;
|
|
78
|
-
context?: JsonObject | null;
|
|
79
|
-
}): [JsonObject, JsonObject];
|
|
80
|
-
/**
|
|
81
|
-
* 加密出站消息:有 prekey → prekey_ecdh_v2(四路 ECDH),无 prekey → long_term_key。
|
|
82
|
-
* 返回 [envelope, resultInfo]。
|
|
83
|
-
*/
|
|
84
|
-
encryptOutbound(peerAid: string, payload: JsonObject, peerCertPem: string, prekey: PrekeyMaterial | null, messageId: string, timestamp: number, protectedHeaders?: ProtectedHeadersInput, context?: JsonObject | null): [JsonObject, JsonObject];
|
|
85
|
-
/** 使用对方 prekey 加密(prekey_ecdh_v2 模式,四路 ECDH + 发送方签名) */
|
|
86
|
-
private _encryptWithPrekey;
|
|
87
|
-
/** 使用 2DH 加密(long_term_key 模式 + 发送方签名) */
|
|
88
|
-
private _encryptWithLongTermKey;
|
|
89
|
-
/** 解密单条消息(便利方法,内置本地防重放 + timestamp 窗口) */
|
|
90
|
-
decryptMessage(message: Message): Message | null;
|
|
91
|
-
/** 解密入站消息(不消耗 seen set,用于 pull 场景) */
|
|
92
|
-
_decryptMessage(message: Message): Message | null;
|
|
93
|
-
/** 解密 prekey_ecdh_v2 模式的消息(四路 ECDH) */
|
|
94
|
-
private _decryptMessagePrekeyV2;
|
|
95
|
-
/** 解密 long_term_key 模式的消息(2DH) */
|
|
96
|
-
private _decryptMessageLongTerm;
|
|
97
|
-
private _verifySenderSignature;
|
|
98
|
-
/** 缓存对方的 prekey */
|
|
99
|
-
cachePrekey(peerAid: string, prekey: PrekeyMaterial): void;
|
|
100
|
-
/** 获取缓存的 prekey(过期返回 null) */
|
|
101
|
-
getCachedPrekey(peerAid: string): PrekeyMaterial | null;
|
|
102
|
-
/** 使指定 peer 的 prekey 缓存失效 */
|
|
103
|
-
invalidatePrekeyCache(peerAid: string): void;
|
|
104
|
-
/**
|
|
105
|
-
* 生成 prekey 材料并保存私钥到本地 keystore。
|
|
106
|
-
* 返回 {prekey_id, public_key, signature, created_at},可直接用于 RPC 上传。
|
|
107
|
-
*/
|
|
108
|
-
generatePrekey(): PrekeyMaterial;
|
|
109
|
-
/** 清理本地过期的 prekey 私钥 */
|
|
110
|
-
private _cleanupExpiredPrekeys;
|
|
111
|
-
/** 从内存缓存或 keystore 加载 prekey 私钥 */
|
|
112
|
-
private _loadPrekeyPrivateKey;
|
|
113
|
-
/** 从 PEM 证书计算公钥指纹 */
|
|
114
|
-
static fingerprintCertPem(certPem: string): string;
|
|
115
|
-
/** 公钥 DER bytes → 指纹 */
|
|
116
|
-
static fingerprintDerPublicKey(derBytes: Buffer): string;
|
|
117
|
-
/** 仅解密发给当前 AID 的消息 */
|
|
118
|
-
private _shouldDecryptForCurrentAid;
|
|
119
|
-
/** LRU 裁剪 seen set */
|
|
120
|
-
private _trimSeenSet;
|
|
121
|
-
/** 获取当前 AID */
|
|
122
|
-
private _currentAid;
|
|
123
|
-
private _currentDeviceId;
|
|
124
|
-
/** 获取发送方证书 */
|
|
125
|
-
private _getSenderCert;
|
|
126
|
-
/** 获取发送方的 identity 公钥(从本地证书缓存) */
|
|
127
|
-
private _loadSenderPublicKey;
|
|
128
|
-
/** 用当前身份私钥签名 */
|
|
129
|
-
private _signBytes;
|
|
130
|
-
/** 加载发送方自己的 identity 私钥 */
|
|
131
|
-
private _loadSenderIdentityPrivate;
|
|
132
|
-
/** 本地 identity 指纹(优先证书 DER SHA-256,缺失时回退到公钥指纹) */
|
|
133
|
-
private _localIdentityFingerprint;
|
|
134
|
-
/** 本地证书指纹(优先证书 SHA-256,缺失时回退到 identity 公钥指纹) */
|
|
135
|
-
private _localCertFingerprint;
|
|
136
|
-
/** 本地证书的 SHA-256 指纹(用于锁定证书版本) */
|
|
137
|
-
private _localCertSha256Fingerprint;
|
|
138
|
-
/** 构建接收端 AAD */
|
|
139
|
-
private _buildInboundAadOffline;
|
|
140
|
-
/** 清理过期的 prekey 缓存和 seen set 条目(供外部定时调用) */
|
|
141
|
-
cleanExpiredCaches(): void;
|
|
142
|
-
}
|
|
7
|
+
export { ProtectedHeaders } from './protected-headers.js';
|
|
8
|
+
export type { ProtectedHeadersInput } from './protected-headers.js';
|