Skip to content
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

Auto-Type: Changes capitalization of Password during insertion #463

Closed
rgloor opened this issue Apr 4, 2017 · 7 comments
Closed

Auto-Type: Changes capitalization of Password during insertion #463

rgloor opened this issue Apr 4, 2017 · 7 comments
Milestone

Comments

@rgloor
Copy link

rgloor commented Apr 4, 2017

When the keyboard (physical keyboard) has "Caps Lock" on, Auto-Type alters the filled-in information (like username and password).
It changes the capitalization of certain letters.
Not all but sometimes from small to big, sometimes changes from big to small.
If I looked right, it capitalizes every 2nd letter (if character is a letter, not a number or some special character).
As far as I saw, it starts with the first character to capitalize and does it with every second one.
Some of the big ones in between are lowered. But if I recall right, not all. Not tested all cases.

Expected Behavior

The filled-in password (information) should always be the same (not only the same but rather the set/stored one), no matter if the physical keyboard has "Caps Lock" on or off.

Current Behavior

If "Caps Lock" is off, Auto-Type works as expected (beside the other keyboard charmap bug during autostartup)
If "Caps Lock" is on, Auto-Type alters password (and username)

Steps to Reproduce (for bugs)

  1. Set "Caps Lock" to on
  2. Use Auto-Type (with Password including letters)

Context

Login-Error with Auto-Type (when "Caps Lock" on)

Your Environment

  • KeePassXC version/commit used: 2.1.3
  • Qt version 5.6.1
  • Compiler
  • Operating System and version: openSUSE 42.2 (fully patched)
@rgloor
Copy link
Author

rgloor commented Apr 4, 2017

OK. I did some more tests.
In general it changes one letter to big (capitalized), the next to small (lowered), then big again, and so on.
However, it doesn't change straight every 2nd character (to big / low). It looks like it skips some special characters like @.
By setting-up kwrite as a Auto-Type target (because it shows all information there in viewable characters), I did the following Auto-Type test:

With "Caps Lock" off, it inserts the correct / stored information (username and password).
But with "Caps Lock" on, it changes the content:

"Caps Lock" off Username: [email protected]
"Caps Lock" on Username: [email protected]

"Caps Lock" off Password: 123456AAABBBCCCaaabbbccc
"Caps Lock" on Password: 123456AaAbBbCcCAaAbBbCcC

So one sees:
With username...
... around the "@" and the "." it skips the 2nd character behavior. (Like skips the special character.)
With password...
... at the end of the first CCC, it just have 2 capitalizations in a row (..CA..) and then continuous with the big-small-sequence.

I hope this helps a little bit for tracking down the source of the bug.

@droidmonkey
Copy link
Member

Seems like a bit flag is being toggled erroneously that is spitting out capital and lowercase letters. Perhaps the easiest fix is to detect if caps lock is on (possible?) and turn it off prior to typing. Then turn it back on once done.

@TheZ3ro
Copy link
Contributor

TheZ3ro commented Apr 5, 2017

@rgloor what version of KeePassXC are you using?

I think @droidmonkey is right here. I will look into this in the next few days

@rgloor
Copy link
Author

rgloor commented Apr 5, 2017

@TheZ3ro
The latest stable Version: 2.1.3

@rgloor
Copy link
Author

rgloor commented Apr 5, 2017

How are you entering the data by simulated keystrokes? Are those simulated to come from the physical keyboard?
If yes:
is there the option, to utilize a secondary, a virtual keyboard instead? (With it's own "Caps Lock" status.)
(I thought of it, because a friend has a notebook with touch screen, having some troubles with some special characters on the physical keyboard and often using both, the physical and a virtual keyboard at the same time.)
If no:
Then you might already use a virtual keyboard.

Just my 2 cents. ;-)

@HacKanCuBa
Copy link

Confirmed here.

  • KeePassXC version/commit used: 2.1.3-76dcfb5ed0c874f6a835ef0347ddf6098b149e9b
  • Qt version (e.g. Qt 5.3): 5.7.1
  • libgcrypt: 1.7.6-beta
  • Operating System and version: 4.9.0-2-amd64 update header file for Qt5 #1 SMP Debian 4.9.13-1 (2017-02-27) x86_64 GNU/Linux

@TheZ3ro
Copy link
Contributor

TheZ3ro commented Sep 8, 2017

This should be fixed by #718. Closing

@TheZ3ro TheZ3ro closed this as completed Sep 8, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants