tender-multipass, Python utilities for easily integrating Tender's MultiPass authentication
At Urban Airship, we're evaluating Tender, which is a hosted support and knowledge base app. It's done by ENTP, who are also somewhat located in Portland, OR. We were really liking what we were seeing so decided to do a spike to test it out. One of the nifty features is shared authentication - they'll delegate all auth to your existing app so users don't have to create additional accounts (this really is quite essential for something like this). Their MultiPass system is relatively easy to implement if you're using Ruby, but Python doesn't have great OpenSSL bindings - the equivalent of EZCrypto doesn't exist yet, unfortunately. So, after finally getting it working, we decided to release our code so others don't have to go through this process.
As always, I had a lot of help doing this - special thanks to my Urban Airship coworker Adam Lowry, Igal Koshevoy and Evan Fosmark for this blog post for the xor stuff.