From f56797e413f36b25b04d8ffb2d6d1b82ed468538 Mon Sep 17 00:00:00 2001
From: Kevin McCormack <harlemsquirrel@gmail.com>
Date: Wed, 25 Dec 2019 05:45:49 -0500
Subject: [PATCH] Update Vivotek camera component (#30191)

- Bump libpyvivotek version to 0.4.0
- Add digest authentication
---
 homeassistant/components/vivotek/camera.py     | 7 +++++++
 homeassistant/components/vivotek/manifest.json | 2 +-
 requirements_all.txt                           | 2 +-
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/homeassistant/components/vivotek/camera.py b/homeassistant/components/vivotek/camera.py
index 665db373440..f4a195f5b0c 100644
--- a/homeassistant/components/vivotek/camera.py
+++ b/homeassistant/components/vivotek/camera.py
@@ -7,12 +7,15 @@ import voluptuous as vol
 
 from homeassistant.components.camera import PLATFORM_SCHEMA, SUPPORT_STREAM, Camera
 from homeassistant.const import (
+    CONF_AUTHENTICATION,
     CONF_IP_ADDRESS,
     CONF_NAME,
     CONF_PASSWORD,
     CONF_SSL,
     CONF_USERNAME,
     CONF_VERIFY_SSL,
+    HTTP_BASIC_AUTHENTICATION,
+    HTTP_DIGEST_AUTHENTICATION,
 )
 from homeassistant.helpers import config_validation as cv
 
@@ -34,6 +37,9 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
         vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
         vol.Required(CONF_PASSWORD): cv.string,
         vol.Required(CONF_USERNAME): cv.string,
+        vol.Optional(CONF_AUTHENTICATION, default=HTTP_BASIC_AUTHENTICATION): vol.In(
+            [HTTP_BASIC_AUTHENTICATION, HTTP_DIGEST_AUTHENTICATION]
+        ),
         vol.Optional(CONF_SSL, default=False): cv.boolean,
         vol.Optional(CONF_VERIFY_SSL, default=True): cv.boolean,
         vol.Optional(CONF_FRAMERATE, default=2): cv.positive_int,
@@ -54,6 +60,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
             verify_ssl=config[CONF_VERIFY_SSL],
             usr=config[CONF_USERNAME],
             pwd=config[CONF_PASSWORD],
+            digest_auth=config[CONF_AUTHENTICATION] == HTTP_DIGEST_AUTHENTICATION,
             sec_lvl=config[CONF_SECURITY_LEVEL],
         ),
         stream_source=f"rtsp://{creds}@{config[CONF_IP_ADDRESS]}:554/{config[CONF_STREAM_PATH]}",
diff --git a/homeassistant/components/vivotek/manifest.json b/homeassistant/components/vivotek/manifest.json
index c97a8461da9..afd7535aa0f 100644
--- a/homeassistant/components/vivotek/manifest.json
+++ b/homeassistant/components/vivotek/manifest.json
@@ -3,7 +3,7 @@
   "name": "Vivotek",
   "documentation": "https://www.home-assistant.io/integrations/vivotek",
   "requirements": [
-    "libpyvivotek==0.3.1"
+    "libpyvivotek==0.4.0"
   ],
   "dependencies": [],
   "codeowners": [
diff --git a/requirements_all.txt b/requirements_all.txt
index fedfa2f61ec..f69a9b8c080 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -762,7 +762,7 @@ libpurecool==0.5.0
 libpyfoscam==1.0
 
 # homeassistant.components.vivotek
-libpyvivotek==0.3.1
+libpyvivotek==0.4.0
 
 # homeassistant.components.mikrotik
 librouteros==2.3.0
-- 
GitLab