Patch to improve smartcard handling on smartcard logon

Rostislav Kondratenko <[email protected]> Mon, 27 Jul 2015 15:40:54 +0300
Newsgroups gmane.network.rdesktop.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------080002020803000304000105
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Hello,
When using rdesktop with smartcard logon there are two issues.

1. When connecting to existing session server does not end the=20
transaction taken for smartcard logon, sending Server Announce instead.=20
Protocol specification directs client to drop all existing device=20
references, witch should include releasing all smartcard contexts,=20
effectively releasing all current transactions. Current version however=20
does not release these contexts, blocking smartcard from any use for the =

rest of the session.

2. When calling SCardGetStatus change caller may ask for special reader=20
"\\\\?PnP?\\Notification" that will effectively signal when new=20
smartcard reader will appear. Support for this feature appeared in=20
pcsc-lite v1.6.0 quite a while ago. Current version of rdesktop filters=20
out this special reader name for compatibility with older versions of=20
pcsc-lite and Apple fork of it. As a result if a reader was not plugged=20
in at application startup, windows logon screen will not detect=20
insertion of a new reader during logon screen and options for smartcard=20
logon won't appear.

I have prepared a patch addressing these two issues. See attachment.

Rostislav Kondratenko.


--------------080002020803000304000105
Content-Type: text/plain; charset=UTF-8;
 name="patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="patch"

SW5kZXg6IGNvbmZpZ3VyZS5hYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb25maWd1cmUuYWMJKHJl
dmlzaW9uIDE4NDcpCisrKyBjb25maWd1cmUuYWMJKHdvcmtpbmcgY29weSkKQEAgLTE4OSw2
ICsxOTEsMTAgQEAKIAkgICBleGl0IDEKIAlmaQoKKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3Ig
UENTQy1saXRlID49IDEuNi4wIChQblAvTm90aWZpY2F0aW9ucyBzdXBwb3J0KV0pCisgIFBL
R19DSEVDS19NT0RVTEVTKFBOUF9OT1RJRklDQVRJT05TLCBsaWJwY3NjbGl0ZSA+PSAxLjYu
MCwgW1dJVEhfUE5QX05PVElGSUNBVElPTlM9MV0sIFtXSVRIX1BOUF9OT1RJRklDQVRJT05T
PTBdKQorICBBQ19ERUZJTkUoV0lUSF9QTlBfTk9USUZJQ0FUSU9OUykKKwogCUFDX01TR19D
SEVDS0lORyhbZm9yIG9sZCB2ZXJzaW9uIG9mIFBDU0NdKQogCUFDX1RSWV9MSU5LKFsKIAkJ
I2luY2x1ZGUgPHN0ZGxpYi5oPgpJbmRleDogcHJvdG8uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBw
cm90by5oCShyZXZpc2lvbiAxODQ3KQorKysgcHJvdG8uaAkod29ya2luZyBjb3B5KQpAQCAt
MzU0LDYgKzM1NCw3IEBACiBpbnQgc2NhcmRfZW51bV9kZXZpY2VzKHVpbnQzMiAqIGlkLCBj
aGFyICpvcHRhcmcpOwogdm9pZCBzY2FyZFNldEluZm8odWludDMyIGVwb2NoLCB1aW50MzIg
ZGV2aWNlLCB1aW50MzIgaWQsIHVpbnQzMiBieXRlc19vdXQpOwogdm9pZCBzY2FyZF9yZXNl
dF9zdGF0ZSgpOwordm9pZCBzY2FyZF9yZWxlYXNlX2FsbF9jb250ZXh0cygpOwoKIC8qICpJ
TkRFTlQtT0ZGKiAqLwogI2lmZGVmIF9fY3BsdXNwbHVzCkluZGV4OiByZHBkci5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHJkcGRyLmMJKHJldmlzaW9uIDE4NDcpCisrKyByZHBkci5jCSh3b3Jr
aW5nIGNvcHkpCkBAIC04MjYsNiArODI2LDExIEBACiAJCQkJCWdfY2xpZW50X2lkID0gMHg4
MTVlZDM5ZDsJLyogSVAgYWRkcmVzcyAodXNlIDEyNy4wLjAuMSkgMHg4MTVlZDM5ZCAqLwog
CQkJCWdfZXBvY2grKzsKCisjaWYgV0lUSF9TQ0FSRAorICAgICAgICAgICAgICAgIC8qIFdl
IG5lZWQgdG8gcmVsZWFzZSBhbGwgU0NBUkQgY29udGV4dHMgdG8gZW5kIGFsbCBjdXJyZW50
IHRyYW5zYWN0aW9ucyBhbmQgcGVuZGluZyBjYWxscyAqLworICAgICAgICAgICAgICAgIHNj
YXJkX3JlbGVhc2VfYWxsX2NvbnRleHRzKCk7CisjZW5kaWYKKwogCQkJCXJkcGRyX3NlbmRf
Y2xpZW50X2Fubm91bmNlX3JlcGx5KCk7CiAJCQkJcmRwZHJfc2VuZF9jbGllbnRfbmFtZV9y
ZXF1ZXN0KCk7CiAJCQkJYnJlYWs7CkluZGV4OiBzY2FyZC5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHNjYXJkLmMJKHJldmlzaW9uIDE4NDcpCisrKyBzY2FyZC5jCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTU0LDkgKzExNTQsMTAgQEAKIAkJCQlpblJlcG9zKGluLAogCQkJCQlpblN0cmluZygm
bGNIYW5kbGUsIGluLCAoY2hhciAqKikgJihjdXItPnN6UmVhZGVyKSwKIAkJCQkJCSBkYXRh
TGVuZ3RoLCB3aWRlKSk7Ci0KKyNpZiAhV0lUSF9QTlBfTk9USUZJQ0FUSU9OUwogCQkJCWlm
IChzdHJjbXAoY3VyLT5zelJlYWRlciwgIlxcXFw/UG5QP1xcTm90aWZpY2F0aW9uIikgPT0g
MCkKIAkJCQkJY3VyLT5kd0N1cnJlbnRTdGF0ZSB8PSBTQ0FSRF9TVEFURV9JR05PUkU7Cisj
ZW5kaWYKIAkJCX0KCiAJCQlERUJVR19TQ0FSRCgoIlNDQVJEOiAgICBcIiVzXCJcbiIsIGN1
ci0+c3pSZWFkZXIgPyBjdXItPnN6UmVhZGVyIDogIk5VTEwiKSk7CkBAIC0yNjkwLDMgKzI2
OTEsMTkgQEAKCiAJcXVldWVGaXJzdCA9IHF1ZXVlTGFzdCA9IE5VTEw7CiB9CisKK3ZvaWQg
c2NhcmRfcmVsZWFzZV9hbGxfY29udGV4dHMoKSB7CisJX3NjYXJkX2hhbmRsZV9saXN0X3Qg
Kml0ZW0sICpuZXh0OworCWl0ZW0gPSBnX3NjYXJkX2hhbmRsZV9saXN0OworCXdoaWxlIChp
dGVtKQorCXsKKwkJLyogQ2FuY2VsbGluZyBTY2FyZEdldFN0YXR1c0NoYW5nZSBjYWxscyAq
LworCQlTQ2FyZENhbmNlbChpdGVtLT5oYW5kbGUpOworCQkvKiByZWxlYXNpbmcgY29udGV4
dCB0byBlbmQgYWxsIHRyYW5zYWN0aW9ucyBvbiBpdCAqLworCQlTQ2FyZFJlbGVhc2VDb250
ZXh0KGl0ZW0tPmhhbmRsZSk7CisJCW5leHQgPSBpdGVtLT5uZXh0OworCQl4ZnJlZShpdGVt
KTsKKwkJaXRlbSA9IG5leHQ7CisJfQorCWdfc2NhcmRfaGFuZGxlX2xpc3QgPSBOVUxMOwor
fQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
--------------080002020803000304000105
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------

--------------080002020803000304000105
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
rdesktop-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdesktop-devel

--------------080002020803000304000105--