mirror of
https://github.com/bitwarden/browser
synced 2025-12-16 16:23:44 +00:00
Handle string, enc string (split is not a function) errors during browser extension deserialization (#15586)
This commit is contained in:
@@ -45,7 +45,17 @@ export class AttachmentView implements View {
|
|||||||
|
|
||||||
static fromJSON(obj: Partial<Jsonify<AttachmentView>>): AttachmentView {
|
static fromJSON(obj: Partial<Jsonify<AttachmentView>>): AttachmentView {
|
||||||
const key = obj.key == null ? null : SymmetricCryptoKey.fromJSON(obj.key);
|
const key = obj.key == null ? null : SymmetricCryptoKey.fromJSON(obj.key);
|
||||||
const encryptedKey = obj.encryptedKey == null ? undefined : new EncString(obj.encryptedKey);
|
|
||||||
|
let encryptedKey: EncString | undefined;
|
||||||
|
if (obj.encryptedKey != null) {
|
||||||
|
if (typeof obj.encryptedKey === "string") {
|
||||||
|
// If the key is a string, we need to parse it as EncString
|
||||||
|
encryptedKey = EncString.fromJSON(obj.encryptedKey);
|
||||||
|
} else if ((obj.encryptedKey as any) instanceof EncString) {
|
||||||
|
// If the key is already an EncString instance, we can use it directly
|
||||||
|
encryptedKey = obj.encryptedKey;
|
||||||
|
}
|
||||||
|
}
|
||||||
return Object.assign(new AttachmentView(), obj, { key: key, encryptedKey: encryptedKey });
|
return Object.assign(new AttachmentView(), obj, { key: key, encryptedKey: encryptedKey });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,8 +90,8 @@ export class AttachmentView implements View {
|
|||||||
view.sizeName = obj.sizeName ?? null;
|
view.sizeName = obj.sizeName ?? null;
|
||||||
view.fileName = obj.fileName ?? null;
|
view.fileName = obj.fileName ?? null;
|
||||||
// TODO: PM-23005 - Temporary field, should be removed when encrypted migration is complete
|
// TODO: PM-23005 - Temporary field, should be removed when encrypted migration is complete
|
||||||
view.key = obj.key ? SymmetricCryptoKey.fromString(obj.decryptedKey) : null;
|
view.key = obj.decryptedKey ? SymmetricCryptoKey.fromString(obj.decryptedKey) : null;
|
||||||
view.encryptedKey = new EncString(obj.key);
|
view.encryptedKey = obj.key ? new EncString(obj.key) : undefined;
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user