Scrambled Eggs


Back to top


NAME

Scrambled Eggs

Back to top


SYNOPSIS

scrambled_eggs <options>

 SINGLE USE OPTIONS:
   -h[elp] display usage information
   -v[version] display version
 REQUIRED OPTIONS:
   -u[ser] username in database
   -A[pp] get/set username and password for application
   -d[irectory] directory containing the password database
 OPTIONAL:
   -p[assword] password for database (if not provided, you will be prompted for one)
   -e[ncyption] encyption scheme to use (the default is DES if not set)
   -c[hange] the username/password for the application
   -U[ser] set username for application 
   -P[ass] set password for application (if not provided, you will be prompted for one)

Back to top


REQUIREMENTS

All required modules can be downloaded from CPAN or from http://search.cpan.org/

 Getopt::Long
 Term::ReadKey
 DBI
 DBD::CSV
 Crypt::ECB
 Crypt::DES
 Other Crypt modules as needed/wanted

Back to top


DESCRIPTION

This script is a simple password keeping application.

Back to top


DISCUSSION

The beauty of this password keeping script is you supply the encryption. Your milage may vary on the various encryptions. I have used DES as the default, but have tested with Blowfish, DES_PP, and Blowfish_PP.

The key for encrypting the stored usernames and passwords is a master username/password pair for the script. If you don't match the two, you can not decrypt the stored usernames and passwords - SO BE CAREFUL WITH THEM! You can use a different username/password pair for each stored username and password if you'd like. This removes the need for changing the password for the script. And since it's not stored, someone could get the file created with this script, but it would be hard to decrypt what's in the file without knowing the key(s).

The only downside (covered in the To Do section) is to add a method of just listing the applications for which there is a password stored.

If you would like to contribute to the development of this script (idea), please let me know. I am NOT an encryption expert, so if there's one out there that would like to provide feedback, it would be appreciated.

Back to top


EXAMPLES

prompt> scrambled_eggs -d .pass -u me -p you -e DES -A Freshmeat

retrieve the currently set password in the scrambled_eggs database, contained in the .pass directory (-d option) below the current working directory, use me as the user of scrambled_eggs (-u option), the scrambled_eggs password (-p option) of you, encrypt using DES encryption (-e option), the Freshmeat application/web site (-A option) password

prompt> scrambled_eggs.pl -u jim -A ``test x'' -d .scrambled_eggs

retrieve the password for ``test x'' (-A option) app, using jim as the scrambled_eggs user (-u option), from the .scrambled_eggs directory (-d option) of the current working directory -- YOU WILL BE PROMPTED FOR A PASSWORD (notice there no -p option used)

prompt> scrambled_eggs.pl -c -u jim -A ``test x'' -d .scrambled_eggs -U jim

change (-c option) the password for ``test x'' (-A option) app, using jim as the scrambled_eggs user (-u option), from the .scrambled_eggs directory (-d option) of the current working directory, to user jim (-U option) YOU WILL BE PROMPTED FOR A PASSWORD (notice there no -p or -P options used)

Back to top


CAVEATS / TO DO

WARNING: IF YOU USE METACHARACTERS IN YOUR PASSWORD; YOU MUST ESCAPE THEM THIS IS ONLY APPLICABLE WHEN SETTING THE PASSWORD ON THE COMMAND LINE (example if you use 1$2, you need to type it 1\$2). I hope to fix this in latter revisions - if there is a demand for this script.

When changing the password for an application, you must supply the username for the application.

Have the ability to retrieve a list of applications stored in the password file.

Back to top


AUTHOR

James G. Willmore (jwillmore (at) adelphia (dot) net -or- owner (at) ljcomputing (dot) net) Copyright 2001, All Rights Reserved Distributed Perl's Artistic License, see the LICENSE file that came with this script

Back to top


ACKNOWLEDGMENTS

All the various authors that wrote the modules incorporated with this script. See the individual modules for more details about each author.

Back to top


SEE ALSO

perl(1), Getopt::Long(3), Term::ReadKey(3), DBI(3), Crypt::EBC(3), DBD::CSV(3), your indiviual Crypt module used

Back to top


DOWNLOAD

Download the script

Download the patch for listing applications

Back to top

 Scrambled Eggs