eu.xtreemos.xosd.utilities.security
Class XosCertGenerator

java.lang.Object
  extended by eu.xtreemos.xosd.utilities.security.XosCertGenerator

public class XosCertGenerator
extends java.lang.Object

This class is used to generate xos NODE CERTIFICATES and just for testing purposes (Rennes meeting). This should be done on CDA server side (but is not implemented yet).

Author:
ijj, ales.cernivec@xlab.si, matej.artac@xlab.si

Field Summary
(package private)  java.security.cert.X509Certificate caCert
           
(package private)  java.security.PrivateKey caKey
           
(package private)  org.bouncycastle.x509.X509V3CertificateGenerator certGen
           
(package private)  java.security.cert.X509Certificate clientCert
           
(package private)  java.util.Vector<org.bouncycastle.asn1.DERObjectIdentifier> issuerPrincipalOids
           
(package private)  java.util.Vector<java.lang.String> issuerPrincipalValues
           
(package private)  org.bouncycastle.jce.X509Principal issuerX509Principal
           
(package private)  java.lang.String signatureAlgorithm
           
 
Constructor Summary
XosCertGenerator(java.security.PrivateKey caKey, java.security.cert.X509Certificate caCert, java.lang.String signatureAlgorithm)
           
 
Method Summary
protected  void addResourceAttributes(ResourceAttributes resourceAttributes)
           
protected  void addResourceAttributes(org.bouncycastle.x509.X509V2AttributeCertificateGenerator attrCertGenerator, ResourceAttributes resourceAttributes)
           
 org.bouncycastle.x509.X509AttributeCertificate generateResAttributeCert(java.util.HashMap<java.lang.String,java.lang.String> hmDN, long serial, java.security.PublicKey publicKey, java.security.cert.X509Certificate identityCert, ResourceAttributes resourceAttributes, int nDays)
          Generate an attribute certificate.
 java.security.cert.X509Certificate generateResAttributeCertExt(java.util.HashMap<java.lang.String,java.lang.String> hmDN, long serial, java.security.PublicKey userKey, ResourceAttributes resourceAttributes, int nDays)
           
 java.security.cert.X509Certificate generateResIdentityCert(java.util.HashMap<java.lang.String,java.lang.String> hmDN, long serial, org.bouncycastle.jce.PKCS10CertificationRequest resourceRequest, int nDays)
          Generate an identity certificate of the resource.
 java.security.cert.X509Certificate generateXOSCert(java.util.HashMap<java.lang.String,java.lang.String> hmDN, long serial, java.security.PublicKey userKey, int nDays)
          Generates a certificate from the current XosCertGenerator's instance state.
 void initialiseState()
          Resets the state of the certificate being generated, setting it to basic values ready for the next certificate to be set up and generated.
private  void setFixedValues()
           
 void setupBaseCert(java.util.HashMap<java.lang.String,java.lang.String> hmDN, long serial, java.security.PublicKey userKey, int nDays)
          Sets up the barebones certificate with the distinguished name (DN), serial number, the public key and the validity period from now for the given number of days.
private  void setValidity(java.util.Calendar now, int days)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

caKey

java.security.PrivateKey caKey

caCert

java.security.cert.X509Certificate caCert

clientCert

java.security.cert.X509Certificate clientCert

certGen

org.bouncycastle.x509.X509V3CertificateGenerator certGen

signatureAlgorithm

java.lang.String signatureAlgorithm

issuerX509Principal

org.bouncycastle.jce.X509Principal issuerX509Principal

issuerPrincipalOids

java.util.Vector<org.bouncycastle.asn1.DERObjectIdentifier> issuerPrincipalOids

issuerPrincipalValues

java.util.Vector<java.lang.String> issuerPrincipalValues
Constructor Detail

XosCertGenerator

public XosCertGenerator(java.security.PrivateKey caKey,
                        java.security.cert.X509Certificate caCert,
                        java.lang.String signatureAlgorithm)
                 throws java.lang.IllegalArgumentException,
                        java.security.cert.CertificateEncodingException,
                        java.security.cert.CertificateParsingException
Throws:
java.lang.IllegalArgumentException
java.security.cert.CertificateEncodingException
java.security.cert.CertificateParsingException
Method Detail

setFixedValues

private void setFixedValues()
                     throws java.security.cert.CertificateParsingException
Throws:
java.security.cert.CertificateParsingException

setValidity

private void setValidity(java.util.Calendar now,
                         int days)

setupBaseCert

public void setupBaseCert(java.util.HashMap<java.lang.String,java.lang.String> hmDN,
                          long serial,
                          java.security.PublicKey userKey,
                          int nDays)
Sets up the barebones certificate with the distinguished name (DN), serial number, the public key and the validity period from now for the given number of days.

Parameters:
hmDN -
serial -
userKey -
nDays -

generateXOSCert

public java.security.cert.X509Certificate generateXOSCert(java.util.HashMap<java.lang.String,java.lang.String> hmDN,
                                                          long serial,
                                                          java.security.PublicKey userKey,
                                                          int nDays)
                                                   throws java.security.SignatureException,
                                                          java.security.InvalidKeyException,
                                                          java.security.cert.CertificateEncodingException,
                                                          java.security.NoSuchAlgorithmException,
                                                          java.security.cert.CertificateParsingException
Generates a certificate from the current XosCertGenerator's instance state. Warning: it resets the state of the certificate generator to its default state!

Parameters:
hmDN -
serial -
userKey -
nDays -
Returns:
Throws:
java.security.SignatureException
java.security.InvalidKeyException
java.security.cert.CertificateEncodingException
java.security.NoSuchAlgorithmException
java.security.cert.CertificateParsingException

addResourceAttributes

protected void addResourceAttributes(org.bouncycastle.x509.X509V2AttributeCertificateGenerator attrCertGenerator,
                                     ResourceAttributes resourceAttributes)

addResourceAttributes

protected void addResourceAttributes(ResourceAttributes resourceAttributes)

initialiseState

public void initialiseState()
                     throws java.lang.Exception
Resets the state of the certificate being generated, setting it to basic values ready for the next certificate to be set up and generated.

Throws:
java.lang.Exception

generateResIdentityCert

public java.security.cert.X509Certificate generateResIdentityCert(java.util.HashMap<java.lang.String,java.lang.String> hmDN,
                                                                  long serial,
                                                                  org.bouncycastle.jce.PKCS10CertificationRequest resourceRequest,
                                                                  int nDays)
                                                           throws java.security.SignatureException,
                                                                  java.security.InvalidKeyException,
                                                                  java.security.cert.CertificateEncodingException,
                                                                  java.security.NoSuchAlgorithmException,
                                                                  java.security.cert.CertificateParsingException,
                                                                  java.lang.Exception
Generate an identity certificate of the resource. The certificate generator needs to be previously reset using the initialiseState() method call.

Parameters:
hmDN -
serial -
userKey -
resourceAttributes -
nDays -
Returns:
Throws:
java.security.SignatureException
java.security.InvalidKeyException
java.security.cert.CertificateEncodingException
java.security.NoSuchAlgorithmException
java.security.cert.CertificateParsingException
java.lang.Exception

generateResAttributeCert

public org.bouncycastle.x509.X509AttributeCertificate generateResAttributeCert(java.util.HashMap<java.lang.String,java.lang.String> hmDN,
                                                                               long serial,
                                                                               java.security.PublicKey publicKey,
                                                                               java.security.cert.X509Certificate identityCert,
                                                                               ResourceAttributes resourceAttributes,
                                                                               int nDays)
                                                                        throws java.security.SignatureException,
                                                                               java.security.InvalidKeyException,
                                                                               java.security.cert.CertificateEncodingException,
                                                                               java.security.NoSuchAlgorithmException,
                                                                               java.security.cert.CertificateParsingException,
                                                                               java.lang.Exception
Generate an attribute certificate. The certificate generation state must be previously initialised using generateResIdentityCert.

Parameters:
hmDN -
serial -
userKey -
resourceAttributes -
nDays -
Returns:
Throws:
java.security.SignatureException
java.security.InvalidKeyException
java.security.cert.CertificateEncodingException
java.security.NoSuchAlgorithmException
java.security.cert.CertificateParsingException
java.lang.Exception

generateResAttributeCertExt

public java.security.cert.X509Certificate generateResAttributeCertExt(java.util.HashMap<java.lang.String,java.lang.String> hmDN,
                                                                      long serial,
                                                                      java.security.PublicKey userKey,
                                                                      ResourceAttributes resourceAttributes,
                                                                      int nDays)
                                                               throws java.security.SignatureException,
                                                                      java.security.InvalidKeyException,
                                                                      java.security.cert.CertificateEncodingException,
                                                                      java.security.NoSuchAlgorithmException,
                                                                      java.security.cert.CertificateParsingException,
                                                                      java.lang.Exception
Throws:
java.security.SignatureException
java.security.InvalidKeyException
java.security.cert.CertificateEncodingException
java.security.NoSuchAlgorithmException
java.security.cert.CertificateParsingException
java.lang.Exception