FreeRDP: smartcard SCARD_E_UNKNOWN-error (W2012R2-server)

Within a freerdp session I get an SCARD_E_UNKNOWN error and smartcard is not usable in terminal session. On client side with pcsc_scan (as same user) all seems ok and smartcard is detected and read. The terminal server is W2012R2, client is Arch Linux with current versions of smartcard-drivers and tools installed:

ccid 1.4.23-1
opensc 0.16.0-1
pcsc-perl 1.4.14-2
pcsc-tools 1.4.26-1
pcsclite 1.8.16-1

$> xfreerdp /multimon /smartcard /f +aero +clipboard /v:192.168.1.10 /u:stefanie /d:KK
[17:34:58:011] [2230:2231] [INFO][com.freerdp.client.common.cmdline] - loading channel rdpdr
[17:34:58:011] [2230:2231] [INFO][com.freerdp.client.common.cmdline] - loading channel rdpsnd
[17:34:58:011] [2230:2231] [INFO][com.freerdp.client.common.cmdline] - loading channel cliprdr
Password: 
[17:35:02:293] [2230:2231] [WARN][com.freerdp.client.x11] - XInput extension not available.
[17:35:03:339] [2230:2231] [ERROR][com.freerdp.client.x11] - Error loading X Fixes extension
[17:35:03:366] [2230:2235] [INFO][com.freerdp.channels.rdpdr.client] - Loading device service smartcard (static)
[17:35:03:508] [2230:2235] [INFO][com.freerdp.channels.rdpdr.client] - registered device #1: SCARD (type=32 id=1)
[17:35:03:914] [2230:2235] [INFO][com.freerdp.channels.rdpdr.client] - registered device #1: SCARD (type=32 id=1)
[17:35:03:931] [2230:2235] [INFO][com.freerdp.channels.rdpdr.client] - registered device #1: SCARD (type=32 id=1)
[17:35:04:418] [2230:2267] [WARN][com.freerdp.channels.smartcard.client] - IRP failure: SCardGetStatusChangeA (0x000900A0), status: SCARD_E_UNKNOWN (0xC0000017)
[17:35:04:418] [2230:2267] [WARN][com.freerdp.channels.smartcard.client] - IRP failure: SCardGetStatusChangeA (0x000900A0), ntstatus: 0xC0000017
[17:35:11:604] [2230:2231] [INFO][com.freerdp.core] - ERRINFO_RPC_INITIATED_DISCONNECT_BY_USER (0x0000000B):The disconnection was initiated by an administrative tool on the server running in the user's session.
[17:35:11:742] [2230:2230] [ERROR][com.winpr.sync.mutex] - pthread_mutex_destroy failed with Das Gerät oder die Ressource ist belegt [16]
$> 

Also if the specific smartcard is defined (as below) the same error happens.

/smartcard:"KOBIL Systems Smart Token (NE155019978) 00 00"

pcsc_scan output:

$> pcsc_scan 
PC/SC device scanner
V 1.4.26 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.8.16
Using reader plug'n play mechanism
Scanning present readers...
0: KOBIL Systems Smart Token (NE155019978) 00 00

Sat Jul  2 17:35:36 2016
Reader 0: KOBIL Systems Smart Token (NE155019978) 00 00
  Card state: Card inserted, 
  ATR: 3B BF 96 00 81 31 FE 5D 00 64 04 11 04 0F 31 C0 73 F7 01 D0 00 90 00 74

ATR: 3B BF 96 00 81 31 FE 5D 00 64 04 11 04 0F 31 C0 73 F7 01 D0 00 90 00 74
+ TS = 3B --> Direct Convention
+ T0 = BF, Y(1): 1011, K: 15 (historical bytes)
  TA(1) = 96 --> Fi=512, Di=32, 16 cycles/ETU
250000 bits/s at 4 MHz, fMax for Fi = 5 MHz => 312500 bits/s
  TB(1) = 00 --> VPP is not electrically connected
  TD(1) = 81 --> Y(i+1) = 1000, Protocol T = 1 

Is this a pure client-side issue or means SCARD_E_UNKNOWN that the smartcard was rejected by the server? Is there a possibility to debug this issue more in-depth?

Thanks and regards Nazdravi

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 105 (70 by maintainers)

Commits related to this issue

Most upvoted comments

I am facing the same problem. I am running freerdp 5d7027a8bc22312e042517ccb59f731e4d34bc7c compiled with “-DWITH_DEBUG_SCARD=ON”.

I start the session with the command line:

/tmp/freerdp_bin/bin/xfreerdp /u:* /d:* /p:* /smartcard /cert-ignore /v:*

When the session is started, I launch a program called Dike6 https://www.firma.infocert.it/prodotti/dike6.php https://rinnovofirma.infocert.it/download/win32/latest?_ga=1.71335194.843020169.1460122234 which crashes. I get the SCARD_E_UNKNOWN error only after launching the program.

On console I get this output (freerdp is compiled with flag -DWITH_DEBUG_SCARD):

[11:23:07:006] [13368:13369] [INFO][com.freerdp.client.common.cmdline] - loading channel rdpdr [11:23:07:006] [13368:13369] [INFO][com.freerdp.client.common.cmdline] - loading channel rdpsnd [11:23:07:365] [13368:13383] [INFO][com.freerdp.channels.rdpdr.client] - Loading device service smartcard (static) [11:23:08:790] [13368:13383] [INFO][com.freerdp.channels.rdpdr.client] - registered device #1: SCARD (type=32 id=1) [11:23:08:244] [13368:13383] [INFO][com.freerdp.channels.rdpdr.client] - registered device #1: SCARD (type=32 id=1) [11:23:12:983] [13368:13478] [WARN][com.freerdp.channels.smartcard.client] - IRP failure: SCardTransmit (0x000900D0), status: SCARD_E_NOT_TRANSACTED (0x80100016) [11:23:12:994] [13368:13478] [WARN][com.freerdp.channels.smartcard.client] - IRP failure: SCardTransmit (0x000900D0), status: SCARD_E_NOT_TRANSACTED (0x80100016) [11:23:12:008] [13368:13478] [WARN][com.freerdp.channels.smartcard.client] - IRP failure: SCardTransmit (0x000900D0), status: SCARD_E_NOT_TRANSACTED (0x80100016) [11:23:12:025] [13368:13478] [WARN][com.freerdp.channels.smartcard.client] - IRP failure: SCardTransmit (0x000900D0), status: SCARD_E_NOT_TRANSACTED (0x80100016) [11:23:12:145] [13368:13484] [ERROR][com.freerdp.channels.smartcard.client] - SCardEndTransaction failed with error 2148532247 [11:23:12:145] [13368:13484] [WARN][com.freerdp.channels.smartcard.client] - IRP failure: SCardEndTransaction (0x000900C0), status: SCARD_E_READER_UNAVAILABLE (0x80100017) [11:23:12:212] [13368:13484] [ERROR][com.freerdp.channels.smartcard.client] - SCardDisconnect failed with error 2148532247 [11:23:12:212] [13368:13484] [WARN][com.freerdp.channels.smartcard.client] - IRP failure: SCardDisconnect (0x000900B8), status: SCARD_E_READER_UNAVAILABLE (0x80100017) [11:23:12:226] [13368:13385] [ERROR][com.freerdp.channels.smartcard.client] - SCardReleaseContext failed with error 2148532247 [11:23:12:226] [13368:13385] [WARN][com.freerdp.channels.smartcard.client] - IRP failure: SCardReleaseContext (0x00090018), status: SCARD_E_READER_UNAVAILABLE (0x80100017) [11:23:12:415] [13368:13385] [ERROR][com.freerdp.channels.smartcard.client] - SCardListReadersW failed with error 2148532270 [11:23:12:415] [13368:13385] [ERROR][com.freerdp.channels.smartcard.client] - SCardListReadersW failed with error 2148532270 [11:23:12:494] [13368:13385] [ERROR][com.freerdp.channels.smartcard.client] - SCardListReadersW failed with error 2148532270 [11:23:12:494] [13368:13385] [ERROR][com.freerdp.channels.smartcard.client] - SCardListReadersW failed with error 2148532270 [11:23:13:853] [13368:13385] [ERROR][com.freerdp.channels.smartcard.client] - SCardListReadersW failed with error 2148532270 [11:23:13:853] [13368:13385] [ERROR][com.freerdp.channels.smartcard.client] - SCardListReadersW failed with error 2148532270 [11:23:26:527] [13368:13851] [WARN][com.freerdp.channels.smartcard.client] - IRP failure: SCardGetStatusChangeA (0x000900A0), status: SCARD_E_UNKNOWN (0xC0000017) [11:23:26:527] [13368:13851] [WARN][com.freerdp.channels.smartcard.client] - IRP failure: SCardGetStatusChangeA (0x000900A0), ntstatus: 0xC0000017 [11:23:34:942] [13368:13369] [INFO][com.freerdp.client.x11] - Closed from X11 Thanks, Giovanni