nthdimtech / signet-client

Client code for Signet and Signet HC
https://www.nthdimtech.com/signet
GNU General Public License v3.0
20 stars 8 forks source link

Misc text fields not being copied in their entirety. #88

Closed tfrohling closed 6 years ago

tfrohling commented 6 years ago

I'm trying to end a license key for an application. I've tried to do this as both a password with a text field and a misc data type with a text field.

Such as: ----- BEGIN LICENSE ----- Ted Frohling Single User License EA7E-939696 7F9BF7C3 1C89C484 B5091828 0C8200E8 087047F5 18A66F8D F24EE4E9 4D415F90 84AC8C50 580CE307 21940D8C 9A11D391 xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx 534599D9 0097A25B 951523DC 874FDA77 9046E468 C0911CC7 1B8586D5 920447F9 D0DA19F6 B3D9B65E 163E5387 849ABBAB 06EFEEF4 0A9F66C9 1F5F0435 B53B58D7 ------ END LICENSE ------

but the value saved is:

----- BEGIN LICENSE ----- Ted Frohling Single User License EA7E-939696 7F9BF7C3 1C89C484 B5091828 0C8200E8 087047F5 18A66F8D F24

But the value captured with the copy command is:

BDD1D8 D840679D 534599D9 0097A25B 951523DC 874FDA7

So I can't put in a text field that is retained and have the ability to recover the value entered.

ted

nthdimtech commented 6 years ago

I see what the issue is, strings are stored using a 8-bit length so it's truncating the data. I can't think of any workaround other than segmenting the data. I'll increase the length bytes for at least misc or extra fields where 256 characters is possibly not a reasonable limit and at least generate a warning elsewhere.

timetoseek commented 6 years ago

This explains the same issue I was having, when pasting a sample PGP Public Key... Validation/warning to the user would help... Maybe a possible solution would be to allow the users to attach a text file to the record?

Right now, you can click "Save", and it brings up the "Save Account" dialog box, asking to press the button, but the button does not flash, and nothing happens when you press it... attached is a screen print.
text_block_error

nthdimtech commented 6 years ago

I am not able to replicate the issue with the button not flashing but it could still be related. This usually happens when the device returns an error and the application doesn't respond to it. One error I see I'm not handling here is "out of space". Your device could be low on space and can't find a large enough block to accommodate the key. Could you see if manually cutting the key block text size significantly will allow the light to blink?

nthdimtech commented 6 years ago

Just pushed a fix for this which permits text up to about 1.5kb in extra fields. I will need to split records across multiple flash sectors to handle larger sizes which will require additional firmware and client work. There is additional validation work to do which I am tracking in a new issue #89

nthdimtech commented 6 years ago

@timetoseek, I have finally been able to replicate the issue with the light not starting to flash. It occurs for me when the ~1.5k limit is exceeded. The low level routines are returning an overflow condition and sending no data but the GUI doesn't catch it and proceeds as if the command was sent. I will fix this as a part of #89