@brightchain/brightchain-lib 0.2.1 → 0.3.0
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/package.json +1 -1
- package/src/lib/documents/base/document.d.ts.map +1 -1
- package/src/lib/documents/base/document.js +12 -5
- package/src/lib/documents/base/document.js.map +1 -1
- package/src/lib/interfaces/storage/blockStore.d.ts +59 -0
- package/src/lib/interfaces/storage/blockStore.d.ts.map +1 -1
- package/src/lib/interfaces/storage/cblWhitening.d.ts +76 -0
- package/src/lib/interfaces/storage/cblWhitening.d.ts.map +1 -0
- package/src/lib/interfaces/storage/cblWhitening.js +3 -0
- package/src/lib/interfaces/storage/cblWhitening.js.map +1 -0
- package/src/lib/interfaces/storage/index.d.ts +1 -0
- package/src/lib/interfaces/storage/index.d.ts.map +1 -1
- package/src/lib/services/blockService.d.ts +2 -1
- package/src/lib/services/blockService.d.ts.map +1 -1
- package/src/lib/services/blockService.js +7 -10
- package/src/lib/services/blockService.js.map +1 -1
- package/src/lib/services/tuple.service.d.ts.map +1 -1
- package/src/lib/services/tuple.service.js +17 -30
- package/src/lib/services/tuple.service.js.map +1 -1
- package/src/lib/services/xor.d.ts +24 -9
- package/src/lib/services/xor.d.ts.map +1 -1
- package/src/lib/services/xor.js +63 -14
- package/src/lib/services/xor.js.map +1 -1
- package/src/lib/stores/blockStoreAdapter.d.ts +5 -0
- package/src/lib/stores/blockStoreAdapter.d.ts.map +1 -1
- package/src/lib/stores/blockStoreAdapter.js +13 -0
- package/src/lib/stores/blockStoreAdapter.js.map +1 -1
- package/src/lib/stores/memoryBlockStore.d.ts +68 -0
- package/src/lib/stores/memoryBlockStore.d.ts.map +1 -1
- package/src/lib/stores/memoryBlockStore.js +298 -12
- package/src/lib/stores/memoryBlockStore.js.map +1 -1
- package/src/lib/utils/index.d.ts +11 -0
- package/src/lib/utils/index.d.ts.map +1 -1
- package/src/lib/utils/index.js +14 -0
- package/src/lib/utils/index.js.map +1 -1
- package/src/lib/utils/xorUtils.d.ts +46 -0
- package/src/lib/utils/xorUtils.d.ts.map +1 -0
- package/src/lib/utils/xorUtils.js +98 -0
- package/src/lib/utils/xorUtils.js.map +1 -0
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/documents/base/document.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/documents/base/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ const documentErrorType_1 = require("../../enumerations/documentErrorType");
|
|
|
6
6
|
const document_1 = require("../../errors/document");
|
|
7
7
|
const notImplemented_1 = require("../../errors/notImplemented");
|
|
8
8
|
const serviceLocator_1 = require("../../services/serviceLocator");
|
|
9
|
+
const xor_1 = require("../../services/xor");
|
|
9
10
|
/**
|
|
10
11
|
* Unified Document base class combining schema validation, serialization, and convertible patterns
|
|
11
12
|
* Built for BrightChain's owner-free filesystem blockstore
|
|
@@ -221,13 +222,19 @@ class Document {
|
|
|
221
222
|
await serviceLocator_1.ServiceLocator.getServiceProvider().blockService.processFileInChunks(json, false, constants_1.TUPLE.SIZE, async (chunkDatas) => {
|
|
222
223
|
if (firstBlock) {
|
|
223
224
|
xorResult.set(chunkDatas[0].subarray(0, blockSize), 0);
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
225
|
+
firstBlock = false;
|
|
226
|
+
// XOR remaining chunks if any
|
|
227
|
+
if (chunkDatas.length > 1) {
|
|
228
|
+
const remaining = chunkDatas.slice(1);
|
|
229
|
+
const xored = xor_1.XorService.xorMultiple([xorResult, ...remaining]);
|
|
230
|
+
xorResult.set(xored);
|
|
228
231
|
}
|
|
229
232
|
}
|
|
230
|
-
|
|
233
|
+
else {
|
|
234
|
+
// XOR all chunks with current result
|
|
235
|
+
const xored = xor_1.XorService.xorMultiple([xorResult, ...chunkDatas]);
|
|
236
|
+
xorResult.set(xored);
|
|
237
|
+
}
|
|
231
238
|
});
|
|
232
239
|
}
|
|
233
240
|
async load() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/documents/base/document.ts"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,4EAAyE;AACzE,oDAAsD;AACtD,gEAAkE;AAQlE,kEAA+D;
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/documents/base/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { RawDataBlock } from '../../blocks/rawData';
|
|
|
4
4
|
import { BlockSize } from '../../enumerations/blockSize';
|
|
5
5
|
import { Checksum } from '../../types/checksum';
|
|
6
6
|
import { BlockStoreOptions, BrightenResult, IBlockMetadata, RecoveryResult } from './blockMetadata';
|
|
7
|
+
import { CBLMagnetComponents, CBLStorageResult, CBLWhiteningOptions } from './cblWhitening';
|
|
7
8
|
/**
|
|
8
9
|
* Base interface for block storage operations with FEC durability and replication support.
|
|
9
10
|
*
|
|
@@ -125,5 +126,63 @@ export interface IBlockStore {
|
|
|
125
126
|
* @throws StoreError if insufficient random blocks are available
|
|
126
127
|
*/
|
|
127
128
|
brightenBlock(key: Checksum | string, randomBlockCount: number): Promise<BrightenResult>;
|
|
129
|
+
/**
|
|
130
|
+
* Store a CBL with XOR whitening for Owner-Free storage.
|
|
131
|
+
*
|
|
132
|
+
* This method:
|
|
133
|
+
* 1. Generates a cryptographically random block (R) of the same size as the CBL
|
|
134
|
+
* 2. XORs the CBL with R to produce the second block (CBL XOR R)
|
|
135
|
+
* 3. Stores both blocks separately
|
|
136
|
+
* 4. Generates parity blocks if durability options specify redundancy
|
|
137
|
+
* 5. Returns the IDs and a magnet URL for reconstruction
|
|
138
|
+
*
|
|
139
|
+
* Note: Due to XOR commutativity, the order of blocks doesn't matter for reconstruction.
|
|
140
|
+
*
|
|
141
|
+
* @param cblData - The original CBL data as Uint8Array
|
|
142
|
+
* @param options - Optional storage options (durability, expiration, encryption flag)
|
|
143
|
+
* @returns Result containing block IDs, parity IDs (if any), and magnet URL
|
|
144
|
+
* @throws StoreError if storage fails
|
|
145
|
+
*/
|
|
146
|
+
storeCBLWithWhitening(cblData: Uint8Array, options?: CBLWhiteningOptions): Promise<CBLStorageResult>;
|
|
147
|
+
/**
|
|
148
|
+
* Retrieve and reconstruct a CBL from its whitened components.
|
|
149
|
+
*
|
|
150
|
+
* This method:
|
|
151
|
+
* 1. Retrieves both blocks (using parity recovery if needed)
|
|
152
|
+
* 2. XORs the blocks to reconstruct the original CBL
|
|
153
|
+
* 3. Validates the reconstructed CBL format (unless encrypted)
|
|
154
|
+
*
|
|
155
|
+
* Note: Due to XOR commutativity, the order of block IDs doesn't matter.
|
|
156
|
+
*
|
|
157
|
+
* @param blockId1 - First block ID (Checksum or hex string)
|
|
158
|
+
* @param blockId2 - Second block ID (Checksum or hex string)
|
|
159
|
+
* @param block1ParityIds - Optional parity block IDs for block 1 recovery
|
|
160
|
+
* @param block2ParityIds - Optional parity block IDs for block 2 recovery
|
|
161
|
+
* @returns The original CBL data as Uint8Array
|
|
162
|
+
* @throws StoreError if either block is not found or reconstruction fails
|
|
163
|
+
*/
|
|
164
|
+
retrieveCBL(blockId1: Checksum | string, blockId2: Checksum | string, block1ParityIds?: string[], block2ParityIds?: string[]): Promise<Uint8Array>;
|
|
165
|
+
/**
|
|
166
|
+
* Parse a whitened CBL magnet URL and extract component IDs.
|
|
167
|
+
*
|
|
168
|
+
* Expected format: magnet:?xt=urn:brightchain:cbl&bs=<block_size>&b1=<id>&b2=<id>[&p1=<parity_ids>][&p2=<parity_ids>][&enc=1]
|
|
169
|
+
*
|
|
170
|
+
* @param magnetUrl - The magnet URL to parse
|
|
171
|
+
* @returns Object containing block IDs, block size, parity IDs (if any), and encryption flag
|
|
172
|
+
* @throws Error if the URL format is invalid
|
|
173
|
+
*/
|
|
174
|
+
parseCBLMagnetUrl(magnetUrl: string): CBLMagnetComponents;
|
|
175
|
+
/**
|
|
176
|
+
* Generate a magnet URL for a whitened CBL.
|
|
177
|
+
*
|
|
178
|
+
* @param blockId1 - First block ID (Checksum or hex string)
|
|
179
|
+
* @param blockId2 - Second block ID (Checksum or hex string)
|
|
180
|
+
* @param blockSize - Block size in bytes
|
|
181
|
+
* @param block1ParityIds - Optional parity block IDs for block 1
|
|
182
|
+
* @param block2ParityIds - Optional parity block IDs for block 2
|
|
183
|
+
* @param isEncrypted - Whether the CBL is encrypted
|
|
184
|
+
* @returns The magnet URL string
|
|
185
|
+
*/
|
|
186
|
+
generateCBLMagnetUrl(blockId1: Checksum | string, blockId2: Checksum | string, blockSize: number, block1ParityIds?: string[], block2ParityIds?: string[], isEncrypted?: boolean): string;
|
|
128
187
|
}
|
|
129
188
|
//# sourceMappingURL=blockStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockStore.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/storage/blockStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"blockStore.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/storage/blockStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { BlockStoreOptions } from './blockMetadata';
|
|
2
|
+
/**
|
|
3
|
+
* Result of storing a CBL with XOR whitening.
|
|
4
|
+
* Contains the IDs of both XOR components and a magnet URL for reconstruction.
|
|
5
|
+
*/
|
|
6
|
+
export interface CBLStorageResult {
|
|
7
|
+
/**
|
|
8
|
+
* First block ID - one of the XOR components (hex string)
|
|
9
|
+
*/
|
|
10
|
+
blockId1: string;
|
|
11
|
+
/**
|
|
12
|
+
* Second block ID - the other XOR component (hex string)
|
|
13
|
+
*/
|
|
14
|
+
blockId2: string;
|
|
15
|
+
/**
|
|
16
|
+
* The block size used for storage
|
|
17
|
+
*/
|
|
18
|
+
blockSize: number;
|
|
19
|
+
/**
|
|
20
|
+
* The magnet URL for reconstruction
|
|
21
|
+
*/
|
|
22
|
+
magnetUrl: string;
|
|
23
|
+
/**
|
|
24
|
+
* Parity block IDs for block 1 (if FEC redundancy enabled)
|
|
25
|
+
*/
|
|
26
|
+
block1ParityIds?: string[];
|
|
27
|
+
/**
|
|
28
|
+
* Parity block IDs for block 2 (if FEC redundancy enabled)
|
|
29
|
+
*/
|
|
30
|
+
block2ParityIds?: string[];
|
|
31
|
+
/**
|
|
32
|
+
* Whether the CBL is encrypted
|
|
33
|
+
*/
|
|
34
|
+
isEncrypted?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Components extracted from a whitened CBL magnet URL.
|
|
38
|
+
* Contains the block IDs, block size, parity IDs, and encryption flag.
|
|
39
|
+
*/
|
|
40
|
+
export interface CBLMagnetComponents {
|
|
41
|
+
/**
|
|
42
|
+
* First block ID (hex string)
|
|
43
|
+
*/
|
|
44
|
+
blockId1: string;
|
|
45
|
+
/**
|
|
46
|
+
* Second block ID (hex string)
|
|
47
|
+
*/
|
|
48
|
+
blockId2: string;
|
|
49
|
+
/**
|
|
50
|
+
* Block size in bytes
|
|
51
|
+
*/
|
|
52
|
+
blockSize: number;
|
|
53
|
+
/**
|
|
54
|
+
* Parity block IDs for block 1 (if present in URL)
|
|
55
|
+
*/
|
|
56
|
+
block1ParityIds?: string[];
|
|
57
|
+
/**
|
|
58
|
+
* Parity block IDs for block 2 (if present in URL)
|
|
59
|
+
*/
|
|
60
|
+
block2ParityIds?: string[];
|
|
61
|
+
/**
|
|
62
|
+
* Whether the CBL is encrypted
|
|
63
|
+
*/
|
|
64
|
+
isEncrypted: boolean;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Options for CBL whitening storage operations.
|
|
68
|
+
* Extends BlockStoreOptions with encryption flag.
|
|
69
|
+
*/
|
|
70
|
+
export interface CBLWhiteningOptions extends BlockStoreOptions {
|
|
71
|
+
/**
|
|
72
|
+
* Whether the CBL data is encrypted
|
|
73
|
+
*/
|
|
74
|
+
isEncrypted?: boolean;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=cblWhitening.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cblWhitening.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/storage/cblWhitening.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cblWhitening.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/storage/cblWhitening.ts"],"names":[],"mappings":""}
|
|
@@ -3,5 +3,6 @@ export { createDefaultBlockMetadata } from './blockMetadata';
|
|
|
3
3
|
export type * from './blockMetadataStore';
|
|
4
4
|
export type * from './blockStore';
|
|
5
5
|
export type * from './cblStore';
|
|
6
|
+
export type * from './cblWhitening';
|
|
6
7
|
export type * from './universalBlockStore';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/storage/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,iBAAiB,CAAC;AACrC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,mBAAmB,sBAAsB,CAAC;AAC1C,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,YAAY,CAAC;AAChC,mBAAmB,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/storage/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,iBAAiB,CAAC;AACrC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,mBAAmB,sBAAsB,CAAC;AAC1C,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,YAAY,CAAC;AAChC,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,uBAAuB,CAAC"}
|
|
@@ -84,7 +84,8 @@ export declare class BlockService<TID extends PlatformID = Uint8Array> {
|
|
|
84
84
|
*/
|
|
85
85
|
encryptMultiple(newBlockType: BlockType, block: EphemeralBlock<TID>, recipients: Member<TID>[]): Promise<IEncryptedBlock<TID>>;
|
|
86
86
|
/**
|
|
87
|
-
* XOR a single block with all whiteners
|
|
87
|
+
* XOR a single block with all whiteners using XorService.
|
|
88
|
+
* All arrays must be equal length for proper whitening.
|
|
88
89
|
*/
|
|
89
90
|
xorBlockWithWhiteners(block: Uint8Array, whiteners: (Uint8Array | RandomBlock | RawDataBlock)[]): Uint8Array;
|
|
90
91
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockService.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,MAAM,EACN,UAAU,EACX,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAG1E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAuB,MAAM,2BAA2B,CAAC;AAK3E,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"blockService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockService.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ const blockServiceError_1 = require("../errors/blockServiceError");
|
|
|
23
23
|
const eciesError_1 = require("../errors/eciesError");
|
|
24
24
|
const serviceLocator_1 = require("../services/serviceLocator");
|
|
25
25
|
const validator_1 = require("../utils/validator");
|
|
26
|
+
const xor_1 = require("./xor");
|
|
26
27
|
/**
|
|
27
28
|
* Browser-compatible BlockService with core functionality
|
|
28
29
|
*/
|
|
@@ -266,21 +267,17 @@ class BlockService {
|
|
|
266
267
|
}
|
|
267
268
|
}
|
|
268
269
|
/**
|
|
269
|
-
* XOR a single block with all whiteners
|
|
270
|
+
* XOR a single block with all whiteners using XorService.
|
|
271
|
+
* All arrays must be equal length for proper whitening.
|
|
270
272
|
*/
|
|
271
273
|
xorBlockWithWhiteners(block, whiteners) {
|
|
272
274
|
if (whiteners.length === 0) {
|
|
273
275
|
throw new blockServiceError_1.BlockServiceError(blockServiceErrorType_1.BlockServiceErrorType.NoWhitenersProvided);
|
|
274
276
|
}
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
for (let j = 0; j < data.length; j++) {
|
|
280
|
-
xorBlock[j] = xorBlock[j] ^ data[j];
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
return xorBlock;
|
|
277
|
+
// Convert all whiteners to Uint8Array
|
|
278
|
+
const whitenerArrays = whiteners.map((whitener) => whitener instanceof Uint8Array ? whitener : whitener.data);
|
|
279
|
+
// Use XorService.xorMultiple for consolidated XOR operation
|
|
280
|
+
return xor_1.XorService.xorMultiple([block, ...whitenerArrays]);
|
|
284
281
|
}
|
|
285
282
|
/**
|
|
286
283
|
* Generate whiteners for browser use
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockService.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blockService.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tuple.service.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/tuple.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"tuple.service.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/tuple.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAItD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAEzD,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC;IAG9C;;OAEG;YACW,YAAY;IAkB1B;;;;;;;;OAQG;IACU,wBAAwB,CACnC,WAAW,EAAE,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,EAChD,SAAS,EAAE,CAAC,aAAa,GAAG,WAAW,CAAC,EAAE,EAC1C,YAAY,EAAE,WAAW,EAAE,GAC1B,OAAO,CAAC,aAAa,CAAC;IAiFzB;;OAEG;IACU,sBAAsB,CACjC,WAAW,EAAE,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,EAChD,SAAS,EAAE,CAAC,aAAa,GAAG,WAAW,CAAC,EAAE,EAC1C,YAAY,EAAE,WAAW,EAAE,GAC1B,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAczC;;;;;;;;OAQG;IACU,2BAA2B,CACtC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,kBAAkB,EAAE,aAAa,EACjC,SAAS,EAAE,aAAa,EAAE,EAC1B,YAAY,GAAE,WAAW,EAAO,GAC/B,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IA+FhC;;OAEG;IACU,oBAAoB,CAC/B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,kBAAkB,EAAE,aAAa,EACjC,SAAS,EAAE,aAAa,EAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC;IAU9B;;OAEG;IACU,qBAAqB,CAChC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,aAAa,EAAE,GACzB,OAAO,CAAC,yBAAyB,CAAC;IAarC;;OAEG;IACU,8BAA8B,CACzC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,aAAa,EAAE,GACzB,OAAO,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;IA0B1C;;;;;;;;;;;OAWG;IACU,iCAAiC,CAC5C,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,QAAQ,EAChB,YAAY,EAAE,MAAM,EACpB,mBAAmB,EAAE,MAAM,aAAa,GAAG,SAAS,EACpD,iBAAiB,EAAE,MAAM,WAAW,EACpC,YAAY,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,GACzD,OAAO,CAAC,kBAAkB,CAAC;IAkJ9B;;;;;;;;;;;OAWG;IACU,iCAAiC,CAC5C,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,QAAQ,EAChB,YAAY,EAAE,MAAM,EACpB,mBAAmB,EAAE,MAAM,aAAa,GAAG,SAAS,EACpD,iBAAiB,EAAE,MAAM,WAAW,EACpC,YAAY,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,GACzD,OAAO,CAAC,kBAAkB,CAAC;IAsJ9B;;;;;OAKG;IACI,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;CAQvD"}
|
|
@@ -7,7 +7,6 @@ const encrypted_1 = require("../blocks/encrypted");
|
|
|
7
7
|
const ephemeral_1 = require("../blocks/ephemeral");
|
|
8
8
|
const memoryTuple_1 = require("../blocks/memoryTuple");
|
|
9
9
|
const whitened_1 = require("../blocks/whitened");
|
|
10
|
-
const browserCrypto_1 = require("../browserCrypto");
|
|
11
10
|
const constants_1 = require("../constants");
|
|
12
11
|
const blockDataType_1 = require("../enumerations/blockDataType");
|
|
13
12
|
const blockEncryptionType_1 = require("../enumerations/blockEncryptionType");
|
|
@@ -17,6 +16,7 @@ const tupleError_1 = require("../errors/tupleError");
|
|
|
17
16
|
const primeTupleGeneratorStream_1 = require("../primeTupleGeneratorStream");
|
|
18
17
|
const validator_1 = require("../utils/validator");
|
|
19
18
|
const serviceLocator_1 = require("./serviceLocator");
|
|
19
|
+
const xor_1 = require("./xor");
|
|
20
20
|
/**
|
|
21
21
|
* TupleService provides utility functions for working with block tuples.
|
|
22
22
|
* In the Owner Free Filesystem (OFF), tuples are used to:
|
|
@@ -78,28 +78,26 @@ class TupleService {
|
|
|
78
78
|
// Create a padded buffer initialized to zeros
|
|
79
79
|
const paddedData = new Uint8Array(sourceBlock.blockSize);
|
|
80
80
|
paddedData.set(sourceData);
|
|
81
|
-
//
|
|
82
|
-
const
|
|
83
|
-
//
|
|
81
|
+
// Collect all arrays to XOR together
|
|
82
|
+
const arraysToXor = [paddedData];
|
|
83
|
+
// Add whitening blocks
|
|
84
84
|
for (const whitener of whiteners) {
|
|
85
85
|
if (whitener.blockSize !== sourceBlock.blockSize) {
|
|
86
86
|
throw new tupleError_1.TupleError(tupleErrorType_1.TupleErrorType.BlockSizeMismatch);
|
|
87
87
|
}
|
|
88
88
|
const whitenerData = await this.toUint8Array(whitener.data);
|
|
89
|
-
|
|
90
|
-
xoredData[i] ^= whitenerData[i];
|
|
91
|
-
}
|
|
89
|
+
arraysToXor.push(whitenerData);
|
|
92
90
|
}
|
|
93
|
-
//
|
|
91
|
+
// Add random blocks
|
|
94
92
|
for (const random of randomBlocks) {
|
|
95
93
|
if (random.blockSize !== sourceBlock.blockSize) {
|
|
96
94
|
throw new tupleError_1.TupleError(tupleErrorType_1.TupleErrorType.BlockSizeMismatch);
|
|
97
95
|
}
|
|
98
96
|
const randomData = await this.toUint8Array(random.data);
|
|
99
|
-
|
|
100
|
-
xoredData[i] ^= randomData[i];
|
|
101
|
-
}
|
|
97
|
+
arraysToXor.push(randomData);
|
|
102
98
|
}
|
|
99
|
+
// XOR all arrays together using XorService
|
|
100
|
+
const xoredData = xor_1.XorService.xorMultiple(arraysToXor);
|
|
103
101
|
// Create whitened block with preserved length metadata
|
|
104
102
|
const now = new Date();
|
|
105
103
|
// Access metadata safely - it may not exist on all block types
|
|
@@ -147,19 +145,19 @@ class TupleService {
|
|
|
147
145
|
validator_1.Validator.validateRequired(primeWhitenedBlock, 'primeWhitenedBlock', 'xorDestPrimeWhitenedToOwned');
|
|
148
146
|
validator_1.Validator.validateRequired(whiteners, 'whiteners', 'xorDestPrimeWhitenedToOwned');
|
|
149
147
|
try {
|
|
150
|
-
//
|
|
151
|
-
const result = (0, browserCrypto_1.randomBytes)(primeWhitenedBlock.blockSize);
|
|
152
|
-
// Get all block data upfront and ensure they're padded
|
|
148
|
+
// Get all block data upfront and ensure they're padded to block size
|
|
153
149
|
const primeData = await this.toUint8Array(primeWhitenedBlock.data);
|
|
150
|
+
const paddedPrimeData = new Uint8Array(primeWhitenedBlock.blockSize);
|
|
151
|
+
paddedPrimeData.set(primeData.subarray(0, Math.min(primeData.length, primeWhitenedBlock.blockSize)));
|
|
154
152
|
const whitenerData = await Promise.all(whiteners.map(async (w) => {
|
|
155
153
|
const data = await this.toUint8Array(w.data);
|
|
156
|
-
const padded =
|
|
154
|
+
const padded = new Uint8Array(primeWhitenedBlock.blockSize);
|
|
157
155
|
padded.set(data.subarray(0, Math.min(data.length, primeWhitenedBlock.blockSize)));
|
|
158
156
|
return padded;
|
|
159
157
|
}));
|
|
160
158
|
const randomData = await Promise.all(randomBlocks.map(async (r) => {
|
|
161
159
|
const data = await this.toUint8Array(r.data);
|
|
162
|
-
const padded =
|
|
160
|
+
const padded = new Uint8Array(primeWhitenedBlock.blockSize);
|
|
163
161
|
padded.set(data.subarray(0, Math.min(data.length, primeWhitenedBlock.blockSize)));
|
|
164
162
|
return padded;
|
|
165
163
|
}));
|
|
@@ -169,20 +167,9 @@ class TupleService {
|
|
|
169
167
|
throw new tupleError_1.TupleError(tupleErrorType_1.TupleErrorType.BlockSizeMismatch);
|
|
170
168
|
}
|
|
171
169
|
});
|
|
172
|
-
//
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
for (const data of whitenerData) {
|
|
176
|
-
for (let i = 0; i < primeWhitenedBlock.blockSize; i++) {
|
|
177
|
-
result[i] ^= data[i];
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
// XOR with random blocks
|
|
181
|
-
for (const data of randomData) {
|
|
182
|
-
for (let i = 0; i < primeWhitenedBlock.blockSize; i++) {
|
|
183
|
-
result[i] ^= data[i];
|
|
184
|
-
}
|
|
185
|
-
}
|
|
170
|
+
// XOR all arrays together using XorService
|
|
171
|
+
const arraysToXor = [paddedPrimeData, ...whitenerData, ...randomData];
|
|
172
|
+
const result = xor_1.XorService.xorMultiple(arraysToXor);
|
|
186
173
|
// Create owned data block with preserved length metadata
|
|
187
174
|
const checksum = this.checksumService.calculateChecksum(result);
|
|
188
175
|
const now = new Date();
|