Go to the source code of this file.
Functions
static uint32_t
inverse (uint32_t v)
find multiplicative inverse modulo 2 ^ 32
More...
static void
multiswap_init (const uint8_t keybuf[48], uint32_t keys[12])
read keys from keybuf into keys
More...
invert the keys so that encryption become decryption keys and the other way round.
More...
Function Documentation
◆ inverse()
static uint32_t inverse
(
uint32_t
v )
static
find multiplicative inverse modulo 2 ^ 32
- Parameters
-
v number to invert, must be odd!
- Returns
- number so that result * v = 1 (mod 2^32)
Definition at line 36 of file asfcrypt.c.
Referenced by multiswap_invert_keys().
◆ multiswap_init()
static void multiswap_init
(
const uint8_t
keybuf[48],
uint32_t
keys[12]
)
static
read keys from keybuf into keys
- Parameters
-
keybuf buffer containing the keys
keys output key array containing the keys for encryption in native endianness
Definition at line 55 of file asfcrypt.c.
Referenced by ff_asfcrypt_dec().
◆ multiswap_invert_keys()
static void multiswap_invert_keys
(
uint32_t
keys[12] )
static
invert the keys so that encryption become decryption keys and the other way round.
- Parameters
-
keys key array of ints to invert
Definition at line 67 of file asfcrypt.c.
Referenced by ff_asfcrypt_dec().
◆ multiswap_step()
static uint32_t multiswap_step
(
const uint32_t
keys[6],
uint32_t
v
)
static
◆ multiswap_inv_step()
static uint32_t multiswap_inv_step
(
const uint32_t
keys[6],
uint32_t
v
)
static
◆ multiswap_enc()
static uint64_t multiswap_enc
(
const uint32_t
keys[12],
uint64_t
key,
uint64_t
data
)
static
"MultiSwap" encryption
- Parameters
-
keys 32 bit numbers in machine endianness, 0-4 and 6-10 must be inverted from decryption
key another key, this one must be the same for the decryption
data data to encrypt
- Returns
- encrypted data
Definition at line 108 of file asfcrypt.c.
Referenced by ff_asfcrypt_dec().
◆ multiswap_dec()
static uint64_t multiswap_dec
(
const uint32_t
keys[12],
uint64_t
key,
uint64_t
data
)
static
"MultiSwap" decryption
- Parameters
-
keys 32 bit numbers in machine endianness, 0-4 and 6-10 must be inverted from encryption
key another key, this one must be the same as for the encryption
data data to decrypt
- Returns
- decrypted data
Definition at line 132 of file asfcrypt.c.
Referenced by ff_asfcrypt_dec().
◆ ff_asfcrypt_dec()
void ff_asfcrypt_dec
(
const uint8_t
key[20],
uint8_t *
data,
int
len
)