devine-dl/pywidevine

Has anyone ever managed to figure out what oemcrypto_core_message is?

Opened this issue · 0 comments

Has anyone ever managed to figure out what oemcrypto_core_message is?

I've been looking into this project which includes info on OEMCrypto function calls, but I don't have an Android to try it with.

Example from a license request:
00 00 00 01 00 00 00 14 00 05 00 10 28 a8 d7 b9 03 7e b7 93
{uint32; 1 for request, 2 for response} {uint32; length of entire string} 00 05 00 10 {8-byte nonce}

Its corresponding response:
00 00 00 02 00 00 01 c8 00 05 00 10 28 a8 d7 b9 03 7e b7 93 00 00 00 50 00 00 00 10 00 00 00 62 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 51 80 00 00 00 00 00 01 51 80 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 a8 00 00 00 10 00 00 00 ba 00 00 00 10 00 00 00 cc 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 01 00 00 00 00 10 00 00 01 12 00 00 00 10 00 00 01 24 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 01 58 00 00 00 10 00 00 01 6a 00 00 00 10 00 00 01 7c 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 01 b3 00 00 00 10 00 00 01 c5 00 00 00 10 00 00 01 d7 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 02 0b 00 00 00 10 00 00 02 1d 00 00 00 10 00 00 02 2f 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 02 63 00 00 00 10 00 00 02 75 00 00 00 10 00 00 02 87 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 02 bb 00 00 00 10 00 00 02 cd 00 00 00 10 00 00 02 df 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 03 13 00 00 00 10 00 00 03 25 00 00 00 10 00 00 03 37 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 ca df 6b 58 bd 1d 6b 08 98 c5 c9 d6 81 b9 48 99 51 c0 7e 12 e0 32 ea db be af 5e 36 4e 3a 2d 2f
{uint32; 1 for request, 2 for response} {uint32; length of entire string} 00 05 00 10 {the same 8-byte nonce from the request} 00 00 00 50 00 00 00 10 00 00 00 62 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 51 80 00 00 00 00 00 01 51 80 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 a8 00 00 00 10 00 00 00 ba 00 00 00 10 00 00 00 cc 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 01 00 00 00 00 10 00 00 01 12 00 00 00 10 00 00 01 24 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 01 58 00 00 00 10 00 00 01 6a 00 00 00 10 00 00 01 7c 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 01 b3 00 00 00 10 00 00 01 c5 00 00 00 10 00 00 01 d7 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 02 0b 00 00 00 10 00 00 02 1d 00 00 00 10 00 00 02 2f 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 02 63 00 00 00 10 00 00 02 75 00 00 00 10 00 00 02 87 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 02 bb 00 00 00 10 00 00 02 cd 00 00 00 10 00 00 02 df 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 00 00 03 13 00 00 00 10 00 00 03 25 00 00 00 10 00 00 03 37 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 10 {seems like a sha256 hash, possibly a hmac}

It does not seem to be encrypted.

Originally posted by @0xmerp in #19 (comment)