roelderickx / connective-plugin-linux

A replacement for the Connective Plugin which is used on several websites to log in or sign documents using a card reader and an electronic identity card.
GNU General Public License v3.0
36 stars 2 forks source link

Add support for cardreaders without numpad #2

Closed roelderickx closed 2 years ago

roelderickx commented 2 years ago

The application should show an on-screen numpad and verify the given pincode with an MVP:VERIFY command. The user interface should preferably be developed using tkinter, since this is supported with most python versions.

roelderickx commented 2 years ago

@BrechtSerckx I tested it yesterday and it seems to work, the branch with the code changes is merged into main. A numeric keypad should popup before computing the authentication. Please test with the latest main version from github on your end. I'd propose to test using test/protocoltest.html first, if all 4 messages return seemingly correct data you can continue to try logging in into doccle for example.

BrechtSerckx commented 2 years ago

@roelderickx Amazing work, both protocoltest (with changes to the reader name) and doccle worked perfectly. I only had to change a variable name:

diff --git a/connective-backend.py b/connective-backend.py
index f9f4f49..d5812ee 100755
--- a/connective-backend.py
+++ b/connective-backend.py
@@ -164,7 +164,7 @@ class NumpadWindow(tk.Frame):
     def get_pincode_as_hex(self):
         pincode_list = [ ]
         # add pincode in high and low nibbles
-        for index, digit in enumerate(numpad.pincode):
+        for index, digit in enumerate(self.pincode):
             if index % 2 == 0:
                 pincode_list.append(int(digit) * 16 + 15)
             else:

Thanks a lot, great tool!

roelderickx commented 2 years ago

Of course, the code change I did after I came home from testing. That was to be expected, but luckily I have tech-savvy users. Many thanks!