mirror of
https://github.com/bitwarden/browser
synced 2026-02-09 21:20:27 +00:00
* Added checks to on the sshkey view to prevent null fields * Give default values to the template * Give default values to the template * change function signature to match ts-strct styles * Added unit tests for the ssh key to view and replaced deafults to empty strings
62 lines
1.8 KiB
TypeScript
62 lines
1.8 KiB
TypeScript
// FIXME: Update this file to be type safe and remove this and next line
|
|
// @ts-strict-ignore
|
|
|
|
import { EncString } from "../../key-management/crypto/models/enc-string";
|
|
import { SshKey as SshKeyDomain } from "../../vault/models/domain/ssh-key";
|
|
import { SshKeyView as SshKeyView } from "../../vault/models/view/ssh-key.view";
|
|
|
|
import { safeGetString } from "./utils";
|
|
|
|
export class SshKeyExport {
|
|
static template(): SshKeyExport {
|
|
const req = new SshKeyExport();
|
|
req.privateKey = "";
|
|
req.publicKey = "";
|
|
req.keyFingerprint = "";
|
|
return req;
|
|
}
|
|
|
|
static toView(req?: SshKeyExport, view = new SshKeyView()): SshKeyView | undefined {
|
|
if (req == null) {
|
|
return undefined;
|
|
}
|
|
|
|
// Validate required fields
|
|
if (!req.privateKey || req.privateKey.trim() === "") {
|
|
throw new Error("SSH key private key is required.");
|
|
}
|
|
if (!req.publicKey || req.publicKey.trim() === "") {
|
|
throw new Error("SSH key public key is required.");
|
|
}
|
|
if (!req.keyFingerprint || req.keyFingerprint.trim() === "") {
|
|
throw new Error("SSH key fingerprint is required.");
|
|
}
|
|
|
|
view.privateKey = req.privateKey;
|
|
view.publicKey = req.publicKey;
|
|
view.keyFingerprint = req.keyFingerprint;
|
|
return view;
|
|
}
|
|
|
|
static toDomain(req: SshKeyExport, domain = new SshKeyDomain()) {
|
|
domain.privateKey = new EncString(req.privateKey);
|
|
domain.publicKey = new EncString(req.publicKey);
|
|
domain.keyFingerprint = new EncString(req.keyFingerprint);
|
|
return domain;
|
|
}
|
|
|
|
privateKey: string;
|
|
publicKey: string;
|
|
keyFingerprint: string;
|
|
|
|
constructor(o?: SshKeyView | SshKeyDomain) {
|
|
if (o == null) {
|
|
return;
|
|
}
|
|
|
|
this.privateKey = safeGetString(o.privateKey);
|
|
this.publicKey = safeGetString(o.publicKey);
|
|
this.keyFingerprint = safeGetString(o.keyFingerprint);
|
|
}
|
|
}
|