Kid Alchemy,

This is the wrong list for BouncyCastle questions!
-Anders

Anyway, here is an extract from code that I use (I'm not an expert of CMS):

import org.bouncycastle.cms.CMSException;
import org.bouncycastle.cms.CMSProcessableByteArray;
import org.bouncycastle.cms.CMSSignedData;
import org.bouncycastle.cms.SignerInformation;

public class VerifyProxy
  {
    public byte[] getAndVerifySignedData (byte[] signedData, 
List<X509Certificate> caCerts) throws SignatureException, CMSException, 
IOException, GeneralSecurityException
    {
        CMSSignedData csd = new CMSSignedData(signedData);
        CertStore certs = csd.getCertificatesAndCRLs("Collection", "BC");
        SignerInformation signer = (SignerInformation) 
csd.getSignerInfos().getSigners().iterator().next();
        Collection<? extends Certificate> certCollection = 
certs.getCertificates(signer.getSID());
        X509Certificate cert = (X509Certificate) 
certCollection.iterator().next();
        if (!signer.verify(cert.getPublicKey(), "BC")) {
            throw new SignatureException ("Signature Error");
        }
        for (X509Certificate caCert : caCerts) {
                if (cert.getIssuerX500Principal().getName 
().equals(caCert.getSubjectX500Principal().getName ())) {
                cert.verify(caCert.getPublicKey());
                CMSProcessableByteArray cpb = (CMSProcessableByteArray) 
csd.getSignedContent();
                byte[] signedContent = (byte[]) cpb.getContent();
                return signedContent;
                }
        }
        throw new SignatureException ("No CA key matching: " + 
cert.getIssuerX500Principal().getName());
    }
 2012-09-14 15:51, KidAlchemy wrote:
> On Friday, August 17, 2012 5:44:40 AM UTC-4, Anders Rundgren wrote:
>> On 2012-08-15 21:35, KidAlchemy wrote:
>>
>>> On Thursday, August 9, 2012 10:26:12 AM UTC-4, KidAlchemy wrote:
>>
>>>> I want to use the JSS library just to parse the CMS package into the 
>>>> specific structures that are provided by JSS.  I can get the signedData, 
>>>> then I call signedData.getContentInfo(), which gives me the 
>>>> encapsulatedContentInfo populated structure and this works fine.
>>
>>>>
>>
>>>>
>>
>>>>
>>
>>>> The problem: The encapsulatedContentInfo now contains a 
>>>> id-ct-KP-encryptedKeyPkg. How do I proceed with my parsing from here? The 
>>>> encapsulatedContentInfo.getContent() returns an OCTET_STRING but I dont 
>>>> know what to do with it from here.
>>
>>>>
>>
>>>>
>>
>>>>
>>
>>>> Can you provide some code examples in Java for me?
>>
>>>
>>
>>> Anyone have a clue?
>>
>>
>>
>> Yes, DO NOT use JSS if you want to consume (parser) cryptographic messages.
>>
>> JSS is essentially unsupported.  BouncyCastle has the stuff you are looking 
>> for.
>>
>>
>>
>>>
> Can you answer this...why cant I find an example that starts from the 
> beginning, meaning reading in a whole CMS package and use JSS and bouncy 
> castle to parse it?
> 

-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to