Palm-Keyring
view release on metacpan or search on metacpan
the password.
If nothing is passed, it forgets the password that it was remembering.
After a successful password verification the following fields are set
For v4
$pdb->{digest} = the calculated digest used from the key;
$pdb->{password} = the password that was passed in;
For v5
$pdb->{appinfo} = {
# As described under new() with these additional fields
cipher => The index number of the cipher being used
iter => Number of iterations for the cipher
key => The key that is calculated from the password
and salt and is used to decrypt the records.
masterhash => the hash of the key that is stored in the
database. Either set when Loading the database
or when setting a new password.
salt => the salt that is either read out of the database
or calculated when setting a new password.
};
Other overridden subroutines/methods
ParseAppInfoBlock
Converts the extra returned by Palm::StdAppInfo::ParseAppInfoBlock()
into the following additions to $pdb->{appinfo}
$pdb->{appinfo} = {
cipher => The index number of the cipher being used (Not v4)
iter => Number of iterations for the cipher (Not v4)
};
PackAppInfoBlock
Reverses ParseAppInfoBlock before sending it on to
Palm::StdAppInfo::PackAppInfoBlock()
ParseRecord
Adds some fields to a record from Palm::StdAppInfo::ParseRecord()
$rec = {
name => Account name
ivec => The IV for the encrypted record. (Not v4)
encrypted => the encrypted information
};
PackRecord
Reverses ParseRecord and then sends it through
Palm::StdAppInfo::PackRecord()
DEPENDENCIES
Palm::StdAppInfo
For v4 databases
Digest::MD5
Crypt::DES
For v5 databases
Digest::HMAC_SHA1
Digest::SHA1
Depending on how the database is encrypted
Crypt::CBC - For any encryption but None
Crypt::DES_EDE3 - DES_EDE3 encryption
Crytp::Rijndael - AES encryption schemes
THANKS
I would like to thank the helpful Perlmonk shigetsu who gave me some
great advice and helped me get my first module posted.
<http://perlmonks.org/?node_id=596998>
I would also like to thank Johan Vromans <jvromans@squirrel.nl> --
<http://www.squirrel.nl/people/jvromans>. He had his own Palm::KeyRing
module that he posted a couple of days before mine was ready and he was
kind enough to let me have the namespace as well as giving me some very
helpful hints about doing a few things that I was unsure of. He is
really great.
And finally, thanks to Jochen Hoenicke <hoenicke@gmail.com> (one of the
authors of Palm Keyring) for getting me started on the v5 support as
well as providing help and some subroutines.
BUGS AND LIMITATIONS
I am sure there are problems with this module. For example, I have not
done very extensive testing of the v5 databases.
I am not sure I am 'require module' the best way, but I don't want to
depend on modules that you don't need to use.
I am not very happy with the data structures used by Encrypt() and
Decrypt() for v5 databases, but I am not sure of a better way.
The v4 compatibility mode does not insert a fake record 0 where normally
the encrypted password is stored.
The date validation for packing new dates is very poor.
I have not gone through and standardized on how the module fails. Some
things fail with croak, some return undef, some may even fail silently.
Nothing initializes a lasterr method or anything like that. I need to
fix all that before it is a 1.0 candidate.
Please report any bugs or feature requests to "bug-palm-keyring at
rt.cpan.org", or through the web interface at <http://rt.cpan.org>. I
will be notified, and then you'll automatically be notified of progress
on your bug as I make changes.
AUTHOR
Andrew Fresh <andrew@cpan.org>
LICENSE AND COPYRIGHT
Copyright 2004, 2005, 2006, 2007 Andrew Fresh, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
SEE ALSO
Palm::PDB(3)
Palm::StdAppInfo(3)
The Keyring for Palm OS website: <http://gnukeyring.sourceforge.net/>
( run in 2.348 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )