Skip to content
This repository has been archived by the owner on Jan 4, 2019. It is now read-only.

Added support for bitwarden password manager #153

Merged
merged 2 commits into from
Mar 13, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions brave/browser/api/brave_api_component_updater.cc
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,9 @@ void ComponentUpdater::RegisterComponent(const std::string& component_id) {
} else if (component_id == kEnpassId) {
RegisterComponentForUpdate(
kEnpassPublicKeyStr, registered_callback, ready_callback);
} else if (component_id == kBitwardenId) {
RegisterComponentForUpdate(
kBitwardenPublicKeyStr, registered_callback, ready_callback);
} else if (component_id == kWidevineId) {
brave::RegisterWidevineCdmComponent(
g_browser_process->component_updater(),
Expand Down
45 changes: 45 additions & 0 deletions brave/browser/component_updater/default_extensions.h
Original file line number Diff line number Diff line change
Expand Up @@ -273,4 +273,49 @@ const std::string kEnpassPublicKeyStr( // NOLINT
(const char *)kEnpassPublicKey, sizeof(kEnpassPublicKey));
const std::string kEnpassId("kmcfomidfpdkfieipokbalgegidffkal"); // NOLINT

// bitwarden
// Download: https://clients2.google.com/service/update2/crx?response=redirect&prodversion=52.0.2743.116&x=id%3Dnngceckbapebfimnlniiiahkandclblb%26uc // NOLINT
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

F YI @bsclifton if you download the extension here ^ to this path: ~/extension_1_10_0.crx

You can run this in the muon repo:
./script/get-extension-public-key-sha256.py ~/extension_1_10_0.crx

And it will tell you this:

extension-public-key-sha256.py  ~/extension_1_10_0.crx
Manifest key:  MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmqKbvreshyXRuN2gikeR1idqR6KL0Di89JZcMyD4bjJRZVmQO7aznSGSALIHzSAUGYocUYBNDOP5QAhImxXyQ1qG8+goXs93v9GzrNJETdVuCEhqBggC4/DFabryJZDiKvZ2Jl0DM7MsWdoybZPwrj70V3aJ/nVNOMkf868scNTMliwitCqqjT5baTANsG0DkZWQExD4lSXzSZHH9MEO8q0iZ7RRlNuGRBAkZgNV8FwZRsPKm/rwQ9dy3VpgLcmLp5GiMt+kAEncqKAkuRYnhVXXBsKqIyYTMjHSLkLnpfFySyOPLBdS617i/PGNiP/MT6Xy6z//v5NozUgaAZ4gJQIDAQAB
PK len:  294
Public key:  0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
0x00, 0x9a, 0xa2, 0x9b, 0xbe, 0xb7, 0xac, 0x87,
0x25, 0xd1, 0xb8, 0xdd, 0xa0, 0x8a, 0x47, 0x91,
0xd6, 0x27, 0x6a, 0x47, 0xa2, 0x8b, 0xd0, 0x38,
0xbc, 0xf4, 0x96, 0x5c, 0x33, 0x20, 0xf8, 0x6e,
0x32, 0x51, 0x65, 0x59, 0x90, 0x3b, 0xb6, 0xb3,
0x9d, 0x21, 0x92, 0x00, 0xb2, 0x07, 0xcd, 0x20,
0x14, 0x19, 0x8a, 0x1c, 0x51, 0x80, 0x4d, 0x0c,
0xe3, 0xf9, 0x40, 0x08, 0x48, 0x9b, 0x15, 0xf2,
0x43, 0x5a, 0x86, 0xf3, 0xe8, 0x28, 0x5e, 0xcf,
0x77, 0xbf, 0xd1, 0xb3, 0xac, 0xd2, 0x44, 0x4d,
0xd5, 0x6e, 0x08, 0x48, 0x6a, 0x06, 0x08, 0x02,
0xe3, 0xf0, 0xc5, 0x69, 0xba, 0xf2, 0x25, 0x90,
0xe2, 0x2a, 0xf6, 0x76, 0x26, 0x5d, 0x03, 0x33,
0xb3, 0x2c, 0x59, 0xda, 0x32, 0x6d, 0x93, 0xf0,
0xae, 0x3e, 0xf4, 0x57, 0x76, 0x89, 0xfe, 0x75,
0x4d, 0x38, 0xc9, 0x1f, 0xf3, 0xaf, 0x2c, 0x70,
0xd4, 0xcc, 0x96, 0x2c, 0x22, 0xb4, 0x2a, 0xaa,
0x8d, 0x3e, 0x5b, 0x69, 0x30, 0x0d, 0xb0, 0x6d,
0x03, 0x91, 0x95, 0x90, 0x13, 0x10, 0xf8, 0x95,
0x25, 0xf3, 0x49, 0x91, 0xc7, 0xf4, 0xc1, 0x0e,
0xf2, 0xad, 0x22, 0x67, 0xb4, 0x51, 0x94, 0xdb,
0x86, 0x44, 0x10, 0x24, 0x66, 0x03, 0x55, 0xf0,
0x5c, 0x19, 0x46, 0xc3, 0xca, 0x9b, 0xfa, 0xf0,
0x43, 0xd7, 0x72, 0xdd, 0x5a, 0x60, 0x2d, 0xc9,
0x8b, 0xa7, 0x91, 0xa2, 0x32, 0xdf, 0xa4, 0x00,
0x49, 0xdc, 0xa8, 0xa0, 0x24, 0xb9, 0x16, 0x27,
0x85, 0x55, 0xd7, 0x06, 0xc2, 0xaa, 0x23, 0x26,
0x13, 0x32, 0x31, 0xd2, 0x2e, 0x42, 0xe7, 0xa5,
0xf1, 0x72, 0x4b, 0x23, 0x8f, 0x2c, 0x17, 0x52,
0xeb, 0x5e, 0xe2, 0xfc, 0xf1, 0x8d, 0x88, 0xff,
0xcc, 0x4f, 0xa5, 0xf2, 0xeb, 0x3f, 0xff, 0xbf,
0x93, 0x68, 0xcd, 0x48, 0x1a, 0x01, 0x9e, 0x20,
0x25, 0x02, 0x03, 0x01, 0x00, 0x01
PK SHA256:  0xdd, 0x62, 0x42, 0xa1, 0x0f, 0x41, 0x58, 0xcd,
0xbd, 0x88, 0x80, 0x7a, 0x0d, 0x32, 0xb1, 0xb1,
0x7d, 0xff, 0x82, 0x3a, 0xd0, 0xd5, 0x00, 0x82,
0x5a, 0x99, 0x9c, 0x8a, 0x14, 0x58, 0xbd, 0xf0
extension ID: nngceckbapebfimnlniiiahkandclblb
crx file data sha256 (for update server endpoint) 8b8516a88fd988c0dae0698362cc63c8f923078ffe29a3cce3c94f3442f09961

of particular interest is the public key length and public key data.

The rest is pretty easy to understand.

const uint8_t kBitwardenPublicKey[294] = {
0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09,
0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00,
0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01,
0x00, 0x9a, 0xa2, 0x9b, 0xbe, 0xb7, 0xac, 0x87,
0x25, 0xd1, 0xb8, 0xdd, 0xa0, 0x8a, 0x47, 0x91,
0xd6, 0x27, 0x6a, 0x47, 0xa2, 0x8b, 0xd0, 0x38,
0xbc, 0xf4, 0x96, 0x5c, 0x33, 0x20, 0xf8, 0x6e,
0x32, 0x51, 0x65, 0x59, 0x90, 0x3b, 0xb6, 0xb3,
0x9d, 0x21, 0x92, 0x00, 0xb2, 0x07, 0xcd, 0x20,
0x14, 0x19, 0x8a, 0x1c, 0x51, 0x80, 0x4d, 0x0c,
0xe3, 0xf9, 0x40, 0x08, 0x48, 0x9b, 0x15, 0xf2,
0x43, 0x5a, 0x86, 0xf3, 0xe8, 0x28, 0x5e, 0xcf,
0x77, 0xbf, 0xd1, 0xb3, 0xac, 0xd2, 0x44, 0x4d,
0xd5, 0x6e, 0x08, 0x48, 0x6a, 0x06, 0x08, 0x02,
0xe3, 0xf0, 0xc5, 0x69, 0xba, 0xf2, 0x25, 0x90,
0xe2, 0x2a, 0xf6, 0x76, 0x26, 0x5d, 0x03, 0x33,
0xb3, 0x2c, 0x59, 0xda, 0x32, 0x6d, 0x93, 0xf0,
0xae, 0x3e, 0xf4, 0x57, 0x76, 0x89, 0xfe, 0x75,
0x4d, 0x38, 0xc9, 0x1f, 0xf3, 0xaf, 0x2c, 0x70,
0xd4, 0xcc, 0x96, 0x2c, 0x22, 0xb4, 0x2a, 0xaa,
0x8d, 0x3e, 0x5b, 0x69, 0x30, 0x0d, 0xb0, 0x6d,
0x03, 0x91, 0x95, 0x90, 0x13, 0x10, 0xf8, 0x95,
0x25, 0xf3, 0x49, 0x91, 0xc7, 0xf4, 0xc1, 0x0e,
0xf2, 0xad, 0x22, 0x67, 0xb4, 0x51, 0x94, 0xdb,
0x86, 0x44, 0x10, 0x24, 0x66, 0x03, 0x55, 0xf0,
0x5c, 0x19, 0x46, 0xc3, 0xca, 0x9b, 0xfa, 0xf0,
0x43, 0xd7, 0x72, 0xdd, 0x5a, 0x60, 0x2d, 0xc9,
0x8b, 0xa7, 0x91, 0xa2, 0x32, 0xdf, 0xa4, 0x00,
0x49, 0xdc, 0xa8, 0xa0, 0x24, 0xb9, 0x16, 0x27,
0x85, 0x55, 0xd7, 0x06, 0xc2, 0xaa, 0x23, 0x26,
0x13, 0x32, 0x31, 0xd2, 0x2e, 0x42, 0xe7, 0xa5,
0xf1, 0x72, 0x4b, 0x23, 0x8f, 0x2c, 0x17, 0x52,
0xeb, 0x5e, 0xe2, 0xfc, 0xf1, 0x8d, 0x88, 0xff,
0xcc, 0x4f, 0xa5, 0xf2, 0xeb, 0x3f, 0xff, 0xbf,
0x93, 0x68, 0xcd, 0x48, 0x1a, 0x01, 0x9e, 0x20,
0x25, 0x02, 0x03, 0x01, 0x00, 0x01
};
const std::string kBitwardenPublicKeyStr( // NOLINT
(const char *)kBitwardenPublicKey, sizeof(kBitwardenPublicKey));
const std::string kBitwardenId("nngceckbapebfimnlniiiahkandclblb"); // NOLINT

#endif // BRAVE_BROWSER_COMPONENT_UPDATER_DEFAULT_EXTENSIONS_H_