Skip to content

Commit

Permalink
Api -> Bitwarden
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniel Liljeberg committed Nov 2, 2018
1 parent eab8d7d commit 7c4efe3
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 24 deletions.
7 changes: 6 additions & 1 deletion app
Expand Up @@ -3,7 +3,12 @@
arg=$1

function initialize {
meson build --prefix=/usr
system=$(uname -s)
prefix="/usr"
if [[ system == "Darwin" ]]; then
prefix="/usr/local"
fi
meson build --prefix=$prefix
result=$?

if [ $result -gt 0 ]; then
Expand Down
8 changes: 4 additions & 4 deletions src/dialogs/LoginDialog.vala
Expand Up @@ -91,12 +91,12 @@ namespace App.Dialogs {
string email = email_entry.text;
string password = password_entry.text;

var api = App.Api.get_instance ();
var bitwarden = App.Bitwarden.get_instance ();
App.Models.ErrorObject result;
if (two_factor_entry.text != "") {
result = api.login (email, password, 0, two_factor_entry.text);
result = bitwarden.login (email, password, 0, two_factor_entry.text);
} else {
result = api.login (email, password);
result = bitwarden.login (email, password);
}
if (result.error != null) {
error_label.label = _ (result.error_description);
Expand All @@ -115,7 +115,7 @@ namespace App.Dialogs {
}
stdout.printf ("%s\n".printf (result.error));
} else {
App.Api.get_instance ().sync ();
App.Bitwarden.get_instance ().sync ();
error_label.hide ();
main_window.show_all ();
app_view.activate ();
Expand Down
2 changes: 1 addition & 1 deletion src/meson.build
Expand Up @@ -26,7 +26,7 @@ sources += files(

'models/Totp.vala',
'models/Crypto.vala',
'models/Api.vala',
'models/Bitwarden.vala',
'models/LibUUID.vala',
'Application.vala',
'Main.vala',
Expand Down
10 changes: 5 additions & 5 deletions src/models/Api.vala → src/models/Bitwarden.vala
Expand Up @@ -3,14 +3,14 @@ using App.Models;
using GCrypt;

namespace App {
public class Api {
public class Bitwarden {
private const int TOTP_TFA_ID = 0;
private Soup.SessionAsync session;
private string valawarden_dir;
private string sync_data_file = "sync-data.json";
public uint8[] encryption_key;

public Api () {
public Bitwarden () {
session = new Soup.SessionAsync ();
session.user_agent = "%s/%s".printf (Constants.BITWARDEN_USER_AGENT, Constants.VERSION);

Expand Down Expand Up @@ -300,11 +300,11 @@ namespace App {
return parser;
}

private static Api ? instance;
private static Bitwarden ? instance;

public static unowned Api get_instance () {
public static unowned Bitwarden get_instance () {
if (instance == null) {
instance = new Api ();
instance = new Bitwarden ();
}

return instance;
Expand Down
6 changes: 3 additions & 3 deletions src/views/AppView.vala
Expand Up @@ -50,7 +50,7 @@ namespace App.Views {
child_panel.pack2 (CipherPage.get_instance (), true, false);
main_panel.position = (150);

if (App.Api.get_instance ().encryption_key == null) {
if (App.Bitwarden.get_instance ().encryption_key == null) {
password_entry = new Gtk.Entry ();
password_entry.set_visibility (false);
login_button = new Gtk.Button.with_label (_ ("Unlock"));
Expand All @@ -72,8 +72,8 @@ namespace App.Views {
}

private async void on_login_clicked () {
var api = App.Api.get_instance ();
if (yield api.unlock (password_entry.text)) {
var bitwarden = App.Bitwarden.get_instance ();
if (yield bitwarden.unlock (password_entry.text)) {
this.remove (grid);
this.add (main_panel);
sidebar.setup_folders ();
Expand Down
20 changes: 10 additions & 10 deletions src/widgets/Sidebar.vala
Expand Up @@ -32,8 +32,8 @@ namespace App.Widgets {
}

public void setup_folders () {
var api = App.Api.get_instance ();
var sync_data = api.sync ();
var bitwarden = App.Bitwarden.get_instance ();
var sync_data = bitwarden.sync ();
var folders_obj = sync_data.get_array_member ("Folders");
parse_folders (folders_obj);

Expand All @@ -53,32 +53,32 @@ namespace App.Widgets {
}

private void parse_folders (Json.Array ? folders_obj) {
var api = App.Api.get_instance ();
var bitwarden = App.Bitwarden.get_instance ();
folders = new FolderCollection ();
folders_obj.foreach_element ((array, index, node) => {
var object = node.get_object ();

var folder = new Folder ();
folder.id = object.get_string_member ("Id");
folder.name = (string) (api.decrypt_string (object.get_string_member ("Name"), api.encryption_key));
folder.name = (string) (bitwarden.decrypt_string (object.get_string_member ("Name"), bitwarden.encryption_key));
folders.add (folder);
});
}

private void parse_ciphers (Json.Array ? ciphers) {
var api = App.Api.get_instance ();
var bitwarden = App.Bitwarden.get_instance ();
ciphers.foreach_element ((array, index, node) => {
var object = node.get_object ();
var login = object.get_object_member ("Login");

var cipher = new Cipher ();
cipher.name = (string) (api.decrypt_string (object.get_string_member ("Name"), api.encryption_key));
cipher.username = (string) (api.decrypt_string (login.get_string_member ("Username"), api.encryption_key));
cipher.password = (string) (api.decrypt_string (login.get_string_member ("Password"), api.encryption_key));
cipher.uri = (string) (api.decrypt_string (login.get_string_member ("Uri"), api.encryption_key));
cipher.name = (string) (bitwarden.decrypt_string (object.get_string_member ("Name"), bitwarden.encryption_key));
cipher.username = (string) (bitwarden.decrypt_string (login.get_string_member ("Username"), bitwarden.encryption_key));
cipher.password = (string) (bitwarden.decrypt_string (login.get_string_member ("Password"), bitwarden.encryption_key));
cipher.uri = (string) (bitwarden.decrypt_string (login.get_string_member ("Uri"), bitwarden.encryption_key));
string totp;
if ((totp = login.get_string_member ("Totp")) != null) {
cipher.totp = (string) (api.decrypt_string (totp, api.encryption_key));
cipher.totp = (string) (bitwarden.decrypt_string (totp, bitwarden.encryption_key));
}

var folderId = object.get_string_member ("FolderId");
Expand Down

0 comments on commit 7c4efe3

Please sign in to comment.