Class SMIMEToolkit


  • public class SMIMEToolkit
    extends java.lang.Object
    A tool kit of common tasks.
    • Constructor Summary

      Constructors 
      Constructor Description
      SMIMEToolkit​(org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider)
      Base constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javax.mail.internet.MimeBodyPart decrypt​(javax.mail.internet.MimeBodyPart mimePart, org.bouncycastle.cms.RecipientId recipientId, org.bouncycastle.cms.Recipient recipient)
      Decrypt the passed in MIME part returning a part representing the decrypted content.
      javax.mail.internet.MimeBodyPart decrypt​(javax.mail.internet.MimeMessage message, org.bouncycastle.cms.RecipientId recipientId, org.bouncycastle.cms.Recipient recipient)
      Decrypt the passed in MIME message returning a part representing the decrypted content.
      javax.mail.internet.MimeBodyPart encrypt​(javax.mail.internet.MimeBodyPart mimePart, org.bouncycastle.operator.OutputEncryptor contentEncryptor, org.bouncycastle.cms.RecipientInfoGenerator recipientGenerator)
      Encrypt the passed in MIME part returning a new encrypted MIME part.
      javax.mail.internet.MimeBodyPart encrypt​(javax.mail.internet.MimeMessage message, org.bouncycastle.operator.OutputEncryptor contentEncryptor, org.bouncycastle.cms.RecipientInfoGenerator recipientGenerator)
      Encrypt the passed in MIME message returning a new encrypted MIME part.
      javax.mail.internet.MimeBodyPart encrypt​(javax.mail.internet.MimeMultipart multiPart, org.bouncycastle.operator.OutputEncryptor contentEncryptor, org.bouncycastle.cms.RecipientInfoGenerator recipientGenerator)
      Encrypt the passed in MIME multi-part returning a new encrypted MIME part.
      org.bouncycastle.cert.X509CertificateHolder extractCertificate​(javax.mail.internet.MimeMultipart message, org.bouncycastle.cms.SignerInformation signerInformation)
      Extract the signer's signing certificate from Multipart message content.
      org.bouncycastle.cert.X509CertificateHolder extractCertificate​(javax.mail.Part message, org.bouncycastle.cms.SignerInformation signerInformation)
      Extract the signer's signing certificate from the message.
      boolean isEncrypted​(javax.mail.Part message)
      Return true if the passed in message (MimeBodyPart or MimeMessage) is encrypted.
      boolean isSigned​(javax.mail.internet.MimeMultipart message)
      Return true if the passed in MimeMultipart is a signed one.
      boolean isSigned​(javax.mail.Part message)
      Return true if the passed in message (MimeBodyPart or MimeMessage) is a signed one.
      boolean isValidSignature​(javax.mail.internet.MimeMultipart message, org.bouncycastle.cms.SignerInformationVerifier verifier)
      Return true if there is a signature on the message that can be verified by verifier..
      boolean isValidSignature​(javax.mail.Part message, org.bouncycastle.cms.SignerInformationVerifier verifier)
      Return true if there is a signature on the message that can be verified by the verifier.
      javax.mail.internet.MimeMultipart sign​(javax.mail.internet.MimeBodyPart message, org.bouncycastle.cms.SignerInfoGenerator signerInfoGenerator)
      Produce a signed message in multi-part format with the second part containing a detached signature for the first.
      javax.mail.internet.MimeBodyPart signEncapsulated​(javax.mail.internet.MimeBodyPart message, org.bouncycastle.cms.SignerInfoGenerator signerInfoGenerator)
      Produce a signed message in encapsulated format where the message is encoded in the signature..
      • Methods inherited from class java.lang.Object

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

      • SMIMEToolkit

        public SMIMEToolkit​(org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider)
        Base constructor.
        Parameters:
        digestCalculatorProvider - provider for any digest calculations required.
    • Method Detail

      • isEncrypted

        public boolean isEncrypted​(javax.mail.Part message)
                            throws javax.mail.MessagingException
        Return true if the passed in message (MimeBodyPart or MimeMessage) is encrypted.
        Parameters:
        message - message of interest
        Returns:
        true if the message represents an encrypted message, false otherwise.
        Throws:
        javax.mail.MessagingException - on a message processing issue.
      • isSigned

        public boolean isSigned​(javax.mail.Part message)
                         throws javax.mail.MessagingException
        Return true if the passed in message (MimeBodyPart or MimeMessage) is a signed one.
        Parameters:
        message - message of interest
        Returns:
        true if the message represents a signed message, false otherwise.
        Throws:
        javax.mail.MessagingException - on a message processing issue.
      • isSigned

        public boolean isSigned​(javax.mail.internet.MimeMultipart message)
                         throws javax.mail.MessagingException
        Return true if the passed in MimeMultipart is a signed one.
        Parameters:
        message - message of interest
        Returns:
        true if the multipart has an attached signature, false otherwise.
        Throws:
        javax.mail.MessagingException - on a message processing issue.
      • isValidSignature

        public boolean isValidSignature​(javax.mail.Part message,
                                        org.bouncycastle.cms.SignerInformationVerifier verifier)
                                 throws SMIMEException,
                                        javax.mail.MessagingException
        Return true if there is a signature on the message that can be verified by the verifier.
        Parameters:
        message - a MIME part representing a signed message.
        verifier - the verifier we want to find a signer for.
        Returns:
        true if cert verifies message, false otherwise.
        Throws:
        SMIMEException - on a SMIME handling issue.
        javax.mail.MessagingException - on a basic message processing exception
      • isValidSignature

        public boolean isValidSignature​(javax.mail.internet.MimeMultipart message,
                                        org.bouncycastle.cms.SignerInformationVerifier verifier)
                                 throws SMIMEException,
                                        javax.mail.MessagingException
        Return true if there is a signature on the message that can be verified by verifier..
        Parameters:
        message - a MIME part representing a signed message.
        verifier - the verifier we want to find a signer for.
        Returns:
        true if cert verifies message, false otherwise.
        Throws:
        SMIMEException - on a SMIME handling issue.
        javax.mail.MessagingException - on a basic message processing exception
      • extractCertificate

        public org.bouncycastle.cert.X509CertificateHolder extractCertificate​(javax.mail.Part message,
                                                                              org.bouncycastle.cms.SignerInformation signerInformation)
                                                                       throws SMIMEException,
                                                                              javax.mail.MessagingException
        Extract the signer's signing certificate from the message.
        Parameters:
        message - a MIME part/MIME message representing a signed message.
        signerInformation - the signer information identifying the signer of interest.
        Returns:
        the signing certificate, null if not found.
        Throws:
        SMIMEException
        javax.mail.MessagingException
      • extractCertificate

        public org.bouncycastle.cert.X509CertificateHolder extractCertificate​(javax.mail.internet.MimeMultipart message,
                                                                              org.bouncycastle.cms.SignerInformation signerInformation)
                                                                       throws SMIMEException,
                                                                              javax.mail.MessagingException
        Extract the signer's signing certificate from Multipart message content.
        Parameters:
        message - a MIME Multipart part representing a signed message.
        signerInformation - the signer information identifying the signer of interest.
        Returns:
        the signing certificate, null if not found.
        Throws:
        SMIMEException
        javax.mail.MessagingException
      • sign

        public javax.mail.internet.MimeMultipart sign​(javax.mail.internet.MimeBodyPart message,
                                                      org.bouncycastle.cms.SignerInfoGenerator signerInfoGenerator)
                                               throws SMIMEException
        Produce a signed message in multi-part format with the second part containing a detached signature for the first.
        Parameters:
        message - the message to be signed.
        signerInfoGenerator - the generator to be used to generate the signature.
        Returns:
        the resulting MimeMultipart
        Throws:
        SMIMEException - on an exception calculating or creating the signed data.
      • signEncapsulated

        public javax.mail.internet.MimeBodyPart signEncapsulated​(javax.mail.internet.MimeBodyPart message,
                                                                 org.bouncycastle.cms.SignerInfoGenerator signerInfoGenerator)
                                                          throws SMIMEException
        Produce a signed message in encapsulated format where the message is encoded in the signature..
        Parameters:
        message - the message to be signed.
        signerInfoGenerator - the generator to be used to generate the signature.
        Returns:
        a BodyPart containing the encapsulated message.
        Throws:
        SMIMEException - on an exception calculating or creating the signed data.
      • encrypt

        public javax.mail.internet.MimeBodyPart encrypt​(javax.mail.internet.MimeBodyPart mimePart,
                                                        org.bouncycastle.operator.OutputEncryptor contentEncryptor,
                                                        org.bouncycastle.cms.RecipientInfoGenerator recipientGenerator)
                                                 throws SMIMEException
        Encrypt the passed in MIME part returning a new encrypted MIME part.
        Parameters:
        mimePart - the part to be encrypted.
        contentEncryptor - the encryptor to use for the actual message content.
        recipientGenerator - the generator for the target recipient.
        Returns:
        an encrypted MIME part.
        Throws:
        SMIMEException - in the event of an exception creating the encrypted part.
      • encrypt

        public javax.mail.internet.MimeBodyPart encrypt​(javax.mail.internet.MimeMultipart multiPart,
                                                        org.bouncycastle.operator.OutputEncryptor contentEncryptor,
                                                        org.bouncycastle.cms.RecipientInfoGenerator recipientGenerator)
                                                 throws SMIMEException,
                                                        javax.mail.MessagingException
        Encrypt the passed in MIME multi-part returning a new encrypted MIME part.
        Parameters:
        multiPart - the multi-part to be encrypted.
        contentEncryptor - the encryptor to use for the actual message content.
        recipientGenerator - the generator for the target recipient.
        Returns:
        an encrypted MIME part.
        Throws:
        SMIMEException - in the event of an exception creating the encrypted part.
        javax.mail.MessagingException
      • encrypt

        public javax.mail.internet.MimeBodyPart encrypt​(javax.mail.internet.MimeMessage message,
                                                        org.bouncycastle.operator.OutputEncryptor contentEncryptor,
                                                        org.bouncycastle.cms.RecipientInfoGenerator recipientGenerator)
                                                 throws SMIMEException
        Encrypt the passed in MIME message returning a new encrypted MIME part.
        Parameters:
        message - the multi-part to be encrypted.
        contentEncryptor - the encryptor to use for the actual message content.
        recipientGenerator - the generator for the target recipient.
        Returns:
        an encrypted MIME part.
        Throws:
        SMIMEException - in the event of an exception creating the encrypted part.
      • decrypt

        public javax.mail.internet.MimeBodyPart decrypt​(javax.mail.internet.MimeBodyPart mimePart,
                                                        org.bouncycastle.cms.RecipientId recipientId,
                                                        org.bouncycastle.cms.Recipient recipient)
                                                 throws SMIMEException,
                                                        javax.mail.MessagingException
        Decrypt the passed in MIME part returning a part representing the decrypted content.
        Parameters:
        mimePart - the part containing the encrypted data.
        recipientId - the recipient id in the date to be matched.
        recipient - the recipient to be used if a match is found.
        Returns:
        a MIME part containing the decrypted content or null if the recipientId cannot be matched.
        Throws:
        SMIMEException - on an exception doing the decryption.
        javax.mail.MessagingException - on an exception parsing the message,
      • decrypt

        public javax.mail.internet.MimeBodyPart decrypt​(javax.mail.internet.MimeMessage message,
                                                        org.bouncycastle.cms.RecipientId recipientId,
                                                        org.bouncycastle.cms.Recipient recipient)
                                                 throws SMIMEException,
                                                        javax.mail.MessagingException
        Decrypt the passed in MIME message returning a part representing the decrypted content.
        Parameters:
        message - the message containing the encrypted data.
        recipientId - the recipient id in the date to be matched.
        recipient - the recipient to be used if a match is found.
        Returns:
        a MIME part containing the decrypted content, or null if the recipientId cannot be matched.
        Throws:
        SMIMEException - on an exception doing the decryption.
        javax.mail.MessagingException - on an exception parsing the message,