After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 532065 - Implement RTSP Digest authentication
Implement RTSP Digest authentication
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other All
: Normal enhancement
: 0.10.9
Assigned To: Wim Taymans
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-05-07 22:35 UTC by Wouter Cloetens
Modified: 2008-05-08 16:58 UTC
See Also:
GNOME target: ---
GNOME version: Unversioned Enhancement


Attachments
implement RTSP Digest authentication (23.98 KB, patch)
2008-05-07 22:39 UTC, Wouter Cloetens
none Details | Review

Description Wouter Cloetens 2008-05-07 22:35:55 UTC
RTSP only supports Basic or no authentication.
Comment 1 Wouter Cloetens 2008-05-07 22:39:52 UTC
Created attachment 110554 [details] [review]
implement RTSP Digest authentication

This patch implements RTSP Digest authentication with a few limitations:
- the algorithm is assumed to be MD5,
- no qop support,
- no support for the "stale" directive,
which should be enough for the most common cases.
The code is mostly based on libsoup's HTTP Digest auth support, with g_checksum (glib >= 2.16) replaced with a copy of the MD5 code from wavpack.
Note that this patch touches gst-plugins-base (GstRTSPConnection) and gst-plugins-good (rtspsrc).
Comment 2 Wim Taymans 2008-05-08 14:47:05 UTC
        Patch by: Wouter Cloetens <zombie at e2big dot org>

        * gst-libs/gst/rtsp/Makefile.am:
        * gst-libs/gst/rtsp/gstrtspconnection.c:
        (gst_rtsp_connection_create), (md5_digest_to_hex_string),
        (auth_digest_compute_hex_urp), (auth_digest_compute_response),
        (add_auth_header), (gst_rtsp_connection_free),
        (gst_rtsp_connection_set_auth), (str_case_hash), (str_case_equal),
        (gst_rtsp_connection_set_auth_param),
        (gst_rtsp_connection_clear_auth_params):
        * gst-libs/gst/rtsp/gstrtspconnection.h:
        Add Digest authorization support for RTSP connections. See #532065.

        * gst-libs/gst/rtsp/md5.c:
        * gst-libs/gst/rtsp/md5.h:
        Yeap, another md5 implementation until we can depend on a glib that has
        support for it.
Comment 3 Wim Taymans 2008-05-08 16:58:10 UTC
        Based on patch by: Wouter Cloetens  <wouter at mind be>

        * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
        (gst_rtspsrc_skip_lws), (gst_rtspsrc_unskip_lws),
        (gst_rtspsrc_skip_commas), (gst_rtspsrc_skip_item),
        (gst_rtsp_decode_quoted_string),
        (gst_rtspsrc_parse_digest_challenge), (gst_rtspsrc_parse_auth_hdr),
        (gst_rtspsrc_setup_auth):
        Support Digest authentication. Fixes #532065.