ajanta.naming
Class CA

java.lang.Object
  |
  +--ajanta.naming.CA

public class CA
extends java.lang.Object


Field Summary
static long AGENT_TIME
           
static java.lang.String AS_URN
           
static java.lang.String CERT_TYPE
           
static java.lang.String COUNTRY
           
static java.lang.String CS_URL
           
static java.lang.String HOST_URL
           
static long ONE_DAY
           
static long ONE_MONTH
           
static long ONE_YEAR
           
static java.lang.String ORGANIZATION_NAME
           
static java.lang.String ORGANIZATION_UNIT
           
static int SEQ_FACTOR
           
 
Constructor Summary
CA(ajanta.naming.URN myURN, java.lang.String sigAlg, java.security.PublicKey myPublicKey, java.security.PrivateKey myPrivateKey, java.lang.String orgUnit)
          Constructor
 
Method Summary
 java.security.cert.X509Certificate generateCertificate(ajanta.naming.NREntry entry, long validity)
           
 java.security.PrivateKey genTempKeys(ajanta.naming.URN entityURN, int key_length, long validity)
          Given an entityURN, this method generates a certificate for that entity.
 java.security.cert.X509Certificate getCertificate(ajanta.naming.URN urn)
           
static java.lang.String getExtensionValue(java.security.cert.X509Certificate cert, java.lang.String extensionName)
           
 java.security.cert.X509Certificate removeCertificate(ajanta.naming.URN urn)
           
static void verifyCertificate(java.security.cert.X509Certificate cert, java.security.PublicKey publicKey)
          verifies whether or not the certificate is valid (signature and validity period)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ONE_YEAR

public static long ONE_YEAR

ONE_MONTH

public static long ONE_MONTH

ONE_DAY

public static long ONE_DAY

AGENT_TIME

public static long AGENT_TIME

SEQ_FACTOR

public static int SEQ_FACTOR

ORGANIZATION_UNIT

public static java.lang.String ORGANIZATION_UNIT

ORGANIZATION_NAME

public static java.lang.String ORGANIZATION_NAME

COUNTRY

public static java.lang.String COUNTRY

CERT_TYPE

public static final java.lang.String CERT_TYPE
See Also:
Constant Field Values

HOST_URL

public static final java.lang.String HOST_URL
See Also:
Constant Field Values

CS_URL

public static final java.lang.String CS_URL
See Also:
Constant Field Values

AS_URN

public static final java.lang.String AS_URN
See Also:
Constant Field Values
Constructor Detail

CA

public CA(ajanta.naming.URN myURN,
          java.lang.String sigAlg,
          java.security.PublicKey myPublicKey,
          java.security.PrivateKey myPrivateKey,
          java.lang.String orgUnit)
Constructor

Parameters:
sigAlg - algorithm used for signing (e.g. DSA, RSA)
myPublicKey - public key of the CA
myPrivateKey - private key of CA used for signing all certificates
Method Detail

getCertificate

public java.security.cert.X509Certificate getCertificate(ajanta.naming.URN urn)
Returns:
X509 certificate corresponding to 'urn'

generateCertificate

public java.security.cert.X509Certificate generateCertificate(ajanta.naming.NREntry entry,
                                                              long validity)
                                                       throws java.security.cert.CertificateException,
                                                              java.security.InvalidKeyException,
                                                              java.security.SignatureException,
                                                              java.security.NoSuchAlgorithmException,
                                                              java.security.NoSuchProviderException
Parameters:
entry - NREntry of the entity being certified
validity - validity period in seconds
Returns:
the X509Certificate of the entity with appropriate extensions
java.security.cert.CertificateException
java.security.InvalidKeyException
java.security.SignatureException
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException

genTempKeys

public java.security.PrivateKey genTempKeys(ajanta.naming.URN entityURN,
                                            int key_length,
                                            long validity)
                                     throws java.security.cert.CertificateException,
                                            java.security.InvalidKeyException,
                                            java.security.SignatureException,
                                            java.security.NoSuchAlgorithmException,
                                            java.security.NoSuchProviderException
Given an entityURN, this method generates a certificate for that entity. It is to the discretion of the certification authority what the public, private key pairs should be. This method creates a temporary NREntry and inturn calls the version of the gernerateCertficate taking NREntry as one of the paramerters

Parameters:
entityURN - URN of the entity that we want to generate certificate for
key_length - length of the keys that should be generated
validity - validity period in seconds
Returns:
the X509Certificate of the entity with appropriate extensions
java.security.cert.CertificateException
java.security.InvalidKeyException
java.security.SignatureException
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException

removeCertificate

public java.security.cert.X509Certificate removeCertificate(ajanta.naming.URN urn)
Parameters:
urn - URN of entity whose certficate is being removed
Returns:
the removed certificate

verifyCertificate

public static void verifyCertificate(java.security.cert.X509Certificate cert,
                                     java.security.PublicKey publicKey)
                              throws java.security.GeneralSecurityException
verifies whether or not the certificate is valid (signature and validity period)

java.security.GeneralSecurityException

getExtensionValue

public static java.lang.String getExtensionValue(java.security.cert.X509Certificate cert,
                                                 java.lang.String extensionName)