Class CMSEnvelopedDataParser


  • public class CMSEnvelopedDataParser
    extends CMSContentInfoParser
    Parsing class for an CMS Enveloped Data object from an input stream.

    Note: that because we are in a streaming mode only one recipient can be tried and it is important that the methods on the parser are called in the appropriate order.

    Example of use - assuming the first recipient matches the private key we have.

          CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(inputStream);
    
          RecipientInformationStore  recipients = ep.getRecipientInfos();
    
          Collection  c = recipients.getRecipients();
          Iterator    it = c.iterator();
          
          if (it.hasNext())
          {
              RecipientInformation   recipient = (RecipientInformation)it.next();
    
              CMSTypedStream recData = recipient.getContentStream(new JceKeyTransEnvelopedRecipient(privateKey).setProvider("BC"));
              
              processDataStream(recData.getContentStream());
          }
      
    Note: this class does not introduce buffering - if you are processing large files you should create the parser with:
              CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
      
    where bufSize is a suitably large buffer size.
    • Constructor Detail

      • CMSEnvelopedDataParser

        public CMSEnvelopedDataParser​(byte[] envelopedData)
                               throws CMSException,
                                      java.io.IOException
        Throws:
        CMSException
        java.io.IOException
      • CMSEnvelopedDataParser

        public CMSEnvelopedDataParser​(java.io.InputStream envelopedData)
                               throws CMSException,
                                      java.io.IOException
        Throws:
        CMSException
        java.io.IOException
    • Method Detail

      • getEncryptionAlgOID

        public java.lang.String getEncryptionAlgOID()
        return the object identifier for the content encryption algorithm.
      • getEncryptionAlgParams

        public byte[] getEncryptionAlgParams()
        return the ASN.1 encoded encryption algorithm parameters, or null if there aren't any.
      • getContentEncryptionAlgorithm

        public org.bouncycastle.asn1.x509.AlgorithmIdentifier getContentEncryptionAlgorithm()
        Return the content encryption algorithm details for the data in this object.
        Returns:
        AlgorithmIdentifier representing the content encryption algorithm.
      • getOriginatorInfo

        public OriginatorInformation getOriginatorInfo()
        Return the originator information associated with this message if present.
        Returns:
        OriginatorInformation, null if not present.
      • getRecipientInfos

        public RecipientInformationStore getRecipientInfos()
        return a store of the intended recipients for this message
      • getUnprotectedAttributes

        public org.bouncycastle.asn1.cms.AttributeTable getUnprotectedAttributes()
                                                                          throws java.io.IOException
        return a table of the unprotected attributes indexed by the OID of the attribute.
        Throws:
        java.io.IOException