Commit Graph

411 Commits

Author SHA1 Message Date
Mathew
2ff19597dc fix scripts to build with ndk r15c,
cache dependancies so we are not hitting github often
update android dependancies to latest and compile.
./android-build-freerdp.sh --ndk ~/Programming/android-ndk-r15c --relWithDebug --jpeg
Still an error compiling openh264
2018-11-09 15:20:52 +13:00
akallabeth
4e71af6772
Merge pull request #4906 from FeLvi-zzz/japanese-patch
Japanese patch #4905
2018-10-02 15:46:17 +02:00
FeLvi_zzz
751cfde864 remove untranslatable strings in Japanese translation 2018-10-02 21:53:55 +09:00
FeLvi_zzz
6d36707ec4 fixed typo in Japanese translation 2018-10-02 21:47:08 +09:00
FeLvi_zzz
2564a6a2d2 modified Japanese translation #4905 2018-10-02 18:36:58 +09:00
FeLvi_zzz
7a44e179cf
added Japanese translation 2018-10-02 18:00:29 +09:00
Armin Novak
c3a26b0d6a Removed +async-transport options
The async transport option is broken by design.
If used the main loop is called from the transport thread and the
main thread of the application.
Unless the transport layer is refactored to just work on queues
(input and output) this option will never work, therefore remove it.
2018-08-22 13:56:37 +02:00
Armin Novak
97e7eca30c Started next development cycle 2018-08-01 15:29:17 +02:00
Armin Novak
927409cf81 Add default values for keystore variables. 2018-04-16 11:39:36 +02:00
Bernhard Miklautz
d309a1ba33 build: set version to 2.0.0-dev3
start 2.0.0-rc3 development cycle
2018-04-11 13:36:33 +02:00
Armin Novak
2517755d25 Fixed thread function return and parameters. 2018-03-07 14:36:55 +01:00
Armin Novak
990b8c23a9 Fixed PubSub function pointer casts. 2018-02-14 11:00:52 +01:00
Armin Novak
7183c5019b Check length of string returned by ClipboardGetData 2018-02-01 09:34:07 +01:00
Armin Novak
91280b3ea5 Updated gradle build version and dependencies. 2018-01-17 12:03:05 +01:00
Bernhard Miklautz
1cda26274f client/android: increase version 2017-11-28 15:33:03 +01:00
Armin Novak
12a9b9a0b4 Fix #3890: Point to OpenSSL doc for private CA 2017-11-21 11:47:33 +01:00
Christian Plattner
a5f67d1203 Increase versionCode for aFreeRDP 2.0-rc1 2017-11-17 08:58:07 +01:00
akallabeth
716ce5feb2
Merge pull request #4159 from aleksei-klv/dex
Optimized aFreeRDP for Samsung DeX
2017-10-31 15:36:22 +01:00
Martin Fleisz
3f6b8b786d
Merge pull request #4179 from akallabeth/android_cleanup_fix
[android] Ensure native session is disconnected before resource free.
2017-10-31 11:42:58 +01:00
Aleksei Kliuev
ba6f5ea6dd remove temporary hack 2017-10-26 15:36:53 +03:00
Armin Novak
b355616527 Fixed possible race condition on resource cleanup. 2017-10-23 09:48:52 +02:00
Armin Novak
e7884aec26 Added default return if instance not in list. 2017-10-17 09:12:27 +02:00
Armin Novak
f1e8fdeb50 Ensure native session is disconnected before resource free. 2017-10-13 13:13:33 +02:00
Robert Corrigan
55a4ca1bc7 Fix tab key mapping for hardware keyboard 2017-10-12 12:56:34 -04:00
Aleksei Kliuev
c7be2089d6 fix crashing app in dex mode 2017-09-28 11:54:40 +03:00
Aleksei Kliuev
84eea9c55a fix right click 2017-09-28 11:54:18 +03:00
Aleksei Kliuev
7554ab9a02 revert gradle 2017-09-28 11:54:10 +03:00
Aleksei Kliuev
5931e61ade Add Samsung DeX support 2017-09-28 11:53:52 +03:00
Bernhard Miklautz
1e54fdb5c2 android: fix a regression with remote program (#4091)
Commit 54a7d799d1 introduced a problem
where /app was used instead of /shell causing a black screen when remote
programs were used. The Android client doesn't support remote apps
therefore /app can't work. "Remote program" just sets the selected
program as shell to run.
2017-08-16 13:28:11 +02:00
Armin Novak
eb0bf411af Do not add quotes to client hostname. 2017-08-16 11:31:33 +02:00
Armin Novak
8b9e3fa51e Fixed use of reserved keywords for include guards. 2017-07-20 09:35:41 +02:00
Armin Novak
0490aeb018 Fixed clang malloc integer overflow warnings. 2017-07-20 09:29:48 +02:00
Armin Novak
6b3048b85b Cleaned up database access code. 2017-03-13 12:05:49 +01:00
Armin Novak
f5e6aebb31 Using plain HTTP links for freerdp.com 2017-03-13 09:21:07 +01:00
Armin Novak
5546da2932 Readded css for phone layout. 2017-03-09 15:08:01 +01:00
Armin Novak
5f3dbc3784 Fixed help pages. 2017-03-09 13:55:19 +01:00
Armin Novak
2e9cb0f3ea Fixed keyboard show/hide 2017-03-09 13:55:05 +01:00
Armin Novak
91be74e0d6 Removed unused strings, translated missing ones. 2017-03-09 11:07:59 +01:00
Armin Novak
6f57b090a6 Validating advanced and screen settings. 2017-03-09 11:07:59 +01:00
Armin Novak
d8858cf19f Validating advanced settings before use. 2017-03-09 11:07:59 +01:00
Armin Novak
a595602953 Updated gradle and config printout. 2017-03-09 11:07:59 +01:00
Armin Novak
ed5b81a807 CSS to external file, fixed license linebreaks. 2017-03-09 10:01:36 +01:00
Armin Novak
589114593c Async transport removed, H264 check for support. 2017-03-07 16:09:24 +01:00
Armin Novak
f866d60c2c Validating log level. 2017-03-07 15:08:24 +01:00
Armin Novak
ade4bfcd3c Fixed issues with database upgrade code. 2017-03-07 14:50:52 +01:00
Armin Novak
1f1dae79e6 Fixed cursor empty checks. 2017-03-07 13:17:37 +01:00
Armin Novak
03f3f061b7 Fixed disconnect handling. 2017-03-03 12:06:37 +01:00
Armin Novak
e1cfec1f6d Added missing translations for color enumeration. 2017-03-02 13:06:10 +01:00
Armin Novak
93cd763815 Removed https links in MPL and apache license. 2017-03-02 12:48:13 +01:00
Armin Novak
c204fbe409 Added client name reset if empty. 2017-03-02 10:27:13 +01:00
Armin Novak
345cbddba7 Updated intent filter to open RDP files. 2017-03-02 08:49:50 +01:00
Armin Novak
05f6dac204 Moved construction to onCreate. 2017-02-24 11:30:36 +01:00
Armin Novak
eeee92a309 All EditTextPreferences are now single lined. 2017-02-24 09:48:40 +01:00
Armin Novak
37e9db4b04 Added signing configuration. 2017-02-24 09:29:26 +01:00
Armin Novak
65f761a587 Use HTTPS links in about. 2017-02-23 15:20:19 +01:00
Armin Novak
b938bb483a Updated gradle build, allow to configure from file. 2017-02-23 15:06:11 +01:00
Armin Novak
ae09ab79ae Updated about pages. 2017-02-23 13:24:00 +01:00
Armin Novak
f47bde3df2 Added a H264 availability check. 2017-02-23 12:31:08 +01:00
Armin Novak
5d8a9f2ff3 Fixed asset loading. 2017-02-23 10:51:21 +01:00
Armin Novak
71294554bd Updated licensing information and data protection clause. 2017-02-22 20:11:20 +01:00
Armin Novak
70e43e682e Refactored application settings, added client hostname (#1343) 2017-02-22 18:04:43 +01:00
Armin Novak
91c6d0db20 Refactored db upgrade code. 2017-02-22 16:08:43 +01:00
Armin Novak
a8bf7afac3 Using AppCompatActivity. 2017-02-22 16:08:43 +01:00
Armin Novak
57eea83c2a Deactivated async_transport #3134 2017-02-22 16:08:43 +01:00
Armin Novak
2a934b7d15 Reformatted using AndroidStudio coding style. 2017-02-22 16:08:43 +01:00
Armin Novak
553d7827ec Updated gradle. 2017-02-22 16:08:43 +01:00
Armin Novak
6d93b92d64 Updated library names after change in #3704 2017-01-16 18:08:07 +01:00
Armin Novak
77a8821b1b Updated gradle settings. 2017-01-16 16:40:06 +01:00
Armin Novak
548927eb2e Renamed OpenSSL library
To avoid collisions with system provided OpenSSL use
a different (unique) library name for android builds.
2017-01-16 16:39:06 +01:00
Iordan Iordanov
f4b08d8347 The first parameter of LibFreeRDP.OnRemoteClipboardChanged() was
changed from int to long, however, the changed method signature was not
reflected in android_cliprdr.c.

As a result, a copy in the remote session would result in the
java.lang.NoSuchMethodError below:

01-08 20:24:16.620  8234  8865 E AndroidRuntime: FATAL EXCEPTION: Thread-11495
01-08 20:24:16.620  8234  8865 E AndroidRuntime: Process: com.iiordanov.aRDP, PID: 8234
01-08 20:24:16.620  8234  8865 E AndroidRuntime: java.lang.NoSuchMethodError: no static method "Lcom/freerdp/freerdpcore/services/LibFreeRDP;.OnRemoteClipboardChanged(ILjava/lang/String;)V"
01-08 20:51:44.737 11025 11439 F libc    : Fatal signal 11 (SIGSEGV), code 1, fault addr 0xa0 in tid 11439 (Thread-6)
01-08 20:53:14.887 11717 11717 E AndroidRuntime: FATAL EXCEPTION: main

This commit fixes the bug.
2017-01-10 17:17:44 -05: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
Armin Novak
0906483f1c Added 64bit support to API. 2016-12-02 12:04:53 +01:00
Armin Novak
ea41084281 Updated build tools and readme for android. 2016-12-02 12:04:53 +01:00
Norbert Federa
c6e6b44143 countless WLog/printf format specifier fixes 2016-11-25 17:06:25 +01:00
Martin Fleisz
0febd9c7cd Merge pull request #3563 from akallabeth/android_update
Android fix warnings, visibility and formatting
2016-11-24 12:59:30 +01:00
Armin Novak
43755c28eb Android: fixed visibility, reformatted 2016-10-17 12:20:06 +02:00
Armin Novak
8ef1808191 Adjusted non X11 implementations. 2016-10-14 12:50:04 +02:00
Armin Novak
649d270ccd Fixed GDI_RGN->null initialization. 2016-10-06 13:43:15 +02:00
Armin Novak
8f1adf64ee Refactored ClipboardSetData. 2016-10-06 13:43:15 +02:00
Armin Novak
dd676c7b29 Fixed missing NULL checks. 2016-10-06 13:43:13 +02:00
Armin Novak
f2d7766db6 Moved common async input handling to core library. 2016-10-06 13:43:12 +02:00
Armin Novak
196386f59b Android client support script fixes. 2016-10-06 13:43:11 +02:00
Armin Novak
22ddec810b Moved pre and post channel hooks. 2016-10-06 13:43:10 +02:00
Armin Novak
d35823cf69 Moved channel init code to core library. 2016-10-06 13:43:09 +02:00
Armin Novak
dadc5262ae Removed static channel variables.
Global static variables do not work, if more than one instance
of an RDP client is running in the same process space.
Removed the varaibles where possible and replaced them with
thread local storage where necessary.
2016-10-06 13:43:09 +02:00
Armin Novak
c8d4438776 Fixed android settings. 2016-10-06 13:43:07 +02:00
Armin Novak
c3e6240f41 Fixed android client. 2016-10-06 13:43:07 +02:00
Armin Novak
df35c135d1 Fixed color conversion, unified GFX and updated API. 2016-10-06 13:42:58 +02:00
Armin Novak
40bfc174d3 Added gradle.properties to extend heap size. 2016-07-06 17:21:46 +02:00
Armin Novak
d5b7c19288 Updated gradle. 2016-07-06 13:02:35 +02:00
Armin Novak
730ff20b63 Using android build-tools 24 (23 is broken) 2016-07-06 11:50:53 +02:00
zihao.jiang
748982c94b Fix android rotation crash 2016-04-07 20:19:22 +08:00
Armin Novak
36cbf1b583 Fixed error handling for channel load failures. 2016-03-14 13:13:43 +01:00
Bernhard Miklautz
6ebf452513 Merge pull request #3209 from akallabeth/android_translation_fix
Reverted translation of internal VALUE arrays.
2016-03-14 13:00:52 +01:00
Armin Novak
77d82f14c5 Removed untranslatable strings from translated files. 2016-03-14 09:53:45 +01:00
Armin Novak
382626f10f Fixed settings load/store. 2016-03-10 21:52:40 +01:00
Armin Novak
15498eaf26 Marked non translatable strings as such. 2016-03-08 20:53:32 +01:00
Armin Novak
1d4fd05db2 Reverted translation of internal VALUE arrays. 2016-03-08 20:53:32 +01:00
zihao.jiang
0927114e83 android: Allow freerdp mobile version to be launched from URI (freerdp://)
It would be good if we have a easy way to call aFreeRDP in another Android APP (Requirement also mentioned in #2720)
We can define a scheme (freerdp://) as unified way to launch FreeRDP from another APP or browser and connect to compatible RDP server
1. Define scheme freerdp://
2. General form could be freerdp://user@hostname:port/connect?key1=value&key2=-&key3=%2b&key4=
3. [user] part would be translated to /u:
4. [hostname:port] would be translated to /v:
5. The [user@hostname:port] part would be used as app title, currently it's just the progress dialog title
6. query parameters would be translated to command line arguments. Later same arguments will overwrite the formers:
    a. key1=value: 		=> /key1:value
    b. key2=-: 			=> -key2
    c. key3=%2b 		=> +key3 (%2b is url encoded +)
	d. key4= 			=> /key4
	e. Especially, drive=sdcard will be properly handled with local sdcard path. On my device it will be translated to /drive:sdcard,/storage/emulated/0

Owing to the refactor work in PR #3097, we now pass same command line argument to JNI for freerdp settings.
We just need to make the SessionActivity accept freerdp scheme and translate argument from URI form to command line form.
2016-03-09 03:22:02 +08:00
zihao.jiang
17139b9fe6 android: Fix sound redirection.
After #3097, the java side pass command line argument to JNI for freerdp settings. However there's several issues need to be fixed:
1. The argument /sound should be appended if freerdp is required to play sound at local device
2. The option value for "audio-mode" is not correct.
It should match the definition in client/common/cmdline.c
/* Audio Mode */
define AUDIO_MODE_REDIRECT     0 /* Bring to this computer */
define AUDIO_MODE_PLAY_ON_SERVER   1 /* Leave at remote computer */
define AUDIO_MODE_NONE         2 /* Do not play */
3. Uncomment support for WAVE_FORMAT_PCM in audin. I tested on my android phone and Nokia N1 tablet. It works on both device
2016-02-28 13:43:11 +08:00
Bernhard Miklautz
e6f013eac7 fix spelling
replace occured with occurred
Fixes #3142
2016-02-22 17:01:43 +01:00
Hardening
2a3e9996b3 Merge pull request #2710 from akallabeth/cert_temp_accept_v2
Extended certificate callbacks.
2016-02-15 13:52:47 +01:00
Hardening
0092bcf92c Merge pull request #3130 from pxx02134/patch-1
Update BookmarkDB.java
2016-02-14 14:18:26 +01:00
pxx02134
2bf525d20b Update AndroidManifest.xml
ACCESS_NETWORK_STATE statement duplicated. It cause warnings while building.
2016-02-11 12:24:47 +09:00
pxx02134
2178245bac Update BookmarkDB.java
There seems to be two commas forgot.
2016-02-11 12:21:11 +09:00
Armin Novak
80d7d639f7 Updated android API. 2016-02-05 02:32:47 +01:00
Armin Novak
cbf2892ccc Implemented temporary certificate accept.
Certificates can now be accepted temporarily.
The callbacks for certificate validation have been
modified to extend the information presented to the user.
2016-02-05 02:04:57 +01:00
Armin Novak
1f81556ed3 Removed hardcoded debug mode. 2016-02-04 14:33:28 +01:00
Armin Novak
54a7d799d1 Restructured client project, moved to gradle build. 2016-02-01 15:25:40 +01:00
Hardening
b5f8900bc4 Merge pull request #2917 from binglinoioij/master
add values-zh/string.xml,that was profiles for chinese
2015-11-10 10:13:47 +01:00
root
934c4ff7a4 update values-zh/strings.xml 2015-10-16 15:54:26 +08:00
clouder
1030f8dad8 add values-zh/string.xml 2015-10-08 17:20:44 +08:00
Marc-André Moreau
3fd0c45be8 afreerdp: fix build warnings 2015-09-22 11:53:50 -04:00
Norbert Federa
2d5e249eff Merge pull request #2825 from akallabeth/pointer_decoding_fix
Fixed color pointer decoding.
2015-09-01 11:09:42 +02:00
Martin Haimberger
52405a3e79 Remove WIN32ERROR type
All return values are UINT now.
2015-08-27 05:38:20 -07:00
Armin Novak
4a62e6bee4 Added length arguments and checks. 2015-08-06 11:24:42 +02:00
Martin Haimberger
6ab0187d84 Merge remote-tracking branch 'upstream/master' into mh-channel
Conflicts:
	channels/audin/client/oss/audin_oss.c
	channels/drive/client/drive_main.c
	channels/printer/client/printer_cups.c
	channels/printer/client/printer_main.c
	channels/rail/client/rail_main.c
	channels/rdpgfx/client/rdpgfx_main.c
	channels/rdpsnd/client/oss/rdpsnd_oss.c
	channels/remdesk/client/remdesk_main.c
	channels/remdesk/server/remdesk_main.c
	channels/tsmf/client/tsmf_media.c
2015-07-15 01:57:07 -07:00
Bernhard Miklautz
68e8569110 winpr/synch: remove the dependency on winsock.h
winsock.h pulls in a lot of defines and dependencies that are not
required and partially unwanted in winpr's core (for parts that are not
related to network). In order to get rid of this dependency and have an
independent defines for extended winpr functions the WINPR_FD_* defines
are used internally (and for exposed functions). Where required, like in
WSAEventSelect, the FD_* is mapped to WINPR_FD_*.
2015-07-14 11:39:41 +02:00
Armin Novak
d18b0fbeb4 Handle API updated. 2015-07-03 09:52:52 +02:00
Bernhard Miklautz
06502e6a91 misc: integrate pull request feedback 2015-06-22 19:24:30 +02:00
Bernhard Miklautz
19afc6906c client/android: reset debug level to default
* WLOG debug level was hard coded to DEBUG which generates a lot of
  noise
* remove indecent and unneeded debug message
2015-06-22 19:23:58 +02:00
David FORT
7c3f8f33ab Fixes for malloc / calloc + other fixes
This patch contains:

* checks for malloc return value + treat callers;
* modified malloc() + ZeroMemory() to calloc();
* misc fixes of micro errors seen during the code audit:
** some invalid checks in gcc.c, also there were some possible
integer overflow. This is interesting because at the end the data are parsed
and freed directly, so it's a vulnerability in some kind of dead code (at least
useless);
** fixed usage of GetComputerNameExA with just one call, when 2 were used
in misc places. According to MSDN GetComputerNameA() is supposed to return
an error when called with NULL;
** there were a bug in the command line parsing of shadow;
** in freerdp_dynamic_channel_collection_add() the size of array was multiplied
by 4 instead of 2 on resize
2015-06-22 19:21:47 +02:00
Bernhard Miklautz
749d93ae39 client/android: misc updates and fixes
* increase minimum required SDK to 14
* change functions from void to BOOL where required to have proper
  return values
* update the JAVA classes and JNI accordingly
* add return value checks for *alloc and strdup
2015-06-22 19:10:00 +02:00
Bernhard Miklautz
77927c213e android: fix misc compiler warnings
with gcc version arm-linux-androideabi-gcc (GCC) 4.8
2015-06-22 19:09:59 +02: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
e5d5cd3c94 hardend cliprdr
hardend cliprdr server and client
also updated all callbacks in the server and client
implementations
2015-06-18 03:04:31 -07:00
David FORT
12f873f1f9 Fixed MessageQueue and callers 2015-05-29 14:24:14 +02:00
MartinHaimberger
e3236c2317 Merge pull request #2605 from nfedera/fix-2015-05-08-01
fixed multiple missing gdi return value checks
2015-05-11 16:59:32 +02:00
Norbert Federa
1eff1a345e free can handle NULL perfectly fine 2015-05-11 09:07:39 +02:00
Norbert Federa
71a4349928 fixed multiple missing gdi return value checks
mainly gdi_Create* functions
2015-05-08 21:39:23 +02:00
Norbert Federa
25fc866a58 Fix unchecked CreateThread calls and misc fixes 2015-05-05 13:55:48 +02:00
Norbert Federa
ef1fd12b15 Fix unchecked CreateEvent calls and misc fixes
1)
Added missing checks for CreateEvent which also required the
following related changes:

- changed freerdp_context_new API to BOOL
- changed freerdp_peer_context_new API to BOOL
- changed pRdpClientNew callback to BOOL
- changed pContextNew callback to BOOL
- changed psPeerAccepted callback to BOOL
- changed psPeerContextNew callback to BOOL

2)
Fixed lots of missing alloc and error checks in the
changed code's neighbourhood.

3)
Check freerdp_client_codecs_prepare result to avoid segfaults
caused by using non-initialized codecs.

4)
Fixed deadlocks in x11 caused by missing xf_unlock_x11() calls
in some error handlers

5)
Some fixes in thread pool:
- DEFAULT_POOL assignment did not match TP_POOL definition
- don't free the pool pointer if it points to the static DEFAULT_POOL
- added error handling and cleanup in InitializeThreadpool
2015-04-29 18:18:39 +02:00
Bernhard Miklautz
515502ffa5 change return types of callbacks to BOOL
* change all client/server callbacks to BOOL
* update all clients accordingly
* add multiple return value checks
* small fixes
2015-04-21 14:18:07 +02:00
Zhang Zhaolong
251d214d52 android_event: fix incorrect usage of realloc.
Signed-off-by: Zhang Zhaolong <zhangzl2013@126.com>
2015-03-11 12:29:37 +08:00
Zavadovsky Yan
60c79f5450 client/Android: fix coords calculation in previous commit 2015-02-23 11:50:32 +03:00
Zavadovsky Yan
082e7b8661 client/Android: optimize android_end_paint() logic
1. Don't draw to screen if server sends begin/end paint
messages without any real updates.
2. Redraw only summary region that covers really invalidated
part of screen.
2015-02-21 23:52:38 +03:00
Zavadovsky Yan
ac8b50c464 client/Android: fix bad realloc
Fast and long pointer moves cause app to crash.
2015-02-21 23:51:02 +03:00
Kurt McAlpine
9b1450f759 Replaced ternary operator with condition only 2015-02-11 11:15:25 +13:00
Armin Novak
28da3ea620 Using freerdp_channels_disconnect now. 2015-01-20 11:24:03 +01: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
496ce10637 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2014-11-15 12:37:29 -05:00
Bernhard Miklautz
841b4c1a3a android: use target SDK version for appcompat
Also Use ANDROID_APP_TARGET_SDK for application compatibility project.
It is now automatically set/updated during build.

Note: The ANDROID_APP_TARGET_SDK version need to be larger or equal to the
version required by the used Android support library (appcompat).
2014-11-15 01:04:57 +01:00
Marc-André Moreau
769eb38217 afreerdp: migrate to cliprdr callback interface 2014-11-12 12:25:12 -05:00
Marc-André Moreau
19c3b0d457 afreerdp: cleanup cliprdr code 2014-11-12 11:14:10 -05:00
Marc-André Moreau
a1e660d92e freerdp: unify clipboard standard format id definitions 2014-10-16 22:20:12 -04:00
Armin Novak
7913a57bc5 Using wlog for logging in clients now. 2014-09-15 08:55:00 +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
Marc-André Moreau
82a53057a1 Merge pull request #2023 from ptsekov/software-gdi-improvements
Software GDI improvements
2014-08-18 16:22:23 -04:00
Marc-André Moreau
f30d7cf66a Merge pull request #2024 from repzilon/master
uclibc build fixes and recompressed images
2014-08-18 13:08:52 -04:00
Hardening
767d54ce18 Merge pull request #2017 from ptsekov/Issue_2016
Honour user performance preferences.
2014-08-15 09:21:12 +02:00