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

Device not able to output GBP pound symbol "£" using keyboard layout en_UK #394

Open
cybern0id opened this issue May 8, 2017 · 24 comments

Comments

@cybern0id
Copy link

Expected behavior

A password containg the GBP sign "£" should be output in full by the Mooltipass Mini when clicking the wheel for "Enter Password?"

Actual behavior

The device outputs all characters in the password preceeding the £ sign and stops; it does not output the £ sign or any characters after it.

Step by step guide to reproduce the problem

Save credentials with a password containing a GBP £ sign using the Mooltipass app. Confirm that "en_UK" is the active setting for keyboard layout. Confirm that the full password has been saved and is visible in the app in Credentials Management Mode. Try using the credentials for authentication and find that it fails. Check the plain text output from the device by trying to send the password to a text editor or similar.

Side note: strictly speaking, the ISO code for UK keyboard layout should be en_GB not en_UK as is currently displayed in the app.

Operating System

Debian Jessie

Mooltipass Extension

the chrome extension: 1.1.79

Mooltipass Application

the chrome application: 2.0.69

Mooltipass Device

The Mooltipass Mini

@limpkin
Copy link
Owner

limpkin commented May 8, 2017

Hello there,

Unfortunately we only support ASCII characters.

@limpkin limpkin closed this as completed May 8, 2017
@cybern0id
Copy link
Author

Why did you close this bug?

  1. £ symbol is an extended ASCII character
  2. Why do you provide the ability to change keyboard layouts if you don't support the £ symbol which occurs as SHIFT+3 on all UK keyboards?

@limpkin limpkin reopened this May 8, 2017
@limpkin
Copy link
Owner

limpkin commented May 8, 2017

I'll leave the issue open then.
We unfortunately do not support extended ASCII codes.

@cybern0id
Copy link
Author

Do not or will not?

My second question remains unanswered. Why do you provide the option for different keyboard layouts if the en_UK layout does not reflect a UK keyboard?

Is it not possible to add £ symbol support easily?

@limpkin
Copy link
Owner

limpkin commented May 8, 2017

Do not : https://github.com/limpkin/mooltipass/blob/master/source_code/src/USB/usb.c#L994
However, if you'd like to create a quick hack for your use case you can modify our source easily: it's open source after all.

Why do you provide the option for different keyboard layouts if the en_UK layout does not reflect a UK keyboard?

We support UK keyboard layout for ASCII characters.

@cybern0id
Copy link
Author

I will try but again what is the exact purpose of providing different keyboard layouts?

@limpkin
Copy link
Owner

limpkin commented May 8, 2017

to provide different layout support for ascii characters.

@cybern0id
Copy link
Author

cybern0id commented May 8, 2017

Before I go too far (I am not a coder so this is going to take me a long time hacking), is there enough space in the flash memory on the Mini to accommodate a new LUT for en_UK? i.e. a new bitmap for the £ symbol and new defines etc for it?

What I don't understand is that the Mini obviously has the ability to store and recall the symbol - I can see it in the chrome app, it just has no facility to output it....

@dhharker
Copy link

I ran into this issue today; it is confusing that the app lets you add "£" etc. when the device does not support it.

Would the following cover all the bases for a fix?:

  • Update the app to prevent disallowed characters being stored in credential management mode/quick add
  • Refuse to store passwords from the in-browser UI if they contain unsupported characters

@limpkin
Copy link
Owner

limpkin commented May 12, 2017

Well that's a complex topic: should we prevent non ascii characters when native integration actually uses them without any problem for storage/recall?

@NicoHood
Copy link
Contributor

I think we need some real UTF8 support. Some websites or passwords contain öäüß for example. I know its not wise to use those chars and I know its a pain to implement this, but mooltipass should be able to handle those in the future.

@limpkin
Copy link
Owner

limpkin commented May 12, 2017

@NicoHood I completely agree with you, but when we created the device we simply didn't have the resources. This may obviously change in the future.

@dhharker
Copy link

@limpkin @NicoHood I guess there is a distinction between being able to display the characters on the MP and being able to send the keystrokes?

Might there be an issue with storage space and memory management if you put actual UTF8 code tables on the device?

Equally, it should still be able to match (url) and output the correct bytes, even if it cannot interpret them?

R-WebsterNoble added a commit to R-WebsterNoble/mooltipass that referenced this issue Jun 21, 2017
@ajira86
Copy link

ajira86 commented Feb 27, 2018

FYI: I have the issue with symbols ~ @ and ^. They are saved on device but fails to be written in a password field. Could we have a generic fix for this issue ? (I can eventually change my passwords but this take a lot of time for a large number)

@limpkin
Copy link
Owner

limpkin commented Feb 27, 2018

~, @ and ^ should be supported... are you sure you selected the right keyboard?

@ajira86
Copy link

ajira86 commented Feb 27, 2018

Yes, I use my usual keyboard, the frde_CH one. Sorry if I change the initial subject, should I open a new issue ?

@limpkin
Copy link
Owner

limpkin commented Feb 27, 2018

frde_ch on PC or MAC?

@telepath
Copy link

How could I go about expanding the capabilities to include ASCII extended characters? Is the devices memory sufficient?
I'm not quite clear how the keyboard layouts are created.

@limpkin
Copy link
Owner

limpkin commented Jan 12, 2019

@telepath if you have experience in C, it would be better if you could help us on our newer device, which should support unicode BMP :)

@telepath
Copy link

@limpkin that might be better for you, but since I own the Mooltipass mini, and this is a major flaw, I think it would be wise to fix it. Unless the capabilities do not allow it, in which case I'd have no choice but to return the device and wait for something better.
I'd really get this solved, if possible. Also, I think a new device should not mean to stop supporting an older one, and I think this improvement would increase the usability of the existing device a lot.

@limpkin
Copy link
Owner

limpkin commented Jan 13, 2019

@telepath ASCII extended will not be as useful as full unicode support to most of our customers. We do provide support for our previous devices, but we unfortunately don't have the resources nor contributors to spend dozens of hours to add a feature which will be added for our next device in a much better way... I hope you'll understand.
I can however provide you with a clear and exhaustive tutorial on how to add this support if you'd like.

@telepath
Copy link

@limpkin if you have a plan to add unicode support to the mooltipass mini, I'll gladly see if I can help with that.
Otherwise, I'd really appreciate the tutorial :)

@limpkin
Copy link
Owner

limpkin commented Jan 13, 2019

@telepath I'm afraid the mini's memory and file system is not meant to handle so many characters.
Here are the main information you'll need:

@telepath
Copy link

telepath commented Feb 2, 2019

@limpkin thanks for the summary!
Could you give me some details on https://github.com/limpkin/mooltipass/tree/master/tools/keyboardLUTHidApi? I got it running, but after entering the keyboard language, I don't know how to proceed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants