Contributed by mbalmer on from the so-sue-me dept.
We were sitting on IRC, chatting a bit about the Apple AirPort Express device, which allows to stream audio from iTunes over wireless to your stereo. Quickly Marc Balmer mentioned that a OpenSource software called JustePorte exists, unfortunately written in C#. Jon Lech Johansen reverse engineered the inner workings of the AirTunes protocol, especially finding out the "secret" RSA public key which is, aehm was, used to lock buyers to Apple software. At the end of 2004 he wrote JustePorte to stream audio to the AirPort. After looking at that code and googling a bit arround to check how the AirPort audio streaming works, I thought it would be a nice thing to hack a free C program which we can use on our OpenBSD boxes. So, I opened a CVS repository and started hacking, and Marc Balmer joined to help out hacking. On Sunday, January 29th we had the idea, on Monday I bought an AirPort device and today the first shoot of rtunes was released.
Here's a quick explanation how the streaming works:
We have the RSA public key which Jon reverse engineered out of iTunes. On the AirPort device the RSA private key is stored. The audio stream is encoded by AES encryption, and the streaming protocol is RTSP. We choose a random AES session key, encrypt it with the RSA public key and send it to the AirPort in a RTSP ANNOUNCE body. If the RSA public key can be opened by the RSA privat key the AirPort got our AES session key, and we can start streaming the audio files AES encrypted. The streamed codec must be Apple Lossless.
Actually we have no codec converter in rtunes, what means that we just can stream Lossless files for now. The goal for further versions is to get in a mp3 to Lossless converter, so we can also stream our mp3 files. Of course other codec converters would be also nice.
The problem is, that Apple never documented the ALAC codec... We have no idea why, only wild guesses (vendor lock-in comes to my mind...).
Any ideas, patches, and volunteers, especially on the codec converting stuff, are welcome.
(Comments are closed)