Commit Graph

7855 Commits

Author SHA1 Message Date
Marc-André Moreau afce8061b3 cliprdr/server: split add Open/Close callbacks 2014-12-18 10:46:23 -05:00
Marc-André Moreau 724d9f95a1 channels/cliprdr: move server cliprdr read code to separate function 2014-12-18 09:50:02 -05:00
Marc-André Moreau c3b172352d cliprdr/cliprdr: add missing server-side cliprdr sending functions 2014-12-15 17:27:20 -05:00
Marc-André Moreau a69eaddecd channels/cliprdr: add missing messages in cliprdr server 2014-12-15 17:05:32 -05:00
Marc-André Moreau f1bd547580 Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	client/X11/xf_client.c
2014-12-15 15:55:51 -05:00
Marc-André Moreau 0d56e26438 channels/cliprdr: fix server-side cliprdr receive 2014-12-15 15:39:56 -05:00
Marc-André Moreau 65214b49b9 Merge pull request #2278 from erobertor/master
Update drdynvc_main.c
2014-12-15 13:26:35 -05:00
erobertor d647fd2f36 Update drdynvc_main.c
fixed memory leak
2014-12-15 18:36:56 +01:00
Marc-André Moreau 736bcf2bd6 libfreerdp-core: fix async input mode for FocusInEvent, KeyboardPauseEvent 2014-12-15 11:35:35 -05:00
Marc-André Moreau d926b35e33 Merge pull request #2277 from nfedera/fix-2014-12-15-01
xfreerdp: fix RDP order color conversion
2014-12-15 10:55:15 -05:00
Norbert Federa 5c68b1cf22 xfreerdp: fix RDP order color conversion
Note: /gdi:sw was working fine, this commit fixes /gdi:hw

* calculate color channel shifts based on X11 visual color masks
* fast path to skip conversion if visual color masks equal rdp color masks
* successfully tested 8/15/16/24/32 bpp rdp sessions on 16/24/32 bpp visuals
2014-12-15 16:34:09 +01:00
Marc-André Moreau 9b28562cc1 libfreerdp-core: fix faulty rdpTransport server-side initialization 2014-12-15 10:23:06 -05:00
Marc-André Moreau e2f377ae11 libfreerdp-core: fix TSG thread shutdown and input freeze problem 2014-12-15 09:42:04 -05:00
Norbert Federa 540d37a8a1 Merge pull request #2276 from bmiklautz/build_fixes
Build fixes
2014-12-15 13:51:47 +01:00
Marc-André Moreau 544c2f3e45 Merge pull request #2266 from Vinche59/smartcard
SmartCard
2014-12-14 11:56:01 -05:00
Vincent Sourin 719e5c9cdb Determine OSX Version ... only on OSX 2014-12-14 15:15:33 +01:00
Vincent Sourin 8a028f78e2 * Determine OS X Version at runtime 2014-12-13 05:30:44 -08:00
Bernhard Miklautz 43beef36ff rdtk/shadow: install libraries versioned 2014-12-12 19:26:23 +01:00
Bernhard Miklautz 1b663ceffe build: cmake 3.1 compatibility
* fix problem with REMOVE_DUPLICATES on undefined lists
* since 3.1 file(GLOB FILEPATHS RELATIVE .. returns single / instead of // as
  previously - necessary adoptions for regex and matches done. Should
	work with all cmake versions.

Tested with 3.1.0-rc3
2014-12-12 19:26:22 +01:00
Bernhard Miklautz 10ee2f72d9 Mac: set policy to silent cmake >= 3.0 warnings
Set the following policies to "OLD" if cmake version is greater than
2.8.12:

CMP0026 - Disallow use of the LOCATION target property
CMP0045 - Error on non-existent target in get_target_property
2014-12-12 19:25:43 +01:00
Bernhard Miklautz ec0de7f6f6 rdtk: build samples only if WITH_SAMPLE is enabled 2014-12-12 17:53:33 +01:00
Bernhard Miklautz b35dc849ee build: improve X11 detection on OS X
/usr/X11R6 doesn't exist on OS X per default (anymore). Therefore add
PATHS to all X11 detection modules pointing to the Xquarz installation
directory in /opt/X11.
For FindX11 it was also necessary to ensure that the frameworks are
searched as last (after PATHS) otherwise it could happen that X11 headers
of a framework (e.g. Tk.framework) were used.
2014-12-12 17:43:14 +01:00
Marc-André Moreau 74bef0edca Merge pull request #2275 from awakecoding/master
TS Gateway Fixes
2014-12-12 09:33:52 -05:00
Marc-André Moreau aa23c4eaaa libfreerdp-core: fix random TS Gateway disconnects with async modes 2014-12-12 09:08:39 -05:00
Marc-André Moreau 5ee4fb5fe6 Merge pull request #2273 from nfedera/fix-2014-12-12-01
Standard RDP Security Layer Levels/Method Overhaul
2014-12-11 22:18:54 -05:00
Norbert Federa 939f1c639a Standard RDP Security Layer Levels/Method Overhaul
[MS-RDPBCGR] Section 5.3 describes the encryption level and method values for
standard RDP security.

Looking at the current usage of these values in the FreeRDP code gives me
reason to believe that there is a certain lack of understanding of how these
values should be handled.

The encryption level is only configured on the server side in the "Encryption
Level" setting found in the Remote Desktop Session Host Configuration RDP-Tcp
properties dialog and this value is never transferred from the client to the
server over the wire.
The possible options are "None", "Low", "Client Compatible", "High" and
"FIPS Compliant". The client receices this value in the Server Security Data
block (TS_UD_SC_SEC1), probably only for informational purposes and maybe to
give the client the possibility to verify if the server's decision for the
encryption method confirms to the server's encryption level.
The possible encryption methods are "NONE", "40BIT", "56BIT", "128BIT" and
"FIPS" and the RDP client advertises the ones it supports to the server in the
Client Security Data block (TS_UD_CS_SEC).
The server's configured encryption level value restricts the possible final
encryption method.
Something that I was not able to find in the documentation is the priority
level of the individual encryption methods based on which the server makes its
final method decision if there are several options.
My analysis with Windows Servers reveiled that the order is 128, 56, 40, FIPS.
The server only chooses FIPS if the level is "FIPS Comliant" or if it is the
only method advertised by the client.

Bottom line:
* FreeRDP's client side does not need to set settings->EncryptionLevel
(which was done quite frequently).
* FreeRDP's server side does not have to set the supported encryption methods
list in settings->EncryptionMethods

Changes in this commit:

Removed unnecessary/confusing changes of EncryptionLevel/Methods settings

Refactor settings->DisableEncryption
* This value actually means "Advanced RDP Encryption (NLA/TLS) is NOT used"
* The old name caused lots of confusion among developers
* Renamed it to "UseRdpSecurityLayer" (the compare logic stays untouched)

Any client's setting of settings->EncryptionMethods were annihilated
* All clients "want" to set all supported methods
* Some clients forgot 56bit because 56bit was not supported at the time the
code was written
* settings->EncryptionMethods was overwritten anyways in nego_connect()
* Removed all client side settings of settings->EncryptionMethods
The default is "None" (0)
* Changed nego_connect() to advertise all supported methods if
settings->EncryptionMethods is 0 (None)
* Added a commandline option /encryption-methods:comma separated list of the
values "40", "56", "128", "FIPS". E.g. /encryption-methods:56,128
* Print warning if server chooses non-advertised method

Verify received level and method in client's gcc_read_server_security_data
* Only accept valid/known encryption methods
* Verify encryption level/method combinations according to MS-RDPBCGR 5.3.2

Server implementations can now set settings->EncryptionLevel
* The default for settings->EncryptionLevel is 0 (None)
* nego_send_negotiation_response() changes it to ClientCompatible in that case
* default to ClientCompatible if the server implementation set an invalid level

Fix server's gcc_write_server_security_data
* Verify server encryption level value set by server implementations
* Choose rdp encryption method based on level and supported client methods
* Moved FIPS to the lowest priority (only used if other methods are possible)

Updated sample server
* Support RDP Security (RdpKeyFile was not set)
* Added commented sample code for setting the security level
2014-12-12 02:17:12 +01:00
Marc-André Moreau cc2321d359 libfreerdp-core: fix leak and use after free in tsg ListDictionary usage 2014-12-11 17:08:22 -05:00
Marc-André Moreau d8e10ac04a freerdp: patch leaks reported by valgrind when using TS Gateway 2014-12-11 11:25:34 -05:00
Marc-André Moreau b579ad3cec Merge pull request #2261 from akallabeth/more_memleak_fixes
More warning and memleak fixes
2014-12-11 08:28:48 -05:00
Marc-André Moreau 77982c6271 Merge pull request #2262 from bmiklautz/misc_fixes
Misc fixes
2014-12-11 08:27:30 -05:00
Marc-André Moreau da5a9d2579 Merge pull request #2265 from TaGUNil/master
Fix segmentation fault in URBDRC
2014-12-11 08:26:44 -05:00
Bernhard Miklautz 4b5f052c54 Merge pull request #2272 from akallabeth/ipv6_parser_fix
Fixed conversion of IPv6 to ServerHostname
2014-12-11 13:21:35 +01:00
Armin Novak edfee8213e Initializing ServerHostname string now with 0 2014-12-11 11:26:42 +01:00
MartinHaimberger 1226c51886 Merge pull request #2268 from hardening/rdpei_cleanup_fix
Fix cleanup of RDPEI server-side channel
2014-12-11 07:50:54 +01:00
Hardening 7b6c14bdcf Fix cleanup of RDPEI server-side channel 2014-12-10 16:47:15 +01:00
Vincent Sourin 956cece54b * Correct detection of Mac OS X Yosemite Version 2014-12-09 22:14:06 +01:00
Vincent Sourin 64ff9ee1b6 SmartCard
* Check for NULL parameters in PCSC_ConvertReaderNameToWinSCard (Issue #2184)
* Remove masking of dwEventState as it is not needed under Linux and MacOSX and it helps in ThinLinc environment
* Workaround for Mac OS X Yosemite (10.10) SCardStatus Bug (Issue #2184)
* Since Mac OS Tiger (10.5.6), Apple introduced new function for SCardControl calls named SCardControl132(), the old SCardControl doesn't work (cf. https://opensource.apple.com/source/SmartCardServices/SmartCardServices-55111/src/PCSC/winscard_clnt.c)
2014-12-09 20:14:57 +01:00
TaGUNil da39686a31 channels/urbdrc: fix segfault
Fix segmentation fault in urbdrc_main.c caused by missing memset.
2014-12-09 19:28:13 +03:00
Bernhard Miklautz 7b413fb951 nego: print message when bypassing gateway
When "detect" is used as gateway usage method (which is the default)
it is tried to by-pass gateway connection for local hosts.
The detection might take some time therefore print a message that people
are aware that a detection is tried.

Fixes #2171
2014-12-08 19:00:05 +01:00
Bernhard Miklautz 67b6cc7518 xfreerdp: clean up AuthenticationOnly
* removed dead code path: user name is always set now
* update message if no password was set
2014-12-08 18:13:54 +01:00
Bernhard Miklautz 2dca3f3356 xfreerdp: use login name if no user name was set
If no user name is set with /u:.. use the login name of the current user will be
used as user name.
2014-12-08 18:07:05 +01:00
Marc-André Moreau 53686e414a Merge pull request #2259 from erbth/master
fixed shutdown of input thread in xfreerdp
2014-12-08 10:01:27 -05:00
Armin Novak 4d8c91b0fe Fixed missing declarations. 2014-12-07 01:15:49 +01:00
Armin Novak 8a6c4396b2 Fixed memory leak. 2014-12-07 01:04:30 +01:00
Armin Novak 528c5841d5 Fixed memory leak. 2014-12-07 00:50:20 +01:00
Armin Novak 6b2790774e Fixed missing NULL pointer check. 2014-12-07 00:33:37 +01:00
Armin Novak 23d64bd6ca Fixed uninitialized value. 2014-12-07 00:29:28 +01:00
Armin Novak b23b0c656e Fixed uninitialized values in case of error return. 2014-12-07 00:27:06 +01:00
Armin Novak 547054a48b Fixed uninitialized value. 2014-12-07 00:23:46 +01:00
Armin Novak f676c48a2f Fixed broken NULL pointer check. 2014-12-07 00:21:28 +01:00