diff -uNrp zabbix-4.0.0alpha6.orig/frontends/php/disc_prototypes.php zabbix-4.0.0alpha6/frontends/php/disc_prototypes.php
--- zabbix-4.0.0alpha6.orig/frontends/php/disc_prototypes.php	2018-05-02 14:51:38.000000000 +0900
+++ zabbix-4.0.0alpha6/frontends/php/disc_prototypes.php	2018-05-08 14:54:59.899765615 +0900
@@ -209,19 +209,21 @@ $fields = [
 										null
 									],
 	'http_authtype' =>				[T_ZBX_INT, O_OPT, null,
-										IN([HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM]),
+										IN([HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM, HTTPTEST_AUTH_DIGEST]),
 										null
 									],
 	'http_username' =>				[T_ZBX_STR, O_OPT, null,	NOT_EMPTY,
 										'(isset({add}) || isset({update})) && isset({http_authtype})'.
 											' && ({http_authtype} == '.HTTPTEST_AUTH_BASIC.
-												' || {http_authtype} == '.HTTPTEST_AUTH_NTLM.')',
+												' || {http_authtype} == '.HTTPTEST_AUTH_NTLM.
+												' || {http_authtype} == '.HTTPTEST_AUTH_DIGEST.')',
 										_('Username')
 									],
 	'http_password' =>				[T_ZBX_STR, O_OPT, null,	NOT_EMPTY,
 										'(isset({add}) || isset({update})) && isset({http_authtype})'.
 											' && ({http_authtype} == '.HTTPTEST_AUTH_BASIC.
-												' || {http_authtype} == '.HTTPTEST_AUTH_NTLM.')',
+												' || {http_authtype} == '.HTTPTEST_AUTH_NTLM.
+												' || {http_authtype} == '.HTTPTEST_AUTH_DIGEST.')',
 										_('Password')
 									],
 	// actions
diff -uNrp zabbix-4.0.0alpha6.orig/frontends/php/host_discovery.php zabbix-4.0.0alpha6/frontends/php/host_discovery.php
--- zabbix-4.0.0alpha6.orig/frontends/php/host_discovery.php	2018-05-02 14:51:40.000000000 +0900
+++ zabbix-4.0.0alpha6/frontends/php/host_discovery.php	2018-05-08 14:55:51.242768155 +0900
@@ -191,19 +191,21 @@ $fields = [
 									null
 								],
 	'http_authtype' =>			[T_ZBX_INT, O_OPT, null,
-									IN([HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM]),
+									IN([HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM, HTTPTEST_AUTH_DIGEST]),
 									null
 								],
 	'http_username' =>			[T_ZBX_STR, O_OPT, null,	NOT_EMPTY,
 									'(isset({add}) || isset({update})) && isset({http_authtype})'.
 										' && ({http_authtype} == '.HTTPTEST_AUTH_BASIC.
-											' || {http_authtype} == '.HTTPTEST_AUTH_NTLM.')',
+											' || {http_authtype} == '.HTTPTEST_AUTH_NTLM.
+											' || {http_authtype} == '.HTTPTEST_AUTH_DIGEST.')',
 									_('Username')
 								],
 	'http_password' =>			[T_ZBX_STR, O_OPT, null,	NOT_EMPTY,
 									'(isset({add}) || isset({update})) && isset({http_authtype})'.
 										' && ({http_authtype} == '.HTTPTEST_AUTH_BASIC.
-											' || {http_authtype} == '.HTTPTEST_AUTH_NTLM.')',
+											' || {http_authtype} == '.HTTPTEST_AUTH_NTLM.
+											' || {http_authtype} == '.HTTPTEST_AUTH_DIGEST.')',
 									_('Password')
 								],
 	// actions
diff -uNrp zabbix-4.0.0alpha6.orig/frontends/php/httpconf.php zabbix-4.0.0alpha6/frontends/php/httpconf.php
--- zabbix-4.0.0alpha6.orig/frontends/php/httpconf.php	2018-05-02 14:51:38.000000000 +0900
+++ zabbix-4.0.0alpha6/frontends/php/httpconf.php	2018-05-08 14:56:34.094771938 +0900
@@ -53,9 +53,11 @@ $fields = [
 	'steps'           => [T_ZBX_STR, O_OPT, P_NO_TRIM,  null,                    'isset({add}) || isset({update})', _('Steps')],
 	'authentication'  => [T_ZBX_INT, O_OPT, null,  IN('0,1,2'),             'isset({add}) || isset({update})'],
 	'http_user'       => [T_ZBX_STR, O_OPT, null,  NOT_EMPTY,               '(isset({add}) || isset({update})) && isset({authentication}) && ({authentication} == '.HTTPTEST_AUTH_BASIC.
-		' || {authentication} == '.HTTPTEST_AUTH_NTLM.')', _('User')],
+		' || {authentication} == '.HTTPTEST_AUTH_NTLM.
+		' || {authentication} == '.HTTPTEST_AUTH_DIGEST.')', _('User')],
 	'http_password'		=> [T_ZBX_STR, O_OPT, P_NO_TRIM,	NOT_EMPTY,		'(isset({add}) || isset({update})) && isset({authentication}) && ({authentication} == '.HTTPTEST_AUTH_BASIC.
-		' || {authentication} == '.HTTPTEST_AUTH_NTLM.')', _('Password')],
+		' || {authentication} == '.HTTPTEST_AUTH_NTLM.
+		' || {authentication} == '.HTTPTEST_AUTH_DIGEST.')', _('Password')],
 	'http_proxy'		=> [T_ZBX_STR, O_OPT, null,	null,				'isset({add}) || isset({update})'],
 	'new_application'	=> [T_ZBX_STR, O_OPT, null,	null,				null],
 	'hostname'			=> [T_ZBX_STR, O_OPT, null,	null,				null],
diff -uNrp zabbix-4.0.0alpha6.orig/frontends/php/include/classes/api/services/CHttpTest.php zabbix-4.0.0alpha6/frontends/php/include/classes/api/services/CHttpTest.php
--- zabbix-4.0.0alpha6.orig/frontends/php/include/classes/api/services/CHttpTest.php	2018-05-02 14:51:38.000000000 +0900
+++ zabbix-4.0.0alpha6/frontends/php/include/classes/api/services/CHttpTest.php	2018-05-08 14:57:14.053775464 +0900
@@ -287,7 +287,7 @@ class CHttpTest extends CApiService {
 				'value' =>				['type' => API_STRING_UTF8, 'flags' => API_REQUIRED | API_NOT_EMPTY, 'length' => DB::getFieldLength('httptest_field', 'value')]
 			]],
 			'status' =>				['type' => API_INT32, 'in' => implode(',', [HTTPTEST_STATUS_ACTIVE, HTTPTEST_STATUS_DISABLED])],
-			'authentication' =>		['type' => API_INT32, 'in' => implode(',', [HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM])],
+			'authentication' =>		['type' => API_INT32, 'in' => implode(',', [HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM, HTTPTEST_AUTH_DIGEST])],
 			'http_user' =>			['type' => API_STRING_UTF8, 'length' => DB::getFieldLength('httptest', 'http_user')],
 			'http_password' =>		['type' => API_STRING_UTF8, 'length' => DB::getFieldLength('httptest', 'http_password')],
 			'verify_peer' =>		['type' => API_INT32, 'in' => implode(',', [HTTPTEST_VERIFY_PEER_OFF, HTTPTEST_VERIFY_PEER_ON])],
@@ -382,7 +382,7 @@ class CHttpTest extends CApiService {
 				'value' =>				['type' => API_STRING_UTF8, 'flags' => API_REQUIRED | API_NOT_EMPTY, 'length' => DB::getFieldLength('httptest_field', 'value')]
 			]],
 			'status' =>				['type' => API_INT32, 'in' => implode(',', [HTTPTEST_STATUS_ACTIVE, HTTPTEST_STATUS_DISABLED])],
-			'authentication' =>		['type' => API_INT32, 'in' => implode(',', [HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM])],
+			'authentication' =>		['type' => API_INT32, 'in' => implode(',', [HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM, HTTPTEST_AUTH_DIGEST])],
 			'http_user' =>			['type' => API_STRING_UTF8, 'length' => DB::getFieldLength('httptest', 'http_user')],
 			'http_password' =>		['type' => API_STRING_UTF8, 'length' => DB::getFieldLength('httptest', 'http_password')],
 			'verify_peer' =>		['type' => API_INT32, 'in' => implode(',', [HTTPTEST_VERIFY_PEER_OFF, HTTPTEST_VERIFY_PEER_ON])],
diff -uNrp zabbix-4.0.0alpha6.orig/frontends/php/include/classes/api/services/CItemGeneral.php zabbix-4.0.0alpha6/frontends/php/include/classes/api/services/CItemGeneral.php
--- zabbix-4.0.0alpha6.orig/frontends/php/include/classes/api/services/CItemGeneral.php	2018-05-02 14:51:38.000000000 +0900
+++ zabbix-4.0.0alpha6/frontends/php/include/classes/api/services/CItemGeneral.php	2018-05-08 14:58:18.431781155 +0900
@@ -1909,14 +1909,14 @@ abstract class CItemGeneral extends CApi
 			],
 			'authtype' => [
 				'type' => API_INT32,
-				'in' => implode(',', [HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM])
+				'in' => implode(',', [HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM, HTTPTEST_AUTH_DIGEST])
 			]
 		];
 
 		$data = $item + $db_item;
 
 		if (array_key_exists('authtype', $data)
-				&& ($data['authtype'] == HTTPTEST_AUTH_BASIC || $data['authtype'] == HTTPTEST_AUTH_NTLM)) {
+				&& ($data['authtype'] == HTTPTEST_AUTH_BASIC || $data['authtype'] == HTTPTEST_AUTH_NTLM || $data['authtype'] == HTTPTEST_AUTH_DIGEST)) {
 			$rules += [
 				'username' => [
 					'type' => API_STRING_UTF8, 'flags' => API_REQUIRED | API_NOT_EMPTY,
diff -uNrp zabbix-4.0.0alpha6.orig/frontends/php/include/defines.inc.php zabbix-4.0.0alpha6/frontends/php/include/defines.inc.php
--- zabbix-4.0.0alpha6.orig/frontends/php/include/defines.inc.php	2018-05-08 14:50:34.420757736 +0900
+++ zabbix-4.0.0alpha6/frontends/php/include/defines.inc.php	2018-05-08 14:58:36.734782779 +0900
@@ -813,6 +813,7 @@ define('ZBX_AGENT_OTHER', -1);
 define('HTTPTEST_AUTH_NONE',	0);
 define('HTTPTEST_AUTH_BASIC',	1);
 define('HTTPTEST_AUTH_NTLM',	2);
+define('HTTPTEST_AUTH_DIGEST',	3);
 
 define('HTTPTEST_STATUS_ACTIVE',	0);
 define('HTTPTEST_STATUS_DISABLED',	1);
diff -uNrp zabbix-4.0.0alpha6.orig/frontends/php/include/httptest.inc.php zabbix-4.0.0alpha6/frontends/php/include/httptest.inc.php
--- zabbix-4.0.0alpha6.orig/frontends/php/include/httptest.inc.php	2018-05-02 14:51:38.000000000 +0900
+++ zabbix-4.0.0alpha6/frontends/php/include/httptest.inc.php	2018-05-08 14:59:07.569785503 +0900
@@ -26,7 +26,8 @@ function httptest_authentications($type
 	$authentication_types = [
 		HTTPTEST_AUTH_NONE => _('None'),
 		HTTPTEST_AUTH_BASIC => _('Basic'),
-		HTTPTEST_AUTH_NTLM => _('NTLM')
+		HTTPTEST_AUTH_NTLM => _('NTLM'),
+		HTTPTEST_AUTH_DIGEST => _('Digest')
 	];
 
 	if (is_null($type)) {
diff -uNrp zabbix-4.0.0alpha6.orig/frontends/php/include/views/configuration.host.discovery.edit.php zabbix-4.0.0alpha6/frontends/php/include/views/configuration.host.discovery.edit.php
--- zabbix-4.0.0alpha6.orig/frontends/php/include/views/configuration.host.discovery.edit.php	2018-05-02 14:51:38.000000000 +0900
+++ zabbix-4.0.0alpha6/frontends/php/include/views/configuration.host.discovery.edit.php	2018-05-08 14:59:35.506787971 +0900
@@ -283,7 +283,8 @@ $itemFormList->addRow(
 		(new CComboBox($data['limited'] ? '' : 'http_authtype', $data['http_authtype'], null, [
 			HTTPTEST_AUTH_NONE => _('None'),
 			HTTPTEST_AUTH_BASIC => _('Basic'),
-			HTTPTEST_AUTH_NTLM => _('NTLM')
+			HTTPTEST_AUTH_NTLM => _('NTLM'),
+			HTTPTEST_AUTH_DIGEST => _('Digest')
 		]))->setEnabled(!$data['limited'])
 	],
 	'http_authtype_row'
diff -uNrp zabbix-4.0.0alpha6.orig/frontends/php/include/views/configuration.item.edit.php zabbix-4.0.0alpha6/frontends/php/include/views/configuration.item.edit.php
--- zabbix-4.0.0alpha6.orig/frontends/php/include/views/configuration.item.edit.php	2018-05-02 14:51:38.000000000 +0900
+++ zabbix-4.0.0alpha6/frontends/php/include/views/configuration.item.edit.php	2018-05-08 14:59:55.439789736 +0900
@@ -324,7 +324,8 @@ $itemFormList->addRow(
 		(new CComboBox($readonly ? '' : 'http_authtype', $data['http_authtype'], null, [
 			HTTPTEST_AUTH_NONE => _('None'),
 			HTTPTEST_AUTH_BASIC => _('Basic'),
-			HTTPTEST_AUTH_NTLM => _('NTLM')
+			HTTPTEST_AUTH_NTLM => _('NTLM'),
+			HTTPTEST_AUTH_DIGEST => _('Digest')
 		]))->setEnabled(!$readonly)
 	],
 	'http_authtype_row'
diff -uNrp zabbix-4.0.0alpha6.orig/frontends/php/include/views/configuration.item.prototype.edit.php zabbix-4.0.0alpha6/frontends/php/include/views/configuration.item.prototype.edit.php
--- zabbix-4.0.0alpha6.orig/frontends/php/include/views/configuration.item.prototype.edit.php	2018-05-02 14:51:38.000000000 +0900
+++ zabbix-4.0.0alpha6/frontends/php/include/views/configuration.item.prototype.edit.php	2018-05-08 15:00:23.810792242 +0900
@@ -312,7 +312,8 @@ $itemFormList->addRow(
 		(new CComboBox($readonly ? '' : 'http_authtype', $data['http_authtype'], null, [
 			HTTPTEST_AUTH_NONE => _('None'),
 			HTTPTEST_AUTH_BASIC => _('Basic'),
-			HTTPTEST_AUTH_NTLM => _('NTLM')
+			HTTPTEST_AUTH_NTLM => _('NTLM'),
+			HTTPTEST_AUTH_DIGEST => _('Digest')
 		]))->setEnabled(!$readonly)
 	],
 	'http_authtype_row'
diff -uNrp zabbix-4.0.0alpha6.orig/frontends/php/include/views/js/common.item.edit.js.php zabbix-4.0.0alpha6/frontends/php/include/views/js/common.item.edit.js.php
--- zabbix-4.0.0alpha6.orig/frontends/php/include/views/js/common.item.edit.js.php	2018-05-02 14:51:38.000000000 +0900
+++ zabbix-4.0.0alpha6/frontends/php/include/views/js/common.item.edit.js.php	2018-05-08 15:00:51.827794718 +0900
@@ -390,7 +390,8 @@ zbx_subarray_push($this->data['authTypeV
 		if (jQuery('#http_authtype').length) {
 			new CViewSwitcher('http_authtype', 'change', <?= zbx_jsvalue([
 				HTTPTEST_AUTH_BASIC => ['http_username_row', 'http_password_row'],
-				HTTPTEST_AUTH_NTLM => ['http_username_row', 'http_password_row']
+				HTTPTEST_AUTH_NTLM => ['http_username_row', 'http_password_row'],
+				HTTPTEST_AUTH_DIGEST => ['http_username_row', 'http_password_row']
 			], true) ?>);
 		}
 		<?php
diff -uNrp zabbix-4.0.0alpha6.orig/frontends/php/items.php zabbix-4.0.0alpha6/frontends/php/items.php
--- zabbix-4.0.0alpha6.orig/frontends/php/items.php	2018-05-02 14:51:38.000000000 +0900
+++ zabbix-4.0.0alpha6/frontends/php/items.php	2018-05-08 15:01:51.358799980 +0900
@@ -175,19 +175,21 @@ $fields = [
 									null
 								],
 	'http_authtype' =>			[T_ZBX_INT, O_OPT, null,
-									IN([HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM]),
+									IN([HTTPTEST_AUTH_NONE, HTTPTEST_AUTH_BASIC, HTTPTEST_AUTH_NTLM, HTTPTEST_AUTH_DIGEST]),
 									null
 								],
 	'http_username' =>			[T_ZBX_STR, O_OPT, null,	NOT_EMPTY,
 									'(isset({add}) || isset({update})) && isset({http_authtype})'.
 										' && ({http_authtype} == '.HTTPTEST_AUTH_BASIC.
-											' || {http_authtype} == '.HTTPTEST_AUTH_NTLM.')',
+											' || {http_authtype} == '.HTTPTEST_AUTH_NTLM.
+											' || {http_authtype} == '.HTTPTEST_AUTH_DIGEST.')',
 									_('Username')
 								],
 	'http_password' =>			[T_ZBX_STR, O_OPT, null,	NOT_EMPTY,
 									'(isset({add}) || isset({update})) && isset({http_authtype})'.
 										' && ({http_authtype} == '.HTTPTEST_AUTH_BASIC.
-											' || {http_authtype} == '.HTTPTEST_AUTH_NTLM.')',
+											' || {http_authtype} == '.HTTPTEST_AUTH_NTLM.
+											' || {http_authtype} == '.HTTPTEST_AUTH_DIGEST.')',
 									_('Password')
 								],
 	// actions
diff -uNrp zabbix-4.0.0alpha6.orig/include/common.h zabbix-4.0.0alpha6/include/common.h
--- zabbix-4.0.0alpha6.orig/include/common.h	2018-05-08 14:50:33.294757701 +0900
+++ zabbix-4.0.0alpha6/include/common.h	2018-05-08 14:52:36.969761380 +0900
@@ -882,7 +882,8 @@ typedef enum
 {
 	HTTPTEST_AUTH_NONE = 0,
 	HTTPTEST_AUTH_BASIC,
-	HTTPTEST_AUTH_NTLM
+	HTTPTEST_AUTH_NTLM,
+	HTTPTEST_AUTH_DIGEST
 }
 zbx_httptest_auth_t;
 
diff -uNrp zabbix-4.0.0alpha6.orig/src/libs/zbxhttp/http.c zabbix-4.0.0alpha6/src/libs/zbxhttp/http.c
--- zabbix-4.0.0alpha6.orig/src/libs/zbxhttp/http.c	2018-05-02 14:51:37.000000000 +0900
+++ zabbix-4.0.0alpha6/src/libs/zbxhttp/http.c	2018-05-08 14:52:11.563760618 +0900
@@ -149,6 +149,9 @@ int	zbx_http_prepare_auth(CURL *easyhand
 			case HTTPTEST_AUTH_NTLM:
 				curlauth = CURLAUTH_NTLM;
 				break;
+			case HTTPTEST_AUTH_DIGEST:
+				curlauth = CURLAUTH_DIGEST;
+				break;
 			default:
 				THIS_SHOULD_NEVER_HAPPEN;
 				break;
