Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
48a4ffa7
Commit
48a4ffa7
authored
Feb 05, 2013
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
asf: K&R formatting cosmetics
parent
77bcb896
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
552 additions
and
508 deletions
+552
-508
asf.c
libavformat/asf.c
+24
-25
asfcrypt.c
libavformat/asfcrypt.c
+36
-26
asfdec.c
libavformat/asfdec.c
+331
-274
asfenc.c
libavformat/asfenc.c
+161
-183
No files found.
libavformat/asf.c
View file @
48a4ffa7
...
...
@@ -20,7 +20,6 @@
#include "asf.h"
const
ff_asf_guid
ff_asf_header
=
{
0x30
,
0x26
,
0xB2
,
0x75
,
0x8E
,
0x66
,
0xCF
,
0x11
,
0xA6
,
0xD9
,
0x00
,
0xAA
,
0x00
,
0x62
,
0xCE
,
0x6C
};
...
...
@@ -115,7 +114,7 @@ const ff_asf_guid ff_asf_marker_header = {
};
/* I am not a number !!! This GUID is the one found on the PC used to
generate the stream */
*
generate the stream */
const
ff_asf_guid
ff_asf_my_guid
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
};
...
...
@@ -138,21 +137,21 @@ const ff_asf_guid ff_asf_digital_signature = {
/* List of official tags at http://msdn.microsoft.com/en-us/library/dd743066(VS.85).aspx */
const
AVMetadataConv
ff_asf_metadata_conv
[]
=
{
{
"WM/AlbumArtist"
,
"album_artist"
},
{
"WM/AlbumTitle"
,
"album"
},
{
"Author"
,
"artist"
},
{
"Description"
,
"comment"
},
{
"WM/Composer"
,
"composer"
},
{
"WM/EncodedBy"
,
"encoded_by"
},
{
"WM/AlbumArtist"
,
"album_artist"
},
{
"WM/AlbumTitle"
,
"album"
},
{
"Author"
,
"artist"
},
{
"Description"
,
"comment"
},
{
"WM/Composer"
,
"composer"
},
{
"WM/EncodedBy"
,
"encoded_by"
},
{
"WM/EncodingSettings"
,
"encoder"
},
{
"WM/Genre"
,
"genre"
},
{
"WM/Language"
,
"language"
},
{
"WM/Genre"
,
"genre"
},
{
"WM/Language"
,
"language"
},
{
"WM/OriginalFilename"
,
"filename"
},
{
"WM/PartOfSet"
,
"disc"
},
{
"WM/Publisher"
,
"publisher"
},
{
"WM/Tool"
,
"encoder"
},
{
"WM/TrackNumber"
,
"track"
},
{
"WM/Track"
,
"track"
},
{
"WM/PartOfSet"
,
"disc"
},
{
"WM/Publisher"
,
"publisher"
},
{
"WM/Tool"
,
"encoder"
},
{
"WM/TrackNumber"
,
"track"
},
{
"WM/Track"
,
"track"
},
{
"WM/MediaStationCallSign"
,
"service_provider"
},
{
"WM/MediaStationName"
,
"service_name"
},
// { "Year" , "date" }, TODO: conversion year<->date
...
...
libavformat/asfcrypt.c
View file @
48a4ffa7
...
...
@@ -20,10 +20,10 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/bswap.h"
#include "libavutil/common.h"
#include "libavutil/des.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/rc4.h"
#include "asfcrypt.h"
...
...
@@ -32,7 +32,8 @@
* @param v number to invert, must be odd!
* @return number so that result * v = 1 (mod 2^32)
*/
static
uint32_t
inverse
(
uint32_t
v
)
{
static
uint32_t
inverse
(
uint32_t
v
)
{
// v ^ 3 gives the inverse (mod 16), could also be implemented
// as table etc. (only lowest 4 bits matter!)
uint32_t
inverse
=
v
*
v
*
v
;
...
...
@@ -50,7 +51,8 @@ static uint32_t inverse(uint32_t v) {
* @param keys output key array containing the keys for encryption in
* native endianness
*/
static
void
multiswap_init
(
const
uint8_t
keybuf
[
48
],
uint32_t
keys
[
12
])
{
static
void
multiswap_init
(
const
uint8_t
keybuf
[
48
],
uint32_t
keys
[
12
])
{
int
i
;
for
(
i
=
0
;
i
<
12
;
i
++
)
keys
[
i
]
=
AV_RL32
(
keybuf
+
(
i
<<
2
))
|
1
;
...
...
@@ -61,7 +63,8 @@ static void multiswap_init(const uint8_t keybuf[48], uint32_t keys[12]) {
* the other way round.
* @param keys key array of ints to invert
*/
static
void
multiswap_invert_keys
(
uint32_t
keys
[
12
])
{
static
void
multiswap_invert_keys
(
uint32_t
keys
[
12
])
{
int
i
;
for
(
i
=
0
;
i
<
5
;
i
++
)
keys
[
i
]
=
inverse
(
keys
[
i
]);
...
...
@@ -69,7 +72,8 @@ static void multiswap_invert_keys(uint32_t keys[12]) {
keys
[
i
]
=
inverse
(
keys
[
i
]);
}
static
uint32_t
multiswap_step
(
const
uint32_t
keys
[
12
],
uint32_t
v
)
{
static
uint32_t
multiswap_step
(
const
uint32_t
keys
[
12
],
uint32_t
v
)
{
int
i
;
v
*=
keys
[
0
];
for
(
i
=
1
;
i
<
5
;
i
++
)
{
...
...
@@ -80,7 +84,8 @@ static uint32_t multiswap_step(const uint32_t keys[12], uint32_t v) {
return
v
;
}
static
uint32_t
multiswap_inv_step
(
const
uint32_t
keys
[
12
],
uint32_t
v
)
{
static
uint32_t
multiswap_inv_step
(
const
uint32_t
keys
[
12
],
uint32_t
v
)
{
int
i
;
v
-=
keys
[
5
];
for
(
i
=
4
;
i
>
0
;
i
--
)
{
...
...
@@ -99,13 +104,15 @@ static uint32_t multiswap_inv_step(const uint32_t keys[12], uint32_t v) {
* @param data data to encrypt
* @return encrypted data
*/
static
uint64_t
multiswap_enc
(
const
uint32_t
keys
[
12
],
uint64_t
key
,
uint64_t
data
)
{
static
uint64_t
multiswap_enc
(
const
uint32_t
keys
[
12
],
uint64_t
key
,
uint64_t
data
)
{
uint32_t
a
=
data
;
uint32_t
b
=
data
>>
32
;
uint32_t
c
;
uint32_t
tmp
;
a
+=
key
;
tmp
=
multiswap_step
(
keys
,
a
);
tmp
=
multiswap_step
(
keys
,
a
);
b
+=
tmp
;
c
=
(
key
>>
32
)
+
tmp
;
tmp
=
multiswap_step
(
keys
+
6
,
b
);
...
...
@@ -121,7 +128,9 @@ static uint64_t multiswap_enc(const uint32_t keys[12], uint64_t key, uint64_t da
* @param data data to decrypt
* @return decrypted data
*/
static
uint64_t
multiswap_dec
(
const
uint32_t
keys
[
12
],
uint64_t
key
,
uint64_t
data
)
{
static
uint64_t
multiswap_dec
(
const
uint32_t
keys
[
12
],
uint64_t
key
,
uint64_t
data
)
{
uint32_t
a
;
uint32_t
b
;
uint32_t
c
=
data
>>
32
;
...
...
@@ -130,12 +139,13 @@ static uint64_t multiswap_dec(const uint32_t keys[12], uint64_t key, uint64_t da
b
=
multiswap_inv_step
(
keys
+
6
,
tmp
);
tmp
=
c
-
(
key
>>
32
);
b
-=
tmp
;
a
=
multiswap_inv_step
(
keys
,
tmp
);
a
=
multiswap_inv_step
(
keys
,
tmp
);
a
-=
key
;
return
((
uint64_t
)
b
<<
32
)
|
a
;
}
void
ff_asfcrypt_dec
(
const
uint8_t
key
[
20
],
uint8_t
*
data
,
int
len
)
{
void
ff_asfcrypt_dec
(
const
uint8_t
key
[
20
],
uint8_t
*
data
,
int
len
)
{
struct
AVDES
des
;
struct
AVRC4
rc4
;
int
num_qwords
=
len
>>
3
;
...
...
@@ -155,7 +165,7 @@ void ff_asfcrypt_dec(const uint8_t key[20], uint8_t *data, int len) {
av_rc4_crypt
(
&
rc4
,
(
uint8_t
*
)
rc4buff
,
NULL
,
sizeof
(
rc4buff
),
NULL
,
1
);
multiswap_init
((
uint8_t
*
)
rc4buff
,
ms_keys
);
packetkey
=
AV_RN64
(
&
qwords
[
num_qwords
*
8
-
8
]);
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
);
...
...
libavformat/asfdec.c
View file @
48a4ffa7
This diff is collapsed.
Click to expand it.
libavformat/asfenc.c
View file @
48a4ffa7
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment