[FFmpeg-devel] Help: AES GF Multiply

Peter Ross pross at xvid.org
Mon Jul 30 15:49:51 CEST 2012


In my spare time I am toying with an obscure remote desktop protocol called
PCoIP. The format encrypts its packets with Salsa20, AES-128 or 256 crypto,
which are simple enough to decode. Alas, I am stuck implementing the checksum
algorithm used with the AES-128/256 packets.

The checksum value is 16-byte wide, and is calculated by xor'ing each 16-byte
block of ciphertext *and* then performing an 'AES GF multiplication' over checksum
value. The AES instanced used to perform the multiplication is loaded with the
same keymaterial used to decode the actual payload.

Within PCoIP the GF multiplication function is called 'gf_multi_h'. There are
mmx and x86 variants of this within the reference .so/dll blob file.

libavutil/aes.c is performing GF multiplication, but its not obvious to
me how to access this functionality. The math is especially foreign. Any
pointers on how aes.c can be modified to provide such a function?


-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120730/845e1c5a/attachment.asc>

More information about the ffmpeg-devel mailing list