Package org.bouncycastle.mail.smime
Class SMIMEToolkit
- java.lang.Object
-
- org.bouncycastle.mail.smime.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..
-
-
-
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,
-
-