Package edu.iu.crypt

Class PemEncoded

java.lang.Object
edu.iu.crypt.PemEncoded

public final class PemEncoded extends Object
Reads PEM-encoded key and/or certificate data.
  • Method Details

    • parse

      public static Iterator<PemEncoded> parse(InputStream in)
      Reads PEM-encoded key and/or certificate data.
      Parameters:
      in - input stream of PEM-encoded key and/or certificate data, multiple entries may be concatenated
      Returns:
      Parsed PEM-encoded data
      See Also:
    • parse

      public static Iterator<PemEncoded> parse(String pemEncoded)
      Parses PEM-encoded key and/or certificate data.
      Parameters:
      pemEncoded - PEM-encoded key and/or certificate data, may be concatenated
      Returns:
      Parsed PEM-encoded data
      See Also:
    • serialize

      public static Iterator<PemEncoded> serialize(X509Certificate... cert)
      Serializes an X509 certificate chain as PEM encoded.
      Parameters:
      cert - certificate chain
      Returns:
      PEM encoded certificate data
    • serialize

      public static Iterator<PemEncoded> serialize(KeyPair keyPair, X509Certificate... cert)
      Checks that public and private key, and certificate chain, are related and converts to PEM encoded form.

      Public key will be omitted if it matches the first certificate in the chain, or if it is fully encoded as a subset of the private key.

      Parameters:
      keyPair - public and optional private key to export
      cert - certificate chain
      Returns:
      PEM encoded key data
    • getCertificateChain

      public static X509Certificate[] getCertificateChain(Iterator<PemEncoded> pem)
      Converts parsed PEM data to a certificate chain.
      Parameters:
      pem - PEM encoded certificate chain
      Returns:
      certificate chain
    • getCertificateChain

      public static X509Certificate[] getCertificateChain(URI uri)
      Reads a certificate chain from a URI.
      Parameters:
      uri - URI
      Returns:
      certificate chain
      See Also:
    • asCertificate

      public static X509Certificate asCertificate(byte[] encoded)
      Parses raw data as X509Certificate
      Parameters:
      encoded - DER encoded X.509 certificate data
      Returns:
      X509Certificate
    • asCRL

      public static X509CRL asCRL(byte[] encoded)
      Parses raw data as X509CRL
      Parameters:
      encoded - DER encoded X.509 CLR data
      Returns:
      X509CRL
    • getKeyType

      public PemEncoded.KeyType getKeyType()
      Gets the key type.
      Returns:
      PemEncoded.KeyType
    • asPublic

      public PublicKey asPublic(String algorithm)
      Gets the key as a public key when keyType is PemEncoded.KeyType.PUBLIC_KEY.
      Parameters:
      algorithm - KeyFactory algorithm
      Returns:
      public key
    • asPrivate

      public PrivateKey asPrivate(String algorithm)
      Gets the key as a private key when keyType is PemEncoded.KeyType.PRIVATE_KEY.
      Parameters:
      algorithm - KeyFactory algorithm
      Returns:
      private key
    • asCertificate

      public X509Certificate asCertificate()
      Gets the certificate when keyType is PemEncoded.KeyType.CERTIFICATE.
      Returns:
      private key
    • asCRL

      public X509CRL asCRL()
      Gets the certificate when keyType is PemEncoded.KeyType.CERTIFICATE.
      Returns:
      private key
    • toString

      public String toString()
      Overrides:
      toString in class Object