In case of faiplay audio(airplay audio from mac itunes) that can not decrypt correct key.
there is the fairplay data for decrypt.
fpaeskey(decoded)=
{ 0x46, 0x50, 0x4c, 0x59, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00,
0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0xea, 0xf3, 0xe0, 0x79,
0x09, 0xb6, 0x45, 0xa2, 0x7e, 0x3f, 0x69, 0x68, 0x81, 0x30,
0x5e, 0x9c, 0x00, 0x00, 0x00, 0x10, 0xc7, 0x77, 0xac, 0x4c,
0x5d, 0x0b, 0x82, 0xe0, 0xd1, 0x44, 0x2f, 0x15, 0xc6, 0xff,
0x43, 0xd4, 0xb9, 0x41, 0xd0, 0x6a, 0xa1, 0xe3, 0x68, 0xe5,
0x27, 0x21, 0xbc, 0x79, 0x0b, 0x25, 0xee, 0xd1, 0xa5, 0x07,
0xb4, 0x8f }
challenge data=
{ 0x46, 0x50, 0x4c, 0x59, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00,
0x00, 0x04, 0x02, 0x00, 0x01, 0xbb }
challenge data=
{ 0x46, 0x50, 0x4c, 0x59, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00,
0x00, 0x98, 0x01, 0x8f, 0x1a, 0x9c, 0xfb, 0x2f, 0xa4, 0x81,
0x15, 0x91, 0x9d, 0xe5, 0xc6, 0x4e, 0x2e, 0x00, 0x24, 0xf3,
0x13, 0xac, 0xe8, 0x71, 0x11, 0x63, 0x6e, 0x8c, 0xfc, 0x9a,
0xe3, 0xed, 0x80, 0x5b, 0x2f, 0xb8, 0xc0, 0x04, 0x07, 0x44,
0xa1, 0x59, 0xd1, 0x1a, 0xd7, 0x15, 0x08, 0x30, 0x2f, 0xbc,
0x2e, 0x59, 0x29, 0x45, 0x08, 0x30, 0x0a, 0x70, 0x9f, 0xc9,
0x94, 0x52, 0x79, 0xc9, 0x8a, 0xd6, 0x92, 0xa6, 0x31, 0xa3,
0xf6, 0x27, 0x40, 0xdc, 0x59, 0xec, 0x03, 0x00, 0x93, 0x6b,
0x34, 0xa0, 0xf0, 0xc4, 0xe4, 0x33, 0x44, 0xfc, 0x7c, 0x00,
0x0e, 0x28, 0xca, 0x75, 0x37, 0xd9, 0x8d, 0x21, 0x2b, 0x76,
0x85, 0xcf, 0x9d, 0x5e, 0x0a, 0xd4, 0x4f, 0x0d, 0xdb, 0x31,
0x23, 0x4d, 0xb9, 0x2f, 0x6e, 0xfc, 0x0f, 0x80, 0xe5, 0x59,
0xc1, 0x90, 0x08, 0x2a, 0xc2, 0x9f, 0xc8, 0xb3, 0x7b, 0x05,
0x41, 0xe9, 0xc2, 0xcc, 0x50, 0xf1, 0x77, 0x1d, 0xb9, 0x7f,
0x1c, 0xac, 0x89, 0x94, 0x4d, 0xa9, 0xd8, 0x6b, 0x14, 0x95,
0x74, 0x59, 0xeb, 0x65 }
//Correct decrypt fpaeskey result is
fpaeskey(decrpted) aeskey =
{ 0xa8, 0xb0, 0x0c, 0xbb, 0xfb, 0xb6, 0xe0, 0x65, 0xd5, 0x0d, 0x4e, 0x15, 0x3c, 0xe1, 0xb9, 0xcb }
//But in playfair decrypt result is wrong
Dump aeskey : ,
0xD6, 0x4E, 0x48, 0xF8, 0xDD, 0xBB, 0x26, 0xCC, 0xD3, 0xFF, 0x7D, 0xF6, 0xC9, 0x0B, 0x4E, 0xA2
I think the cause is this fairplay data is FPLY(0x2)(0x46, 0x50, 0x4c, 0x59, 0x02) , and normaly in mirroring fairplay data is FPLY(0x3)(0x46, 0x50, 0x4c, 0x59, 0x03).
In case of faiplay audio(airplay audio from mac itunes) that can not decrypt correct key.
there is the fairplay data for decrypt.
fpaeskey(decoded)=
{ 0x46, 0x50, 0x4c, 0x59, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00,
0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0xea, 0xf3, 0xe0, 0x79,
0x09, 0xb6, 0x45, 0xa2, 0x7e, 0x3f, 0x69, 0x68, 0x81, 0x30,
0x5e, 0x9c, 0x00, 0x00, 0x00, 0x10, 0xc7, 0x77, 0xac, 0x4c,
0x5d, 0x0b, 0x82, 0xe0, 0xd1, 0x44, 0x2f, 0x15, 0xc6, 0xff,
0x43, 0xd4, 0xb9, 0x41, 0xd0, 0x6a, 0xa1, 0xe3, 0x68, 0xe5,
0x27, 0x21, 0xbc, 0x79, 0x0b, 0x25, 0xee, 0xd1, 0xa5, 0x07,
0xb4, 0x8f }
challenge data=
{ 0x46, 0x50, 0x4c, 0x59, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00,
0x00, 0x04, 0x02, 0x00, 0x01, 0xbb }
challenge data=
{ 0x46, 0x50, 0x4c, 0x59, 0x02, 0x01, 0x03, 0x00, 0x00, 0x00,
0x00, 0x98, 0x01, 0x8f, 0x1a, 0x9c, 0xfb, 0x2f, 0xa4, 0x81,
0x15, 0x91, 0x9d, 0xe5, 0xc6, 0x4e, 0x2e, 0x00, 0x24, 0xf3,
0x13, 0xac, 0xe8, 0x71, 0x11, 0x63, 0x6e, 0x8c, 0xfc, 0x9a,
0xe3, 0xed, 0x80, 0x5b, 0x2f, 0xb8, 0xc0, 0x04, 0x07, 0x44,
0xa1, 0x59, 0xd1, 0x1a, 0xd7, 0x15, 0x08, 0x30, 0x2f, 0xbc,
0x2e, 0x59, 0x29, 0x45, 0x08, 0x30, 0x0a, 0x70, 0x9f, 0xc9,
0x94, 0x52, 0x79, 0xc9, 0x8a, 0xd6, 0x92, 0xa6, 0x31, 0xa3,
0xf6, 0x27, 0x40, 0xdc, 0x59, 0xec, 0x03, 0x00, 0x93, 0x6b,
0x34, 0xa0, 0xf0, 0xc4, 0xe4, 0x33, 0x44, 0xfc, 0x7c, 0x00,
0x0e, 0x28, 0xca, 0x75, 0x37, 0xd9, 0x8d, 0x21, 0x2b, 0x76,
0x85, 0xcf, 0x9d, 0x5e, 0x0a, 0xd4, 0x4f, 0x0d, 0xdb, 0x31,
0x23, 0x4d, 0xb9, 0x2f, 0x6e, 0xfc, 0x0f, 0x80, 0xe5, 0x59,
0xc1, 0x90, 0x08, 0x2a, 0xc2, 0x9f, 0xc8, 0xb3, 0x7b, 0x05,
0x41, 0xe9, 0xc2, 0xcc, 0x50, 0xf1, 0x77, 0x1d, 0xb9, 0x7f,
0x1c, 0xac, 0x89, 0x94, 0x4d, 0xa9, 0xd8, 0x6b, 0x14, 0x95,
0x74, 0x59, 0xeb, 0x65 }
//Correct decrypt fpaeskey result is
fpaeskey(decrpted) aeskey =
{ 0xa8, 0xb0, 0x0c, 0xbb, 0xfb, 0xb6, 0xe0, 0x65, 0xd5, 0x0d, 0x4e, 0x15, 0x3c, 0xe1, 0xb9, 0xcb }
//But in playfair decrypt result is wrong
Dump aeskey : ,
0xD6, 0x4E, 0x48, 0xF8, 0xDD, 0xBB, 0x26, 0xCC, 0xD3, 0xFF, 0x7D, 0xF6, 0xC9, 0x0B, 0x4E, 0xA2
I think the cause is this fairplay data is FPLY(0x2)(0x46, 0x50, 0x4c, 0x59, 0x02) , and normaly in mirroring fairplay data is FPLY(0x3)(0x46, 0x50, 0x4c, 0x59, 0x03).