mirror of
https://github.com/bitwarden/browser
synced 2026-03-01 11:01:17 +00:00
* [PM-22136] Update sdk cipher view map to support uknown uuid type * [PM-22136] Add key to CipherView for copying to SdkCipherView for encryption * [PM-22136] Add fromSdk* helpers to Cipher domain objects * [PM-22136] Add toSdk* helpers to Cipher View objects * [PM-22136] Add encrypt() to cipher encryption service * [PM-22136] Add feature flag * [PM-22136] Use new SDK encrypt method when feature flag is enabled * [PM-22136] Filter out null/empty URIs * [PM-22136] Change default value for cipher view arrays to []. See ADR-0014. * [PM-22136] Keep encrypted key value on attachment so that it is passed to the SDK * [PM-22136] Keep encrypted key value on CipherView so that it is passed to the SDK during encryption * [PM-22136] Update failing attachment test * [PM-22136] Update failing importer tests due to new default value for arrays * [PM-22136] Update CipherView.fromJson to handle the prototype of EncString for the cipher key * [PM-22136] Add tickets for followup work * [PM-22136] Use new set_fido2_credentials SDK method instead * [PM-22136] Fix missing prototype when decrypting Fido2Credentials * [PM-22136] Fix test after sdk change * [PM-22136] Update @bitwarden/sdk-internal version * [PM-22136] Fix some strict typing errors * [PM-23348] Migrate move cipher to org to SDK (#15567) * [PM-23348] Add moveToOrganization method to cipher-encryption.service.ts * [PM-23348] Use cipherEncryptionService.moveToOrganization in cipherService shareWithServer and shareManyWithServer methods * [PM-23348] Update cipherFormService to use the shareWithServer() method instead of encrypt() * [PM-23348] Fix typo * [PM-23348] Add missing docs * [PM-22136] Fix EncString import after merge with main
91 lines
2.4 KiB
TypeScript
91 lines
2.4 KiB
TypeScript
// FIXME: Update this file to be type safe and remove this and next line
|
|
// @ts-strict-ignore
|
|
import { Jsonify } from "type-fest";
|
|
|
|
import { PasswordHistory } from "@bitwarden/sdk-internal";
|
|
|
|
import { EncString } from "../../../key-management/crypto/models/enc-string";
|
|
import Domain from "../../../platform/models/domain/domain-base";
|
|
import { SymmetricCryptoKey } from "../../../platform/models/domain/symmetric-crypto-key";
|
|
import { PasswordHistoryData } from "../data/password-history.data";
|
|
import { PasswordHistoryView } from "../view/password-history.view";
|
|
|
|
export class Password extends Domain {
|
|
password: EncString;
|
|
lastUsedDate: Date;
|
|
|
|
constructor(obj?: PasswordHistoryData) {
|
|
super();
|
|
if (obj == null) {
|
|
return;
|
|
}
|
|
|
|
this.buildDomainModel(this, obj, {
|
|
password: null,
|
|
});
|
|
this.lastUsedDate = new Date(obj.lastUsedDate);
|
|
}
|
|
|
|
decrypt(orgId: string, encKey?: SymmetricCryptoKey): Promise<PasswordHistoryView> {
|
|
return this.decryptObj<Password, PasswordHistoryView>(
|
|
this,
|
|
new PasswordHistoryView(this),
|
|
["password"],
|
|
orgId,
|
|
encKey,
|
|
"DomainType: PasswordHistory",
|
|
);
|
|
}
|
|
|
|
toPasswordHistoryData(): PasswordHistoryData {
|
|
const ph = new PasswordHistoryData();
|
|
ph.lastUsedDate = this.lastUsedDate.toISOString();
|
|
this.buildDataModel(this, ph, {
|
|
password: null,
|
|
});
|
|
return ph;
|
|
}
|
|
|
|
static fromJSON(obj: Partial<Jsonify<Password>>): Password {
|
|
if (obj == null) {
|
|
return null;
|
|
}
|
|
|
|
const password = EncString.fromJSON(obj.password);
|
|
const lastUsedDate = obj.lastUsedDate == null ? null : new Date(obj.lastUsedDate);
|
|
|
|
return Object.assign(new Password(), obj, {
|
|
password,
|
|
lastUsedDate,
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Maps Password to SDK format.
|
|
*
|
|
* @returns {PasswordHistory} The SDK password history object.
|
|
*/
|
|
toSdkPasswordHistory(): PasswordHistory {
|
|
return {
|
|
password: this.password.toJSON(),
|
|
lastUsedDate: this.lastUsedDate.toISOString(),
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Maps an SDK PasswordHistory object to a Password
|
|
* @param obj - The SDK PasswordHistory object
|
|
*/
|
|
static fromSdkPasswordHistory(obj: PasswordHistory): Password | undefined {
|
|
if (!obj) {
|
|
return undefined;
|
|
}
|
|
|
|
const passwordHistory = new Password();
|
|
passwordHistory.password = EncString.fromJSON(obj.password);
|
|
passwordHistory.lastUsedDate = new Date(obj.lastUsedDate);
|
|
|
|
return passwordHistory;
|
|
}
|
|
}
|