Class SMIMESigned
- All Implemented Interfaces:
org.bouncycastle.util.Encodable
(SMIMESignedParser may be preferred e.g. for large files, since it avoids loading all the data at once).
A simple example of usage - note, in the example below the validity of the certificate isn't verified, just the fact that one of the certs matches the given signer...
CertStore certs = s.getCertificates("Collection", "BC");
SignerInformationStore signers = s.getSignerInfos();
Collection c = signers.getSigners();
Iterator it = c.iterator();
while (it.hasNext())
{
SignerInformation signer = (SignerInformation)it.next();
Collection certCollection = certs.getCertificates(signer.getSID());
Iterator certIt = certCollection.iterator();
X509Certificate cert = (X509Certificate)certIt.next();
if (signer.verify(cert.getPublicKey()))
{
verified++;
}
}
Note: if you are using this class with AS2 or some other protocol that does not use 7bit as the default content transfer encoding you will need to use the constructor that allows you to specify the default content transfer encoding, such as "binary".
-
Constructor Summary
ConstructorsConstructorDescriptionSMIMESigned(javax.mail.internet.MimeMultipart message) base constructor using a defaultContentTransferEncoding of 7bitSMIMESigned(javax.mail.internet.MimeMultipart message, String defaultContentTransferEncoding) base constructor with settable contentTransferEncodingSMIMESigned(javax.mail.Part message) base constructor for a signed message with encapsulated content. -
Method Summary
Modifier and TypeMethodDescriptionjavax.mail.internet.MimeBodyPartreturn the content that was signed.javax.mail.internet.MimeMessagegetContentAsMimeMessage(javax.mail.Session session) Return the content that was signed as a mime message.return the content that was signed - depending on whether this was unencapsulated or not it will return a MimeMultipart or a MimeBodyPartstatic SMIMESignedgetSafeInstance(javax.mail.internet.MimeMultipart message) Create a new SMIMESigned object from a MimeMultipart.static SMIMESignedgetSafeInstance(javax.mail.internet.MimeMultipart message, String defaultEncoding) Create a new SMIMESigned object from a MimeMultipart with a default content transfer encoding.static SMIMESignedgetSafeInstance(javax.mail.Part message) Create a new SMIMESigned object from a Part.Methods inherited from class org.bouncycastle.cms.CMSSignedData
addDigestAlgorithm, addDigestAlgorithm, getAttributeCertificates, getCertificates, getCRLs, getDigestAlgorithmIDs, getEncoded, getEncoded, getOtherRevocationInfo, getSignedContent, getSignedContentTypeOID, getSignerInfos, getVersion, isCertificateManagementMessage, isDetachedSignature, replaceCertificatesAndCRLs, replaceSigners, replaceSigners, toASN1Structure, verifySignatures, verifySignatures
-
Constructor Details
-
SMIMESigned
public SMIMESigned(javax.mail.internet.MimeMultipart message) throws javax.mail.MessagingException, org.bouncycastle.cms.CMSException base constructor using a defaultContentTransferEncoding of 7bit- Throws:
javax.mail.MessagingException- on an error extracting the signature or otherwise processing the message.org.bouncycastle.cms.CMSException- if some other problem occurs.
-
SMIMESigned
public SMIMESigned(javax.mail.internet.MimeMultipart message, String defaultContentTransferEncoding) throws javax.mail.MessagingException, org.bouncycastle.cms.CMSException base constructor with settable contentTransferEncoding- Parameters:
message- the signed messagedefaultContentTransferEncoding- new default to use- Throws:
javax.mail.MessagingException- on an error extracting the signature or otherwise processing the message.org.bouncycastle.cms.CMSException- if some other problem occurs.
-
SMIMESigned
public SMIMESigned(javax.mail.Part message) throws javax.mail.MessagingException, org.bouncycastle.cms.CMSException, SMIMEException base constructor for a signed message with encapsulated content.- Throws:
javax.mail.MessagingException- on an error extracting the signature or otherwise processing the message.SMIMEException- if the body part encapsulated in the message cannot be extracted.org.bouncycastle.cms.CMSException- if some other problem occurs.
-
-
Method Details
-
getSafeInstance
public static SMIMESigned getSafeInstance(javax.mail.internet.MimeMultipart message) throws javax.mail.MessagingException, org.bouncycastle.cms.CMSException Create a new SMIMESigned object from a MimeMultipart.Note: This method ensures that if the input stream is a PipedInputStream (e.g. from JavaMail), it will be closed immediately if construction fails, preventing a thread hang.
- Parameters:
message- the multipart message containing the content and the signature.- Throws:
javax.mail.MessagingException- on an error extracting the signature or otherwise processing the message.org.bouncycastle.cms.CMSException- if some other problem occurs.
-
getSafeInstance
public static SMIMESigned getSafeInstance(javax.mail.internet.MimeMultipart message, String defaultEncoding) throws javax.mail.MessagingException, org.bouncycastle.cms.CMSException Create a new SMIMESigned object from a MimeMultipart with a default content transfer encoding.Note: This method ensures that if the input stream is a PipedInputStream, it will be closed immediately if construction fails.
- Parameters:
message- the multipart message containing the content and the signature.defaultEncoding- the default encoding to use for the message content.- Throws:
javax.mail.MessagingException- on an error extracting the signature or otherwise processing the message.org.bouncycastle.cms.CMSException- if some other problem occurs.
-
getSafeInstance
public static SMIMESigned getSafeInstance(javax.mail.Part message) throws javax.mail.MessagingException, org.bouncycastle.cms.CMSException Create a new SMIMESigned object from a Part.Note: This method ensures that if the input stream is a PipedInputStream, it will be closed immediately if construction fails.
- Parameters:
message- the message part containing the signed data.- Throws:
javax.mail.MessagingException- on an error extracting the signature or otherwise processing the message.org.bouncycastle.cms.CMSException- if some other problem occurs.
-
getContent
public javax.mail.internet.MimeBodyPart getContent()return the content that was signed. -
getContentAsMimeMessage
public javax.mail.internet.MimeMessage getContentAsMimeMessage(javax.mail.Session session) throws javax.mail.MessagingException, IOException Return the content that was signed as a mime message.- Parameters:
session-- Returns:
- a MimeMessage holding the content.
- Throws:
javax.mail.MessagingExceptionIOException
-
getContentWithSignature
return the content that was signed - depending on whether this was unencapsulated or not it will return a MimeMultipart or a MimeBodyPart
-