org.spongycastle.mail.smime.SMIMEEnvelopedParser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scprov-jdk15 Show documentation
Show all versions of scprov-jdk15 Show documentation
Spongy Castle is a package-rename (org.bouncycastle.* to org.spongycastle.*) of Bouncy Castle intended for Android.
Android ships with a stripped-down version of Bouncy Castle - this causes classloader collisions if you try to add
an alternative (updated/complete) Bouncy Castle jar.
This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.5.
package org.spongycastle.mail.smime;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.mail.MessagingException;
import javax.mail.Part;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimePart;
import org.spongycastle.cms.CMSEnvelopedDataParser;
import org.spongycastle.cms.CMSException;
/**
* Stream based containing class for an S/MIME pkcs7-mime encrypted MimePart.
*/
public class SMIMEEnvelopedParser
extends CMSEnvelopedDataParser
{
private final MimePart message;
private static InputStream getInputStream(
Part bodyPart,
int bufferSize)
throws MessagingException
{
try
{
InputStream in = bodyPart.getInputStream();
if (bufferSize == 0)
{
return new BufferedInputStream(in);
}
else
{
return new BufferedInputStream(in, bufferSize);
}
}
catch (IOException e)
{
throw new MessagingException("can't extract input stream: " + e);
}
}
public SMIMEEnvelopedParser(
MimeBodyPart message)
throws IOException, MessagingException, CMSException
{
this(message, 0);
}
public SMIMEEnvelopedParser(
MimeMessage message)
throws IOException, MessagingException, CMSException
{
this(message, 0);
}
/**
* Create a parser from a MimeBodyPart using the passed in buffer size
* for reading it.
*
* @param message body part to be parsed.
* @param bufferSize bufferSoze to be used.
*/
public SMIMEEnvelopedParser(
MimeBodyPart message,
int bufferSize)
throws IOException, MessagingException, CMSException
{
super(getInputStream(message, bufferSize));
this.message = message;
}
/**
* Create a parser from a MimeMessage using the passed in buffer size
* for reading it.
*
* @param message message to be parsed.
* @param bufferSize bufferSoze to be used.
*/
public SMIMEEnvelopedParser(
MimeMessage message,
int bufferSize)
throws IOException, MessagingException, CMSException
{
super(getInputStream(message, bufferSize));
this.message = message;
}
public MimePart getEncryptedContent()
{
return message;
}
}