cojson 0.17.9 → 0.17.10
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +7 -0
- package/dist/coValueCore/SessionMap.d.ts +44 -0
- package/dist/coValueCore/SessionMap.d.ts.map +1 -0
- package/dist/coValueCore/SessionMap.js +118 -0
- package/dist/coValueCore/SessionMap.js.map +1 -0
- package/dist/coValueCore/coValueCore.d.ts +1 -0
- package/dist/coValueCore/coValueCore.d.ts.map +1 -1
- package/dist/coValueCore/coValueCore.js +40 -61
- package/dist/coValueCore/coValueCore.js.map +1 -1
- package/dist/coValueCore/verifiedState.d.ts +14 -18
- package/dist/coValueCore/verifiedState.d.ts.map +1 -1
- package/dist/coValueCore/verifiedState.js +23 -86
- package/dist/coValueCore/verifiedState.js.map +1 -1
- package/dist/coValues/account.d.ts +4 -0
- package/dist/coValues/account.d.ts.map +1 -1
- package/dist/coValues/account.js +24 -4
- package/dist/coValues/account.js.map +1 -1
- package/dist/crypto/PureJSCrypto.d.ts +31 -3
- package/dist/crypto/PureJSCrypto.d.ts.map +1 -1
- package/dist/crypto/PureJSCrypto.js +112 -0
- package/dist/crypto/PureJSCrypto.js.map +1 -1
- package/dist/crypto/WasmCrypto.d.ts +23 -4
- package/dist/crypto/WasmCrypto.d.ts.map +1 -1
- package/dist/crypto/WasmCrypto.js +44 -2
- package/dist/crypto/WasmCrypto.js.map +1 -1
- package/dist/crypto/crypto.d.ts +17 -1
- package/dist/crypto/crypto.d.ts.map +1 -1
- package/dist/crypto/crypto.js.map +1 -1
- package/dist/localNode.d.ts +1 -0
- package/dist/localNode.d.ts.map +1 -1
- package/dist/localNode.js +10 -5
- package/dist/localNode.js.map +1 -1
- package/dist/tests/PureJSCrypto.test.d.ts +2 -0
- package/dist/tests/PureJSCrypto.test.d.ts.map +1 -0
- package/dist/tests/PureJSCrypto.test.js +88 -0
- package/dist/tests/PureJSCrypto.test.js.map +1 -0
- package/dist/tests/WasmCrypto.test.d.ts +2 -0
- package/dist/tests/WasmCrypto.test.d.ts.map +1 -0
- package/dist/tests/WasmCrypto.test.js +88 -0
- package/dist/tests/WasmCrypto.test.js.map +1 -0
- package/dist/tests/coValueCore.test.js +62 -187
- package/dist/tests/coValueCore.test.js.map +1 -1
- package/dist/tests/coreWasm.test.d.ts +2 -0
- package/dist/tests/coreWasm.test.d.ts.map +1 -0
- package/dist/tests/coreWasm.test.js +80 -0
- package/dist/tests/coreWasm.test.js.map +1 -0
- package/dist/tests/testUtils.d.ts +3 -0
- package/dist/tests/testUtils.d.ts.map +1 -1
- package/dist/tests/testUtils.js +4 -1
- package/dist/tests/testUtils.js.map +1 -1
- package/package.json +3 -3
- package/src/coValueCore/SessionMap.ts +230 -0
- package/src/coValueCore/coValueCore.ts +66 -91
- package/src/coValueCore/verifiedState.ts +60 -129
- package/src/coValues/account.ts +28 -4
- package/src/crypto/PureJSCrypto.ts +202 -2
- package/src/crypto/WasmCrypto.ts +95 -4
- package/src/crypto/crypto.ts +38 -1
- package/src/localNode.ts +18 -10
- package/src/tests/PureJSCrypto.test.ts +130 -0
- package/src/tests/WasmCrypto.test.ts +130 -0
- package/src/tests/coValueCore.test.ts +84 -292
- package/src/tests/coreWasm.test.ts +142 -0
- package/src/tests/testUtils.ts +9 -1
|
@@ -1,109 +1,43 @@
|
|
|
1
|
-
import { err, ok } from "neverthrow";
|
|
2
1
|
import { createContentMessage, exceedsRecommendedSize, getTransactionSize, } from "../coValueContentMessage.js";
|
|
3
|
-
import {
|
|
2
|
+
import { SessionMap } from "./SessionMap.js";
|
|
4
3
|
export class VerifiedState {
|
|
5
4
|
constructor(id, crypto, header, sessions, streamingKnownState) {
|
|
6
5
|
this.id = id;
|
|
7
6
|
this.crypto = crypto;
|
|
8
7
|
this.header = header;
|
|
9
|
-
this.sessions = sessions;
|
|
8
|
+
this.sessions = sessions ?? new SessionMap(id, crypto);
|
|
10
9
|
this.streamingKnownState = streamingKnownState
|
|
11
10
|
? { ...streamingKnownState }
|
|
12
11
|
: undefined;
|
|
13
12
|
}
|
|
14
13
|
clone() {
|
|
15
|
-
|
|
16
|
-
const clonedSessions = new Map();
|
|
17
|
-
for (let [sessionID, sessionLog] of this.sessions) {
|
|
18
|
-
clonedSessions.set(sessionID, {
|
|
19
|
-
lastSignature: sessionLog.lastSignature,
|
|
20
|
-
streamingHash: sessionLog.streamingHash?.clone(),
|
|
21
|
-
signatureAfter: { ...sessionLog.signatureAfter },
|
|
22
|
-
transactions: sessionLog.transactions.slice(),
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
return new VerifiedState(this.id, this.crypto, this.header, clonedSessions, this.streamingKnownState);
|
|
14
|
+
return new VerifiedState(this.id, this.crypto, this.header, this.sessions.clone(), this.streamingKnownState ? { ...this.streamingKnownState } : undefined);
|
|
26
15
|
}
|
|
27
16
|
tryAddTransactions(sessionID, signerID, newTransactions, givenExpectedNewHash, newSignature, skipVerify = false, givenNewStreamingHash) {
|
|
28
|
-
|
|
29
|
-
|
|
17
|
+
const result = this.sessions.addTransaction(sessionID, signerID, newTransactions, newSignature, skipVerify);
|
|
18
|
+
if (result.isOk()) {
|
|
19
|
+
this._cachedNewContentSinceEmpty = undefined;
|
|
20
|
+
this._cachedKnownState = undefined;
|
|
30
21
|
}
|
|
31
|
-
|
|
32
|
-
const { expectedNewHash, newStreamingHash } = this.expectedNewHashAfter(sessionID, newTransactions);
|
|
33
|
-
if (givenExpectedNewHash && givenExpectedNewHash !== expectedNewHash) {
|
|
34
|
-
return err({
|
|
35
|
-
type: "InvalidHash",
|
|
36
|
-
id: this.id,
|
|
37
|
-
expectedNewHash,
|
|
38
|
-
givenExpectedNewHash,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
if (!this.crypto.verify(newSignature, expectedNewHash, signerID)) {
|
|
42
|
-
return err({
|
|
43
|
-
type: "InvalidSignature",
|
|
44
|
-
id: this.id,
|
|
45
|
-
newSignature,
|
|
46
|
-
sessionID,
|
|
47
|
-
signerID,
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
this.doAddTransactions(sessionID, newTransactions, newSignature, newStreamingHash);
|
|
51
|
-
}
|
|
52
|
-
return ok(true);
|
|
22
|
+
return result;
|
|
53
23
|
}
|
|
54
|
-
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return
|
|
24
|
+
makeNewTrustingTransaction(sessionID, signerAgent, changes) {
|
|
25
|
+
const result = this.sessions.makeNewTrustingTransaction(sessionID, signerAgent, changes);
|
|
26
|
+
this._cachedNewContentSinceEmpty = undefined;
|
|
27
|
+
this._cachedKnownState = undefined;
|
|
28
|
+
return result;
|
|
59
29
|
}
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
const transactions = sessionLog?.transactions ?? [];
|
|
63
|
-
for (const tx of newTransactions) {
|
|
64
|
-
transactions.push(tx);
|
|
65
|
-
}
|
|
66
|
-
const signatureAfter = sessionLog?.signatureAfter ?? {};
|
|
67
|
-
const lastInbetweenSignatureIdx = this.getLastSignatureCheckpoint(sessionID);
|
|
68
|
-
const sizeOfTxsSinceLastInbetweenSignature = transactions
|
|
69
|
-
.slice(lastInbetweenSignatureIdx + 1)
|
|
70
|
-
.reduce((sum, tx) => sum + getTransactionSize(tx), 0);
|
|
71
|
-
if (exceedsRecommendedSize(sizeOfTxsSinceLastInbetweenSignature)) {
|
|
72
|
-
signatureAfter[transactions.length - 1] = newSignature;
|
|
73
|
-
}
|
|
74
|
-
this.sessions.set(sessionID, {
|
|
75
|
-
transactions,
|
|
76
|
-
streamingHash: newStreamingHash,
|
|
77
|
-
lastSignature: newSignature,
|
|
78
|
-
signatureAfter: signatureAfter,
|
|
79
|
-
});
|
|
30
|
+
makeNewPrivateTransaction(sessionID, signerAgent, changes, keyID, keySecret) {
|
|
31
|
+
const result = this.sessions.makeNewPrivateTransaction(sessionID, signerAgent, changes, keyID, keySecret);
|
|
80
32
|
this._cachedNewContentSinceEmpty = undefined;
|
|
81
33
|
this._cachedKnownState = undefined;
|
|
34
|
+
return result;
|
|
82
35
|
}
|
|
83
|
-
|
|
36
|
+
getLastSignatureCheckpoint(sessionID) {
|
|
84
37
|
const sessionLog = this.sessions.get(sessionID);
|
|
85
|
-
if (!sessionLog?.
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
for (const transaction of oldTransactions) {
|
|
89
|
-
streamingHash.update(transaction);
|
|
90
|
-
}
|
|
91
|
-
for (const transaction of newTransactions) {
|
|
92
|
-
streamingHash.update(transaction);
|
|
93
|
-
}
|
|
94
|
-
return {
|
|
95
|
-
expectedNewHash: streamingHash.digest(),
|
|
96
|
-
newStreamingHash: streamingHash,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
const streamingHash = sessionLog.streamingHash.clone();
|
|
100
|
-
for (const transaction of newTransactions) {
|
|
101
|
-
streamingHash.update(transaction);
|
|
102
|
-
}
|
|
103
|
-
return {
|
|
104
|
-
expectedNewHash: streamingHash.digest(),
|
|
105
|
-
newStreamingHash: streamingHash,
|
|
106
|
-
};
|
|
38
|
+
if (!sessionLog?.signatureAfter)
|
|
39
|
+
return -1;
|
|
40
|
+
return Object.keys(sessionLog.signatureAfter).reduce((max, idx) => Math.max(max, parseInt(idx)), -1);
|
|
107
41
|
}
|
|
108
42
|
newContentSince(knownState) {
|
|
109
43
|
const isKnownStateEmpty = !knownState?.header && !knownState?.sessions;
|
|
@@ -246,6 +180,9 @@ export class VerifiedState {
|
|
|
246
180
|
sessions,
|
|
247
181
|
};
|
|
248
182
|
}
|
|
183
|
+
decryptTransaction(sessionID, txIndex, keySecret) {
|
|
184
|
+
return this.sessions.decryptTransaction(sessionID, txIndex, keySecret);
|
|
185
|
+
}
|
|
249
186
|
}
|
|
250
187
|
function getNextKnownSignatureIdx(log, knownStateForSessionID, sentStateForSessionID) {
|
|
251
188
|
return Object.keys(log.signatureAfter)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifiedState.js","sourceRoot":"","sources":["../../src/coValueCore/verifiedState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verifiedState.js","sourceRoot":"","sources":["../../src/coValueCore/verifiedState.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAkBrC,OAAO,EAAc,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA6BzD,MAAM,OAAO,aAAa;IAUxB,YACE,EAAW,EACX,MAAsB,EACtB,MAAqB,EACrB,QAAqB,EACrB,mBAAmD;QAEnD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;YAC5C,CAAC,CAAC,EAAE,GAAG,mBAAmB,EAAE;YAC5B,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EACrB,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,SAAS,CACvE,CAAC;IACJ,CAAC;IAED,kBAAkB,CAChB,SAAoB,EACpB,QAAkB,EAClB,eAA8B,EAC9B,oBAAsC,EACtC,YAAuB,EACvB,aAAsB,KAAK,EAC3B,qBAAqC;QAErC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CACzC,SAAS,EACT,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,UAAU,CACX,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAClB,IAAI,CAAC,2BAA2B,GAAG,SAAS,CAAC;YAC7C,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACrC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0BAA0B,CACxB,SAAoB,EACpB,WAAqC,EACrC,OAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CACrD,SAAS,EACT,WAAW,EACX,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,2BAA2B,GAAG,SAAS,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAEnC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,yBAAyB,CACvB,SAAoB,EACpB,WAAqC,EACrC,OAAoB,EACpB,KAAY,EACZ,SAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CACpD,SAAS,EACT,WAAW,EACX,OAAO,EACP,KAAK,EACL,SAAS,CACV,CAAC;QAEF,IAAI,CAAC,2BAA2B,GAAG,SAAS,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAEnC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0BAA0B,CAAC,SAAoB;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,UAAU,EAAE,cAAc;YAAE,OAAO,CAAC,CAAC,CAAC;QAE3C,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,MAAM,CAClD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC1C,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,eAAe,CACb,UAAyC;QAEzC,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;QAEvE,IAAI,iBAAiB,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,2BAA2B,CAAC;QAC1C,CAAC;QAED,IAAI,YAAY,GAAsB,oBAAoB,CACxD,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,MAAM,EACX,CAAC,UAAU,EAAE,MAAM,CACpB,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC;QAE9B,MAAM,SAAS,GAAkC,EAAE,CAAC;QAEpD,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,IAAI,iBAAiB,GAAyC,OAAO,CAAC;QAEtE,OAAO,iBAAiB,KAAK,OAAO,IAAI,iBAAiB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzE,IAAI,iBAAiB,KAAK,OAAO,EAAE,CAAC;gBAClC,iBAAiB,GAAG,SAAS,CAAC;YAChC,CAAC;YACD,MAAM,YAAY,GAAG,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAE/D,KAAK,MAAM,YAAY,IAAI,YAAY,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAG,YAAyB,CAAC;gBAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;gBAC1C,MAAM,sBAAsB,GAAG,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC/D,MAAM,qBAAqB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;gBACnD,MAAM,qBAAqB,GAAG,wBAAwB,CACpD,GAAG,EACH,sBAAsB,EACtB,qBAAqB,CACtB,CAAC;gBAEF,MAAM,aAAa,GACjB,qBAAqB,IAAI,sBAAsB,IAAI,CAAC,CAAC;gBACvD,MAAM,iBAAiB,GACrB,qBAAqB,KAAK,SAAS;oBACjC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM;oBACzB,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC;gBAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,GAAG,aAAa,CAAC,CAAC;gBAE9D,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjB,iBAAiB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;oBACrC,SAAS;gBACX,CAAC;gBAED,IAAI,iBAAiB,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;oBAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACvB,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;oBAChC,CAAC;oBACD,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnC,CAAC;gBAED,MAAM,YAAY,GAAG,SAAS,CAAC;gBAC/B,KAAK,IAAI,KAAK,GAAG,aAAa,EAAE,KAAK,GAAG,iBAAiB,EAAE,KAAK,EAAE,EAAE,CAAC;oBACnE,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAE,CAAC;oBACpC,SAAS,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC;gBACtC,CAAC;gBAED,IAAI,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;oBACtC,IAAI,CAAC,YAAY,CAAC,kBAAkB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC5D,YAAY,CAAC,kBAAkB;4BAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAC,QAAQ,CAAC;oBAC5C,CAAC;oBAED,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBACjE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC1B,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;gBACvC,CAAC;gBAED,IAAI,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,YAAY,GAAG;wBACb,KAAK,EAAE,qBAAqB,IAAI,sBAAsB,IAAI,CAAC;wBAC3D,eAAe,EAAE,EAAE;wBACnB,aAAa,EAAE,kBAA+B;qBAC/C,CAAC;oBACF,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;gBAC7C,CAAC;gBAED,KAAK,IAAI,KAAK,GAAG,aAAa,EAAE,KAAK,GAAG,iBAAiB,EAAE,KAAK,EAAE,EAAE,CAAC;oBACnE,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAE,CAAC;oBACpC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxC,CAAC;gBAED,YAAY,CAAC,aAAa;oBACxB,qBAAqB,KAAK,SAAS;wBACjC,CAAC,CAAC,GAAG,CAAC,aAAc;wBACpB,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,qBAAqB,CAAE,CAAC;gBAEjD,SAAS,CAAC,SAAS,CAAC;oBAClB,CAAC,qBAAqB,IAAI,sBAAsB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;YACpE,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CACrC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAC7D,CAAC;QAEF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC,2BAA2B,GAAG,iBAAiB,CAAC;QACvD,CAAC;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,uBAAuB;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAErC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAkC,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEzD,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;gBACvC,WAAW,CAAC,SAAsB,CAAC,GAAG,GAAG,CAAC;gBAC1C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAsB,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;oBAC7D,WAAW,CAAC,SAAsB,CAAC,GAAG,GAAG,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,SAAsB,CAAC,GAAG,GAAG,CAAC;oBAC1C,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAsB,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;gBACrC,OAAO,UAAU,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,EAAE,EAAE,UAAU,CAAC,EAAE;oBACjB,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,QAAQ,EAAE,WAAW;iBACtB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,WAAW;QACT,wGAAwG;QACxG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,OAAO,IAAI,CAAC,mBAAmB,KAAK,SAAS,CAAC;IAChD,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;YACpC,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,kBAAkB;QAChB,MAAM,QAAQ,GAAkC,EAAE,CAAC;QAEnD,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9D,QAAQ,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC;QACvD,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI;YACZ,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,kBAAkB,CAChB,SAAoB,EACpB,OAAe,EACf,SAAoB;QAEpB,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACzE,CAAC;CACF;AAED,SAAS,wBAAwB,CAC/B,GAAe,EACf,sBAA+B,EAC/B,qBAA8B;IAE9B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;SACnC,GAAG,CAAC,MAAM,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SACrB,IAAI,CACH,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,qBAAqB,IAAI,sBAAsB,IAAI,CAAC,CAAC,CAAC,CACxE,CAAC;AACN,CAAC"}
|
|
@@ -31,6 +31,10 @@ export declare class ControlledAccount implements ControlledAccountOrAgent {
|
|
|
31
31
|
account: RawAccount<AccountMeta>;
|
|
32
32
|
agentSecret: AgentSecret;
|
|
33
33
|
_cachedCurrentAgentID: AgentID | undefined;
|
|
34
|
+
_cachedCurrentSignerID: SignerID | undefined;
|
|
35
|
+
_cachedCurrentSignerSecret: SignerSecret | undefined;
|
|
36
|
+
_cachedCurrentSealerID: SealerID | undefined;
|
|
37
|
+
_cachedCurrentSealerSecret: SealerSecret | undefined;
|
|
34
38
|
crypto: CryptoProvider;
|
|
35
39
|
constructor(account: RawAccount<AccountMeta>, agentSecret: AgentSecret);
|
|
36
40
|
get id(): RawAccountID;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKjD,OAAO,EACL,aAAa,EAEd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,WAAW,EACX,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEpD,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,cAAc,GACrB,aAAa,CAWf;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,UAAU,CACrB,IAAI,SAAS,WAAW,GAAG,WAAW,CACtC,SAAQ,QAAQ,CAAC,IAAI,CAAC;IACtB,qBAAqB,EAAE,OAAO,GAAG,SAAS,CAAC;IAE3C,cAAc,IAAI,OAAO;IAsBzB,YAAY,CAAC,CAAC,EAAE,WAAW,GAAG,YAAY;CAG3C;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IAEzB,cAAc,EAAE,MAAM,OAAO,CAAC;IAC9B,eAAe,EAAE,MAAM,QAAQ,CAAC;IAChC,mBAAmB,EAAE,MAAM,YAAY,CAAC;IACxC,eAAe,EAAE,MAAM,QAAQ,CAAC;IAChC,mBAAmB,EAAE,MAAM,YAAY,CAAC;CACzC;AAED,cAAc;AACd,qBAAa,iBAAkB,YAAW,wBAAwB;IAChE,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,qBAAqB,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3C,MAAM,EAAE,cAAc,CAAC;gBAEX,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,WAAW;IAMtE,IAAI,EAAE,IAAI,YAAY,CAErB;IAED,cAAc,IAAI,OAAO;IASzB,eAAe;
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":"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"}
|
package/dist/coValues/account.js
CHANGED
|
@@ -51,16 +51,36 @@ export class ControlledAccount {
|
|
|
51
51
|
return agentID;
|
|
52
52
|
}
|
|
53
53
|
currentSignerID() {
|
|
54
|
-
|
|
54
|
+
if (this._cachedCurrentSignerID) {
|
|
55
|
+
return this._cachedCurrentSignerID;
|
|
56
|
+
}
|
|
57
|
+
const signerID = this.crypto.getAgentSignerID(this.currentAgentID());
|
|
58
|
+
this._cachedCurrentSignerID = signerID;
|
|
59
|
+
return signerID;
|
|
55
60
|
}
|
|
56
61
|
currentSignerSecret() {
|
|
57
|
-
|
|
62
|
+
if (this._cachedCurrentSignerSecret) {
|
|
63
|
+
return this._cachedCurrentSignerSecret;
|
|
64
|
+
}
|
|
65
|
+
const signerSecret = this.crypto.getAgentSignerSecret(this.agentSecret);
|
|
66
|
+
this._cachedCurrentSignerSecret = signerSecret;
|
|
67
|
+
return signerSecret;
|
|
58
68
|
}
|
|
59
69
|
currentSealerID() {
|
|
60
|
-
|
|
70
|
+
if (this._cachedCurrentSealerID) {
|
|
71
|
+
return this._cachedCurrentSealerID;
|
|
72
|
+
}
|
|
73
|
+
const sealerID = this.crypto.getAgentSealerID(this.currentAgentID());
|
|
74
|
+
this._cachedCurrentSealerID = sealerID;
|
|
75
|
+
return sealerID;
|
|
61
76
|
}
|
|
62
77
|
currentSealerSecret() {
|
|
63
|
-
|
|
78
|
+
if (this._cachedCurrentSealerSecret) {
|
|
79
|
+
return this._cachedCurrentSealerSecret;
|
|
80
|
+
}
|
|
81
|
+
const sealerSecret = this.crypto.getAgentSealerSecret(this.agentSecret);
|
|
82
|
+
this._cachedCurrentSealerSecret = sealerSecret;
|
|
83
|
+
return sealerSecret;
|
|
64
84
|
}
|
|
65
85
|
}
|
|
66
86
|
export class ControlledAgent {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAgB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,UAAU,kCAAkC,CAChD,WAAwB,EACxB,MAAsB;IAEtB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC7C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE;QAC/C,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;SAChB;QACD,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAOD,MAAM,OAAO,UAEX,SAAQ,QAAc;IAGtB,cAAc;QACZ,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,qBAAqB,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;aACvB,MAAM,CAAC,CAAC,CAAC,EAAgB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;aACpD,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAC1C,CAAC;QAEJ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvC,OAAO,MAAM,CAAC,CAAC,CAAE,CAAC;IACpB,CAAC;IAED,YAAY,CAAC,CAAc;QACzB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;CACF;AAaD,cAAc;AACd,MAAM,OAAO,iBAAiB;
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/coValues/account.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { blake3 } from "@noble/hashes/blake3";
|
|
2
|
-
import {
|
|
2
|
+
import { PrivateTransaction, Transaction, TrustingTransaction } from "../coValueCore/verifiedState.js";
|
|
3
|
+
import { RawCoID, SessionID, TransactionID } from "../ids.js";
|
|
3
4
|
import { Stringified } from "../jsonStringify.js";
|
|
4
5
|
import { JsonValue } from "../jsonValue.js";
|
|
5
|
-
import { CryptoProvider, Encrypted, KeySecret, Sealed, SealerID, SealerSecret, Signature, SignerID, SignerSecret } from "./crypto.js";
|
|
6
|
+
import { CryptoProvider, Encrypted, KeyID, KeySecret, Sealed, SealerID, SealerSecret, SessionLogImpl, Signature, SignerID, SignerSecret } from "./crypto.js";
|
|
7
|
+
import { ControlledAccountOrAgent } from "../coValues/account.js";
|
|
6
8
|
type Blake3State = ReturnType<typeof blake3.create>;
|
|
7
9
|
/**
|
|
8
10
|
* Pure JavaScript implementation of the CryptoProvider interface using noble-curves and noble-ciphers libraries.
|
|
@@ -23,7 +25,7 @@ export declare class PureJSCrypto extends CryptoProvider<Blake3State> {
|
|
|
23
25
|
blake3IncrementalUpdate(state: Blake3State, data: Uint8Array): import("@noble/hashes/utils").HashXOF<import("@noble/hashes/utils").HashXOF<import("@noble/hashes/utils").HashXOF<any>>>;
|
|
24
26
|
blake3DigestForState(state: Blake3State): Uint8Array;
|
|
25
27
|
generateNonce(input: Uint8Array): Uint8Array;
|
|
26
|
-
|
|
28
|
+
generateJsonNonce(material: JsonValue): Uint8Array;
|
|
27
29
|
newEd25519SigningKey(): Uint8Array;
|
|
28
30
|
getSignerID(secret: SignerSecret): SignerID;
|
|
29
31
|
sign(secret: SignerSecret, message: JsonValue): Signature;
|
|
@@ -45,6 +47,32 @@ export declare class PureJSCrypto extends CryptoProvider<Blake3State> {
|
|
|
45
47
|
in: RawCoID;
|
|
46
48
|
tx: TransactionID;
|
|
47
49
|
}): T | undefined;
|
|
50
|
+
createSessionLog(coID: RawCoID, sessionID: SessionID, signerID: SignerID): SessionLogImpl;
|
|
51
|
+
}
|
|
52
|
+
export declare class PureJSSessionLog implements SessionLogImpl {
|
|
53
|
+
private readonly coID;
|
|
54
|
+
private readonly sessionID;
|
|
55
|
+
private readonly signerID;
|
|
56
|
+
private readonly crypto;
|
|
57
|
+
transactions: string[];
|
|
58
|
+
lastSignature: Signature | undefined;
|
|
59
|
+
streamingHash: Blake3State;
|
|
60
|
+
constructor(coID: RawCoID, sessionID: SessionID, signerID: SignerID, crypto: PureJSCrypto);
|
|
61
|
+
clone(): SessionLogImpl;
|
|
62
|
+
tryAdd(transactions: Transaction[], newSignature: Signature, skipVerify: boolean): void;
|
|
63
|
+
internalTryAdd(transactions: string[], newSignature: Signature, skipVerify: boolean): `signature_z${string}`;
|
|
64
|
+
expectedHashAfter(transactionsJson: string[]): string;
|
|
65
|
+
internalAddNewTransaction(transaction: string, signerAgent: ControlledAccountOrAgent): `signature_z${string}`;
|
|
66
|
+
addNewPrivateTransaction(signerAgent: ControlledAccountOrAgent, changes: JsonValue[], keyID: KeyID, keySecret: KeySecret, madeAt: number): {
|
|
67
|
+
signature: Signature;
|
|
68
|
+
transaction: PrivateTransaction;
|
|
69
|
+
};
|
|
70
|
+
addNewTrustingTransaction(signerAgent: ControlledAccountOrAgent, changes: JsonValue[], madeAt: number): {
|
|
71
|
+
signature: Signature;
|
|
72
|
+
transaction: TrustingTransaction;
|
|
73
|
+
};
|
|
74
|
+
decryptNextTransactionChangesJson(txIndex: number, keySecret: KeySecret): string;
|
|
75
|
+
free(): void;
|
|
48
76
|
}
|
|
49
77
|
export {};
|
|
50
78
|
//# sourceMappingURL=PureJSCrypto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PureJSCrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/PureJSCrypto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"PureJSCrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/PureJSCrypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,5 +99,117 @@ export class PureJSCrypto extends CryptoProvider {
|
|
|
99
99
|
return undefined;
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
+
createSessionLog(coID, sessionID, signerID) {
|
|
103
|
+
return new PureJSSessionLog(coID, sessionID, signerID, this);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
export class PureJSSessionLog {
|
|
107
|
+
constructor(coID, sessionID, signerID, crypto) {
|
|
108
|
+
this.coID = coID;
|
|
109
|
+
this.sessionID = sessionID;
|
|
110
|
+
this.signerID = signerID;
|
|
111
|
+
this.crypto = crypto;
|
|
112
|
+
this.transactions = [];
|
|
113
|
+
this.streamingHash = this.crypto.emptyBlake3State();
|
|
114
|
+
}
|
|
115
|
+
clone() {
|
|
116
|
+
const newLog = new PureJSSessionLog(this.coID, this.sessionID, this.signerID, this.crypto);
|
|
117
|
+
newLog.transactions = this.transactions.slice();
|
|
118
|
+
newLog.lastSignature = this.lastSignature;
|
|
119
|
+
newLog.streamingHash = this.crypto.cloneBlake3State(this.streamingHash);
|
|
120
|
+
return newLog;
|
|
121
|
+
}
|
|
122
|
+
tryAdd(transactions, newSignature, skipVerify) {
|
|
123
|
+
this.internalTryAdd(transactions.map((tx) => stableStringify(tx)), newSignature, skipVerify);
|
|
124
|
+
}
|
|
125
|
+
internalTryAdd(transactions, newSignature, skipVerify) {
|
|
126
|
+
if (!skipVerify) {
|
|
127
|
+
const checkHasher = this.crypto.cloneBlake3State(this.streamingHash);
|
|
128
|
+
for (const tx of transactions) {
|
|
129
|
+
checkHasher.update(textEncoder.encode(tx));
|
|
130
|
+
}
|
|
131
|
+
const newHash = checkHasher.digest();
|
|
132
|
+
const newHashEncoded = `hash_z${base58.encode(newHash)}`;
|
|
133
|
+
if (!this.crypto.verify(newSignature, newHashEncoded, this.signerID)) {
|
|
134
|
+
throw new Error("Signature verification failed");
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
for (const tx of transactions) {
|
|
138
|
+
this.crypto.blake3IncrementalUpdate(this.streamingHash, textEncoder.encode(tx));
|
|
139
|
+
this.transactions.push(tx);
|
|
140
|
+
}
|
|
141
|
+
this.lastSignature = newSignature;
|
|
142
|
+
return newSignature;
|
|
143
|
+
}
|
|
144
|
+
expectedHashAfter(transactionsJson) {
|
|
145
|
+
const hasher = this.crypto.cloneBlake3State(this.streamingHash);
|
|
146
|
+
for (const tx of transactionsJson) {
|
|
147
|
+
hasher.update(textEncoder.encode(tx));
|
|
148
|
+
}
|
|
149
|
+
const newHash = hasher.digest();
|
|
150
|
+
return `hash_z${base58.encode(newHash)}`;
|
|
151
|
+
}
|
|
152
|
+
internalAddNewTransaction(transaction, signerAgent) {
|
|
153
|
+
this.crypto.blake3IncrementalUpdate(this.streamingHash, textEncoder.encode(transaction));
|
|
154
|
+
const newHash = this.crypto.blake3DigestForState(this.streamingHash);
|
|
155
|
+
const newHashEncoded = `hash_z${base58.encode(newHash)}`;
|
|
156
|
+
const signature = this.crypto.sign(signerAgent.currentSignerSecret(), newHashEncoded);
|
|
157
|
+
this.transactions.push(transaction);
|
|
158
|
+
this.lastSignature = signature;
|
|
159
|
+
return signature;
|
|
160
|
+
}
|
|
161
|
+
addNewPrivateTransaction(signerAgent, changes, keyID, keySecret, madeAt) {
|
|
162
|
+
const encryptedChanges = this.crypto.encrypt(changes, keySecret, {
|
|
163
|
+
in: this.coID,
|
|
164
|
+
tx: { sessionID: this.sessionID, txIndex: this.transactions.length },
|
|
165
|
+
});
|
|
166
|
+
const tx = {
|
|
167
|
+
encryptedChanges: encryptedChanges,
|
|
168
|
+
madeAt: madeAt,
|
|
169
|
+
privacy: "private",
|
|
170
|
+
keyUsed: keyID,
|
|
171
|
+
};
|
|
172
|
+
const signature = this.internalAddNewTransaction(stableStringify(tx), signerAgent);
|
|
173
|
+
return {
|
|
174
|
+
signature: signature,
|
|
175
|
+
transaction: tx,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
addNewTrustingTransaction(signerAgent, changes, madeAt) {
|
|
179
|
+
const tx = {
|
|
180
|
+
changes: stableStringify(changes),
|
|
181
|
+
madeAt: madeAt,
|
|
182
|
+
privacy: "trusting",
|
|
183
|
+
};
|
|
184
|
+
const signature = this.internalAddNewTransaction(stableStringify(tx), signerAgent);
|
|
185
|
+
return {
|
|
186
|
+
signature: signature,
|
|
187
|
+
transaction: tx,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
decryptNextTransactionChangesJson(txIndex, keySecret) {
|
|
191
|
+
const txJson = this.transactions[txIndex];
|
|
192
|
+
if (!txJson) {
|
|
193
|
+
throw new Error("Transaction not found");
|
|
194
|
+
}
|
|
195
|
+
const tx = JSON.parse(txJson);
|
|
196
|
+
if (tx.privacy === "private") {
|
|
197
|
+
const nOnceMaterial = {
|
|
198
|
+
in: this.coID,
|
|
199
|
+
tx: { sessionID: this.sessionID, txIndex: txIndex },
|
|
200
|
+
};
|
|
201
|
+
const nOnce = this.crypto.generateJsonNonce(nOnceMaterial);
|
|
202
|
+
const ciphertext = base64URLtoBytes(tx.encryptedChanges.substring("encrypted_U".length));
|
|
203
|
+
const keySecretBytes = base58.decode(keySecret.substring("keySecret_z".length));
|
|
204
|
+
const plaintext = xsalsa20(keySecretBytes, nOnce, ciphertext);
|
|
205
|
+
return textDecoder.decode(plaintext);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
return tx.changes;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
free() {
|
|
212
|
+
// no-op
|
|
213
|
+
}
|
|
102
214
|
}
|
|
103
215
|
//# sourceMappingURL=PureJSCrypto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PureJSCrypto.js","sourceRoot":"","sources":["../../src/crypto/PureJSCrypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"PureJSCrypto.js","sourceRoot":"","sources":["../../src/crypto/PureJSCrypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { Blake3Hasher } from "
|
|
2
|
-
import { RawCoID, TransactionID } from "../ids.js";
|
|
1
|
+
import { SessionLog, Blake3Hasher } from "cojson-core-wasm";
|
|
2
|
+
import { RawCoID, SessionID, TransactionID } from "../ids.js";
|
|
3
3
|
import { Stringified } from "../jsonStringify.js";
|
|
4
4
|
import { JsonValue } from "../jsonValue.js";
|
|
5
5
|
import { PureJSCrypto } from "./PureJSCrypto.js";
|
|
6
|
-
import { CryptoProvider, Encrypted, KeySecret, Sealed, SealerID, SealerSecret, Signature, SignerID, SignerSecret } from "./crypto.js";
|
|
6
|
+
import { CryptoProvider, Encrypted, KeyID, KeySecret, Sealed, SealerID, SealerSecret, Signature, SignerID, SignerSecret } from "./crypto.js";
|
|
7
|
+
import { ControlledAccountOrAgent } from "../coValues/account.js";
|
|
8
|
+
import { PrivateTransaction, Transaction, TrustingTransaction } from "../coValueCore/verifiedState.js";
|
|
7
9
|
type Blake3State = Blake3Hasher;
|
|
8
10
|
/**
|
|
9
|
-
* WebAssembly implementation of the CryptoProvider interface using
|
|
11
|
+
* WebAssembly implementation of the CryptoProvider interface using cojson-core-wasm.
|
|
10
12
|
* This provides the primary implementation using WebAssembly for optimal performance, offering:
|
|
11
13
|
* - Signing/verifying (Ed25519)
|
|
12
14
|
* - Encryption/decryption (XSalsa20)
|
|
@@ -45,6 +47,23 @@ export declare class WasmCrypto extends CryptoProvider<Blake3State> {
|
|
|
45
47
|
in: RawCoID;
|
|
46
48
|
tx: TransactionID;
|
|
47
49
|
}): T | undefined;
|
|
50
|
+
createSessionLog(coID: RawCoID, sessionID: SessionID, signerID: SignerID): SessionLogAdapter;
|
|
51
|
+
}
|
|
52
|
+
declare class SessionLogAdapter {
|
|
53
|
+
private readonly sessionLog;
|
|
54
|
+
constructor(sessionLog: SessionLog);
|
|
55
|
+
tryAdd(transactions: Transaction[], newSignature: Signature, skipVerify: boolean): void;
|
|
56
|
+
addNewPrivateTransaction(signerAgent: ControlledAccountOrAgent, changes: JsonValue[], keyID: KeyID, keySecret: KeySecret, madeAt: number): {
|
|
57
|
+
signature: Signature;
|
|
58
|
+
transaction: PrivateTransaction;
|
|
59
|
+
};
|
|
60
|
+
addNewTrustingTransaction(signerAgent: ControlledAccountOrAgent, changes: JsonValue[], madeAt: number): {
|
|
61
|
+
signature: Signature;
|
|
62
|
+
transaction: TrustingTransaction;
|
|
63
|
+
};
|
|
64
|
+
decryptNextTransactionChangesJson(txIndex: number, keySecret: KeySecret): string;
|
|
65
|
+
free(): void;
|
|
66
|
+
clone(): SessionLogAdapter;
|
|
48
67
|
}
|
|
49
68
|
export {};
|
|
50
69
|
//# sourceMappingURL=WasmCrypto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WasmCrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/WasmCrypto.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"WasmCrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/WasmCrypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { blake3_empty_state, blake3_hash_once, blake3_hash_once_with_context, decrypt, encrypt, get_sealer_id, get_signer_id,
|
|
1
|
+
import { SessionLog, initialize, blake3_empty_state, blake3_hash_once, blake3_hash_once_with_context, decrypt, encrypt, get_sealer_id, get_signer_id, new_ed25519_signing_key, new_x25519_private_key, seal, sign, unseal, verify, } from "cojson-core-wasm";
|
|
2
2
|
import { base64URLtoBytes, bytesToBase64url } from "../base64url.js";
|
|
3
3
|
import { stableStringify } from "../jsonStringify.js";
|
|
4
4
|
import { logger } from "../logger.js";
|
|
5
5
|
import { PureJSCrypto } from "./PureJSCrypto.js";
|
|
6
6
|
import { CryptoProvider, textDecoder, textEncoder, } from "./crypto.js";
|
|
7
7
|
/**
|
|
8
|
-
* WebAssembly implementation of the CryptoProvider interface using
|
|
8
|
+
* WebAssembly implementation of the CryptoProvider interface using cojson-core-wasm.
|
|
9
9
|
* This provides the primary implementation using WebAssembly for optimal performance, offering:
|
|
10
10
|
* - Signing/verifying (Ed25519)
|
|
11
11
|
* - Encryption/decryption (XSalsa20)
|
|
@@ -83,5 +83,47 @@ export class WasmCrypto extends CryptoProvider {
|
|
|
83
83
|
return undefined;
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
+
createSessionLog(coID, sessionID, signerID) {
|
|
87
|
+
return new SessionLogAdapter(new SessionLog(coID, sessionID, signerID));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
class SessionLogAdapter {
|
|
91
|
+
constructor(sessionLog) {
|
|
92
|
+
this.sessionLog = sessionLog;
|
|
93
|
+
}
|
|
94
|
+
tryAdd(transactions, newSignature, skipVerify) {
|
|
95
|
+
this.sessionLog.tryAdd(transactions.map((tx) => stableStringify(tx)), newSignature, skipVerify);
|
|
96
|
+
}
|
|
97
|
+
addNewPrivateTransaction(signerAgent, changes, keyID, keySecret, madeAt) {
|
|
98
|
+
const output = this.sessionLog.addNewPrivateTransaction(stableStringify(changes), signerAgent.currentSignerSecret(), keySecret, keyID, madeAt);
|
|
99
|
+
const parsedOutput = JSON.parse(output);
|
|
100
|
+
const transaction = {
|
|
101
|
+
privacy: "private",
|
|
102
|
+
madeAt,
|
|
103
|
+
encryptedChanges: parsedOutput.encrypted_changes,
|
|
104
|
+
keyUsed: keyID,
|
|
105
|
+
};
|
|
106
|
+
return { signature: parsedOutput.signature, transaction };
|
|
107
|
+
}
|
|
108
|
+
addNewTrustingTransaction(signerAgent, changes, madeAt) {
|
|
109
|
+
const stringifiedChanges = stableStringify(changes);
|
|
110
|
+
const output = this.sessionLog.addNewTrustingTransaction(stringifiedChanges, signerAgent.currentSignerSecret(), madeAt);
|
|
111
|
+
const transaction = {
|
|
112
|
+
privacy: "trusting",
|
|
113
|
+
madeAt,
|
|
114
|
+
changes: stringifiedChanges,
|
|
115
|
+
};
|
|
116
|
+
return { signature: output, transaction };
|
|
117
|
+
}
|
|
118
|
+
decryptNextTransactionChangesJson(txIndex, keySecret) {
|
|
119
|
+
const output = this.sessionLog.decryptNextTransactionChangesJson(txIndex, keySecret);
|
|
120
|
+
return output;
|
|
121
|
+
}
|
|
122
|
+
free() {
|
|
123
|
+
this.sessionLog.free();
|
|
124
|
+
}
|
|
125
|
+
clone() {
|
|
126
|
+
return new SessionLogAdapter(this.sessionLog.clone());
|
|
127
|
+
}
|
|
86
128
|
}
|
|
87
129
|
//# sourceMappingURL=WasmCrypto.js.map
|