NAME
Authen::TypeKey::Sign - TypeKey authentication signature generation
SYNOPSIS
use Authen::TypeKey::Sign;
my $tk = Authen::TypeKey::Sign->new;
$tk->token('typekey-token');
$tk->key('./TYPEKEYS');
my $user = { name=>'foo', nick=>'Dr. Foo',
email=>'drfoo@spectre.evilorg' };
my $querystring = $tk->sign($user) or die $tk->errstr;
DESCRIPTION
Authen::TypeKey::Sign is an implementation of the TypeKey authentication signature process. For information on the TypeKey protocol and using TypeKey in other applications, see http://www.movabletype.org/docs/tk-apps.html.
USAGE
Authen::TypeKey::Sign->new
Create a new Authen::TypeKey::Sign object.
$tk->token([ $typekey_token ])
Get/set the TypeKey token used when creating the original sign-in link. This is required to successfully validate the signature in TypeKey 1.1 and higher, which includes the token in the plaintext.
This must be set before calling sign
.
$tk->key( [$keyfile|\%key|$dsa_key_obj] )
Gets/sets the DSA key. If no parameter is passed it returns the key as a Crypt::DSA::Key object. With a parameter it also sets the key. The parameter may be one of the following:
Crypt::DSA::Key object
A reference to a populated Crypt::DSA::Key object.
HASH reference
A HASH reference containing keys of p, g, q, pub_key, and priv_key carrying the applicable values as per DSA key generation standard.
Filename
A SCALAR containing the full path and filename of a text file containing the DSA keys including the private key. The format consists of five keys (p, g, q, pub_key, and priv_key) and their applicable values as per the DSA key generation standard. One per line. Keys and values are delimited by an equal sign.
p=someDSAkeyvalue g=someDSAkeyvalue q=someDSAkeyvalue pub_key=someDSAkeyvalue priv_key=someDSAkeyvalue
You can use the typekeygen utility script to generate this file.
This must be set before calling
sign
.
$tk->sign(\%user|$param_object)
Generates a TypeKey signature and returns a HTTP query string on success that can be used in its response to a TypeKey-enabled client. The method takes a required parameter of either a HASH reference or an object that supports a param method such as CGI or Apache::Request. The following hash keys are recognized:
name
The unique username of the TypeKey user. Required.
nick
The user's display name. Required.
email
The user's email address. Required. If
hide_email
is set to true,sign
will automatically encode the email address as a SHA-1 hash of the stringmailto:<email>
.
Elements for ts (timestamp) and token will be handled by the sign
method. ts will be set to the current time (seconds since epoch). If using TypeKey Protocol version 1.1 or higher, token will be the value set using the token
method.
If generation is unsuccessful, sign will return undef
, and the error message can be found in $tk->errstr
.
$tk->version([ $version ])
Get/set the version of the TypeKey protocol to use. The default version if 1.1
.
$tk->hide_email([0|1])
Get/set whether the TypeKey signature should "hide" the email address by encoding the value as a SHA-1 hash. Default is true (1).
SEE ALSO
http://www.movabletype.org/docs/tk-apps.html
http://www.typekey.com/
Authen::TypeKey, Apache::AuthTypeKey, typekeygen
DEPENDENCIES
Crypt::DSA Crypt::DSA::Key Crypt::DSA::Signature MIME::Base64 Getopt::Long 2.33+ Pod::Usage
LICENSE
The software is released under the Artistic License. The terms of the Artistic License are described at http://www.perl.com/language/misc/Artistic.html.
AUTHOR & COPYRIGHT
TypeKey is a trademark of Six Apart Ltd. TypeKey Authentication Protocol is Copyright 2004 Six Apart Ltd, cpan@sixapart.com. All rights reserved.
Except where otherwise noted, Authen::TypeKey::Sign is Copyright 2004, Timothy Appnel, cpan@timaoutloud.org. All rights reserved.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 280:
'=end' without a target?