From: Bart Van Severen Date: Wed, 14 Dec 2022 09:31:14 +0000 (+0100) Subject: sdp: gstmikey: gst_mikey_message_to_caps: extract salt and append to srtp-key X-Git-Tag: 1.22.7~536 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0b086876332f87f3bfc892b991da8530eb63da44;p=platform%2Fupstream%2Fgstreamer.git sdp: gstmikey: gst_mikey_message_to_caps: extract salt and append to srtp-key A KEMAC can hold both key and salt, so if salt is present, we should extract it and append it to the srtp-key cap because libsrtp expects the srtp-key to hold the concantenated srtp master key and salt. Part-of: --- diff --git a/subprojects/gst-plugins-base/gst-libs/gst/sdp/gstmikey.c b/subprojects/gst-plugins-base/gst-libs/gst/sdp/gstmikey.c index 00a2b68..d875472 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/sdp/gstmikey.c +++ b/subprojects/gst-plugins-base/gst-libs/gst/sdp/gstmikey.c @@ -2487,7 +2487,7 @@ gst_mikey_message_to_caps (const GstMIKEYMessage * msg, GstCaps * caps) GstMIKEYPayloadKEMAC *p = (GstMIKEYPayloadKEMAC *) payload; const GstMIKEYPayload *sub; GstMIKEYPayloadKeyData *pkd; - GstBuffer *buf; + GstBuffer *buf, *saltbuf; if (p->enc_alg != GST_MIKEY_ENC_NULL || p->mac_alg != GST_MIKEY_MAC_NULL) goto done; @@ -2500,6 +2500,11 @@ gst_mikey_message_to_caps (const GstMIKEYMessage * msg, GstCaps * caps) pkd = (GstMIKEYPayloadKeyData *) sub; buf = gst_buffer_new_memdup (pkd->key_data, pkd->key_len); + if (pkd->salt_len) { + saltbuf = gst_buffer_new_memdup (pkd->salt_data, pkd->salt_len); + gst_buffer_append (buf, saltbuf); + gst_buffer_unref (saltbuf); + } gst_caps_set_simple (caps, "srtp-key", GST_TYPE_BUFFER, buf, NULL); gst_buffer_unref (buf);