p2ps.imp.group.certificates
Class CertificateUtils

java.lang.Object
  extended byp2ps.imp.group.certificates.CertificateUtils

public class CertificateUtils
extends java.lang.Object

A utility class for handling certificates

Version:
$Revision: 295 $
Author:
Ian Wang

Field Summary
static java.lang.String CA_DIR
           
static java.lang.String CERTIFICATE_EXTENSION
           
static java.lang.String CERTIFICATE_REQUEST_EXTENSION
           
static java.lang.String CERTS_DIR
           
static java.lang.String CRL_FILE
           
static java.lang.String INDEX_FILE
           
static java.lang.String NEWCERTS_DIR
           
static java.lang.String PRIVATE_KEY_EXTENSION
           
static java.lang.String SERIAL_FILE
           
 
Constructor Summary
CertificateUtils()
           
 
Method Summary
static void cleanFileStructure(java.io.File root)
          Cleans up the file structure of temporary ca
static void cloneCertificate(java.lang.String origalias, java.lang.String destalias, char[] password, SecurityManager secmanager)
          Clones a certificate in the keystore
static java.io.File createConfigurationFile(java.lang.String identtag, java.io.File root)
          Creates a configuration file for the specified identity
static java.io.File createFileStructure(java.lang.String identity, java.io.File parent, boolean temporary)
          Creates the file structure required by an openssl certificate authority
static void generateCertificateOpenSSL(Identity identity, java.io.File conffile, java.io.File certfile, java.io.File keyfile, char[] password)
          Generates a certificate using openssl
static void generateCertificateRequestKeyTool(java.lang.String alias, char[] password, java.io.File certreqfile, SecurityManager secmanager)
          Generates a certificate using keytool
static void generateCertificateRequestOpenSSL(Identity identity, java.io.File conffile, java.io.File certreqfile, java.io.File keyfile, char[] password)
          Generates a certificate request using openssl
static void generatePKCS7CertificateOpenSSL(java.io.File[] certs, java.io.File pkcs7file)
          Generates a PKCS#7 style certificate from the specified certificate files
static Identity generateTemporaryIdentity(java.lang.String type)
           
static java.lang.String generateThumbprint(java.io.File certfile)
           
static java.io.File getCertificateFile(java.lang.String identtag, java.io.File root)
           
static java.io.File getCertificateRequestFile(java.lang.String identity, java.io.File root)
           
static java.lang.String getIdentityTag(Identity identity, java.lang.String type)
           
static java.io.File getPrivateKeyFile(java.lang.String identtag, java.io.File root)
           
static void importCertificate(java.lang.String alias, java.io.File certfile, char[] password, SecurityManager secmanager)
          Imports a certificate into the peer keystore
static void signCertificateOpenSSL(java.io.File conffile, java.io.File certreqfile, java.io.File certfile, char[] password, boolean caauth)
          Sign the specified certificate request using openssl
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CERTIFICATE_EXTENSION

public static java.lang.String CERTIFICATE_EXTENSION

CERTIFICATE_REQUEST_EXTENSION

public static java.lang.String CERTIFICATE_REQUEST_EXTENSION

PRIVATE_KEY_EXTENSION

public static java.lang.String PRIVATE_KEY_EXTENSION

CA_DIR

public static java.lang.String CA_DIR

CERTS_DIR

public static java.lang.String CERTS_DIR

NEWCERTS_DIR

public static java.lang.String NEWCERTS_DIR

INDEX_FILE

public static java.lang.String INDEX_FILE

SERIAL_FILE

public static java.lang.String SERIAL_FILE

CRL_FILE

public static java.lang.String CRL_FILE
Constructor Detail

CertificateUtils

public CertificateUtils()
Method Detail

generateTemporaryIdentity

public static Identity generateTemporaryIdentity(java.lang.String type)
Returns:
the an temporary identity with the specified type

getIdentityTag

public static java.lang.String getIdentityTag(Identity identity,
                                              java.lang.String type)
Parameters:
identity - the identitiy used for the tag
type - a string identifier for the tag (e.g. group, peer etc.)
Returns:
the identity name with spaces and other illegal characters removed

createFileStructure

public static final java.io.File createFileStructure(java.lang.String identity,
                                                     java.io.File parent,
                                                     boolean temporary)
                                              throws java.io.IOException
Creates the file structure required by an openssl certificate authority

Returns:
the root directory
Throws:
java.io.IOException

createConfigurationFile

public static final java.io.File createConfigurationFile(java.lang.String identtag,
                                                         java.io.File root)
                                                  throws java.io.IOException
Creates a configuration file for the specified identity

Returns:
the configuration file
Throws:
java.io.IOException

generateCertificateOpenSSL

public static final void generateCertificateOpenSSL(Identity identity,
                                                    java.io.File conffile,
                                                    java.io.File certfile,
                                                    java.io.File keyfile,
                                                    char[] password)
                                             throws java.io.IOException
Generates a certificate using openssl

Throws:
java.io.IOException

generateCertificateRequestOpenSSL

public static final void generateCertificateRequestOpenSSL(Identity identity,
                                                           java.io.File conffile,
                                                           java.io.File certreqfile,
                                                           java.io.File keyfile,
                                                           char[] password)
                                                    throws java.io.IOException
Generates a certificate request using openssl

Throws:
java.io.IOException

signCertificateOpenSSL

public static void signCertificateOpenSSL(java.io.File conffile,
                                          java.io.File certreqfile,
                                          java.io.File certfile,
                                          char[] password,
                                          boolean caauth)
                                   throws java.io.IOException
Sign the specified certificate request using openssl

Throws:
java.io.IOException

generatePKCS7CertificateOpenSSL

public static void generatePKCS7CertificateOpenSSL(java.io.File[] certs,
                                                   java.io.File pkcs7file)
                                            throws java.io.IOException
Generates a PKCS#7 style certificate from the specified certificate files

Throws:
java.io.IOException

generateThumbprint

public static java.lang.String generateThumbprint(java.io.File certfile)
                                           throws java.io.IOException
Returns:
the MD5 thumbprint from a certificate file
Throws:
java.io.IOException

generateCertificateRequestKeyTool

public static void generateCertificateRequestKeyTool(java.lang.String alias,
                                                     char[] password,
                                                     java.io.File certreqfile,
                                                     SecurityManager secmanager)
                                              throws java.security.KeyStoreException,
                                                     java.io.IOException
Generates a certificate using keytool

Throws:
java.security.KeyStoreException
java.io.IOException

importCertificate

public static void importCertificate(java.lang.String alias,
                                     java.io.File certfile,
                                     char[] password,
                                     SecurityManager secmanager)
                              throws java.security.KeyStoreException,
                                     java.io.IOException
Imports a certificate into the peer keystore

Throws:
java.security.KeyStoreException
java.io.IOException

cloneCertificate

public static void cloneCertificate(java.lang.String origalias,
                                    java.lang.String destalias,
                                    char[] password,
                                    SecurityManager secmanager)
                             throws java.security.KeyStoreException,
                                    java.io.IOException
Clones a certificate in the keystore

Throws:
java.security.KeyStoreException
java.io.IOException

getCertificateFile

public static java.io.File getCertificateFile(java.lang.String identtag,
                                              java.io.File root)
Returns:
the default certificate file for the specified identity

getPrivateKeyFile

public static java.io.File getPrivateKeyFile(java.lang.String identtag,
                                             java.io.File root)
Returns:
the default private key file for the specified identity

getCertificateRequestFile

public static java.io.File getCertificateRequestFile(java.lang.String identity,
                                                     java.io.File root)
Returns:
the default certificate file for the specified identity

cleanFileStructure

public static void cleanFileStructure(java.io.File root)
Cleans up the file structure of temporary ca