Public feed
#726577
Index: libavformat/asf.c
===================================================================
--- libavformat/asf.c (revision 10667)
+++ libavformat/asf.c (working copy)
@@ -707,8 +707,22 @@
return 0;
}
+static uint8_t hexkey[20] = {
+ 0x13, 0x73, 0x81, 0x53, 0x8c, 0x84, 0xc0, 0x68,
+ 0x11, 0x19, 0x02, 0xa5, 0x9c, 0x5c, 0xf6, 0xc3,
+ 0x40, 0x24, 0x7c, 0x39
+};
+
+static wchar_t base64key[] = {
+ 'E', '3', 'O', 'B', 'U', '4', 'y', 'E', 'w', 'G', 'g', 'R', 'G',
+ 'Q', 'K', 'l', 'n', 'F', 'z', '2', 'w', '0', 'A', 'k', 'f', 'D', 'k', '='
+};
+
+#include "msdrm.h"
+
static int asf_read_packet(AVFormatContext *s, AVPacket *pkt)
{
+CONTKEY key;
ASFContext *asf = s->priv_data;
ASFStream *asf_st = 0;
ByteIOContext *pb = &s->pb;
@@ -823,6 +837,8 @@
get_buffer(pb, asf_st->pkt.data + asf->packet_frag_offset,
asf->packet_frag_size);
+MSDRM_setup(1, base64key, &key);
+MSDRM_decr_packet(asf_st->pkt.data + asf->packet_frag_offset, asf->packet_frag_size, &key);
asf_st->frag_offset += asf->packet_frag_size;
/* test if whole packet is read */
if (asf_st->frag_offset == asf_st->pkt.size) {