|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcybervillains.ca.KeyStoreManager
public class KeyStoreManager
This is the main entry point into the Cybervillains CA. This class handles generation, storage and the persistent mapping of input to duplicated certificates and mapped public keys. Default setting is to immediately persist changes to the store by writing out the keystore and mapping file every time a new certificate is added. This behavior can be disabled if desired, to enhance performance or allow temporary testing without modifying the certificate store. Copyright (c) 2007, Information Security Partners, LLC All rights reserved. In a special exception, Selenium/OpenQA is allowed to use this code under the Apache License 2.0.
Field Summary | |
---|---|
static String |
_caPrivKeyAlias
|
KeyPairGenerator |
_dsaKpg
|
KeyPairGenerator |
_rsaKpg
|
String |
DSA_KEYGEN_ALGO
|
String |
RSA_KEYGEN_ALGO
|
Constructor Summary | |
---|---|
KeyStoreManager(File root,
String certificateRevocationListPath)
|
Method Summary | |
---|---|
void |
addCertAndPrivateKey(String hostname,
X509Certificate cert,
PrivateKey privKey)
Stores a new certificate and its associated private key in the keystore. |
protected void |
createKeystore()
Creates, writes and loads a new keystore and CA root certificate. |
X509Certificate |
getCertificateByAlias(String alias)
Returns the aliased certificate. |
X509Certificate |
getCertificateByHostname(String hostname)
Returns the aliased certificate. |
KeyPair |
getDSAKeyPair()
Generate a DSA Key Pair |
KeyStore |
getKeyStore()
|
X509Certificate |
getMappedCertificate(X509Certificate cert)
This method returns the duplicated certificate mapped to the passed in cert, or creates and returns one if no mapping has yet been performed. |
X509Certificate |
getMappedCertificateForHostname(String hostname)
This method returns the mapped certificate for a hostname, or generates a "standard" SSL server certificate issued by the CA to the supplied subject if no mapping has been created. |
PublicKey |
getMappedPublicKey(PublicKey original)
If we get a KeyValue with a given public key, then later see an X509Data with the same public key, we shouldn't split this in our MITM impl. |
boolean |
getPersistImmediately()
Whether updates are immediately written to disk. |
PrivateKey |
getPrivateKey(PublicKey pk)
Returns the private key for a public key we have generated. |
PrivateKey |
getPrivateKeyForLocalCert(X509Certificate cert)
For a cert we have generated, return the private key. |
KeyPair |
getRSAKeyPair()
Generate an RSA Key Pair |
X509Certificate |
getSigningCert()
Gets the authority root signing cert. |
PrivateKey |
getSigningPrivateKey()
Gets the authority private signing key. |
void |
mapPublicKeys(PublicKey original,
PublicKey substitute)
Stores a public key mapping. |
void |
persist()
Writes the keystore and certificate/keypair mappings to disk. |
void |
setPersistImmediately(boolean persistImmediately)
Whether updates are immediately written to disk. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String _caPrivKeyAlias
public final String RSA_KEYGEN_ALGO
public final String DSA_KEYGEN_ALGO
public final KeyPairGenerator _rsaKpg
public final KeyPairGenerator _dsaKpg
Constructor Detail |
---|
public KeyStoreManager(File root, String certificateRevocationListPath)
Method Detail |
---|
protected void createKeystore()
public void addCertAndPrivateKey(String hostname, X509Certificate cert, PrivateKey privKey) throws KeyStoreException, CertificateException, NoSuchAlgorithmException
hostname
- cert
- privKey
- @throws KeyStoreException
CertificateException
NoSuchAlgorithmException
KeyStoreException
public void persist() throws KeyStoreException, NoSuchAlgorithmException, CertificateException
KeyStoreException
NoSuchAlgorithmException
CertificateException
public X509Certificate getCertificateByAlias(String alias) throws KeyStoreException
alias
-
KeyStoreException
ThumbprintUtil
public X509Certificate getCertificateByHostname(String hostname) throws KeyStoreException, CertificateParsingException, InvalidKeyException, CertificateExpiredException, CertificateNotYetValidException, SignatureException, CertificateException, NoSuchAlgorithmException, NoSuchProviderException, UnrecoverableKeyException
alias
-
KeyStoreException
UnrecoverableKeyException
NoSuchProviderException
NoSuchAlgorithmException
CertificateException
SignatureException
CertificateNotYetValidException
CertificateExpiredException
InvalidKeyException
CertificateParsingException
ThumbprintUtil
public X509Certificate getSigningCert() throws KeyStoreException
KeyStoreException
public PrivateKey getSigningPrivateKey() throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException
KeyStoreException
NoSuchAlgorithmException
UnrecoverableKeyException
public boolean getPersistImmediately()
public void setPersistImmediately(boolean persistImmediately)
persistImmediately
- public X509Certificate getMappedCertificate(X509Certificate cert) throws CertificateEncodingException, InvalidKeyException, CertificateException, CertificateNotYetValidException, NoSuchAlgorithmException, NoSuchProviderException, SignatureException, KeyStoreException, UnrecoverableKeyException
cert
-
CertificateEncodingException
InvalidKeyException
CertificateException
CertificateNotYetValidException
NoSuchAlgorithmException
NoSuchProviderException
SignatureException
KeyStoreException
UnrecoverableKeyException
public X509Certificate getMappedCertificateForHostname(String hostname) throws CertificateParsingException, InvalidKeyException, CertificateExpiredException, CertificateNotYetValidException, SignatureException, CertificateException, NoSuchAlgorithmException, NoSuchProviderException, KeyStoreException, UnrecoverableKeyException
hostname
-
CertificateParsingException
InvalidKeyException
CertificateExpiredException
CertificateNotYetValidException
SignatureException
CertificateException
NoSuchAlgorithmException
NoSuchProviderException
KeyStoreException
UnrecoverableKeyException
public PrivateKey getPrivateKeyForLocalCert(X509Certificate cert) throws CertificateEncodingException, KeyStoreException, UnrecoverableKeyException, NoSuchAlgorithmException
cert
-
CertificateEncodingException
KeyStoreException
UnrecoverableKeyException
NoSuchAlgorithmException
public KeyPair getRSAKeyPair()
public KeyPair getDSAKeyPair()
public void mapPublicKeys(PublicKey original, PublicKey substitute)
original
- substitute
- public PublicKey getMappedPublicKey(PublicKey original)
pk
-
public PrivateKey getPrivateKey(PublicKey pk)
pk
-
public KeyStore getKeyStore()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |