package org.openstack.atlas.util.ca.util; import java.security.KeyPair; import java.security.PrivateKey; import org.bouncycastle.jce.PKCS10CertificationRequest; import org.bouncycastle.jce.provider.X509CertificateObject; import org.openstack.atlas.util.ca.RSAKeyUtils; import org.openstack.atlas.util.ca.exceptions.NotAnX509CertificateException; import org.openstack.atlas.util.ca.primitives.RsaConst; // Used for the ChainBuilder public class X509ChainEntry { static { RsaConst.init(); } private KeyPair key; private PKCS10CertificationRequest csr; private X509CertificateObject x509obj; public X509ChainEntry() { } public X509ChainEntry(KeyPair key, PKCS10CertificationRequest csr, X509CertificateObject x509obj) { this.key = key; this.csr = csr; this.x509obj = x509obj; } public KeyPair getKey() { return key; } public void setKey(KeyPair key) { this.key = key; } public PKCS10CertificationRequest getCsr() { return csr; } public void setCsr(PKCS10CertificationRequest csr) { this.csr = csr; } public X509CertificateObject getX509obj() { return x509obj; } public void setX509obj(X509CertificateObject x509obj) { this.x509obj = x509obj; } public String shortEntry() { X509Inspector xi; try { xi = new X509Inspector(x509obj); } catch (NotAnX509CertificateException ex) { return "null"; } String subjName = xi.getSubjectName(); String issuerName = xi.getIssuerName(); String shortCrtKey = RSAKeyUtils.shortKey(x509obj.getPublicKey()); String shortPrivKey = RSAKeyUtils.shortKey(key.getPrivate()); PrivateKey privKey = key.getPrivate(); String fmt = "{issuer=\"%s\" subj=\"%s\" privKey=\"%s\" crtKey=\"%s\"}"; String msg = String.format(fmt,issuerName,subjName,shortPrivKey,shortCrtKey); return msg; } }