]> git.sesse.net Git - ffmpeg/commitdiff
rtmpcrypt: Do the xtea decryption in little endian mode
authorMartin Storsjö <martin@martin.st>
Wed, 11 Nov 2015 20:11:19 +0000 (22:11 +0200)
committerMartin Storsjö <martin@martin.st>
Fri, 13 Nov 2015 19:53:57 +0000 (21:53 +0200)
The XTEA algorithm operates on 32 bit numbers, not on byte sequences.
The XTEA implementation in libavutil is written assuming big endian
numbers, while the rtmpe signature encryption assumes little endian.

This fixes rtmpe communication with rtmpe servers that use signature
type 8 (XTEA), e.g. crunchyroll.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/rtmpcrypt.c

index 887427d205a84ca42e125bc724e8f8200531ab88..829c280776a557416c8321995bd4d0c8ad34d8b7 100644 (file)
@@ -186,7 +186,7 @@ static void rtmpe8_sig(const uint8_t *in, uint8_t *out, int key_id)
     struct AVXTEA ctx;
 
     av_xtea_init(&ctx, rtmpe8_keys[key_id]);
-    av_xtea_crypt(&ctx, out, in, 1, NULL, 0);
+    av_xtea_le_crypt(&ctx, out, in, 1, NULL, 0);
 }
 
 static void rtmpe9_sig(const uint8_t *in, uint8_t *out, int key_id)