Commit Graph

333 Commits

Author SHA1 Message Date
Andreas Schultz
d2f98261f7 smartcard: implement ListReaderGroups
Conflicts:
	channels/smartcard/client/smartcard_operations.c
	channels/smartcard/client/smartcard_pack.c
	channels/smartcard/client/smartcard_pack.h

smartcard_operations: move handling of call argument into functions

The call argument was only use by static functions and was always equal
to operation->call. Remove the argument and use operation-call directly.

Also put the memory allocation and check into the same place.

Conflicts:
	channels/smartcard/client/smartcard_operations.c

Updated formatting and API
2017-02-16 16:59:03 +01:00
Norbert Federa
f71b6b46e8 fix string format specifiers
- fixed invalid, missing or additional arguments
- removed all type casts from arguments
- added missing (void*) typecasts for %p arguments
- use inttypes defines where appropriate
2016-12-16 13:48:43 +01:00
Norbert Federa
c6e6b44143 countless WLog/printf format specifier fixes 2016-11-25 17:06:25 +01:00
Marc-André Moreau
dee76617d9 channels: remove thread-local storage usage 2016-11-15 11:41:01 -05:00
Armin Novak
b0b32734ad Reformatted file. 2016-10-06 13:43:13 +02:00
Armin Novak
9f5da483dc Reformatted files touched in last 2 commits. 2016-10-06 13:43:12 +02:00
Armin Novak
88a3b8dd76 Initializing channel context in each thread. 2016-10-06 13:43:12 +02:00
David PHAM-VAN
d5dc5b4a3f Fix smartcard channel disconnect 2016-09-19 11:27:25 -07:00
Norbert Federa
ef4b29e5b3 ConvertFromUnicode fixes and misc hardening
- Added missing ConvertFromUnicode checks
- If ConvertToUnicode allocates memory, guarantee the null termination
  similar to ConvertFromUnicode's implementation
- Fixed some TestUnicodeConversion.c CTest return values
- Added some CTests for ConvertFromUnicode and ConvertToUnicode
- Misc code and protocol hardening fixes in the surrounding code regions
  that have been touched
2016-03-03 16:56:19 +01:00
Bernhard Miklautz
6fa3608111 cleanup cmake exports and pkg-config files
With this commit the "exported" components (usable with pkg-config and
cmake find module package)
* winpr - winpr library and headers
* freerdp - core library and headers
* freerdp-client - client specific library
* freerdp-server - server specific library
* rdtk - rdtk headers and library

To allow the installation of multiple different version (different major
number) the include files were moved into the respective sub folder:
freerdp -> freerdp{MAJOR}/freerdp (currently freerdp2/freerdp/)
winpr -> winpr{MAJOR}/winpr (currently winrp1/winpr/)
rdtk -> rdpk{MAJOR}/rdtk (currently rdtk0/rdtk/

The generated pkg-config and cmake find modules now also include the major
version number. Currently the following pkg-config are generated and
installed.
* winpr1
* freerdp2
* freerdp-server2
* freerdp-client2
* rdtk0

As cmake is able to handle multiple versions out of the box the
following can be used to find a specific module:

find_package(WinPR)
find_package(FreeRDP)
find_package(FreeRDP-Server)
find_package(FreeRDP-Client)
find_package(RdTk)

As cmake doesn't automatically resolve dependencies for packages it is
necessary to manually include the requirements. For example if
FreeRDP-Client is required WinPR and FreeRDP need to be included
(find_package) as well.

This commit also fixes the installation when STATIC_CHANNELS are built.
WITH STATIC_CHANNELS all channels are linked into libfreerdp-client, for
this all channels are generated as linker archive and linked together in
the final step. Before the intermediate linker archives were, although
not required and useful, installed. Same applies for server side
channels.
2016-01-12 17:32:33 +01:00
Armin Novak
cb958ba9c6 Added pdb files to package target.
Fixed name collision with freerdp-shadow targets.
2015-12-15 12:07:21 +01:00
bjcollins
456416a871 Dont use invalid/bogus input value for cbAtrLen for Smartcard Status Calls, instead just always use the max value here to indicate we have max
buffer space available.
2015-09-18 16:55:06 -05:00
Armin Novak
911750f0f6 Checking for allocation value > 0 2015-09-07 11:10:27 +02:00
Armin Novak
97f7aa8f42 Fixed uninitialized values. 2015-09-01 12:27:54 +02:00
Armin Novak
aa43f3b5df Fixed zero lenght allocation. 2015-09-01 12:25:44 +02:00
Marc-André Moreau
90b7d42429 Merge pull request #2838 from akallabeth/smartcard_no_readers
Added return value checks for smartcard functions.
2015-08-27 10:05:23 -04:00
Martin Haimberger
52405a3e79 Remove WIN32ERROR type
All return values are UINT now.
2015-08-27 05:38:20 -07:00
Armin Novak
c40f3198a4 Added return value checks. 2015-08-19 12:50:48 +02:00
Martin Haimberger
2862109337 Merge remote-tracking branch 'upstream/master' into mh-channel-fix
Conflicts:
	channels/smartcard/client/smartcard_main.c
	channels/smartcard/client/smartcard_operations.c
2015-07-30 07:29:12 -07:00
Martin Haimberger
65fd259610 misc fixes:
fixed all bugs from the review
checking all WaitFor*Object/s calls
2015-07-30 06:49:21 -07:00
Marc-André Moreau
dfa29804ad Merge pull request #2799 from kaliway/scardlistreaders-fix
Smartcard Reader Connection Handling
2015-07-28 08:51:03 -04:00
Kirill Kotyagin
ef37487a44 channels/smartcard: fix possible mszReaders leak in smartcard_ListReaders(A/W)_Call 2015-07-22 17:25:17 +03:00
Kirill Kotyagin
76916d614b channels/smartcard: make smartcard_ListReaders(A/W)_Call return PCSC error statuses to the server 2015-07-22 16:56:24 +03:00
Rostislav Kondratenko
7248ea98d0 Fixing condition on SCardIsValidContext to be true when context is valid 2015-07-17 18:13:02 +03:00
Rostislav Kondratenko
f2863fabf5 Re-enabled PCSC-Lite transactions and fixed smartcard deinitialization so it will release all contexts to unblock calls waiting for transactions 2015-07-17 16:37:44 +03:00
Martin Haimberger
b8c110d19b introduced channel error reporting system
The rdpContext gets an event which will
get set if an error occoured in a channel.

If a thread or a void callback has to report an
error it will get signaled by this system.
2015-07-15 00:50:35 -07:00
Martin Haimberger
d9e2834a70 channel smartcard hardend 2015-07-09 03:00:19 -07:00
Martin Haimberger
6e4e1c2773 Merge remote-tracking branch 'upstream/master' into mh-stream-fix
Conflicts:
	client/Windows/wf_cliprdr.c
2015-06-18 03:06:40 -07:00
Martin Haimberger
76305a716c just satisfied compiler 2015-06-18 03:04:33 -07:00
David FORT
12f873f1f9 Fixed MessageQueue and callers 2015-05-29 14:24:14 +02:00
Bernhard Miklautz
d922afc24a smartcard: fix compiler warnings
gcc 4.7.2:
warning: passing argument 1 of ‘free’ discards ‘const’ qualifier from
pointer target type
2015-05-18 11:36:31 +02:00
Hardening
f8120919af Add checks for some XXX_New and XXX_Add functions
Based on PR #2616
2015-05-18 11:28:00 +02:00
Norbert Federa
1eff1a345e free can handle NULL perfectly fine 2015-05-11 09:07:39 +02:00
Marc-André Moreau
cb002d91cd channels/smartcard: fix pioRecvPci with cbExtraBytes > 0 2015-03-13 14:20:57 -04:00
Marc-André Moreau
bc50c81a0a channels/smartcard: fix SCardTransmit return encoding with pioRecvPci 2015-02-20 15:39:51 -05:00
Marc-André Moreau
5e53063d55 channels/smartcard: fix SCardTransmit pioRecvPci parsing 2015-01-31 12:27:48 -05:00
Marc-André Moreau
bcc702346f channels/smartcard: fix buffer read alignment in SCardTransmit parsing 2015-01-23 14:19:15 -05:00
Marc-André Moreau
f0fc27f7bd libwinpr-winscard: add WINPR_WINSCARD_LOCK_TRANSACTIONS environment variable, fix winpr_HexDump line feeds 2015-01-20 15:29:05 -05:00
Marc-André Moreau
ee51da8500 channels/smartcard: cleanup debug output 2015-01-20 11:16:37 -05:00
Marc-André Moreau
b057d1eaf7 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2015-01-20 09:29:21 -05:00
Armin Novak
ddd8a1da80 Prettiefied WLog messages. 2015-01-20 11:23:12 +01:00
Marc-André Moreau
e47f1c8b80 channels/smartcard: minor robustness fixes 2015-01-19 12:04:23 -05:00
Marc-André Moreau
51554ff16c channels: patch rdpdr/smartcard valgrind leaks, fix hang on disconnect 2014-12-28 14:56:13 -05:00
Marc-André Moreau
6c2ebb2b58 channels: redirection valgrind fixes 2014-12-27 13:50:50 -05:00
Marc-André Moreau
9ebc67ba02 channels/smartcard: cleanup SCardControl 2014-12-22 16:25:59 -05:00
Marc-André Moreau
0625be2720 channels/smartcard: fix SCardGetAttrib SCARD_AUTOALLOCATE support 2014-12-22 13:28:16 -05:00
Vinche
d7fe4d2803 Implementation for IOCTL_SCARD_LOCATECARDSBYATRA 2014-11-11 00:35:46 +01:00
Vinche
d427faf5c6 Cleaning Code 2014-11-10 23:51:34 +01:00
Vinche
53707c97c8 Comments 2014-11-10 23:48:55 +01:00
Vinche
fdb95c712b Implementation for Smartcard Reader with Pin Pad 2014-11-10 23:40:22 +01:00
Vinche
2708a8de5c first commit 2014-11-09 22:42:35 +01:00
Armin Novak
059374457d Removed library prefix override. 2014-09-17 11:27:11 +02:00
Armin Novak
b1e9ffb655 Using wlog for channel logging now.
Fixed compiler warnings and broken callback in urbdrc.
2014-09-15 08:48:46 +02:00
Bernhard Miklautz
0313ca3622 libfreerdp: always build "MONOLITHIC"
"libfreerdp" consisted of multiple (small) single libraries. If the cmake
option MONOLITHIC was used only one library was build combining all of
the libfreerdp-* libraries.
The only exceptions to this are libfreerdp-server and libfreerdp-client these
are build as separate libraries.

This commit obsoltes non-monolithic builds and makes monolithic builds
the default. The cmake option MONOLITHIC is also removed.
2014-09-12 00:19:53 +02:00
Armin Novak
b22b897389 Reformatted changed files. 2014-09-09 16:32:22 +02:00
Armin Novak
419f102bec Fixed calling of dump functions, new API 2014-09-09 16:31:46 +02:00
Armin Novak
66b8905ac6 Using special log defines for channels now. 2014-08-11 09:12:01 +02:00
Armin Novak
b252009d36 Replaced custom logging mechanism with WLog wrapper. 2014-08-07 16:51:49 +02:00
Bernhard Miklautz
6a49bcfe40 winpr: always build "monolitic"
winpr is now always build as single library.
The build option MONOLITHIC_BUILD doesn't influence this behavior anymore.

The only exception is winpr-makecert-tool which is still build as extra
library.

This obsoletes complex_libraries for winpr.
2014-07-10 11:10:58 +02:00
erbth
0842475876 fixed getstatuschangeW rdp-return value in case of failure 2014-06-12 17:19:08 +02:00
erbth
19397d47fd fixed getstatuschangeA rdp-return value in case of failure 2014-06-11 21:45:53 +02:00
Marc-André Moreau
f5bfb98aca channels/smartcard: experiment with multiple card contexts 2014-06-02 17:20:01 -04:00
Marc-André Moreau
ba5d84ee5c libwinpr-smartcard: add logging for each calls in smartcard inspector 2014-05-26 17:54:39 -04:00
Marc-André Moreau
bc771ec56b channels/smartcard: reuse the same thread for the same SCARDCONTEXT 2014-05-12 17:05:20 -04:00
Marc-André Moreau
9f70629c3a channels/smartcard: store SCARDCONTEXT, SCARDHANDLE in SMARTCARD_OPERATION 2014-05-12 16:45:24 -04:00
Marc-André Moreau
9f93565811 channels/smartcard: modify operation functions to take SMARTCARD_OPERATION* 2014-05-12 16:19:44 -04:00
Marc-André Moreau
d8053b3d93 channels/smartcard: cleanup smartcard operations 2014-05-12 15:47:49 -04:00
Marc-André Moreau
5416ab1d6e channels/smartcard: decode and then call 2014-05-12 15:32:02 -04:00
Marc-André Moreau
77827bb411 channels/smartcard: split encoding from calling 2014-05-12 15:22:57 -04:00
Marc-André Moreau
526e74f7fa channels/smartcard: further split decoding from calling 2014-05-12 15:04:31 -04:00
Marc-André Moreau
8a940ad778 channels/smartcard: start splitting decoding from calling 2014-05-12 14:13:57 -04:00
Marc-André Moreau
fc39f6bc8d channels/smartcard: create smartcard context data structures with associated thread 2014-05-12 11:28:20 -04:00
Marc-André Moreau
2da6111972 channels/smartcard: fix clearing of rgSCardContextList 2014-05-12 10:17:49 -04:00
Marc-André Moreau
fda492c58d libwinpr-smartcard: fix AccessStartedEvent 2014-05-11 01:53:47 -04:00
Marc-André Moreau
d04430cb02 channels/smartcard: implement usage of SCardAccessStartedEvent 2014-05-10 23:43:25 -04:00
Marc-André Moreau
894ec8c4aa channels/smartcard: cleanup 2014-05-08 15:24:33 -04:00
Marc-André Moreau
81be8b2473 channels/smartcard: better selection of async vs sync processing of IRPs 2014-05-07 21:16:05 -04:00
Marc-André Moreau
67f691f90a channels/smartcard: add improve completed IRP management 2014-05-07 17:41:53 -04:00
Marc-André Moreau
d53a9415ae channels/smartcard: add sequence id to IRPs for easier cancellation 2014-05-06 18:19:54 -04:00
Marc-André Moreau
62395f7b0c channels/smartcard: add rgSCardContextList 2014-05-06 17:42:10 -04:00
Marc-André Moreau
22e2490df7 channels/smartcard: avoid crash on SCardStatusA failure 2014-05-06 11:25:19 -07:00
Marc-André Moreau
b3114ff4d8 channels/smartcard: improve debug output, fix GetStatusChange SCARD_E_CANCELLED, fix SCardGetAttrib current protocol type 2014-05-06 10:00:44 -07:00
Marc-André Moreau
9e407e6e22 libwinpr-smartcard: start handling SCardControl control code conversions 2014-05-03 19:02:17 -04:00
Marc-André Moreau
b51da6c6f4 libwinpr-smartcard: improve SCardGetAttrib, fix null SCARDCONTEXT usage in SCardListReaders 2014-05-03 17:07:30 -04:00
Marc-André Moreau
cd7e3151cd libwinpr-smartcard: fix PCSC incompatible type definitions 2014-05-03 13:49:50 -04:00
Marc-André Moreau
b1c0a68f55 client/common: honor RedirectSmartCards, RedirectPrinters 2014-04-27 21:29:44 -04:00
Marc-André Moreau
103b7d4151 libwinpr-smartcard: fix workaround for lack of PnP Notification support on OS X 2014-04-27 16:43:09 -04:00
Marc-André Moreau
6059ffbb88 channels/smartcard: harden unpacking code, don't modify GetStatusChange parameters 2014-04-27 15:45:36 -04:00
Marc-André Moreau
2728178211 channels/smartcard: fix SCardTransmit pioRecvPci 2014-04-16 15:24:56 -04:00
Marc-André Moreau
19b9ed3bb0 channels/smartcard: some Mac OS X fixes 2014-04-16 14:03:22 -04:00
Marc-André Moreau
38d05b48a0 channels/smartcard: fix reader name aliasing 2014-04-15 13:49:52 -04:00
Marc-André Moreau
62481e83ee channels/smartcard: add more debug output 2014-04-13 16:48:32 -04:00
Marc-André Moreau
d699128a57 channels/smartcard: add more debug output 2014-04-13 15:50:51 -04:00
Marc-André Moreau
5920dbc074 channels/smartcard: cleanup of sanitization 2014-04-12 15:09:23 -04:00
Marc-André Moreau
7ff1c984c2 channels/smartcard: add more debug output, make distinction between reader and card state 2014-04-12 14:31:54 -04:00
Marc-André Moreau
fd6052f348 channels/smartcard: add more debug output 2014-04-12 12:42:09 -04:00
Marc-André Moreau
727a4914f2 channels/smartcard: add more debug output 2014-04-11 18:57:04 -04:00
Marc-André Moreau
32b65c3000 channels/smartcard: fix broken context/handle encoding/decoding 2014-04-11 17:44:27 -04:00
Marc-André Moreau
79453d1bb4 channels/smartcard: make handles completely opaque 2014-04-11 16:27:01 -04:00
Marc-André Moreau
f49582614c channels/smartcard: fix on Windows 2014-04-11 14:13:06 -04:00
Marc-André Moreau
f99c8ed8d0 channels/smartcard: cleanup context/handle management 2014-04-11 14:01:42 -04:00
Marc-André Moreau
8cac6519e1 channels/smartcard: added detailed debug tracing 2014-04-11 02:17:36 -04:00
Marc-André Moreau
dd5fab82b5 channels/smartcard: cleanup and simplify ListReaders call 2014-04-10 23:55:11 -04:00
Marc-André Moreau
2b52c294a2 channels/smartcard: minor fixes 2014-04-10 17:36:42 -04:00
Marc-André Moreau
ccea0b1e62 libwinpr-smartcard: more pcsc-lite fixes 2014-04-09 17:44:39 -04:00
Marc-André Moreau
912d7f1e4e libwinpr-smartcard: add proper locking by SCARDCONTEXT for pcsc-lite 2014-04-09 15:32:18 -04:00
Marc-André Moreau
da56c8af62 channels/smartcard: pcsc-lite fixes 2014-04-09 14:27:44 -04:00
Marc-André Moreau
39f04c870e channels/smartcard: fix some valgrind warnings 2014-04-09 12:28:03 -04:00
Marc-André Moreau
b146bad480 channels/smartcard: don't treat certain errors as errors 2014-04-09 10:40:52 -04:00
Marc-André Moreau
b91c10392f channels/smartcard: improve SCardGetAttrib 2014-04-08 23:52:24 -04:00
Marc-André Moreau
46686d391f channels/smartcard: harden parsing of expected padding 2014-04-08 22:10:21 -04:00
Marc-André Moreau
b9e91bf3f6 channels/smartcard: Transmit_Return pioRecvPci implementation 2014-04-08 21:36:47 -04:00
Marc-André Moreau
3e4d30df6c channels/smartcard: fix ListReaders mszGroups parsing 2014-04-08 18:55:50 -04:00
Marc-André Moreau
5ae6ef4495 channels/smartcard: fix GetStatusChange SCARD_E_TIMEOUT handling 2014-04-08 12:00:04 -04:00
Marc-André Moreau
ca1ec811e8 Merge branch 'smartcard' of github.com:awakecoding/FreeRDP into smartcard
Conflicts:
	channels/smartcard/client/smartcard_pack.c
2014-04-08 11:34:46 -04:00
Marc-André Moreau
55e23d1ff4 channels/smartcard: fix padding functions 2014-04-08 11:32:48 -04:00
Marc-André Moreau
8cc37ff759 channels/smartcard: harden packing 2014-04-07 23:45:11 -04:00
Marc-André Moreau
e3ae293971 channels/smartcard: more code hardening 2014-04-07 17:17:26 -04:00
Marc-André Moreau
4935199469 channels/smartcard: add more verbose debug output to transmit call 2014-04-07 13:39:47 -04:00
Marc-André Moreau
835e30d233 channels/smartcard: add more debug output to transmit calls 2014-04-07 12:53:38 -04:00
Marc-André Moreau
21c3fd6093 channels/smartcard: fix GetStatusChangeW 2014-04-07 12:38:27 -04:00
Marc-André Moreau
7b4c44c5ff channels/smartcard: handle ntstatus codes 2014-04-07 12:13:31 -04:00
Marc-André Moreau
f158cf0ac3 channels/smartcard: cleanup return codes 2014-04-07 10:59:13 -04:00
Marc-André Moreau
e75b9aa9fa channels/smartcard: more unpacking 2014-04-07 01:19:58 -04:00
Marc-André Moreau
c2fb729167 channels/smartcard: implement clean SCardStatusW 2014-04-07 00:58:34 -04:00
Marc-André Moreau
bbfd4fb361 channels/smartcard: implement clean ListReadersW 2014-04-07 00:10:27 -04:00
Marc-André Moreau
73df99a432 channels/smartcard: cleanup packing 2014-04-06 23:08:40 -04:00
Marc-André Moreau
10aaf59f19 channels/smartcard: cleanup old unpacking code 2014-04-06 21:28:59 -04:00
Marc-André Moreau
9dd9f8c7bf channels/smartcard: more unpacking 2014-04-06 21:09:49 -04:00
Marc-André Moreau
a22b7af2b9 channels/smartcard: unpacking improvements 2014-04-06 16:29:11 -04:00
Marc-André Moreau
7c6afc8099 channels/smartcard: more 64-bit fixes 2014-04-05 21:17:54 -04:00
Marc-André Moreau
b21038e339 channels/smartcard: fix some 64-bit handling issues 2014-04-05 20:46:20 -04:00
Marc-André Moreau
7ff35d11ce Merge branch 'smartcard' of github.com:awakecoding/FreeRDP into smartcard 2014-04-05 20:06:12 -04:00
Marc-André Moreau
7324ded7a2 channels/smartcard: fix non-monolithic build 2014-04-05 20:05:51 -04:00
Marc-André Moreau
368486dd13 channels/smartcard: cleanup 2014-04-05 19:58:48 -04:00
Marc-André Moreau
9de2a85f6a channels/smartcard: add async irp processing 2014-04-05 17:51:13 -04:00
Marc-André Moreau
2aa248853a channels/smartcard: cancel outstanding IRPs on re-initialization 2014-04-05 17:15:17 -04:00
Marc-André Moreau
70b490d05c channels/smartcard: add outstanding irp list 2014-04-05 16:57:31 -04:00
Marc-André Moreau
600218dfb2 channels/smartcard: cleanup ConnectA/ConnectW parsing 2014-04-05 16:06:46 -04:00
Marc-André Moreau
c40c1c3fab channels/smartcard: handle common headers in a common place 2014-04-05 11:56:02 -04:00
Marc-André Moreau
1e7c4dc091 Merge branch 'smartcard' of github.com:awakecoding/FreeRDP into smartcard 2014-04-05 11:23:01 -04:00
Marc-André Moreau
23745fd58a channels/smartcard: improve packing of data structures 2014-04-05 11:22:48 -04:00
Marc-André Moreau
67ba28e86d libwinpr-smartcard: ListReaders_Call fix 2014-04-04 17:37:00 -04:00
Marc-André Moreau
f9ada64587 libwinpr-smartcard: fix compilation on Windows 2014-04-04 16:45:11 -04:00
Marc-André Moreau
33813c08ec channels/smartcard: cleanup unpacking of data structures 2014-04-04 13:57:28 -04:00
Marc-André Moreau
b12e280ae2 channels/smartcard: improve parsing 2014-04-04 00:56:24 -04:00
Marc-André Moreau
caf1156254 channels/smartcard: add clean definitions of packed data structures and RDP smartcard IOCTLs 2014-04-03 18:47:18 -04:00
Marc-André Moreau
308e32ccb9 channels/smartcard: refactoring 2014-04-03 17:29:12 -04:00
Marc-André Moreau
89ad7638e4 channels/smartcard: migrate code to libwinpr-smartcard 2014-04-03 15:27:55 -04:00
Marc-André Moreau
8cdb3576c2 Merge branch 'master' of github.com:awakecoding/FreeRDP into smartcard
Conflicts:
	channels/smartcard/client/smartcard_main.c
2014-04-02 18:27:31 -04:00