MCPcopy Index your code
hub / github.com/mailvelope/mailvelope / set

Function set

src/modules/pwdCache.js:196–218  ·  view source on GitHub ↗
({key, password, reservedOperations = 0})

Source from the content-addressed store, hash-verified

194 * @param {Number} [reserverdOperations] - number of decrypt operations initially used
195 */
196export async function set({key, password, reservedOperations = 0}) {
197 // primary key fingerprint is main key of cache
198 const primaryKeyFpr = key.getFingerprint();
199 let entry;
200 let newEntry;
201 if (await cache.has(primaryKeyFpr)) {
202 entry = await cache.get(primaryKeyFpr);
203 // update remaining number of operations
204 entry.operations -= reservedOperations;
205 clearInterval(entry.tlTimer);
206 } else {
207 entry = {key, password};
208 newEntry = true;
209 // set max. number of operations
210 entry.operations = Math.max(0, RATE_LIMIT - reservedOperations);
211 }
212 // clear after time limit rate has been reached
213 entry.tlOperations = Math.max(0, TIME_LIMIT_RATE - reservedOperations);
214 entry.tlTimer = setInterval(() => {
215 entry.tlOperations = TIME_LIMIT_RATE;
216 }, TIME_LIMIT * 60 * 1000);
217 await cache.set(primaryKeyFpr, entry, newEntry);
218}
219
220/**
221 * Get number of decryptable session keys

Callers 1

unlockFunction · 0.70

Calls 3

hasMethod · 0.45
getMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected