OpenID and proposed components

From: Date: Thu, 21 Jun 2007 09:04:21 +0000
Subject: OpenID and proposed components
Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-47088@lists.php.net to get a copy of this message
Hi all, Okay, OpenID and some of its link ins seem to have had a very positive reception. Which is cool and more of an incentive to do something ;). Just to reiterate the approach I've taken with OpenID... The main one was splitting OpenID into its constituent parts. The full list includes (in PEAR style naming) Crypt_XTEA Crypt_HMAC Crypt_DiffieHellman Crypt_Math (or existing Math_BigInteger) Services_Yadis Auth_Openid All classes are PHP5 only. Several of the Crypt classes defer to PHP extensions where possible and fallback to BCMath/GMP based implementations in PHP when none are available. Once it's available a dependency will be added for both Auth_OpenID and Services_Yadis to use Joshua's HTTP_Request2. There exists a Crypt_Math to centralise the arbitrary precision math wrapper some of the algorithms use, and also to keep a running tab of methods for performing small math operations like btwoc and long integer RNG.. I avoided (since this was originally written without PEAR for a proprietary app before I figured it was good enough to give back to the community) Math_BigInteger in PEAR. That component appears to be actively maintained. PHP5 has no long integer advantage over PHP4 so I'm willing to use that package instead as a dependency. Services_Yadis is a standalone implementation. It's purpose was to implement Yadis Specification 1.0 insofar as I could. It's not specific to OpenID being a general purpose Service Discovery protocol (it's used by many other services outside OpenID). That leaves the actual OpenID implementation. At present I'm refactoring this part from the original library and the Consumer element is just about finished. I would guess (assuming I get enough free time and the refactoring passes the defined tests) that the weekend will see it capable of the full scope of OpenID 2.0 and capable of falling back to 1.1 either automatically, or if that's the version a programmer manually selects. A Provider (server component) should follow quickly after this (it's already well refactored). Since I'm new to making PEAR proposals, I'll start with one of the smaller elements while the OpenID stuff is churning for a few more days. Two proposals will be added: Crypt_Hmac Crypt_DiffieHellman At present they depend on a Crypt_Math, but pending feedback I can easily change that to the existing Math_BigInteger package (PHP4). The existing code was refactored some weeks ago so it's immediately available under a New BSD License. Whew, long email...;) Pádraic Pádraic Brady http://blog..astrumfutura.com http://www.patternsforphp.com ____________________________________________________________________________________ Looking for a deal? Find great prices on flights and hotels with Yahoo! FareChase. http://farechase.yahoo.com/

« previous php.pear.dev (#47088) next »