Class SMIMEUtil


  • public class SMIMEUtil
    extends java.lang.Object
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  SMIMEUtil.SafeCreator
      Interface to obfuscate the repetitive constructors so that we could have only one createSafe
    • Constructor Summary

      Constructors 
      Constructor Description
      SMIMEUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static org.bouncycastle.asn1.cms.IssuerAndSerialNumber createIssuerAndSerialNumberFor​(java.security.cert.X509Certificate cert)
      Return a CMS IssuerAndSerialNumber structure for the passed in X.509 certificate.
      static java.lang.Object createSafe​(java.io.InputStream sigStream, SMIMEUtil.SafeCreator creator)
      If getInputStreamNoMultipartSigned returns PipedInputStream it will lead to resource leak as it will not be closed if not handled safely.
      static boolean isMultipartContent​(javax.mail.Part part)  
      static javax.mail.internet.MimeBodyPart toMimeBodyPart​(byte[] content)
      return the MimeBodyPart described in the raw bytes provided in content
      static javax.mail.internet.MimeBodyPart toMimeBodyPart​(java.io.InputStream content)
      return the MimeBodyPart described in the input stream content
      static FileBackedMimeBodyPart toMimeBodyPart​(org.bouncycastle.cms.CMSTypedStream content)
      return a file backed MimeBodyPart described in CMSTypedStream content.
      static FileBackedMimeBodyPart toMimeBodyPart​(org.bouncycastle.cms.CMSTypedStream content, java.io.File file)
      Return a file based MimeBodyPart represented by content and backed by the file represented by file.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SMIMEUtil

        public SMIMEUtil()
    • Method Detail

      • isMultipartContent

        public static boolean isMultipartContent​(javax.mail.Part part)
                                          throws javax.mail.MessagingException
        Throws:
        javax.mail.MessagingException
      • toMimeBodyPart

        public static javax.mail.internet.MimeBodyPart toMimeBodyPart​(byte[] content)
                                                               throws SMIMEException
        return the MimeBodyPart described in the raw bytes provided in content
        Throws:
        SMIMEException
      • toMimeBodyPart

        public static javax.mail.internet.MimeBodyPart toMimeBodyPart​(java.io.InputStream content)
                                                               throws SMIMEException
        return the MimeBodyPart described in the input stream content
        Throws:
        SMIMEException
      • toMimeBodyPart

        public static FileBackedMimeBodyPart toMimeBodyPart​(org.bouncycastle.cms.CMSTypedStream content,
                                                            java.io.File file)
                                                     throws SMIMEException
        Return a file based MimeBodyPart represented by content and backed by the file represented by file.
        Parameters:
        content - content stream containing body part.
        file - file to store the decoded body part in.
        Returns:
        the decoded body part.
        Throws:
        SMIMEException
      • createIssuerAndSerialNumberFor

        public static org.bouncycastle.asn1.cms.IssuerAndSerialNumber createIssuerAndSerialNumberFor​(java.security.cert.X509Certificate cert)
                                                                                              throws java.security.cert.CertificateParsingException
        Return a CMS IssuerAndSerialNumber structure for the passed in X.509 certificate.
        Parameters:
        cert - the X.509 certificate to get the issuer and serial number for.
        Returns:
        an IssuerAndSerialNumber structure representing the certificate.
        Throws:
        java.security.cert.CertificateParsingException
      • createSafe

        public static java.lang.Object createSafe​(java.io.InputStream sigStream,
                                                  SMIMEUtil.SafeCreator creator)
                                           throws javax.mail.MessagingException,
                                                  org.bouncycastle.cms.CMSException
        If getInputStreamNoMultipartSigned returns PipedInputStream it will lead to resource leak as it will not be closed if not handled safely. This method will initiate SMIMESigned but if it fails, it will close PipedInputStream
        Throws:
        javax.mail.MessagingException - an error extracting the signature or otherwise processing the message.
        org.bouncycastle.cms.CMSException - if some other problem occurs.