#!/usr/bin/perl # "Copyright (c) 2000-2002 The Regents of the University of California. # All rights reserved. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose, without fee, and without written agreement is # hereby granted, provided that the above copyright notice, the following # two paragraphs and the athor appear in all copies of this software. # # IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT # OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF # CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY # AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS # ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO # PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS." # # Authors: Naveen Sastry # Date: 11/11/02 # # # Script to manage the tinysec keyfile # default keyfile and default key name (\w+ matches first valid key) $KEYFILE=".keyfile"; $KEYNAME="\\w+"; # if no keyfile is found, we'll need to create it and populate it with data # from /dev/random. This function returns the text taht should go into the # new keyfile. We store the key in a hex-form. sub generateKey { print STDERR "Generating default TinySec Key...\n"; $a = "\n# TinySec Keyfile. By default, the first key will be used.\n"; $a = $a . "# You can import other keys by appending them to the file.\n"; $a = $a . "\ndefault "; open RND, "', $KEYFILE and print KEYFILE generateKey() and seek KEYFILE, 0, 0) or die ("couldn't open file " . $KEYFILE); # find the matching key and print. while ( ) { if ($_ =~ /^$KEYNAME\s+([a-fA-F0-9]+)/) { $KEY = $1; last; } } print splitKey($KEY) . "\n";