Package org.globus.gsi.util

# Class CertificateLoadUtil

java.lang.Object
org.globus.gsi.util.CertificateLoadUtil

public final class CertificateLoadUtil extends Object
Contains various security-related utility methods.

## Method Summary

Modifier and Type
Method
Description
`protected static CertificateFactory`
`getCertificateFactory()`
Returns appropriate `CertificateFactory`.
`static Collection<X509Certificate>`
`getTrustedCertificates(KeyStore keyStore, X509CertSelector selector)`
`static void`
`init()`
A no-op function that can be used to force the class to load and initialize.
`static X509Certificate`
`loadCertificate(InputStream in)`
Loads a X509 certificate from the specified input stream.
`static X509Certificate`
`loadCertificate(String file)`
Loads an X.509 certificate from the specified file.
`static X509Certificate[]`
`loadCertificates(String file)`
Loads multiple X.509 certificates from the specified file.
`static X509CRL`
`loadCrl(InputStream in)`
`static X509CRL`
`loadCrl(String file)`
`static X509Certificate`
`readCertificate(BufferedReader reader)`
Loads a X.509 certificate from the specified reader.
`static void`
`setProvider(String providerName)`
Sets a provider name to use for loading certificates and for generating key pairs.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Method Details

### init

public static void init()
A no-op function that can be used to force the class to load and initialize.

### setProvider

public static void setProvider(String providerName)
Sets a provider name to use for loading certificates and for generating key pairs.

Parameters:
  `providerName` - provider name to use.

### getCertificateFactory

protected static CertificateFactory getCertificateFactory() throws GeneralSecurityException
Returns appropriate `CertificateFactory`. If provider was set a provider-specific `CertificateFactory` will be used. Otherwise, a default `CertificateFactory` will be used.

Returns:
  `CertificateFactory`
Throws:
  `GeneralSecurityException`

### loadCertificate

public static X509Certificate loadCertificate(InputStream in) throws GeneralSecurityException
Loads a X509 certificate from the specified input stream. Input stream must contain DER-encoded certificate.

Parameters:
  `in` - the input stream to read the certificate from.
Returns:
  `X509Certificate` the loaded certificate.
Throws:
  `GeneralSecurityException` - if certificate failed to load.

### loadCertificate

public static X509Certificate loadCertificate(String file) throws IOException, GeneralSecurityException
Loads an X.509 certificate from the specified file. The certificate file must be in PEM/Base64 format and start with "BEGIN CERTIFICATE" and end with "END CERTIFICATE" line.

Parameters:
  `file` - the file to load the certificate from.
Returns:
  `java.security.cert.X509Certificate` the loaded certificate.
Throws:
  `IOException` - if I/O error occurs
  `GeneralSecurityException` - if security problems occurs.

### loadCertificates

public static X509Certificate[] loadCertificates(String file) throws IOException, GeneralSecurityException
Loads multiple X.509 certificates from the specified file. Each certificate must be in PEM/Base64 format and start with "BEGIN CERTIFICATE" and end with "END CERTIFICATE" line.

Parameters:
  `file` - the certificate file to load the certificate from.
Returns:
  an array of certificates loaded from the file.
Throws:
  `IOException` - if I/O error occurs
  `GeneralSecurityException` - if security problems occurs.

### readCertificate

public static X509Certificate readCertificate(BufferedReader reader) throws IOException, GeneralSecurityException
Loads a X.509 certificate from the specified reader. The certificate contents must start with "BEGIN CERTIFICATE" line and end with "END CERTIFICATE" line, and be in PEM/Base64 format.

This function does not close the input stream.

Parameters:
  `reader` - the stream from which load the certificate.
Returns:
  the loaded certificate or null if there was no certificate in the stream or the stream is closed.
Throws:
  `IOException` - if I/O error occurs
  `GeneralSecurityException` - if security problems occurs.

### loadCrl

public static X509CRL loadCrl(String file) throws IOException, GeneralSecurityException

Throws:
  `IOException`
  `GeneralSecurityException`

### loadCrl

public static X509CRL loadCrl(InputStream in) throws GeneralSecurityException

Throws:
  `GeneralSecurityException`

### getTrustedCertificates

public static Collection<X509Certificate> getTrustedCertificates(KeyStore keyStore, X509CertSelector selector) throws KeyStoreException

Throws:
  `KeyStoreException`