Now that the AirTunes private key is known, it could allow for 3rd party software to act like AirTunes devices.
If this for example would be implemented in XBMC, Plex, Boxee etc you could send audio from your IOS device straight to XBMC using IOS built-in Airplay support.
Hah, awesome. Many years ago, I patched iTunes to use my own public key, so I could stream to an AirTunes server I ran on another machine. I had intended to pull the firmware off the Airport Express, but didn't have the hardware skills at the time. It's awesome to see this happen.
Could someone explain the implications of this?<p>edit: it looks like it would allow another software to show up as an Airport Express in iTunes, thus becoming the potential target of streaming audio over WiFi from iTunes. But am I right?
What are the legal implications of selling a small unit that acts as an airport express, then? And what if you didn't ship the key, but it was obvious to users where to get it?
I know the OP probably isn't reading this, but I'd be curious to know what OS the Airport Express runs.<p>I always wondered. My guess is maybe a proprietary RTOS to perform its simple functions?<p>Back in the day I figured it'd make a great OpenWRT Linux box, although now boxes with those features/size/price-point are much more common.
Works great! Even supports multiple audio streams!<p>For Debian/Ubuntu users, I had to do a few things to get it to compile:
1. sudo apt-get install libcrypt-openssl-rsa-perl libao2 libao-dev
2. comment out line 642 in hairtunes.c
3. 'make'
This is awesome! I know many have tried before, but have not been successful.<p>Also, I thought i would put this out there:
As with the creation of the new AirPlay protocol, the RAOP (AirTunes) protocol was also changed (to support album art and other metadata, I assume). My proof of this lies in the Apple TV. If you analyze network traffic between iTunes and the ATV's airtunesd daemon, you can see that the initial pairing does not have the 'rsaaeskey' field but instead a 'fpaeskey' field. So instead of a RSA public/private scheme, it uses something else to encrypt the session keys. I found this out when trying to reverse the airtunesd binary, trying to get the key that way. :P
This is very cool. Do you know if this would work with AirPlay video streaming as well as audio? I can imagine it would be pretty cool to display video on any PC monitor.
A couple years ago I unsuccessfully tried to extract the keys from the AppleTV version of OS X (which provides the same functionality).<p>The binaries were heavily obfuscated, and I couldn't get the IDA Pro remote to run on the AppleTV, nor could I port the binaries to run on normal OS X. Gave up after a week or so. I figured that some pro reverser would get the keys eventually that way, but I never expected that anyone would find success cracking open an Airport Express!
There have been a number of manufacturers implementing 'airplay' devices that support being airtunes speakers but it's great to see this making it possible to do with open source. It would be nice to see airtunes added to some of the cheap linux wall warts on the market.
Has someone tried it and was able to play something?<p>I tried it and iTunes lists it as a device but I cannot activate it in iTunes (if I select it, it immediately unselects itself). From the console output, I see that iTunes even does not try to connect to it (to TCP Port 5000).<p>I am currently on a Mac so I needed to do some porting (<a href="https://github.com/albertz/shairport/" rel="nofollow">https://github.com/albertz/shairport/</a>) but I think this shouldn't have an impact on the behavior I am getting.
For those who might not know this, you can stream the audio from one mac to another.<p><a href="http://www.macgeekery.com/tips/configuration/playing_live_audio_on_another_mac" rel="nofollow">http://www.macgeekery.com/tips/configuration/playing_live_au...</a><p>I use it to move music streams to the other computers in the house.
Does Apple use the same protocol for streaming video to an Apple TV? If so, is the key from an Apple TV needed to emulate a video endpoint, or is just some tweaking required (presumably to the MDNS service data) to identify it as video-enabled?
wasn't this done before, years ago, by Jon Lech Johansen? he wrote justeport - <a href="http://nanocr.eu/software/justeport/" rel="nofollow">http://nanocr.eu/software/justeport/</a> (and i rewrote that in java as jjuste, but no longer have the code...)<p>here are the keys he found - <a href="http://nanocr.eu/2004/08/11/reversing-airtunes/" rel="nofollow">http://nanocr.eu/2004/08/11/reversing-airtunes/</a> and <a href="http://nanocr.eu/sw/justeport/itunesrsakeys.txt" rel="nofollow">http://nanocr.eu/sw/justeport/itunesrsakeys.txt</a>
Totally want to try this, but my Snow Leopard won't install Crypt::OpenSSL::RSA via cpan, any ideas? <a href="http://pastie.org/1783565" rel="nofollow">http://pastie.org/1783565</a>
i am trying to use the hairport (on apple tv1 running ubuntu hardy)... i am getting the following error:<p>atv@appletv-ubuntu:~/scripts/bbhoss-shairport-31cf954$ make
gcc hairtunes.c alac.c -D__i386 -lm `pkg-config --cflags --libs ao openssl` -o hairtunes
hairtunes.c: In function âinit_outputâ:
hairtunes.c:642: error: âao_sample_formatâ has no member named âmatrixâ<p>Could someone help me with this matter :) ?