mirror of
https://github.com/bitwarden/browser
synced 2025-12-17 16:53:34 +00:00
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import "module-alias/register";
|
|
|
|
import yargs from "yargs";
|
|
import { hideBin } from "yargs/helpers";
|
|
|
|
import { NativeMessagingVersion } from "@bitwarden/common/enums";
|
|
|
|
import { LogUtils } from "../log-utils";
|
|
import NativeMessageService from "../native-message.service";
|
|
import * as config from "../variables";
|
|
|
|
const argv: any = yargs(hideBin(process.argv)).option("userId", {
|
|
alias: "u",
|
|
demand: true,
|
|
describe: "UserId to generate password for",
|
|
type: "string",
|
|
}).argv;
|
|
|
|
const { userId } = argv;
|
|
|
|
// FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.
|
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
(async () => {
|
|
const nativeMessageService = new NativeMessageService(NativeMessagingVersion.One);
|
|
// Handshake
|
|
LogUtils.logInfo("Sending Handshake");
|
|
const handshakeResponse = await nativeMessageService.sendHandshake(
|
|
config.testRsaPublicKey,
|
|
config.applicationName,
|
|
);
|
|
|
|
if (!handshakeResponse.status) {
|
|
LogUtils.logError(" Handshake failed. Error was: " + handshakeResponse.error);
|
|
nativeMessageService.disconnect();
|
|
return;
|
|
}
|
|
|
|
LogUtils.logSuccess("Handshake success response");
|
|
const response = await nativeMessageService.generatePassword(handshakeResponse.sharedKey, userId);
|
|
|
|
if (response.payload.error != null) {
|
|
LogUtils.logError("Error response returned: ", response.payload.error);
|
|
} else {
|
|
LogUtils.logSuccess("Response: ", response);
|
|
}
|
|
|
|
nativeMessageService.disconnect();
|
|
})();
|