@diap/sdk 0.1.1 → 0.1.3
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/LICENSE +21 -21
- package/README.md +86 -86
- package/dist/agent-auth.d.ts +96 -0
- package/dist/agent-auth.d.ts.map +1 -0
- package/dist/agent-auth.js +343 -0
- package/dist/agent-auth.js.map +1 -0
- package/dist/agent-verification.d.ts +158 -0
- package/dist/agent-verification.d.ts.map +1 -0
- package/dist/agent-verification.js +237 -0
- package/dist/agent-verification.js.map +1 -0
- package/dist/config-manager.d.ts +156 -0
- package/dist/config-manager.d.ts.map +1 -0
- package/dist/config-manager.js +241 -0
- package/dist/config-manager.js.map +1 -0
- package/dist/did-builder.d.ts +62 -0
- package/dist/did-builder.d.ts.map +1 -0
- package/dist/did-builder.js +315 -0
- package/dist/did-builder.js.map +1 -0
- package/dist/did-cache.d.ts +133 -0
- package/dist/did-cache.d.ts.map +1 -0
- package/dist/did-cache.js +273 -0
- package/dist/did-cache.js.map +1 -0
- package/dist/identity-manager.d.ts +87 -0
- package/dist/identity-manager.d.ts.map +1 -0
- package/dist/identity-manager.js +196 -0
- package/dist/identity-manager.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/ipfs-bidirectional-verification.d.ts +201 -0
- package/dist/ipfs-bidirectional-verification.d.ts.map +1 -0
- package/dist/ipfs-bidirectional-verification.js +298 -0
- package/dist/ipfs-bidirectional-verification.js.map +1 -0
- package/dist/ipfs-client.d.ts +151 -0
- package/dist/ipfs-client.d.ts.map +1 -0
- package/dist/ipfs-client.js +623 -0
- package/dist/ipfs-client.js.map +1 -0
- package/dist/ipfs-node-manager.d.ts +136 -0
- package/dist/ipfs-node-manager.d.ts.map +1 -0
- package/dist/ipfs-node-manager.js +232 -0
- package/dist/ipfs-node-manager.js.map +1 -0
- package/dist/ipns-manager.d.ts +182 -0
- package/dist/ipns-manager.d.ts.map +1 -0
- package/dist/ipns-manager.js +268 -0
- package/dist/ipns-manager.js.map +1 -0
- package/dist/key-manager.d.ts +48 -0
- package/dist/key-manager.d.ts.map +1 -0
- package/dist/key-manager.js +231 -0
- package/dist/key-manager.js.map +1 -0
- package/dist/kubo-installer.d.ts +115 -0
- package/dist/kubo-installer.d.ts.map +1 -0
- package/dist/kubo-installer.js +205 -0
- package/dist/kubo-installer.js.map +1 -0
- package/dist/libp2p/encrypted-peer-id.d.ts +24 -0
- package/dist/libp2p/encrypted-peer-id.d.ts.map +1 -0
- package/dist/libp2p/encrypted-peer-id.js +134 -0
- package/dist/libp2p/encrypted-peer-id.js.map +1 -0
- package/dist/nonce-manager.d.ts +176 -0
- package/dist/nonce-manager.d.ts.map +1 -0
- package/dist/nonce-manager.js +382 -0
- package/dist/nonce-manager.js.map +1 -0
- package/dist/p2p/hyperswarm-communicator.d.ts +252 -0
- package/dist/p2p/hyperswarm-communicator.d.ts.map +1 -0
- package/dist/p2p/hyperswarm-communicator.js +469 -0
- package/dist/p2p/hyperswarm-communicator.js.map +1 -0
- package/dist/p2p/iroh-communicator.d.ts +216 -0
- package/dist/p2p/iroh-communicator.d.ts.map +1 -0
- package/dist/p2p/iroh-communicator.js +408 -0
- package/dist/p2p/iroh-communicator.js.map +1 -0
- package/dist/pubsub-authenticator.d.ts +246 -0
- package/dist/pubsub-authenticator.d.ts.map +1 -0
- package/dist/pubsub-authenticator.js +384 -0
- package/dist/pubsub-authenticator.js.map +1 -0
- package/dist/real-name-auth.d.ts +238 -0
- package/dist/real-name-auth.d.ts.map +1 -0
- package/dist/real-name-auth.js +259 -0
- package/dist/real-name-auth.js.map +1 -0
- package/dist/types/did.d.ts +76 -0
- package/dist/types/did.d.ts.map +1 -0
- package/dist/types/did.js +5 -0
- package/dist/types/did.js.map +1 -0
- package/dist/types/errors.d.ts +42 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +69 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +9 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/key.d.ts +43 -0
- package/dist/types/key.d.ts.map +1 -0
- package/dist/types/key.js +5 -0
- package/dist/types/key.js.map +1 -0
- package/dist/types/zkp.d.ts +80 -0
- package/dist/types/zkp.d.ts.map +1 -0
- package/dist/types/zkp.js +16 -0
- package/dist/types/zkp.js.map +1 -0
- package/dist/utils/crypto.d.ts +24 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/crypto.js +65 -0
- package/dist/utils/crypto.js.map +1 -0
- package/dist/utils/encoding.d.ts +36 -0
- package/dist/utils/encoding.d.ts.map +1 -0
- package/dist/utils/encoding.js +80 -0
- package/dist/utils/encoding.js.map +1 -0
- package/dist/utils/logger.d.ts +24 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +37 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/zkp/key-generator.d.ts +56 -0
- package/dist/zkp/key-generator.d.ts.map +1 -0
- package/dist/zkp/key-generator.js +165 -0
- package/dist/zkp/key-generator.js.map +1 -0
- package/dist/zkp/simplified-backend.d.ts +23 -0
- package/dist/zkp/simplified-backend.d.ts.map +1 -0
- package/dist/zkp/simplified-backend.js +77 -0
- package/dist/zkp/simplified-backend.js.map +1 -0
- package/dist/zkp/snarkjs-backend.d.ts +150 -0
- package/dist/zkp/snarkjs-backend.d.ts.map +1 -0
- package/dist/zkp/snarkjs-backend.js +218 -0
- package/dist/zkp/snarkjs-backend.js.map +1 -0
- package/dist/zkp/universal-manager.d.ts +44 -0
- package/dist/zkp/universal-manager.d.ts.map +1 -0
- package/dist/zkp/universal-manager.js +181 -0
- package/dist/zkp/universal-manager.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 错误处理框架
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* DIAP SDK 基础错误类
|
|
6
|
+
*/
|
|
7
|
+
export class DIAPError extends Error {
|
|
8
|
+
code;
|
|
9
|
+
details;
|
|
10
|
+
constructor(message, code, details) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.code = code;
|
|
13
|
+
this.details = details;
|
|
14
|
+
this.name = 'DIAPError';
|
|
15
|
+
// 确保 instanceof 检查正常工作
|
|
16
|
+
Object.setPrototypeOf(this, DIAPError.prototype);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 密钥管理错误
|
|
21
|
+
*/
|
|
22
|
+
export class KeyManagementError extends DIAPError {
|
|
23
|
+
constructor(message, details) {
|
|
24
|
+
super(message, 'KEY_MANAGEMENT_ERROR', details);
|
|
25
|
+
this.name = 'KeyManagementError';
|
|
26
|
+
Object.setPrototypeOf(this, KeyManagementError.prototype);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* IPFS 错误
|
|
31
|
+
*/
|
|
32
|
+
export class IPFSError extends DIAPError {
|
|
33
|
+
constructor(message, details) {
|
|
34
|
+
super(message, 'IPFS_ERROR', details);
|
|
35
|
+
this.name = 'IPFSError';
|
|
36
|
+
Object.setPrototypeOf(this, IPFSError.prototype);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* ZKP 错误
|
|
41
|
+
*/
|
|
42
|
+
export class ZKPError extends DIAPError {
|
|
43
|
+
constructor(message, details) {
|
|
44
|
+
super(message, 'ZKP_ERROR', details);
|
|
45
|
+
this.name = 'ZKPError';
|
|
46
|
+
Object.setPrototypeOf(this, ZKPError.prototype);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* DID 错误
|
|
51
|
+
*/
|
|
52
|
+
export class DIDError extends DIAPError {
|
|
53
|
+
constructor(message, details) {
|
|
54
|
+
super(message, 'DID_ERROR', details);
|
|
55
|
+
this.name = 'DIDError';
|
|
56
|
+
Object.setPrototypeOf(this, DIDError.prototype);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* 验证错误
|
|
61
|
+
*/
|
|
62
|
+
export class VerificationError extends DIAPError {
|
|
63
|
+
constructor(message, details) {
|
|
64
|
+
super(message, 'VERIFICATION_ERROR', details);
|
|
65
|
+
this.name = 'VerificationError';
|
|
66
|
+
Object.setPrototypeOf(this, VerificationError.prototype);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGzB;IACA;IAHT,YACE,OAAe,EACR,IAAY,EACZ,OAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAM;QAGpB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,uBAAuB;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/C,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,SAAS;IACtC,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,SAAS;IACrC,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,SAAS;IACrC,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAC9C,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 密钥相关类型定义
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Ed25519 密钥对
|
|
6
|
+
*/
|
|
7
|
+
export interface KeyPair {
|
|
8
|
+
/** 32 bytes Ed25519 私钥 */
|
|
9
|
+
privateKey: Uint8Array;
|
|
10
|
+
/** 32 bytes Ed25519 公钥 */
|
|
11
|
+
publicKey: Uint8Array;
|
|
12
|
+
/** did:key 格式的 DID */
|
|
13
|
+
did: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 密钥文件格式
|
|
17
|
+
*/
|
|
18
|
+
export interface KeyFile {
|
|
19
|
+
/** 密钥类型 */
|
|
20
|
+
keyType: string;
|
|
21
|
+
/** 十六进制编码的私钥 */
|
|
22
|
+
privateKey: string;
|
|
23
|
+
/** 十六进制编码的公钥 */
|
|
24
|
+
publicKey: string;
|
|
25
|
+
/** did:key 格式的 DID */
|
|
26
|
+
did: string;
|
|
27
|
+
/** 创建时间 (ISO 8601) */
|
|
28
|
+
createdAt: string;
|
|
29
|
+
/** 版本号 */
|
|
30
|
+
version: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 密钥备份格式(加密)
|
|
34
|
+
*/
|
|
35
|
+
export interface KeyBackup {
|
|
36
|
+
/** 加密后的数据(Base64 编码) */
|
|
37
|
+
encryptedData: string;
|
|
38
|
+
/** 助记词(可选) */
|
|
39
|
+
mnemonic?: string;
|
|
40
|
+
/** 导出时间 (ISO 8601) */
|
|
41
|
+
exportedAt: string;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/types/key.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,0BAA0B;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,0BAA0B;IAC1B,SAAS,EAAE,UAAU,CAAC;IACtB,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU;IACV,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,wBAAwB;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key.js","sourceRoot":"","sources":["../../src/types/key.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 零知识证明相关类型定义
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* ZKP 证明输入
|
|
6
|
+
*/
|
|
7
|
+
export interface NoirProverInputs {
|
|
8
|
+
/** 期望的 DID 哈希 */
|
|
9
|
+
expectedDidHash: string;
|
|
10
|
+
/** 公钥哈希 */
|
|
11
|
+
publicKeyHash: string;
|
|
12
|
+
/** nonce 哈希 */
|
|
13
|
+
nonceHash: string;
|
|
14
|
+
/** 期望的输出 */
|
|
15
|
+
expectedOutput: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* ZKP 证明结果
|
|
19
|
+
*/
|
|
20
|
+
export interface NoirProofResult {
|
|
21
|
+
/** 证明数据 */
|
|
22
|
+
proof: Uint8Array;
|
|
23
|
+
/** 公共输入 */
|
|
24
|
+
publicInputs: Uint8Array;
|
|
25
|
+
/** 电路输出 */
|
|
26
|
+
circuitOutput: string;
|
|
27
|
+
/** 生成时间 (ISO 8601) */
|
|
28
|
+
timestamp: string;
|
|
29
|
+
/** 生成耗时(毫秒) */
|
|
30
|
+
generationTimeMs: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* ZKP 验证结果
|
|
34
|
+
*/
|
|
35
|
+
export interface NoirVerificationResult {
|
|
36
|
+
/** 是否有效 */
|
|
37
|
+
isValid: boolean;
|
|
38
|
+
/** 验证耗时(毫秒) */
|
|
39
|
+
verificationTimeMs: number;
|
|
40
|
+
/** 错误消息(可选) */
|
|
41
|
+
errorMessage?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* ZKP 后端类型
|
|
45
|
+
*/
|
|
46
|
+
export declare enum NoirBackend {
|
|
47
|
+
/** snarkjs Groth16 后端 */
|
|
48
|
+
SNARKJS_GROTH16 = "snarkjs-groth16",
|
|
49
|
+
/** snarkjs PLONK 后端 */
|
|
50
|
+
SNARKJS_PLONK = "snarkjs-plonk",
|
|
51
|
+
/** 简化后端(用于测试和回退) */
|
|
52
|
+
SIMPLIFIED = "simplified"
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 性能指标
|
|
56
|
+
*/
|
|
57
|
+
export interface PerformanceMetrics {
|
|
58
|
+
proofGenerationTimeMs: number;
|
|
59
|
+
proofVerificationTimeMs: number;
|
|
60
|
+
cacheHitRate: number;
|
|
61
|
+
totalProofsGenerated: number;
|
|
62
|
+
totalProofsVerified: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 后端信息
|
|
66
|
+
*/
|
|
67
|
+
export interface BackendInfo {
|
|
68
|
+
backendType: NoirBackend;
|
|
69
|
+
isAvailable: boolean;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 性能统计
|
|
73
|
+
*/
|
|
74
|
+
export interface PerformanceStats {
|
|
75
|
+
backendType: NoirBackend;
|
|
76
|
+
cacheEntries: number;
|
|
77
|
+
memoryUsageBytes: number;
|
|
78
|
+
isOptimized: boolean;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=zkp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zkp.d.ts","sourceRoot":"","sources":["../../src/types/zkp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW;IACX,YAAY,EAAE,UAAU,CAAC;IACzB,WAAW;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe;IACf,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,yBAAyB;IACzB,eAAe,oBAAoB;IACnC,uBAAuB;IACvB,aAAa,kBAAkB;IAC/B,oBAAoB;IACpB,UAAU,eAAe;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uBAAuB,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 零知识证明相关类型定义
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* ZKP 后端类型
|
|
6
|
+
*/
|
|
7
|
+
export var NoirBackend;
|
|
8
|
+
(function (NoirBackend) {
|
|
9
|
+
/** snarkjs Groth16 后端 */
|
|
10
|
+
NoirBackend["SNARKJS_GROTH16"] = "snarkjs-groth16";
|
|
11
|
+
/** snarkjs PLONK 后端 */
|
|
12
|
+
NoirBackend["SNARKJS_PLONK"] = "snarkjs-plonk";
|
|
13
|
+
/** 简化后端(用于测试和回退) */
|
|
14
|
+
NoirBackend["SIMPLIFIED"] = "simplified";
|
|
15
|
+
})(NoirBackend || (NoirBackend = {}));
|
|
16
|
+
//# sourceMappingURL=zkp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zkp.js","sourceRoot":"","sources":["../../src/types/zkp.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4CH;;GAEG;AACH,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,yBAAyB;IACzB,kDAAmC,CAAA;IACnC,uBAAuB;IACvB,8CAA+B,CAAA;IAC/B,oBAAoB;IACpB,wCAAyB,CAAA;AAC3B,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 加密工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* AES-256-GCM 加密
|
|
6
|
+
*/
|
|
7
|
+
export declare function encryptAES256GCM(data: Uint8Array, key: Uint8Array, nonce?: Uint8Array): {
|
|
8
|
+
ciphertext: Uint8Array;
|
|
9
|
+
nonce: Uint8Array;
|
|
10
|
+
tag: Uint8Array;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* AES-256-GCM 解密
|
|
14
|
+
*/
|
|
15
|
+
export declare function decryptAES256GCM(ciphertext: Uint8Array, key: Uint8Array, nonce: Uint8Array, tag: Uint8Array): Uint8Array;
|
|
16
|
+
/**
|
|
17
|
+
* 使用 PBKDF2 派生密钥
|
|
18
|
+
*/
|
|
19
|
+
export declare function deriveKey(password: string, salt: Uint8Array, iterations?: number): Uint8Array;
|
|
20
|
+
/**
|
|
21
|
+
* 生成随机字节
|
|
22
|
+
*/
|
|
23
|
+
export declare function generateRandomBytes(length: number): Uint8Array;
|
|
24
|
+
//# sourceMappingURL=crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,UAAU,EACf,KAAK,CAAC,EAAE,UAAU,GACjB;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,UAAU,CAAA;CAAE,CAoBhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,UAAU,GACd,UAAU,CAwBZ;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,UAAU,GAAE,MAAe,GAC1B,UAAU,CAGZ;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAE9D"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 加密工具函数
|
|
3
|
+
*/
|
|
4
|
+
import { createCipheriv, createDecipheriv, randomBytes, pbkdf2Sync } from 'crypto';
|
|
5
|
+
import { KeyManagementError } from '../types/errors.js';
|
|
6
|
+
/**
|
|
7
|
+
* AES-256-GCM 加密
|
|
8
|
+
*/
|
|
9
|
+
export function encryptAES256GCM(data, key, nonce) {
|
|
10
|
+
if (key.length !== 32) {
|
|
11
|
+
throw new KeyManagementError('AES-256-GCM requires a 32-byte key');
|
|
12
|
+
}
|
|
13
|
+
const iv = nonce || randomBytes(12);
|
|
14
|
+
const cipher = createCipheriv('aes-256-gcm', Buffer.from(key), iv);
|
|
15
|
+
const encrypted = Buffer.concat([
|
|
16
|
+
cipher.update(Buffer.from(data)),
|
|
17
|
+
cipher.final(),
|
|
18
|
+
]);
|
|
19
|
+
const tag = cipher.getAuthTag();
|
|
20
|
+
return {
|
|
21
|
+
ciphertext: new Uint8Array(encrypted),
|
|
22
|
+
nonce: new Uint8Array(iv),
|
|
23
|
+
tag: new Uint8Array(tag),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* AES-256-GCM 解密
|
|
28
|
+
*/
|
|
29
|
+
export function decryptAES256GCM(ciphertext, key, nonce, tag) {
|
|
30
|
+
if (key.length !== 32) {
|
|
31
|
+
throw new KeyManagementError('AES-256-GCM requires a 32-byte key');
|
|
32
|
+
}
|
|
33
|
+
if (nonce.length !== 12) {
|
|
34
|
+
throw new KeyManagementError('AES-256-GCM requires a 12-byte nonce');
|
|
35
|
+
}
|
|
36
|
+
if (tag.length !== 16) {
|
|
37
|
+
throw new KeyManagementError('AES-256-GCM requires a 16-byte auth tag');
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
const decipher = createDecipheriv('aes-256-gcm', Buffer.from(key), Buffer.from(nonce));
|
|
41
|
+
decipher.setAuthTag(Buffer.from(tag));
|
|
42
|
+
const decrypted = Buffer.concat([
|
|
43
|
+
decipher.update(Buffer.from(ciphertext)),
|
|
44
|
+
decipher.final(),
|
|
45
|
+
]);
|
|
46
|
+
return new Uint8Array(decrypted);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
throw new KeyManagementError('Decryption failed', { originalError: error });
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 使用 PBKDF2 派生密钥
|
|
54
|
+
*/
|
|
55
|
+
export function deriveKey(password, salt, iterations = 100000) {
|
|
56
|
+
const key = pbkdf2Sync(password, Buffer.from(salt), iterations, 32, 'sha256');
|
|
57
|
+
return new Uint8Array(key);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* 生成随机字节
|
|
61
|
+
*/
|
|
62
|
+
export function generateRandomBytes(length) {
|
|
63
|
+
return new Uint8Array(randomBytes(length));
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 编码工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Base58 编码
|
|
6
|
+
*/
|
|
7
|
+
export declare function encodeBase58(data: Uint8Array): string;
|
|
8
|
+
/**
|
|
9
|
+
* Base58 解码
|
|
10
|
+
*/
|
|
11
|
+
export declare function decodeBase58(encoded: string): Uint8Array;
|
|
12
|
+
/**
|
|
13
|
+
* Base64 编码
|
|
14
|
+
*/
|
|
15
|
+
export declare function encodeBase64(data: Uint8Array): string;
|
|
16
|
+
/**
|
|
17
|
+
* Base64 解码
|
|
18
|
+
*/
|
|
19
|
+
export declare function decodeBase64(encoded: string): Uint8Array;
|
|
20
|
+
/**
|
|
21
|
+
* Hex 编码
|
|
22
|
+
*/
|
|
23
|
+
export declare function encodeHex(data: Uint8Array): string;
|
|
24
|
+
/**
|
|
25
|
+
* Hex 解码
|
|
26
|
+
*/
|
|
27
|
+
export declare function decodeHex(encoded: string): Uint8Array;
|
|
28
|
+
/**
|
|
29
|
+
* Multibase 编码(Base64,z前缀表示base58btc)
|
|
30
|
+
*/
|
|
31
|
+
export declare function encodeMultibase(data: Uint8Array): string;
|
|
32
|
+
/**
|
|
33
|
+
* Multibase 解码
|
|
34
|
+
*/
|
|
35
|
+
export declare function decodeMultibase(encoded: string): Uint8Array;
|
|
36
|
+
//# sourceMappingURL=encoding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAMxD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAMxD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAQrD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAGxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAU3D"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 编码工具函数
|
|
3
|
+
*/
|
|
4
|
+
import bs58 from 'bs58';
|
|
5
|
+
/**
|
|
6
|
+
* Base58 编码
|
|
7
|
+
*/
|
|
8
|
+
export function encodeBase58(data) {
|
|
9
|
+
return bs58.encode(data);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Base58 解码
|
|
13
|
+
*/
|
|
14
|
+
export function decodeBase58(encoded) {
|
|
15
|
+
try {
|
|
16
|
+
return new Uint8Array(bs58.decode(encoded));
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
throw new Error(`Invalid Base58 string: ${error}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Base64 编码
|
|
24
|
+
*/
|
|
25
|
+
export function encodeBase64(data) {
|
|
26
|
+
return Buffer.from(data).toString('base64');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Base64 解码
|
|
30
|
+
*/
|
|
31
|
+
export function decodeBase64(encoded) {
|
|
32
|
+
try {
|
|
33
|
+
return new Uint8Array(Buffer.from(encoded, 'base64'));
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
throw new Error(`Invalid Base64 string: ${error}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Hex 编码
|
|
41
|
+
*/
|
|
42
|
+
export function encodeHex(data) {
|
|
43
|
+
return Buffer.from(data).toString('hex');
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Hex 解码
|
|
47
|
+
*/
|
|
48
|
+
export function decodeHex(encoded) {
|
|
49
|
+
try {
|
|
50
|
+
// 移除可能的 0x 前缀
|
|
51
|
+
const hex = encoded.startsWith('0x') ? encoded.slice(2) : encoded;
|
|
52
|
+
return new Uint8Array(Buffer.from(hex, 'hex'));
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
throw new Error(`Invalid Hex string: ${error}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Multibase 编码(Base64,z前缀表示base58btc)
|
|
60
|
+
*/
|
|
61
|
+
export function encodeMultibase(data) {
|
|
62
|
+
// z 前缀表示 base58btc 编码
|
|
63
|
+
return 'z' + encodeBase58(data);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Multibase 解码
|
|
67
|
+
*/
|
|
68
|
+
export function decodeMultibase(encoded) {
|
|
69
|
+
try {
|
|
70
|
+
if (!encoded.startsWith('z')) {
|
|
71
|
+
throw new Error('Only base58btc (z prefix) is supported');
|
|
72
|
+
}
|
|
73
|
+
// 移除 z 前缀,然后 base58 解码
|
|
74
|
+
return decodeBase58(encoded.slice(1));
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
throw new Error(`Invalid Multibase string: ${error}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=encoding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,IAAI,CAAC;QACH,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,IAAI,CAAC;QACH,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAgB;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,IAAI,CAAC;QACH,cAAc;QACd,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAClE,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAgB;IAC9C,sBAAsB;IACtB,OAAO,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,uBAAuB;QACvB,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 日志工具
|
|
3
|
+
*/
|
|
4
|
+
import winston from 'winston';
|
|
5
|
+
/**
|
|
6
|
+
* 日志级别
|
|
7
|
+
*/
|
|
8
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
9
|
+
/**
|
|
10
|
+
* 日志格式配置
|
|
11
|
+
*/
|
|
12
|
+
export interface LoggingConfig {
|
|
13
|
+
level: LogLevel;
|
|
14
|
+
format: 'json' | 'simple';
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 创建 Winston 日志器
|
|
18
|
+
*/
|
|
19
|
+
export declare function createLogger(config?: Partial<LoggingConfig>): winston.Logger;
|
|
20
|
+
/**
|
|
21
|
+
* 默认日志器实例
|
|
22
|
+
*/
|
|
23
|
+
export declare const logger: winston.Logger;
|
|
24
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,MAAM,CA6B5E;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,gBAAiB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 日志工具
|
|
3
|
+
*/
|
|
4
|
+
import winston from 'winston';
|
|
5
|
+
/**
|
|
6
|
+
* 创建 Winston 日志器
|
|
7
|
+
*/
|
|
8
|
+
export function createLogger(config) {
|
|
9
|
+
const level = config?.level || 'info';
|
|
10
|
+
const format = config?.format || 'simple';
|
|
11
|
+
const formats = [
|
|
12
|
+
winston.format.timestamp(),
|
|
13
|
+
winston.format.errors({ stack: true }),
|
|
14
|
+
];
|
|
15
|
+
if (format === 'json') {
|
|
16
|
+
formats.push(winston.format.json());
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
formats.push(winston.format.colorize(), winston.format.printf(({ level, message, timestamp, stack }) => {
|
|
20
|
+
return `${timestamp} [${level}]: ${message}${stack ? '\n' + stack : ''}`;
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
return winston.createLogger({
|
|
24
|
+
level,
|
|
25
|
+
format: winston.format.combine(...formats),
|
|
26
|
+
transports: [
|
|
27
|
+
new winston.transports.Console({
|
|
28
|
+
stderrLevels: ['error'],
|
|
29
|
+
}),
|
|
30
|
+
],
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 默认日志器实例
|
|
35
|
+
*/
|
|
36
|
+
export const logger = createLogger();
|
|
37
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAe9B;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAA+B;IAC1D,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,MAAM,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,QAAQ,CAAC;IAE1C,MAAM,OAAO,GAAG;QACd,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE;QAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KACvC,CAAC;IAEF,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CACV,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;YAC7D,OAAO,GAAG,SAAS,KAAK,KAAK,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3E,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC,YAAY,CAAC;QAC1B,KAAK;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;QAC1C,UAAU,EAAE;YACV,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC7B,YAAY,EAAE,CAAC,OAAO,CAAC;aACxB,CAAC;SACH;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DIAP TypeScript SDK - ZKP Key Generator
|
|
3
|
+
* 自动生成 proving key 和 verification key 文件
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* ZKP 密钥对
|
|
7
|
+
*/
|
|
8
|
+
export interface ZKPKeyPair {
|
|
9
|
+
provingKey: Uint8Array;
|
|
10
|
+
verificationKey: Uint8Array;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 密钥生成结果
|
|
14
|
+
*/
|
|
15
|
+
export interface KeyGenerationResult {
|
|
16
|
+
success: boolean;
|
|
17
|
+
provingKeyPath?: string;
|
|
18
|
+
verificationKeyPath?: string;
|
|
19
|
+
error?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 生成简化的 ZKP 密钥对
|
|
23
|
+
* 这是一个演示版本的密钥生成,实际生产环境应使用更安全的可信设置
|
|
24
|
+
*/
|
|
25
|
+
export declare function generateSimpleZKPKeys(): ZKPKeyPair;
|
|
26
|
+
/**
|
|
27
|
+
* 确保 ZKP 密钥文件存在
|
|
28
|
+
* 如果文件不存在,则自动生成
|
|
29
|
+
*/
|
|
30
|
+
export declare function ensureZKPKeysExist(pkPath: string, vkPath: string): Promise<KeyGenerationResult>;
|
|
31
|
+
/**
|
|
32
|
+
* 从 Noir 电路生成密钥
|
|
33
|
+
* 自动检测环境并选择合适的执行方式
|
|
34
|
+
*/
|
|
35
|
+
export declare function generateNoirKeys(circuitPath: string, pkPath: string, vkPath: string): Promise<KeyGenerationResult>;
|
|
36
|
+
/**
|
|
37
|
+
* 检查 nargo 是否可用
|
|
38
|
+
*/
|
|
39
|
+
export declare function checkNargoAvailable(): Promise<boolean>;
|
|
40
|
+
/**
|
|
41
|
+
* 编译 Noir 电路
|
|
42
|
+
*/
|
|
43
|
+
export declare function compileNoirCircuit(circuitPath: string): Promise<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* 从 Base64 字符串恢复 ArrayBuffer
|
|
46
|
+
*/
|
|
47
|
+
export declare function base64ToBuffer(base64: string): Uint8Array;
|
|
48
|
+
/**
|
|
49
|
+
* 从 localStorage 加载密钥
|
|
50
|
+
*/
|
|
51
|
+
export declare function loadKeysFromStorage(pkPath: string, vkPath: string): ZKPKeyPair | null;
|
|
52
|
+
/**
|
|
53
|
+
* 创建 ZKP 密钥(简化版本)
|
|
54
|
+
*/
|
|
55
|
+
export declare function createZKPKeys(): ZKPKeyPair;
|
|
56
|
+
//# sourceMappingURL=key-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-generator.d.ts","sourceRoot":"","sources":["../../src/zkp/key-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,UAAU,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,UAAU,CAclD;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC,CAyB9B;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC,CAuB9B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAc5D;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAM9E;AAiBD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAazD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAoBrF;AAMD;;GAEG;AACH,wBAAgB,aAAa,IAAI,UAAU,CAE1C"}
|