Class SMIMEToolkit

java.lang.Object
org.bouncycastle.mail.smime.SMIMEToolkit

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

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

    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 Details

    • SMIMEToolkit

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

    • 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,