OpenID and proposed components
| From: | Pádraic Brady | 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/