|
|
@ -3,21 +3,22 @@ import ed2curve from '../../../../qortal-ui-crypto/api/deps/ed2curve.js' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function uint8ArrayToBase64(uint8Array) { |
|
|
|
export function uint8ArrayToBase64(uint8Array) { |
|
|
|
const length = uint8Array.length; |
|
|
|
const length = uint8Array.length; |
|
|
|
let base64String = ''; |
|
|
|
let binaryString = ''; |
|
|
|
const chunkSize = 1024 * 1024; // Process 1MB at a time
|
|
|
|
const chunkSize = 1024 * 1024; // Process 1MB at a time
|
|
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < length; i += chunkSize) { |
|
|
|
for (let i = 0; i < length; i += chunkSize) { |
|
|
|
const chunkEnd = Math.min(i + chunkSize, length); |
|
|
|
const chunkEnd = Math.min(i + chunkSize, length); |
|
|
|
const chunk = uint8Array.subarray(i, chunkEnd); |
|
|
|
const chunk = uint8Array.subarray(i, chunkEnd); |
|
|
|
const binaryString = chunk.reduce((acc, byte) => acc + String.fromCharCode(byte), ''); |
|
|
|
binaryString += Array.from(chunk, byte => String.fromCharCode(byte)).join(''); |
|
|
|
base64String += btoa(binaryString); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return base64String; |
|
|
|
return btoa(binaryString); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function base64ToUint8Array(base64) { |
|
|
|
export function base64ToUint8Array(base64) { |
|
|
|
const binaryString = atob(base64) |
|
|
|
const binaryString = atob(base64) |
|
|
|
const len = binaryString.length |
|
|
|
const len = binaryString.length |
|
|
@ -71,6 +72,7 @@ export const encryptData = ({ data64, recipientPublicKey }) => { |
|
|
|
combinedData.set(nonce, strUint8Array.length); |
|
|
|
combinedData.set(nonce, strUint8Array.length); |
|
|
|
combinedData.set(encryptedData, strUint8Array.length + nonce.length); |
|
|
|
combinedData.set(encryptedData, strUint8Array.length + nonce.length); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const uint8arrayToData64 = uint8ArrayToBase64(combinedData) |
|
|
|
const uint8arrayToData64 = uint8ArrayToBase64(combinedData) |
|
|
|
|
|
|
|
|
|
|
|
return { |
|
|
|
return { |
|
|
|