MCPcopy
hub / github.com/remotely-save/remotely-save / decryptArrayBuffer

Function decryptArrayBuffer

src/encryptOpenSSL.ts:76–106  ·  view source on GitHub ↗
(
  arrBuf: ArrayBuffer,
  password: string,
  rounds: number = DEFAULT_ITER
)

Source from the content-addressed store, hash-verified

74};
75
76export const decryptArrayBuffer = async (
77 arrBuf: ArrayBuffer,
78 password: string,
79 rounds: number = DEFAULT_ITER
80) => {
81 const prefix = arrBuf.slice(0, 8);
82 const salt = arrBuf.slice(8, 16);
83 const derivedKey = await getKeyIVFromPassword(
84 new Uint8Array(salt),
85 password,
86 rounds
87 );
88 const key = derivedKey.slice(0, 32);
89 const iv = derivedKey.slice(32, 32 + 16);
90
91 const keyCrypt = await window.crypto.subtle.importKey(
92 "raw",
93 key,
94 { name: "AES-CBC" },
95 false,
96 ["encrypt", "decrypt"]
97 );
98
99 const dec = (await window.crypto.subtle.decrypt(
100 { name: "AES-CBC", iv },
101 keyCrypt,
102 arrBuf.slice(16)
103 )) as ArrayBuffer;
104
105 return dec;
106};
107
108export const encryptStringToBase32 = async (
109 text: string,

Callers 3

decryptBase32ToStringFunction · 0.85
decryptBase64urlToStringFunction · 0.85

Calls 1

getKeyIVFromPasswordFunction · 0.85

Tested by

no test coverage detected