-
-
Notifications
You must be signed in to change notification settings - Fork 409
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add password interface to support bitwarden-cli
#2355
Comments
I've definitely seen an issue about bitwarden support before, but I can't find it... Bitwarden is quite unknown of a ground for most of the team. None of us used it, I suppose. However, it should be pretty possible to support it if you say that the CLI API is similar to KeePassXC. What would help there is a listing of commands (and an explanation of what input those require) to:
|
Guix has the |
@aartaka Thanks, sorry was out for work trip this last days.
examples of list/finding by diff ways notice the --url
Examples of get
if you aready did bw login once then you just need to unlock by requesting a command, in my case I have dmenu pop up asking me for the login/pass and the stdout of the request result. There is a great example on how qutebrowser does this with python on the link I sent above. https://github.com/qutebrowser/qutebrowser/blob/master/misc/userscripts/qute-bitwarden |
I had a look at rbw: it misses the following from what you've listed:
My guess is that @r3k2 From the author's comment, it seems that |
@Ambrevar well I like bw more, mainly because is the "officially" supported, but if this is build around rbw that is ok, will be easy to change tool, as long rbw has a big community and fast development to assist in any new security issue or bug knowing this is a password manager not just any other simple desktop software. I like the idea of BW of having to enter credentials each time I look for a web password, the last thing I need is for my laptop to be stolen while on, meaning my drive is then unencrypted and logged into the system as my user... when it comes to security/privacy I do not mind practicality as much, the point of securing a password manager is to be able to use other apps like webbrowsers and what not, in a more practical way, but not the password manager it self :) |
Hello, grats on the pre-release 🎆 any chance this can make it? if to busy, can you point me out the files/libs/places I can look, so I can try to write this, I have no lisp experience only with C/GO and some scripting languages like Python/Ruby and such |
I've forgotten about this, sorry. If you care enough to try implementing it yourself, then |
@aartaka i'm willing to make a pull request with bitwarden integration, but currently stuck making dev environment to work under NixOS. Is there's any clear way to setup up dev environment using shell.nix? Everything from the manual works fine, i can start Nyxt instance without compiling using I tried to add (defsystem "nyxt/password-manager"
:defsystem-depends-on (nyxt-asdf)
:class :nyxt-system
:depends-on (bordeaux-threads
cl-ppcre
str
trivial-clipboard
uiop
nyxt/class-star
serapeum)
:pathname #p"NYXT:libraries;password-manager;"
:components ((:file "package")
(:file "password")
(:file "password-keepassxc")
(:file "password-security")
(:file "password-pass")
;; Keep password-bitwarden last so that it has higher priority.
(:file "password-bitwarden")))
Updated user config to use Bitwarden by default. (define-configuration nyxt/password-mode:password-mode
((nyxt/password-mode:password-interface (make-instance 'password:bitwarden-interface)))) And after restarted Nyxt using
After looking around fro some clues i checked From what i see, there must be some sort of cache happening, but i can't figure out where or how exactly should i clear it. I tried deleting What am i missing here? |
No, I suppose. @jmercouris is using NixOS too, so maybe he has found a better way, but the last time I've heard, Quicklisp was the simplest way to load Nyxt & deps due to Nix's Lisp unfriendliness :D
So far so good, I don't see anything outright wrong there.
I have a habit of restarting the whole Lisp image from scratch to test a new feature, because by the time you finish it the image goes infinitely polluted and ASDF remember the old list of files. May be worth it to try restarting the image there ;)
Have you exported (:export-class-name-p t)
(:export-accessor-names-p t)
(:accessor-name-transformer (class*:make-name-transformer name)) in
Yes, that could well be a cache issue. But let's try all the other suggestions above first :) |
I wish i new how to do it from the top of my head :) I'm new to common-lisp, but quite familiar with Elisp.
Yes i did. (define-class bitwarden-interface (password-interface)
((executable (pathname->string (sera:resolve-executable "bw")))
(password-file)
(master-password nil
:type (or null string))
(entries-cache nil
:type list
:documentation "The cache to speed the entry listing up."))
(:export-class-name-p t)
(:export-accessor-names-p t)
(:accessor-name-transformer (class*:make-name-transformer name)))
Yesterday i notice that after i delete all the cache and try to follow the steps described in Hacking section, it doesn't really uses my local copy, but instead the definition of the package from beta.quicklisp.org/dist/quicklisp/2022-07-08/systems.txt. How do you personally developing Nyxt using local repository you make changes to? |
One dirty and discouraged hack is to add those to (push #p"/path/to/local/checkout/" asdf:*central-registry*) There probably are better ways, but this one works in 100% of cases. |
Alright, i've got it working. Here's a helpful link to others searching for answers: I might make some changes to |
Yes, local projects are probably even better of a way for Quicklisp-based workflow :) MANUAL mention of that wouldn't hurt! |
Hello everyone, pleased to see someone is working on this, since I have no idea on LISP, how is this comming along? |
The main contributors are a bit swamped by high priority tasks. Things should settle down in a month or 2. Sorry :/ |
@andreystepanov, you've said you've got the prototype working. Mind opening a PR then? If it's not yet ready and you've no time, we can take it from there! |
Looks like this has been stale a while, any chance you've gotten it working? If not I'll probably go ahead and make this myself in the next couple days. |
bitwarden-cli
This is should be relatively easy to do by sub classing |
See https://git.sr.ht/~ehrt74/nyxt-bitwarden.
Support for all password managers probably doesn't belong to Nyxt's core but PRs are certainly welcomed. For the time being, please rely on the extension mentioned above. |
Please add support for bitwarden-cli on nyxt 3.x
I have check the support for keepassXC on libraries/password-managers and seems for someone with lisp knowladge could be super simple to convert since bitwarden-cli is very similar.
As of now I use qutebrowser with https://github.com/qutebrowser/qutebrowser/blob/master/misc/userscripts/qute-bitwarden
and is the only thing at this moment preventing me from fully migrating to nyxt.
I have look around, to see if I can do this myself, but I have 0 idea of lisp, just starting to pick up the syntax now, I come from C/GO etc and is very differente :)
PS: gopass is already kind of supported since is 100% compatible with "pass" unfortunately I only use gopass for system/services credentials not web credentials.
The text was updated successfully, but these errors were encountered: