@brightchain/brightchain-lib 0.2.0 → 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/blockPaddingTransform.d.ts.map +1 -1
- package/src/lib/blockPaddingTransform.js +7 -3
- package/src/lib/blockPaddingTransform.js.map +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/errors/brightChainError.d.ts +2 -2
- package/src/lib/errors/brightChainError.js +2 -2
- package/src/lib/errors/checksumError.d.ts +2 -2
- package/src/lib/errors/checksumError.js +2 -2
- package/src/lib/errors/enhancedValidationError.d.ts +1 -1
- package/src/lib/errors/enhancedValidationError.js +1 -1
- package/src/lib/errors/factoryPatternViolationError.d.ts +2 -2
- package/src/lib/errors/factoryPatternViolationError.js +2 -2
- package/src/lib/errors/index.d.ts +1 -1
- package/src/lib/errors/index.js +1 -1
- package/src/lib/errors/typeGuards.d.ts +7 -7
- package/src/lib/errors/typeGuards.js +7 -7
- package/src/lib/i18n/index.d.ts +0 -1
- package/src/lib/i18n/index.d.ts.map +1 -1
- package/src/lib/i18n/index.js +2 -4
- package/src/lib/i18n/index.js.map +1 -1
- package/src/lib/interfaces/messaging/messageSystemConfig.d.ts.map +1 -1
- package/src/lib/interfaces/messaging/messageSystemConfig.js +13 -11
- package/src/lib/interfaces/messaging/messageSystemConfig.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/secureKeyStorage.d.ts +9 -2
- package/src/lib/secureKeyStorage.d.ts.map +1 -1
- package/src/lib/secureKeyStorage.js +8 -9
- package/src/lib/secureKeyStorage.js.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/messaging/broadcastMessageRouter.js +1 -1
- package/src/lib/services/messaging/broadcastMessageRouter.js.map +1 -1
- package/src/lib/services/messaging/directMessageRouter.js +1 -1
- package/src/lib/services/messaging/directMessageRouter.js.map +1 -1
- package/src/lib/services/messaging/messageForwardingService.js +1 -1
- package/src/lib/services/messaging/messageForwardingService.js.map +1 -1
- package/src/lib/services/messaging/webSocketTransport.d.ts.map +1 -1
- package/src/lib/services/messaging/webSocketTransport.js +1 -1
- package/src/lib/services/messaging/webSocketTransport.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
|
@@ -11,7 +11,9 @@ const fecError_1 = require("../errors/fecError");
|
|
|
11
11
|
const storeError_1 = require("../errors/storeError");
|
|
12
12
|
const blockMetadata_1 = require("../interfaces/storage/blockMetadata");
|
|
13
13
|
const serviceLocator_1 = require("../services/serviceLocator");
|
|
14
|
+
const xor_1 = require("../services/xor");
|
|
14
15
|
const checksum_1 = require("../types/checksum");
|
|
16
|
+
const xorUtils_1 = require("../utils/xorUtils");
|
|
15
17
|
const memoryBlockMetadataStore_1 = require("./memoryBlockMetadataStore");
|
|
16
18
|
/**
|
|
17
19
|
* Browser-compatible in-memory block store using Uint8Array.
|
|
@@ -519,18 +521,13 @@ class MemoryBlockStore {
|
|
|
519
521
|
const block = await this.getData(checksum);
|
|
520
522
|
randomBlocks.push(block);
|
|
521
523
|
}
|
|
522
|
-
//
|
|
523
|
-
const
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
for (const randomBlock of randomBlocks) {
|
|
530
|
-
for (let i = 0; i < brightenedData.length; i++) {
|
|
531
|
-
brightenedData[i] ^= randomBlock.data[i % randomBlock.data.length];
|
|
532
|
-
}
|
|
533
|
-
}
|
|
524
|
+
// Collect all block data for XOR operation (source + random blocks)
|
|
525
|
+
const allBlockData = [
|
|
526
|
+
sourceBlock.data,
|
|
527
|
+
...randomBlocks.map((block) => block.data),
|
|
528
|
+
];
|
|
529
|
+
// Perform XOR operation using XorService: source XOR random1 XOR random2 XOR ...
|
|
530
|
+
const brightenedData = xor_1.XorService.xorMultiple(allBlockData);
|
|
534
531
|
// Create the brightened block
|
|
535
532
|
const brightenedBlock = new rawData_1.RawDataBlock(this._blockSize, brightenedData);
|
|
536
533
|
const brightenedBlockId = brightenedBlock.idChecksum.toHex();
|
|
@@ -546,6 +543,295 @@ class MemoryBlockStore {
|
|
|
546
543
|
originalBlockId: keyHex,
|
|
547
544
|
};
|
|
548
545
|
}
|
|
546
|
+
// === CBL Whitening Operations ===
|
|
547
|
+
/**
|
|
548
|
+
* Store a CBL with XOR whitening for Owner-Free storage.
|
|
549
|
+
*
|
|
550
|
+
* This method:
|
|
551
|
+
* 1. Pads the CBL to block size with length prefix
|
|
552
|
+
* 2. Generates a cryptographically random block (R) of the same size
|
|
553
|
+
* 3. XORs the padded CBL with R to produce the second block (CBL XOR R)
|
|
554
|
+
* 4. Stores both blocks separately
|
|
555
|
+
* 5. Generates parity blocks if durability options specify redundancy
|
|
556
|
+
* 6. Returns the IDs and a magnet URL for reconstruction
|
|
557
|
+
*
|
|
558
|
+
* @param cblData - The original CBL data as Uint8Array
|
|
559
|
+
* @param options - Optional storage options (durability, expiration, encryption flag)
|
|
560
|
+
* @returns Result containing block IDs, parity IDs (if any), and magnet URL
|
|
561
|
+
* @throws StoreError if storage fails
|
|
562
|
+
*/
|
|
563
|
+
async storeCBLWithWhitening(cblData, options) {
|
|
564
|
+
// Validate input
|
|
565
|
+
if (!cblData || cblData.length === 0) {
|
|
566
|
+
throw new storeError_1.StoreError(storeErrorType_1.StoreErrorType.BlockValidationFailed, undefined, {
|
|
567
|
+
ERROR: 'CBL data cannot be empty',
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
// 1. Pad CBL to block size (includes length prefix)
|
|
571
|
+
const paddedCbl = (0, xorUtils_1.padToBlockSize)(cblData, this._blockSize);
|
|
572
|
+
// Validate that padded CBL fits within block size
|
|
573
|
+
if (paddedCbl.length > this._blockSize) {
|
|
574
|
+
throw new storeError_1.StoreError(storeErrorType_1.StoreErrorType.BlockValidationFailed, undefined, {
|
|
575
|
+
ERROR: `CBL data too large: padded size (${paddedCbl.length}) exceeds block size (${this._blockSize}). Use a larger block size or smaller CBL.`,
|
|
576
|
+
});
|
|
577
|
+
}
|
|
578
|
+
// 2. Select or generate randomizer block following OFFSystem principles
|
|
579
|
+
// In OFFSystem, we preferentially use existing blocks from the cache as randomizers
|
|
580
|
+
// This provides multi-use of blocks and better security through data reuse
|
|
581
|
+
const randomBlock = await this.selectOrGenerateRandomizer(paddedCbl.length);
|
|
582
|
+
// 3. XOR to create second block (CBL XOR R)
|
|
583
|
+
const xorResult = (0, xorUtils_1.xorArrays)(paddedCbl, randomBlock);
|
|
584
|
+
// Track stored blocks for rollback on failure
|
|
585
|
+
let block1Stored = false;
|
|
586
|
+
let block1Id = '';
|
|
587
|
+
try {
|
|
588
|
+
// 4. Store first block (R - the randomizer block)
|
|
589
|
+
// Note: If this was selected from existing blocks, it's already stored
|
|
590
|
+
// We still create a block handle for it to get the ID
|
|
591
|
+
const block1 = new rawData_1.RawDataBlock(this._blockSize, randomBlock);
|
|
592
|
+
const block1Checksum = block1.idChecksum;
|
|
593
|
+
// Only store if not already in the store
|
|
594
|
+
if (!(await this.has(block1Checksum))) {
|
|
595
|
+
await this.setData(block1, options);
|
|
596
|
+
block1Stored = true;
|
|
597
|
+
}
|
|
598
|
+
block1Id = block1Checksum.toHex();
|
|
599
|
+
// 5. Store second block (CBL XOR R)
|
|
600
|
+
const block2 = new rawData_1.RawDataBlock(this._blockSize, xorResult);
|
|
601
|
+
await this.setData(block2, options);
|
|
602
|
+
const block2Id = block2.idChecksum.toHex();
|
|
603
|
+
// 6. Get parity block IDs if FEC redundancy was applied
|
|
604
|
+
let block1ParityIds;
|
|
605
|
+
let block2ParityIds;
|
|
606
|
+
const block1Meta = await this.getMetadata(block1Id);
|
|
607
|
+
if (block1Meta?.parityBlockIds?.length) {
|
|
608
|
+
block1ParityIds = block1Meta.parityBlockIds;
|
|
609
|
+
}
|
|
610
|
+
const block2Meta = await this.getMetadata(block2Id);
|
|
611
|
+
if (block2Meta?.parityBlockIds?.length) {
|
|
612
|
+
block2ParityIds = block2Meta.parityBlockIds;
|
|
613
|
+
}
|
|
614
|
+
// 7. Generate magnet URL
|
|
615
|
+
const magnetUrl = this.generateCBLMagnetUrl(block1Id, block2Id, this._blockSize, block1ParityIds, block2ParityIds, options?.isEncrypted);
|
|
616
|
+
return {
|
|
617
|
+
blockId1: block1Id,
|
|
618
|
+
blockId2: block2Id,
|
|
619
|
+
blockSize: this._blockSize,
|
|
620
|
+
magnetUrl,
|
|
621
|
+
block1ParityIds,
|
|
622
|
+
block2ParityIds,
|
|
623
|
+
isEncrypted: options?.isEncrypted,
|
|
624
|
+
};
|
|
625
|
+
}
|
|
626
|
+
catch (error) {
|
|
627
|
+
// Rollback: delete block1 if it was stored by us
|
|
628
|
+
if (block1Stored && block1Id) {
|
|
629
|
+
try {
|
|
630
|
+
await this.deleteData(this.hexToChecksum(block1Id));
|
|
631
|
+
}
|
|
632
|
+
catch {
|
|
633
|
+
// Ignore rollback errors
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
throw error;
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
/**
|
|
640
|
+
* Select an existing block from the store as a randomizer, or generate a new one.
|
|
641
|
+
*
|
|
642
|
+
* Following OFFSystem principles:
|
|
643
|
+
* - Preferentially select existing blocks from the cache as randomizers
|
|
644
|
+
* - Only generate new random blocks if insufficient blocks exist
|
|
645
|
+
* - All blocks in the store look random and can be used as randomizers
|
|
646
|
+
*
|
|
647
|
+
* @param size - The required size of the randomizer block
|
|
648
|
+
* @returns A Uint8Array containing the randomizer data
|
|
649
|
+
*/
|
|
650
|
+
async selectOrGenerateRandomizer(size) {
|
|
651
|
+
// Get all block IDs from the store
|
|
652
|
+
const blockIds = Array.from(this.blocks.keys());
|
|
653
|
+
// If we have existing blocks, try to use one as a randomizer
|
|
654
|
+
if (blockIds.length > 0) {
|
|
655
|
+
// Select a random block from the existing blocks
|
|
656
|
+
const randomIndex = Math.floor(Math.random() * blockIds.length);
|
|
657
|
+
const selectedBlockId = blockIds[randomIndex];
|
|
658
|
+
try {
|
|
659
|
+
const block = this.blocks.get(selectedBlockId);
|
|
660
|
+
if (block && block.data.length >= size) {
|
|
661
|
+
// Use the first 'size' bytes of the existing block as the randomizer
|
|
662
|
+
return block.data.slice(0, size);
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
catch {
|
|
666
|
+
// If we can't retrieve the block, fall through to generation
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
// Fall back to generating a new random block using CSPRNG
|
|
670
|
+
// This happens when:
|
|
671
|
+
// - The store is empty (early in block store lifecycle)
|
|
672
|
+
// - No suitable blocks were found
|
|
673
|
+
return xor_1.XorService.generateKey(size);
|
|
674
|
+
}
|
|
675
|
+
/**
|
|
676
|
+
* Retrieve and reconstruct a CBL from its whitened components.
|
|
677
|
+
*
|
|
678
|
+
* This method:
|
|
679
|
+
* 1. Retrieves both blocks (using parity recovery if needed)
|
|
680
|
+
* 2. XORs the blocks to reconstruct the padded CBL
|
|
681
|
+
* 3. Unpads to get the original CBL data
|
|
682
|
+
*
|
|
683
|
+
* @param blockId1 - First block ID (Checksum or hex string)
|
|
684
|
+
* @param blockId2 - Second block ID (Checksum or hex string)
|
|
685
|
+
* @param block1ParityIds - Optional parity block IDs for block 1 recovery
|
|
686
|
+
* @param block2ParityIds - Optional parity block IDs for block 2 recovery
|
|
687
|
+
* @returns The original CBL data as Uint8Array
|
|
688
|
+
* @throws StoreError if either block is not found or reconstruction fails
|
|
689
|
+
*/
|
|
690
|
+
async retrieveCBL(blockId1, blockId2, block1ParityIds, block2ParityIds) {
|
|
691
|
+
// 1. Retrieve first block (with recovery if needed)
|
|
692
|
+
const b1Checksum = typeof blockId1 === 'string' ? this.hexToChecksum(blockId1) : blockId1;
|
|
693
|
+
let block1Data;
|
|
694
|
+
try {
|
|
695
|
+
block1Data = await this.getData(b1Checksum);
|
|
696
|
+
}
|
|
697
|
+
catch (error) {
|
|
698
|
+
// Attempt recovery using parity blocks if available
|
|
699
|
+
if (block1ParityIds?.length) {
|
|
700
|
+
const recovery = await this.recoverBlock(b1Checksum);
|
|
701
|
+
if (recovery.success && recovery.recoveredBlock) {
|
|
702
|
+
block1Data = recovery.recoveredBlock;
|
|
703
|
+
}
|
|
704
|
+
else {
|
|
705
|
+
throw new storeError_1.StoreError(storeErrorType_1.StoreErrorType.KeyNotFound, undefined, {
|
|
706
|
+
KEY: this.keyToHex(blockId1),
|
|
707
|
+
ERROR: 'Block 1 not found and recovery failed',
|
|
708
|
+
});
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
else {
|
|
712
|
+
throw error;
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
// 2. Retrieve second block (with recovery if needed)
|
|
716
|
+
const b2Checksum = typeof blockId2 === 'string' ? this.hexToChecksum(blockId2) : blockId2;
|
|
717
|
+
let block2Data;
|
|
718
|
+
try {
|
|
719
|
+
block2Data = await this.getData(b2Checksum);
|
|
720
|
+
}
|
|
721
|
+
catch (error) {
|
|
722
|
+
// Attempt recovery using parity blocks if available
|
|
723
|
+
if (block2ParityIds?.length) {
|
|
724
|
+
const recovery = await this.recoverBlock(b2Checksum);
|
|
725
|
+
if (recovery.success && recovery.recoveredBlock) {
|
|
726
|
+
block2Data = recovery.recoveredBlock;
|
|
727
|
+
}
|
|
728
|
+
else {
|
|
729
|
+
throw new storeError_1.StoreError(storeErrorType_1.StoreErrorType.KeyNotFound, undefined, {
|
|
730
|
+
KEY: this.keyToHex(blockId2),
|
|
731
|
+
ERROR: 'Block 2 not found and recovery failed',
|
|
732
|
+
});
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
else {
|
|
736
|
+
throw error;
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
// 3. XOR to reconstruct padded CBL (order doesn't matter due to commutativity)
|
|
740
|
+
const reconstructedPadded = (0, xorUtils_1.xorArrays)(block1Data.data, block2Data.data);
|
|
741
|
+
// 4. Remove padding to get original CBL
|
|
742
|
+
return (0, xorUtils_1.unpadCblData)(reconstructedPadded);
|
|
743
|
+
}
|
|
744
|
+
/**
|
|
745
|
+
* Parse a whitened CBL magnet URL and extract component IDs.
|
|
746
|
+
*
|
|
747
|
+
* Expected format: magnet:?xt=urn:brightchain:cbl&bs=<block_size>&b1=<id>&b2=<id>[&p1=<parity_ids>][&p2=<parity_ids>][&enc=1]
|
|
748
|
+
*
|
|
749
|
+
* @param magnetUrl - The magnet URL to parse
|
|
750
|
+
* @returns Object containing block IDs, block size, parity IDs (if any), and encryption flag
|
|
751
|
+
* @throws Error if the URL format is invalid
|
|
752
|
+
*/
|
|
753
|
+
parseCBLMagnetUrl(magnetUrl) {
|
|
754
|
+
// Validate basic URL format
|
|
755
|
+
if (!magnetUrl || !magnetUrl.startsWith('magnet:?')) {
|
|
756
|
+
throw new Error('Invalid magnet URL: must start with "magnet:?"');
|
|
757
|
+
}
|
|
758
|
+
// Parse URL parameters
|
|
759
|
+
const queryString = magnetUrl.substring('magnet:?'.length);
|
|
760
|
+
const params = new URLSearchParams(queryString);
|
|
761
|
+
// Validate xt parameter
|
|
762
|
+
const xt = params.get('xt');
|
|
763
|
+
if (xt !== 'urn:brightchain:cbl') {
|
|
764
|
+
throw new Error('Invalid magnet URL: xt parameter must be "urn:brightchain:cbl"');
|
|
765
|
+
}
|
|
766
|
+
// Extract required parameters
|
|
767
|
+
const blockId1 = params.get('b1');
|
|
768
|
+
const blockId2 = params.get('b2');
|
|
769
|
+
const blockSizeStr = params.get('bs');
|
|
770
|
+
if (!blockId1) {
|
|
771
|
+
throw new Error('Invalid magnet URL: missing b1 parameter');
|
|
772
|
+
}
|
|
773
|
+
if (!blockId2) {
|
|
774
|
+
throw new Error('Invalid magnet URL: missing b2 parameter');
|
|
775
|
+
}
|
|
776
|
+
if (!blockSizeStr) {
|
|
777
|
+
throw new Error('Invalid magnet URL: missing bs (block size) parameter');
|
|
778
|
+
}
|
|
779
|
+
const blockSize = parseInt(blockSizeStr, 10);
|
|
780
|
+
if (isNaN(blockSize) || blockSize <= 0) {
|
|
781
|
+
throw new Error('Invalid magnet URL: invalid block size');
|
|
782
|
+
}
|
|
783
|
+
// Parse optional parity block IDs
|
|
784
|
+
const p1Param = params.get('p1');
|
|
785
|
+
const p2Param = params.get('p2');
|
|
786
|
+
const block1ParityIds = p1Param
|
|
787
|
+
? p1Param.split(',').filter((id) => id)
|
|
788
|
+
: undefined;
|
|
789
|
+
const block2ParityIds = p2Param
|
|
790
|
+
? p2Param.split(',').filter((id) => id)
|
|
791
|
+
: undefined;
|
|
792
|
+
// Parse encryption flag
|
|
793
|
+
const isEncrypted = params.get('enc') === '1';
|
|
794
|
+
return {
|
|
795
|
+
blockId1,
|
|
796
|
+
blockId2,
|
|
797
|
+
blockSize,
|
|
798
|
+
block1ParityIds,
|
|
799
|
+
block2ParityIds,
|
|
800
|
+
isEncrypted,
|
|
801
|
+
};
|
|
802
|
+
}
|
|
803
|
+
/**
|
|
804
|
+
* Generate a magnet URL for a whitened CBL.
|
|
805
|
+
*
|
|
806
|
+
* @param blockId1 - First block ID (Checksum or hex string)
|
|
807
|
+
* @param blockId2 - Second block ID (Checksum or hex string)
|
|
808
|
+
* @param blockSize - Block size in bytes
|
|
809
|
+
* @param block1ParityIds - Optional parity block IDs for block 1
|
|
810
|
+
* @param block2ParityIds - Optional parity block IDs for block 2
|
|
811
|
+
* @param isEncrypted - Whether the CBL is encrypted
|
|
812
|
+
* @returns The magnet URL string
|
|
813
|
+
*/
|
|
814
|
+
generateCBLMagnetUrl(blockId1, blockId2, blockSize, block1ParityIds, block2ParityIds, isEncrypted) {
|
|
815
|
+
const b1Id = typeof blockId1 === 'string' ? blockId1 : blockId1.toHex();
|
|
816
|
+
const b2Id = typeof blockId2 === 'string' ? blockId2 : blockId2.toHex();
|
|
817
|
+
const params = new URLSearchParams();
|
|
818
|
+
params.set('xt', 'urn:brightchain:cbl');
|
|
819
|
+
params.set('bs', blockSize.toString());
|
|
820
|
+
params.set('b1', b1Id);
|
|
821
|
+
params.set('b2', b2Id);
|
|
822
|
+
// Add parity block IDs if present
|
|
823
|
+
if (block1ParityIds?.length) {
|
|
824
|
+
params.set('p1', block1ParityIds.join(','));
|
|
825
|
+
}
|
|
826
|
+
if (block2ParityIds?.length) {
|
|
827
|
+
params.set('p2', block2ParityIds.join(','));
|
|
828
|
+
}
|
|
829
|
+
// Add encryption flag if encrypted
|
|
830
|
+
if (isEncrypted) {
|
|
831
|
+
params.set('enc', '1');
|
|
832
|
+
}
|
|
833
|
+
return `magnet:?${params.toString()}`;
|
|
834
|
+
}
|
|
549
835
|
}
|
|
550
836
|
exports.MemoryBlockStore = MemoryBlockStore;
|
|
551
837
|
//# sourceMappingURL=memoryBlockStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memoryBlockStore.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/stores/memoryBlockStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memoryBlockStore.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/stores/memoryBlockStore.ts"],"names":[],"mappings":"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"}
|
package/src/lib/utils/index.d.ts
CHANGED
|
@@ -44,4 +44,15 @@ export * from './validator';
|
|
|
44
44
|
* @see {@link checksumUtils}
|
|
45
45
|
*/
|
|
46
46
|
export * from './checksumUtils';
|
|
47
|
+
/**
|
|
48
|
+
* XOR utilities for CBL whitening operations.
|
|
49
|
+
*
|
|
50
|
+
* Provides functions for:
|
|
51
|
+
* - XORing equal-length arrays
|
|
52
|
+
* - Padding data to block size
|
|
53
|
+
* - Unpadding CBL data
|
|
54
|
+
*
|
|
55
|
+
* @see {@link xorUtils}
|
|
56
|
+
*/
|
|
57
|
+
export * from './xorUtils';
|
|
47
58
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH;;;;;;;;;;;;GAYG;AACH,cAAc,aAAa,CAAC;AAK5B;;;;;;;;;GASG;AACH,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH;;;;;;;;;;;;GAYG;AACH,cAAc,aAAa,CAAC;AAK5B;;;;;;;;;GASG;AACH,cAAc,iBAAiB,CAAC;AAKhC;;;;;;;;;GASG;AACH,cAAc,YAAY,CAAC"}
|
package/src/lib/utils/index.js
CHANGED
|
@@ -53,4 +53,18 @@ tslib_1.__exportStar(require("./validator"), exports);
|
|
|
53
53
|
* @see {@link checksumUtils}
|
|
54
54
|
*/
|
|
55
55
|
tslib_1.__exportStar(require("./checksumUtils"), exports);
|
|
56
|
+
// ============================================================================
|
|
57
|
+
// XOR Utilities
|
|
58
|
+
// ============================================================================
|
|
59
|
+
/**
|
|
60
|
+
* XOR utilities for CBL whitening operations.
|
|
61
|
+
*
|
|
62
|
+
* Provides functions for:
|
|
63
|
+
* - XORing equal-length arrays
|
|
64
|
+
* - Padding data to block size
|
|
65
|
+
* - Unpadding CBL data
|
|
66
|
+
*
|
|
67
|
+
* @see {@link xorUtils}
|
|
68
|
+
*/
|
|
69
|
+
tslib_1.__exportStar(require("./xorUtils"), exports);
|
|
56
70
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;AAEH,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAC/E;;;;;;;;;;;;GAYG;AACH,sDAA4B;AAE5B,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAC/E;;;;;;;;;GASG;AACH,0DAAgC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;AAEH,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAC/E;;;;;;;;;;;;GAYG;AACH,sDAA4B;AAE5B,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAC/E;;;;;;;;;GASG;AACH,0DAAgC;AAEhC,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAC/E;;;;;;;;;GASG;AACH,qDAA2B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* XOR utility functions for CBL whitening operations.
|
|
3
|
+
* These utilities wrap XorService and add padding/unpadding for block-aligned storage.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* XOR two Uint8Arrays of equal length.
|
|
7
|
+
* Delegates to XorService.xor for the actual XOR operation.
|
|
8
|
+
*
|
|
9
|
+
* @param a - First array
|
|
10
|
+
* @param b - Second array
|
|
11
|
+
* @returns XOR result (a ⊕ b)
|
|
12
|
+
* @throws Error if arrays have different lengths
|
|
13
|
+
*/
|
|
14
|
+
export declare function xorArrays(a: Uint8Array, b: Uint8Array): Uint8Array;
|
|
15
|
+
/**
|
|
16
|
+
* XOR multiple Uint8Arrays of equal length together.
|
|
17
|
+
* Delegates to XorService.xorMultiple for the actual XOR operation.
|
|
18
|
+
*
|
|
19
|
+
* @param arrays - Array of Uint8Arrays to XOR together (must all be same length)
|
|
20
|
+
* @returns XOR result
|
|
21
|
+
* @throws Error if arrays have different lengths or if no arrays provided
|
|
22
|
+
*/
|
|
23
|
+
export declare function xorMultipleArrays(arrays: Uint8Array[]): Uint8Array;
|
|
24
|
+
/**
|
|
25
|
+
* Pad data to a multiple of block size with length prefix and random bytes.
|
|
26
|
+
* The padding ensures that the data aligns with block boundaries.
|
|
27
|
+
*
|
|
28
|
+
* Format: [4-byte length prefix][original data][random padding]
|
|
29
|
+
*
|
|
30
|
+
* @param data - The data to pad
|
|
31
|
+
* @param blockSize - The target block size
|
|
32
|
+
* @returns Padded data with length prefix
|
|
33
|
+
*/
|
|
34
|
+
export declare function padToBlockSize(data: Uint8Array, blockSize: number): Uint8Array;
|
|
35
|
+
/**
|
|
36
|
+
* Remove padding from CBL data by reading the length prefix.
|
|
37
|
+
* The length prefix tells us exactly how many bytes of original data follow.
|
|
38
|
+
*
|
|
39
|
+
* Format: [4-byte length prefix][original data][random padding]
|
|
40
|
+
*
|
|
41
|
+
* @param data - The padded CBL data with length prefix
|
|
42
|
+
* @returns Unpadded CBL data (original data without length prefix or padding)
|
|
43
|
+
* @throws Error if data is too short or length prefix is invalid
|
|
44
|
+
*/
|
|
45
|
+
export declare function unpadCblData(data: Uint8Array): Uint8Array;
|
|
46
|
+
//# sourceMappingURL=xorUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xorUtils.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/utils/xorUtils.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAElE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAElE;AAQD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,GAChB,UAAU,CA8BZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAoBzD"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.xorArrays = xorArrays;
|
|
4
|
+
exports.xorMultipleArrays = xorMultipleArrays;
|
|
5
|
+
exports.padToBlockSize = padToBlockSize;
|
|
6
|
+
exports.unpadCblData = unpadCblData;
|
|
7
|
+
const xor_1 = require("../services/xor");
|
|
8
|
+
/**
|
|
9
|
+
* XOR utility functions for CBL whitening operations.
|
|
10
|
+
* These utilities wrap XorService and add padding/unpadding for block-aligned storage.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* XOR two Uint8Arrays of equal length.
|
|
14
|
+
* Delegates to XorService.xor for the actual XOR operation.
|
|
15
|
+
*
|
|
16
|
+
* @param a - First array
|
|
17
|
+
* @param b - Second array
|
|
18
|
+
* @returns XOR result (a ⊕ b)
|
|
19
|
+
* @throws Error if arrays have different lengths
|
|
20
|
+
*/
|
|
21
|
+
function xorArrays(a, b) {
|
|
22
|
+
return xor_1.XorService.xor(a, b);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* XOR multiple Uint8Arrays of equal length together.
|
|
26
|
+
* Delegates to XorService.xorMultiple for the actual XOR operation.
|
|
27
|
+
*
|
|
28
|
+
* @param arrays - Array of Uint8Arrays to XOR together (must all be same length)
|
|
29
|
+
* @returns XOR result
|
|
30
|
+
* @throws Error if arrays have different lengths or if no arrays provided
|
|
31
|
+
*/
|
|
32
|
+
function xorMultipleArrays(arrays) {
|
|
33
|
+
return xor_1.XorService.xorMultiple(arrays);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Length prefix size in bytes (4 bytes = 32-bit unsigned integer).
|
|
37
|
+
* This allows for data up to ~4GB in size.
|
|
38
|
+
*/
|
|
39
|
+
const LENGTH_PREFIX_SIZE = 4;
|
|
40
|
+
/**
|
|
41
|
+
* Pad data to a multiple of block size with length prefix and random bytes.
|
|
42
|
+
* The padding ensures that the data aligns with block boundaries.
|
|
43
|
+
*
|
|
44
|
+
* Format: [4-byte length prefix][original data][random padding]
|
|
45
|
+
*
|
|
46
|
+
* @param data - The data to pad
|
|
47
|
+
* @param blockSize - The target block size
|
|
48
|
+
* @returns Padded data with length prefix
|
|
49
|
+
*/
|
|
50
|
+
function padToBlockSize(data, blockSize) {
|
|
51
|
+
if (blockSize <= 0) {
|
|
52
|
+
throw new Error(`Block size must be positive: ${blockSize}`);
|
|
53
|
+
}
|
|
54
|
+
// Total size needed: length prefix + data
|
|
55
|
+
const totalDataSize = LENGTH_PREFIX_SIZE + data.length;
|
|
56
|
+
// Calculate padded size (round up to next block boundary)
|
|
57
|
+
const paddedSize = Math.ceil(totalDataSize / blockSize) * blockSize;
|
|
58
|
+
// Create padded array
|
|
59
|
+
const padded = new Uint8Array(paddedSize);
|
|
60
|
+
// Write length prefix (big-endian 32-bit unsigned integer)
|
|
61
|
+
const view = new DataView(padded.buffer);
|
|
62
|
+
view.setUint32(0, data.length, false); // false = big-endian
|
|
63
|
+
// Copy original data after length prefix
|
|
64
|
+
padded.set(data, LENGTH_PREFIX_SIZE);
|
|
65
|
+
// Fill remaining bytes with random data for security
|
|
66
|
+
if (paddedSize > totalDataSize) {
|
|
67
|
+
const paddingBytes = padded.subarray(totalDataSize);
|
|
68
|
+
xor_1.XorService.generateKey(paddingBytes.length).forEach((byte, i) => {
|
|
69
|
+
paddingBytes[i] = byte;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return padded;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Remove padding from CBL data by reading the length prefix.
|
|
76
|
+
* The length prefix tells us exactly how many bytes of original data follow.
|
|
77
|
+
*
|
|
78
|
+
* Format: [4-byte length prefix][original data][random padding]
|
|
79
|
+
*
|
|
80
|
+
* @param data - The padded CBL data with length prefix
|
|
81
|
+
* @returns Unpadded CBL data (original data without length prefix or padding)
|
|
82
|
+
* @throws Error if data is too short or length prefix is invalid
|
|
83
|
+
*/
|
|
84
|
+
function unpadCblData(data) {
|
|
85
|
+
if (data.length < LENGTH_PREFIX_SIZE) {
|
|
86
|
+
throw new Error(`Invalid padded data: too short (${data.length} bytes, need at least ${LENGTH_PREFIX_SIZE})`);
|
|
87
|
+
}
|
|
88
|
+
// Read length prefix (big-endian 32-bit unsigned integer)
|
|
89
|
+
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
90
|
+
const originalLength = view.getUint32(0, false); // false = big-endian
|
|
91
|
+
// Validate length
|
|
92
|
+
if (originalLength > data.length - LENGTH_PREFIX_SIZE) {
|
|
93
|
+
throw new Error(`Invalid length prefix: claims ${originalLength} bytes but only ${data.length - LENGTH_PREFIX_SIZE} available`);
|
|
94
|
+
}
|
|
95
|
+
// Return original data (after length prefix, up to original length)
|
|
96
|
+
return data.subarray(LENGTH_PREFIX_SIZE, LENGTH_PREFIX_SIZE + originalLength);
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=xorUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xorUtils.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/utils/xorUtils.ts"],"names":[],"mappings":";;AAgBA,8BAEC;AAUD,8CAEC;AAkBD,wCAiCC;AAYD,oCAoBC;AAjHD,yCAA6C;AAE7C;;;GAGG;AAEH;;;;;;;;GAQG;AACH,SAAgB,SAAS,CAAC,CAAa,EAAE,CAAa;IACpD,OAAO,gBAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,MAAoB;IACpD,OAAO,gBAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B;;;;;;;;;GASG;AACH,SAAgB,cAAc,CAC5B,IAAgB,EAChB,SAAiB;IAEjB,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,0CAA0C;IAC1C,MAAM,aAAa,GAAG,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;IAEvD,0DAA0D;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAEpE,sBAAsB;IACtB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAE1C,2DAA2D;IAC3D,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,qBAAqB;IAE5D,yCAAyC;IACzC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAErC,qDAAqD;IACrD,IAAI,UAAU,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACpD,gBAAU,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9D,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAC,IAAgB;IAC3C,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,CAAC,MAAM,yBAAyB,kBAAkB,GAAG,CAC7F,CAAC;IACJ,CAAC;IAED,0DAA0D;IAC1D,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACzE,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,qBAAqB;IAEtE,kBAAkB;IAClB,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,iCAAiC,cAAc,mBAAmB,IAAI,CAAC,MAAM,GAAG,kBAAkB,YAAY,CAC/G,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,cAAc,CAAC,CAAC;AAChF,CAAC"}
|