mirror of
https://github.com/bitwarden/browser
synced 2026-02-12 06:23:38 +00:00
* Move import to sdk and enable it in browser/web * Add uncomitted files * Update package lock * Fix prettier formatting * Fix build * Rewrite import logic * Update ssh import logic for cipher form component * Fix build on browser * Break early in retry logic * Fix build * Fix build * Fix build errors * Update paste icons and throw error on wrong import * Fix tests * Fix build for cli * Undo change to jest config * Undo change to feature flag enum * Remove unneeded lifetime * Fix browser build * Refactor control flow * Fix i18n key and improve import behavior * Remove for loop limit * Clean up tests * Remove unused code * Update libs/vault/src/cipher-form/components/sshkey-section/sshkey-section.component.ts Co-authored-by: SmithThe4th <gsmith@bitwarden.com> * Move import logic to service and add tests * Fix linting * Remove erroneous includes * Attempt to fix storybook * Fix storybook, explicitly implement ssh-import-prompt service abstraction * Fix eslint * Update libs/importer/src/importers/bitwarden/bitwarden-json-importer.ts Co-authored-by: ✨ Audrey ✨ <ajensen@bitwarden.com> * Fix services module * Remove ssh import sdk init code * Add tests for errors * Fix import * Fix import * Fix pkcs8 encrypted key not parsing * Fix import button showing on web --------- Co-authored-by: SmithThe4th <gsmith@bitwarden.com> Co-authored-by: ✨ Audrey ✨ <ajensen@bitwarden.com>
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
// FIXME: Update this file to be type safe and remove this and next line
|
|
// @ts-strict-ignore
|
|
import { import_ssh_key } from "@bitwarden/sdk-internal";
|
|
|
|
import { EncString } from "../../platform/models/domain/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()) {
|
|
const parsedKey = import_ssh_key(req.privateKey);
|
|
view.privateKey = parsedKey.privateKey;
|
|
view.publicKey = parsedKey.publicKey;
|
|
view.keyFingerprint = parsedKey.fingerprint;
|
|
return view;
|
|
}
|
|
|
|
static toDomain(req: SshKeyExport, domain = new SshKeyDomain()) {
|
|
const parsedKey = import_ssh_key(req.privateKey);
|
|
domain.privateKey = new EncString(parsedKey.privateKey);
|
|
domain.publicKey = new EncString(parsedKey.publicKey);
|
|
domain.keyFingerprint = new EncString(parsedKey.fingerprint);
|
|
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);
|
|
}
|
|
}
|