Fix key rotation being broken due to org ciphers being included (#10140)

This commit is contained in:
Bernd Schoolmann 2024-07-17 16:31:35 +02:00 committed by GitHub
parent e27d698d4b
commit fd93c76c0d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 2 deletions

View File

@ -352,8 +352,10 @@ describe("Cipher Service", () => {
const cipher1 = new CipherView(cipherObj); const cipher1 = new CipherView(cipherObj);
cipher1.id = "Cipher 1"; cipher1.id = "Cipher 1";
cipher1.organizationId = null;
const cipher2 = new CipherView(cipherObj); const cipher2 = new CipherView(cipherObj);
cipher2.id = "Cipher 2"; cipher2.id = "Cipher 2";
cipher2.organizationId = null;
decryptedCiphers = new BehaviorSubject({ decryptedCiphers = new BehaviorSubject({
Cipher1: cipher1, Cipher1: cipher1,

View File

@ -1184,11 +1184,16 @@ export class CipherService implements CipherServiceAbstraction {
let encryptedCiphers: CipherWithIdRequest[] = []; let encryptedCiphers: CipherWithIdRequest[] = [];
const ciphers = await this.getAllDecrypted(); const ciphers = await this.getAllDecrypted();
if (!ciphers || ciphers.length === 0) { if (!ciphers) {
return encryptedCiphers;
}
const userCiphers = ciphers.filter((c) => c.organizationId == null);
if (userCiphers.length === 0) {
return encryptedCiphers; return encryptedCiphers;
} }
encryptedCiphers = await Promise.all( encryptedCiphers = await Promise.all(
ciphers.map(async (cipher) => { userCiphers.map(async (cipher) => {
const encryptedCipher = await this.encrypt(cipher, newUserKey, originalUserKey); const encryptedCipher = await this.encrypt(cipher, newUserKey, originalUserKey);
return new CipherWithIdRequest(encryptedCipher); return new CipherWithIdRequest(encryptedCipher);
}), }),