Class CMSAuthenticatedDataParser


  • public class CMSAuthenticatedDataParser
    extends CMSContentInfoParser
    Parsing class for an CMS Authenticated 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. CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream); RecipientInformationStore recipients = ad.getRecipientInfos(); Collection c = recipients.getRecipients(); Iterator it = c.iterator(); if (it.hasNext()) { RecipientInformation recipient = (RecipientInformation)it.next(); CMSTypedStream recData = recipient.getContentStream(new JceKeyTransAuthenticatedRecipient(privateKey).setProvider("BC")); processDataStream(recData.getContentStream()); if (!Arrays.equals(ad.getMac(), recipient.getMac()) { System.err.println("Data corrupted!!!!"); } } Note: this class does not introduce buffering - if you are processing large files you should create the parser with: CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize)); where bufSize is a suitably large buffer size.

    • Constructor Detail

      • CMSAuthenticatedDataParser

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

        public CMSAuthenticatedDataParser​(byte[] envelopedData,
                                          org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider)
                                   throws CMSException,
                                          java.io.IOException
        Throws:
        CMSException
        java.io.IOException
      • CMSAuthenticatedDataParser

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

        public CMSAuthenticatedDataParser​(java.io.InputStream envelopedData,
                                          org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider)
                                   throws CMSException,
                                          java.io.IOException
        Throws:
        CMSException
        java.io.IOException
    • Method Detail

      • getOriginatorInfo

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

        public org.bouncycastle.asn1.x509.AlgorithmIdentifier getMacAlgorithm()
        Return the MAC algorithm details for the MAC associated with the data in this object.
        Returns:
        AlgorithmIdentifier representing the MAC algorithm.
      • getMacAlgOID

        public java.lang.String getMacAlgOID()
        return the object identifier for the mac algorithm.
      • getMacAlgParams

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

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

        public byte[] getMac()
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • getAuthAttrs

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

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

        public byte[] getContentDigest()
        This will only be valid after the content has been read.
        Returns:
        the contents of the messageDigest attribute, if available. Null if not present.