https://bugs.winehq.org/show_bug.cgi?id=37495
Bug ID: 37495 Summary: AusweisApp2 1.0.0 (german identity card app) needs winscard.SCardEstablishContext implementation Product: Wine Version: 1.7.30 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: winscard Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
actually it needs much more - the revival of the Wine winscard project.
Years ago there were multiple attempts to implement this using pcsc-lite but abandoned later.
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/AusweisApp2 1.0.0
$ WINEDEBUG=+tid,+seh,+relay,+winscard wine ./AusweisApp2.exe --show >>log.txt 2>&1 ... 0029:Call KERNEL32.OutputDebugStringW(01d52780 L"D ReaderManager::onThreadStarted(card/base/ReaderManager.cpp:130) : thread started\n") ret=6674f9f1 ... 0029:Call KERNEL32.OutputDebugStringW(01d53378 L"D ReaderManager::registerPlugIns(card/base/ReaderManager.cpp:242) : Try to register plugins\n") ret=6674f9f1 ... 0029:Call KERNEL32.OutputDebugStringW(01d543f8 L"D ReaderManager::registerPlugIns(card/base/ReaderManager.cpp:247) : Register plugin: QJsonObject({"IID":"governikus.ReaderManagerPlugIn","MetaData":{"dependencies":[],"name":"PcscReaderManagerPlugIn"},"className":"PcscReaderManagerPlugIn","debug":false,"version":328450}"...) ret=6674f9f1 ... 0029:Call KERNEL32.OutputDebugStringW(01d53bf8 L"D ReaderManager::onThreadStarted(card/base/ReaderManager.cpp:136) : Start plugin: governikus::PcscReaderManagerPlugIn\n") ret=6674f9f1 ... 0029:Call winscard.SCardEstablishContext(00000000,00000000,00000000,01d53260) ret=005015b8 0029:fixme:winscard:SCardEstablishContext (0,(nil),(nil),0x1d53260) stub 0029:Ret winscard.SCardEstablishContext() retval=80100001 ret=005015b8 ... 0029:Call KERNEL32.OutputDebugStringW(01d54868 L"W PcscReaderManagerPlugIn::start(card/pcsc/PcscReaderManagerPlugIn.cpp:70) : SCardEstablishContext: "SCARD_F_INTERNAL_ERROR"\n") ret=6674f9f1 ... 0029:Call KERNEL32.OutputDebugStringW(01d546f0 L"W PcscReaderManagerPlugIn::start(card/pcsc/PcscReaderManagerPlugIn.cpp:71) : Not started: Cannot establish context\n") ret=6674f9f1 ... --- snip ---
Source: http://source.winehq.org/git/wine.git/blob/8d23d9cbdcc604d7c00e5a1201aac8af7...
--- snip --- 85 LONG WINAPI SCardEstablishContext(DWORD dwScope, LPCVOID pvReserved1, 86 LPCVOID pvReserved2, LPSCARDCONTEXT phContext) 87 { 88 FIXME("(%x,%p,%p,%p) stub\n", dwScope, pvReserved1, pvReserved2, phContext); 89 SetLastError(ERROR_CALL_NOT_IMPLEMENTED); 90 return SCARD_F_INTERNAL_ERROR; 91 } --- snip ---
$ sha1sum AusweisApp2-1.0.0.msi d09f8c6f2cad0a089903a3e31bf96079ae3cfe59 AusweisApp2-1.0.0.msi
$ du -sh AusweisApp2-1.0.0.msi 22M AusweisApp2-1.0.0.msi
$ wine --version wine-1.7.30
Regards
https://bugs.winehq.org/show_bug.cgi?id=37495
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |https://www.ausweisapp.bund | |.de/uploads/tx_ausweisdownl | |oads/AusweisApp2-1.0.0.msi
https://bugs.winehq.org/show_bug.cgi?id=37495
Rolf Ackermann rolf@weon.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rolf@weon.ch
--- Comment #1 from Rolf Ackermann rolf@weon.ch --- The same bug with a e-banking software. As far as I know (at least in Europe) more and more Banks are using USB Tokens for validating the eBanking access.
https://bugs.winehq.org/show_bug.cgi?id=37495
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de
--- Comment #2 from Sebastian Lackner sebastian@fds-team.de --- @Rolf: If you know how to compile Wine, you could try out the experimental winscard patchset out there. We were also thinking about adding to Wine Staging, but unfortunately noone of us developers has a suitable testing environment.
See: https://github.com/wine-compholio/wine-staging/issues/120
https://bugs.winehq.org/show_bug.cgi?id=37495
--- Comment #3 from Bruno Jesus 00cpxxx@gmail.com --- There were many attempts to get wine to support smart cards, I believe the first one was in 2007 by Mounir IDRASSI, a new version was sent in 2008. Then we have Vincent Hardy trying to resent the patches in 2011. I tried too in 2011 by sending [1] but it was ignored due to the fact that its not possible to test in testbot. So we currently have bug 31783 for that.
http://marc.info/?l=wine-patches&m=132011096001948&w=2
Most of the functions cannot be tested without a reader and a card and for most of the applications only a few functions are used, they are: SCardEstablishContext SCardListReaders SCardGetStatusChange SCardConnect SCardBeginTransaction SCardTransmit SCardEndTransaction SCardDisconnect SCardReconnect SCardReleaseContext
The minimal amount of functions required to do something are: SCardEstablishContext SCardListReaders SCardConnect SCardTransmit SCardDisconnect SCardReleaseContext
https://bugs.winehq.org/show_bug.cgi?id=37495
Qian Hong fracting@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fracting@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=37495
--- Comment #4 from Sebastian Lackner sebastian@fds-team.de --- (In reply to Bruno Jesus from comment #3)
There were many attempts to get wine to support smart cards, I believe the first one was in 2007 by Mounir IDRASSI, a new version was sent in 2008. Then we have Vincent Hardy trying to resent the patches in 2011. I tried too in 2011 by sending [1] but it was ignored due to the fact that its not possible to test in testbot. So we currently have bug 31783 for that.
Ah, I didn't know that you were also working on it. Too bad that upstream Wine has so big restrictions - when not even tests are sufficient it will be impossible to fix that.
We from the Wine Staging team would happily include patches for winscard support - when you have confirmed the correctness of your patches with tests thats even better. As mentioned before, we cannot test them ourself, but at least check for logical correctness. Feel free to send them to us if you're still interested in this functionality.
https://bugs.winehq.org/show_bug.cgi?id=37495
--- Comment #5 from Bruno Jesus 00cpxxx@gmail.com --- I have some more stuff to do and then I may switch back to winscard, I can test any patch related to it. I work in a company related to public transportation so I have access to many different readers and kinds of contact and contactless cards.
https://bugs.winehq.org/show_bug.cgi?id=37495
Michael Müller michael@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |michael@fds-team.de
https://bugs.winehq.org/show_bug.cgi?id=37495
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |39113
https://bugs.winehq.org/show_bug.cgi?id=37495
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|AusweisApp2 1.0.0 (german |Multiple PC/SC applications |identity card app) needs |need |winscard.SCardEstablishCont |winscard.SCardEstablishCont |ext implementation |ext implementation | |(AusweisApp2 1.0.0 german | |identity card app, | |SmartCard test apps)
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello folks,
refining summary since this is the very first API function required by any PC/SC application.
$ wine --version wine-1.7.49-143-gcfbc37c
Regards
https://bugs.winehq.org/show_bug.cgi?id=37495
winetest@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |00cpxxx@gmail.com, | |winetest@luukku.com
--- Comment #7 from winetest@luukku.com --- (In reply to Bruno Jesus from comment #3)
There were many attempts to get wine to support smart cards, I believe the first one was in 2007 by Mounir IDRASSI, a new version was sent in 2008. Then we have Vincent Hardy trying to resent the patches in 2011. I tried too in 2011 by sending [1] but it was ignored due to the fact that its not possible to test in testbot. So we currently have bug 31783 for that.
Things seem to have changed.
"François Gouget 2015-10-10 03:12:11 CDT
Jeremy bought four SCR 3310 card readers and attached one to each of the VM hosts: https://www.winehq.org/pipermail/wine-devel/2015-September/109305.html
Now I suspect they still need to be connected to the relevant VMs, somehow. Once done we will have to make sure we never start two VMs that use the card reader at the same time (in the short term, as long as we keep the TestBot configured to run at most one VM at any time we're fine but eventually we'll need something better)."
https://bugs.winehq.org/show_bug.cgi?id=37495
--- Comment #8 from Anastasius Focht focht@gmx.net --- Hello folks,
revisiting, obviously still present.
Another app: 'Aruba Key' Download: https://ca.arubapec.it/downloads/AK_WIN_VERSION.zip
Wine source:
https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/winscard/winscard.c#l...
--- snip --- 85 LONG WINAPI SCardEstablishContext(DWORD dwScope, LPCVOID pvReserved1, 86 LPCVOID pvReserved2, LPSCARDCONTEXT phContext) 87 { 88 FIXME("(%x,%p,%p,%p) stub\n", dwScope, pvReserved1, pvReserved2, phContext); 89 SetLastError(ERROR_CALL_NOT_IMPLEMENTED); 90 return SCARD_F_INTERNAL_ERROR; 91 } --- snip ---
$ sha1sum AK* bd0408fa2c72f9f87067aa9f348bb626aa0d503d AK_WIN_VERSION.exe f4a5ce7c902b64c7459f96a08df542dea6cf4a8a AK_WIN_VERSION.zip
$ du -sh AK* 160M AK_WIN_VERSION.exe 159M AK_WIN_VERSION.zip
$ wine --version wine-3.16-149-gb1a3b9e5ce
Regards
https://bugs.winehq.org/show_bug.cgi?id=37495
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mtombak@hssgm.gov.tr
--- Comment #9 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- *** Bug 49886 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=37495
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |o.dierick@piezo-forte.be Summary|Multiple PC/SC applications |Multiple PC/SC applications |need |need |winscard.SCardEstablishCont |winscard.SCardEstablishCont |ext implementation |ext implementation |(AusweisApp2 1.0.0 german |(AusweisApp2 1.0.0 german |identity card app, |identity card app, |SmartCard test apps) |SmartCard test apps, Seneka | |EBDYS client)
https://bugs.winehq.org/show_bug.cgi?id=37495
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|https://www.ausweisapp.bund |https://web.archive.org/web |.de/uploads/tx_ausweisdownl |/20210219211118/https://www |oads/AusweisApp2-1.0.0.msi |.ausweisapp.bund.de/fileadm | |in/user_upload/AusweisApp2- | |1.21.10.msi Summary|Multiple PC/SC applications |Multiple PC/SC applications |need |need |winscard.SCardEstablishCont |winscard.SCardEstablishCont |ext implementation |ext implementation |(AusweisApp2 1.0.0 german |(AusweisApp2 1.x german |identity card app, |identity card app, |SmartCard test apps, Seneka |SmartCard test apps, Seneka |EBDYS client) |EBDYS client, Aruba Key)
--- Comment #10 from Anastasius Focht focht@gmx.net --- Hello folks,
adding stable links via Internet Archive.
====
https://web.archive.org/web/20210219211118/https://www.ausweisapp.bund.de/fi...
$ sha1sum AusweisApp2-1.21.10.msi b816314d303c047334599cb6752c7e06a6bde70e AusweisApp2-1.21.10.msi
$ du -sh AusweisApp2-1.21.10.msi 22M AusweisApp2-1.21.10.msi
====
https://web.archive.org/web/20170625030733/https://ca.arubapec.it/downloads/...
$ sha1sum AK_WIN_VERSION.zip 726faf5339be647de218d077a78e40475e6d186e AK_WIN_VERSION.zip
$ du -sh AK_WIN_VERSION.zip 100M AK_WIN_VERSION.zip
====
https://web.archive.org/web/20190412211227/https://ca.arubapec.it/downloads/...
$ sha1sum AK_WIN_VERSION.zip 02106191b19d378071fdcf9060d262ccaba14226 AK_WIN_VERSION.zip
$ du -sh AK_WIN_VERSION.zip 175M AK_WIN_VERSION.zip
====
$ wine --version wine-6.2-157-gb8719736c5a
Regards
https://bugs.winehq.org/show_bug.cgi?id=37495
yan12125@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |yan12125@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=37495
Konstantin incubusrk@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |incubusrk@gmail.com
--- Comment #11 from Konstantin incubusrk@gmail.com ---
"François Gouget 2015-10-10 03:12:11 CDT
Now I suspect they still need to be connected to the relevant VMs, somehow. Once done we will have to make sure we never start two VMs that use the card reader at the same time (in the short term, as long as we keep the TestBot configured to run at most one VM at any time we're fine but eventually we'll need something better)."
How about testing with smart card emulation? https://www.opendnssec.org/softhsm/ https://sourceforge.net/projects/opencryptoki/ https://github-wiki-see.page/m/OpenSC/OpenSC/wiki/Smart-Card-Simulation
https://bugs.winehq.org/show_bug.cgi?id=37495
Vijay Kamuju infyquest@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |8490c43f38e306fef7b5fed3ffc | |b256efd73af58 Resolution|--- |FIXED Status|NEW |RESOLVED CC| |infyquest@gmail.com
--- Comment #12 from Vijay Kamuju infyquest@gmail.com --- This is now fixed, code made it upstream. The fix will be available in Wine 8.3 https://source.winehq.org/git/wine.git/commitdiff/8490c43f38e306fef7b5fed3ff...
https://bugs.winehq.org/show_bug.cgi?id=37495
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #13 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 8.3.