org.bouncycastle.cms

Class CMSEnvelopedDataStreamGenerator


public class CMSEnvelopedDataStreamGenerator
extends java.lang.Object

General class for generating a CMS enveloped-data message stream.

A simple example of usage.

      CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

      edGen.addKeyTransRecipient(cert);

      ByteArrayOutputStream  bOut = new ByteArrayOutputStream();
      
      OutputStream out = edGen.open(
                              bOut, CMSEnvelopedDataGenerator.AES128_CBC, "BC");*
      out.write(data);
      
      out.close();
 

Field Summary

static String
AES128_CBC
static String
AES192_CBC
static String
AES256_CBC
static String
CAST5_CBC
static String
DES_EDE3_CBC
static String
IDEA_CBC
static String
RC2_CBC

Constructor Summary

CMSEnvelopedDataStreamGenerator()
base constructor

Method Summary

void
addKEKRecipient(SecretKey key, byte[] keyIdentifier)
add a KEK recipient.
void
addKeyTransRecipient(PublicKey key, byte[] subKeyId)
add a recipient
void
addKeyTransRecipient(X509Certificate cert)
add a recipient.
protected OutputStream
open(OutputStream out, String encryptionOID, SecretKey encKey, AlgorithmParameters params, ASN1EncodableVector recipientInfos, String provider)
OutputStream
open(OutputStream out, String encryptionOID, String provider)
generate an enveloped object that contains an CMS Enveloped Data object using the given provider.
OutputStream
open(OutputStream out, String encryptionOID, int keySize, String provider)
generate an enveloped object that contains an CMS Enveloped Data object using the given provider.
void
setBEREncodeRecipients(boolean berEncodeRecipientSet)
Use a BER Set to store the recipient information
void
setBufferSize(int bufferSize)
Set the underlying string size for encapsulated data

Field Details

AES128_CBC

public static final String AES128_CBC

AES192_CBC

public static final String AES192_CBC

AES256_CBC

public static final String AES256_CBC

CAST5_CBC

public static final String CAST5_CBC

DES_EDE3_CBC

public static final String DES_EDE3_CBC

IDEA_CBC

public static final String IDEA_CBC

RC2_CBC

public static final String RC2_CBC

Constructor Details

CMSEnvelopedDataStreamGenerator

public CMSEnvelopedDataStreamGenerator()
base constructor

Method Details

addKEKRecipient

public void addKEKRecipient(SecretKey key,
                            byte[] keyIdentifier)
            throws IllegalArgumentException
add a KEK recipient.

addKeyTransRecipient

public void addKeyTransRecipient(PublicKey key,
                                 byte[] subKeyId)
            throws IllegalArgumentException
add a recipient
Parameters:
key - the public key used by the recipient
subKeyId - the identifier for the recipient's public key

addKeyTransRecipient

public void addKeyTransRecipient(X509Certificate cert)
            throws IllegalArgumentException
add a recipient.

open

protected OutputStream open(OutputStream out,
                            String encryptionOID,
                            SecretKey encKey,
                            AlgorithmParameters params,
                            ASN1EncodableVector recipientInfos,
                            String provider)
            throws NoSuchAlgorithmException,
                   NoSuchProviderException,
                   CMSException

open

public OutputStream open(OutputStream out,
                         String encryptionOID,
                         String provider)
            throws NoSuchAlgorithmException,
                   NoSuchProviderException,
                   CMSException,
                   IOException
generate an enveloped object that contains an CMS Enveloped Data object using the given provider.

open

public OutputStream open(OutputStream out,
                         String encryptionOID,
                         int keySize,
                         String provider)
            throws NoSuchAlgorithmException,
                   NoSuchProviderException,
                   CMSException,
                   IOException
generate an enveloped object that contains an CMS Enveloped Data object using the given provider.

setBEREncodeRecipients

public void setBEREncodeRecipients(boolean berEncodeRecipientSet)
Use a BER Set to store the recipient information

setBufferSize

public void setBufferSize(int bufferSize)
Set the underlying string size for encapsulated data
Parameters:
bufferSize - length of octet strings to buffer the data.