| Index: source/patched-ffmpeg-mt/libavformat/asfcrypt.c
|
| ===================================================================
|
| --- source/patched-ffmpeg-mt/libavformat/asfcrypt.c (revision 59334)
|
| +++ source/patched-ffmpeg-mt/libavformat/asfcrypt.c (working copy)
|
| @@ -139,7 +139,7 @@
|
| struct AVDES des;
|
| struct AVRC4 rc4;
|
| int num_qwords = len >> 3;
|
| - uint64_t *qwords = (uint64_t *)data;
|
| + uint8_t *qwords = data;
|
| uint64_t rc4buff[8];
|
| uint64_t packetkey;
|
| uint32_t ms_keys[12];
|
| @@ -156,7 +156,7 @@
|
| av_rc4_crypt(&rc4, (uint8_t *)rc4buff, NULL, sizeof(rc4buff), NULL, 1);
|
| multiswap_init((uint8_t *)rc4buff, ms_keys);
|
|
|
| - packetkey = qwords[num_qwords - 1];
|
| + packetkey = AV_RN64(&qwords[num_qwords*8 - 8]);
|
| packetkey ^= rc4buff[7];
|
| av_des_init(&des, key + 12, 64, 1);
|
| av_des_crypt(&des, (uint8_t *)&packetkey, (uint8_t *)&packetkey, 1, NULL, 1);
|
| @@ -166,7 +166,7 @@
|
| av_rc4_crypt(&rc4, data, data, len, NULL, 1);
|
|
|
| ms_state = 0;
|
| - for (i = 0; i < num_qwords - 1; i++, qwords++)
|
| + for (i = 0; i < num_qwords - 1; i++, qwords += 8)
|
| ms_state = multiswap_enc(ms_keys, ms_state, AV_RL64(qwords));
|
| multiswap_invert_keys(ms_keys);
|
| packetkey = (packetkey << 32) | (packetkey >> 32);
|
|
|