KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > uk > org > primrose > pool > jmx > GenKeys


1 /**
2 * Library name : Primrose - A Java Database Connection Pool.
3 * Published by Ben Keeping, http://primrose.org.uk .
4 * Copyright (C) 2004 Ben Keeping, primrose.org.uk
5 * Email: Use "Contact Us Form" on website
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */

21
22 package uk.org.primrose.pool.jmx;
23
24 import java.security.*;
25 import java.io.*;
26 import javax.crypto.*;
27 import sun.misc.*;
28
29 //this class will generate the secret key to use in ciphering and
30
//enciphering
31

32
33 public class GenKeys {
34
35     public static void main (String JavaDoc[]args)throws Exception JavaDoc {
36         if (args.length != 1) {
37
38             System.out.println("Usuage : java uk.co.landmarkinfo.pool.jmx.GenKeys <path_to_poolConfig.properties_config_file>");
39             System.exit(1);
40         }
41
42         if (new File(args[0]).isFile()) {
43             System.out.println("You have provided a file name, not a directory ...\nPlease supply as the single argument the directory path to where your pool config file (usually poolConfig.properties) resides.");
44             System.exit(1);
45         }
46
47         GenKeys gk = new GenKeys();
48
49         gk.getKey(args[0] +"/pool.keys");
50
51         System.out.println("Key file : '" +args[0] +"/pool.keys' successfully generated");
52     }
53
54
55     public void getKey(String JavaDoc file)throws Exception JavaDoc{
56         //add a security provider
57
Security.addProvider( new com.sun.crypto.provider.SunJCE() );
58         KeyGenerator generator = KeyGenerator.getInstance("DES", "SunJCE" );
59
60         //generate a new random key
61
generator.init(56, new SecureRandom());
62         Key key = generator.generateKey();
63
64         ByteArrayOutputStream keyStore = new ByteArrayOutputStream();
65         ObjectOutputStream keyObjectStream = new ObjectOutputStream(keyStore);
66         keyObjectStream.writeObject(key);
67
68
69         byte[] keyBytes = keyStore.toByteArray();
70
71         FileOutputStream fos = new FileOutputStream(file);
72         fos.write(keyBytes);
73         fos.flush();
74         fos.close();
75
76     }
77 }
Popular Tags