当前位置: 首页>>代码示例>>Java>>正文


Java CMSEnvelopedDataStreamGenerator类代码示例

本文整理汇总了Java中org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator的典型用法代码示例。如果您正苦于以下问题:Java CMSEnvelopedDataStreamGenerator类的具体用法?Java CMSEnvelopedDataStreamGenerator怎么用?Java CMSEnvelopedDataStreamGenerator使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


CMSEnvelopedDataStreamGenerator类属于org.bouncycastle.cms包,在下文中一共展示了CMSEnvelopedDataStreamGenerator类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: writeTo

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
@Override
public void writeTo(EnvelopedOutput out, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> headers, OutputStream os) throws IOException, WebApplicationException {
    try {
        headers.putSingle("Content-Disposition", "attachment; filename=\"smime.p7m\"");
        headers.putSingle("Content-Type", "application/pkcs7-mime; smime-type=enveloped-data; name=\"smime.p7m\"");
        headers.putSingle("Content-Transfer-Encoding", "base64");

        OutputEncryptor encryptor = new JceCMSContentEncryptorBuilder(CMSAlgorithm.DES_EDE3_CBC)
                .setProvider("BC")
                .build();
        if (out.getCertificate() == null) {
            throw new NullPointerException("The certificate object was not set.");
        }
        JceKeyTransRecipientInfoGenerator infoGenerator = new JceKeyTransRecipientInfoGenerator(out.getCertificate());
        infoGenerator.setProvider("BC");
        CMSEnvelopedDataStreamGenerator generator = new CMSEnvelopedDataStreamGenerator();
        generator.addRecipientInfoGenerator(infoGenerator);


        MimeBodyPart message = createBodyPart(providers, out);

        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
        final OutputStream encrypted = generator.open(baos, encryptor);

        message.writeTo(encrypted);
        encrypted.close();
        byte[] bytes = baos.toByteArray();
        String str = Base64.encodeBytes(bytes, Base64.DO_BREAK_LINES);
        os.write(str.getBytes());
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
 
开发者ID:gini,项目名称:jersey-smime,代码行数:34,代码来源:EnvelopedWriter.java

示例2: testKeyTransAES128Throughput

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testKeyTransAES128Throughput()
    throws Exception
{
    byte[] data = new byte[40001];

    for (int i = 0; i != data.length; i++)
    {
        data[i] = (byte)(i & 0xff);
    }

    //
    // buffered
    //
    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    edGen.setBufferSize(BUFFER_SIZE);

    edGen.addRecipientInfoGenerator(new JceKeyTransRecipientInfoGenerator(_reciCert).setProvider(BC));

    ByteArrayOutputStream bOut = new ByteArrayOutputStream();

    OutputStream out = edGen.open(bOut, new JceCMSContentEncryptorBuilder(CMSAlgorithm.AES128_CBC).setProvider(BC).build());

    for (int i = 0; i != data.length; i++)
    {
        out.write(data[i]);
    }

    out.close();

    CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(bOut.toByteArray());
    RecipientInformationStore  recipients = ep.getRecipientInfos();
    Collection                 c = recipients.getRecipients();
    Iterator                   it = c.iterator();

    if (it.hasNext())
    {
        RecipientInformation   recipient = (RecipientInformation)it.next();

        assertEquals(recipient.getKeyEncryptionAlgOID(), PKCSObjectIdentifiers.rsaEncryption.getId());

        CMSTypedStream recData = recipient.getContentStream(new JceKeyTransEnvelopedRecipient(_reciKP.getPrivate()).setProvider(BC));

        InputStream           dataStream = recData.getContentStream();
        ByteArrayOutputStream dataOut = new ByteArrayOutputStream();
        int                   len;
        byte[]                buf = new byte[BUFFER_SIZE];
        int                   count = 0;

        while (count != 10 && (len = dataStream.read(buf)) > 0)
        {
            assertEquals(buf.length, len);

            dataOut.write(buf);
            count++;
        }

        len = dataStream.read(buf);
        dataOut.write(buf, 0, len);

        assertEquals(true, Arrays.equals(data, dataOut.toByteArray()));
    }
    else
    {
        fail("recipient not found.");
    }
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:68,代码来源:NewEnvelopedDataStreamTest.java

示例3: testKeyTransAES128Throughput

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testKeyTransAES128Throughput()
    throws Exception
{
    byte[] data = new byte[40001];
    
    for (int i = 0; i != data.length; i++)
    {
        data[i] = (byte)(i & 0xff);
    }
    
    //
    // buffered
    //
    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    edGen.setBufferSize(BUFFER_SIZE);
    
    edGen.addKeyTransRecipient(_reciCert);

    ByteArrayOutputStream bOut = new ByteArrayOutputStream();
    
    OutputStream out = edGen.open(bOut, CMSEnvelopedDataGenerator.AES128_CBC, BC);

    for (int i = 0; i != data.length; i++)
    {
        out.write(data[i]);
    }
    
    out.close();
    
    CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(bOut.toByteArray());
    RecipientInformationStore  recipients = ep.getRecipientInfos();
    Collection                 c = recipients.getRecipients();
    Iterator                   it = c.iterator();
    
    if (it.hasNext())
    {
        RecipientInformation   recipient = (RecipientInformation)it.next();

        assertEquals(recipient.getKeyEncryptionAlgOID(), PKCSObjectIdentifiers.rsaEncryption.getId());
        
        CMSTypedStream recData = recipient.getContentStream(_reciKP.getPrivate(), BC);
        
        InputStream           dataStream = recData.getContentStream();
        ByteArrayOutputStream dataOut = new ByteArrayOutputStream();
        int                   len;
        byte[]                buf = new byte[BUFFER_SIZE];
        int                   count = 0;
        
        while (count != 10 && (len = dataStream.read(buf)) > 0)
        {
            assertEquals(buf.length, len);
            
            dataOut.write(buf);
            count++;
        }
        
        len = dataStream.read(buf);
        dataOut.write(buf, 0, len);
        
        assertEquals(true, Arrays.equals(data, dataOut.toByteArray()));
    }
    else
    {
        fail("recipient not found.");
    }
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:68,代码来源:EnvelopedDataStreamTest.java

示例4: testKeyTransAES128Der

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testKeyTransAES128Der()
    throws Exception
{
    byte[] data = new byte[2000];

    for (int i = 0; i != 2000; i++)
    {
        data[i] = (byte)(i & 0xff);
    }

    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    edGen.addRecipientInfoGenerator(new JceKeyTransRecipientInfoGenerator(_reciCert).setProvider(BC));

    ByteArrayOutputStream  bOut = new ByteArrayOutputStream();

    OutputStream out = edGen.open(
                            bOut, new JceCMSContentEncryptorBuilder(CMSAlgorithm.AES128_CBC).setProvider(BC).build());

    for (int i = 0; i != 2000; i++)
    {
        out.write(data[i]);
    }

    out.close();

    // convert to DER
    ASN1InputStream aIn = new ASN1InputStream(bOut.toByteArray());

    bOut.reset();

    DEROutputStream dOut = new DEROutputStream(bOut);

    dOut.writeObject(aIn.readObject());

    verifyData(bOut, CMSEnvelopedDataGenerator.AES128_CBC, data);
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:38,代码来源:NewEnvelopedDataStreamTest.java

示例5: testKeyTransAES128

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testKeyTransAES128()
    throws Exception
{
    byte[]          data     = "WallaWallaWashington".getBytes();

    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    edGen.addRecipientInfoGenerator(new JceKeyTransRecipientInfoGenerator(_reciCert).setProvider(BC));

    ByteArrayOutputStream  bOut = new ByteArrayOutputStream();

    OutputStream out = edGen.open(
                            bOut, new JceCMSContentEncryptorBuilder(CMSAlgorithm.AES128_CBC).setProvider(BC).build());

    out.write(data);

    out.close();

    CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(bOut.toByteArray());

    RecipientInformationStore  recipients = ep.getRecipientInfos();

    assertEquals(ep.getEncryptionAlgOID(), CMSEnvelopedDataGenerator.AES128_CBC);

    Collection  c = recipients.getRecipients();
    Iterator    it = c.iterator();

    while (it.hasNext())
    {
        RecipientInformation   recipient = (RecipientInformation)it.next();

        assertEquals(recipient.getKeyEncryptionAlgOID(), PKCSObjectIdentifiers.rsaEncryption.getId());

        CMSTypedStream recData = recipient.getContentStream(new JceKeyTransEnvelopedRecipient(_reciKP.getPrivate()).setProvider(BC));

        assertEquals(true, Arrays.equals(data, CMSTestUtil.streamToByteArray(recData.getContentStream())));
    }

    ep.close();
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:41,代码来源:NewEnvelopedDataStreamTest.java

示例6: testECKeyAgree

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testECKeyAgree()
    throws Exception
{
    byte[] data = Hex.decode("504b492d4320434d5320456e76656c6f706564446174612053616d706c65");

    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    JceKeyAgreeRecipientInfoGenerator recipientGenerator = new JceKeyAgreeRecipientInfoGenerator(CMSAlgorithm.ECDH_SHA1KDF, _origEcKP.getPrivate(), _origEcKP.getPublic(), CMSAlgorithm.AES128_WRAP).setProvider(BC);

    recipientGenerator.addRecipient(_reciEcCert);

    edGen.addRecipientInfoGenerator(recipientGenerator);
    
    ByteArrayOutputStream  bOut = new ByteArrayOutputStream();

    OutputStream out = edGen.open(
                            bOut,
                            new JceCMSContentEncryptorBuilder(CMSAlgorithm.AES128_CBC).setProvider(BC).build());
    out.write(data);

    out.close();

    CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(bOut.toByteArray());

    RecipientInformationStore  recipients = ep.getRecipientInfos();

    assertEquals(ep.getEncryptionAlgOID(), CMSEnvelopedDataGenerator.AES128_CBC);

    RecipientId                recSel = new JceKeyAgreeRecipientId(_reciEcCert);

    RecipientInformation       recipient = recipients.get(recSel);

    CMSTypedStream recData = recipient.getContentStream(new JceKeyAgreeEnvelopedRecipient(_reciEcKP.getPrivate()).setProvider(BC));

    assertEquals(true, Arrays.equals(data, CMSTestUtil.streamToByteArray(recData.getContentStream())));

    ep.close();
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:39,代码来源:NewEnvelopedDataStreamTest.java

示例7: testKeyTransAES128Der

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testKeyTransAES128Der()
    throws Exception
{
    byte[] data = new byte[2000];
    
    for (int i = 0; i != 2000; i++)
    {
        data[i] = (byte)(i & 0xff);
    }

    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    edGen.addKeyTransRecipient(_reciCert);

    ByteArrayOutputStream  bOut = new ByteArrayOutputStream();
    
    OutputStream out = edGen.open(
                            bOut, CMSEnvelopedDataGenerator.AES128_CBC, BC);

    for (int i = 0; i != 2000; i++)
    {
        out.write(data[i]);
    }
    
    out.close();
    
    // convert to DER
    ASN1InputStream aIn = new ASN1InputStream(bOut.toByteArray());
    
    bOut.reset();
    
    DEROutputStream dOut = new DEROutputStream(bOut);
    
    dOut.writeObject(aIn.readObject());
  
    verifyData(bOut, CMSEnvelopedDataGenerator.AES128_CBC, data);
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:38,代码来源:EnvelopedDataStreamTest.java

示例8: testKeyTransAES128

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testKeyTransAES128()
    throws Exception
{
    byte[]          data     = "WallaWallaWashington".getBytes();
    
    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    edGen.addKeyTransRecipient(_reciCert);

    ByteArrayOutputStream  bOut = new ByteArrayOutputStream();
    
    OutputStream out = edGen.open(
                            bOut, CMSEnvelopedDataGenerator.AES128_CBC, BC);

    out.write(data);
    
    out.close();
    
    CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(bOut.toByteArray());

    RecipientInformationStore  recipients = ep.getRecipientInfos();

    assertEquals(ep.getEncryptionAlgOID(), CMSEnvelopedDataGenerator.AES128_CBC);
    
    Collection  c = recipients.getRecipients();
    Iterator    it = c.iterator();
    
    while (it.hasNext())
    {
        RecipientInformation   recipient = (RecipientInformation)it.next();

        assertEquals(recipient.getKeyEncryptionAlgOID(), PKCSObjectIdentifiers.rsaEncryption.getId());
        
        CMSTypedStream recData = recipient.getContentStream(_reciKP.getPrivate(), BC);
        
        assertEquals(true, Arrays.equals(data, CMSTestUtil.streamToByteArray(recData.getContentStream())));
    }
    
    ep.close();
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:41,代码来源:EnvelopedDataStreamTest.java

示例9: testECKeyAgree

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testECKeyAgree()
    throws Exception
{
    byte[] data = Hex.decode("504b492d4320434d5320456e76656c6f706564446174612053616d706c65");

    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    edGen.addKeyAgreementRecipient(CMSEnvelopedDataGenerator.ECDH_SHA1KDF, _origEcKP.getPrivate(), _origEcKP.getPublic(), _reciEcCert, CMSEnvelopedDataGenerator.AES128_WRAP, BC);

    ByteArrayOutputStream  bOut = new ByteArrayOutputStream();

    OutputStream out = edGen.open(
                            bOut,
                            CMSEnvelopedDataGenerator.AES128_CBC, BC);
    out.write(data);

    out.close();

    CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(bOut.toByteArray());

    RecipientInformationStore  recipients = ep.getRecipientInfos();

    assertEquals(ep.getEncryptionAlgOID(), CMSEnvelopedDataGenerator.AES128_CBC);

    RecipientId                recSel = new JceKeyAgreeRecipientId(_reciEcCert);

    RecipientInformation       recipient = recipients.get(recSel);

    CMSTypedStream recData = recipient.getContentStream(_reciEcKP.getPrivate(), BC);

    assertEquals(true, Arrays.equals(data, CMSTestUtil.streamToByteArray(recData.getContentStream())));

    ep.close();
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:35,代码来源:EnvelopedDataStreamTest.java

示例10: testUnprotectedAttributes

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testUnprotectedAttributes()
    throws Exception
{
    byte[]          data     = "WallaWallaWashington".getBytes();

    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    edGen.addRecipientInfoGenerator(new JceKeyTransRecipientInfoGenerator(_reciCert).setProvider(BC));

    Hashtable attrs = new Hashtable();

    attrs.put(PKCSObjectIdentifiers.id_aa_contentHint, new Attribute(PKCSObjectIdentifiers.id_aa_contentHint, new DERSet(new DERUTF8String("Hint"))));
    attrs.put(PKCSObjectIdentifiers.id_aa_receiptRequest, new Attribute(PKCSObjectIdentifiers.id_aa_receiptRequest, new DERSet(new DERUTF8String("Request"))));

    AttributeTable attrTable = new AttributeTable(attrs);

    edGen.setUnprotectedAttributeGenerator(new SimpleAttributeTableGenerator(attrTable));

    ByteArrayOutputStream  bOut = new ByteArrayOutputStream();

    OutputStream out = edGen.open(
                            bOut, new JceCMSContentEncryptorBuilder(CMSAlgorithm.AES128_CBC).setProvider(BC).build());

    out.write(data);

    out.close();

    CMSEnvelopedDataParser ed = new CMSEnvelopedDataParser(bOut.toByteArray());

    RecipientInformationStore  recipients = ed.getRecipientInfos();

    Collection  c = recipients.getRecipients();

    assertEquals(1, c.size());

    Iterator    it = c.iterator();

    while (it.hasNext())
    {
        RecipientInformation   recipient = (RecipientInformation)it.next();

        assertEquals(recipient.getKeyEncryptionAlgOID(), PKCSObjectIdentifiers.rsaEncryption.getId());

        byte[] recData = recipient.getContent(new JceKeyTransEnvelopedRecipient(_reciKP.getPrivate()).setProvider(BC));

        assertEquals(true, Arrays.equals(data, recData));
    }

    attrTable = ed.getUnprotectedAttributes();

    assertEquals(attrs.size(), 2);

    assertEquals(new DERUTF8String("Hint"), attrTable.get(PKCSObjectIdentifiers.id_aa_contentHint).getAttrValues().getObjectAt(0));
    assertEquals(new DERUTF8String("Request"), attrTable.get(PKCSObjectIdentifiers.id_aa_receiptRequest).getAttrValues().getObjectAt(0));

}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:57,代码来源:NewEnvelopedDataStreamTest.java

示例11: testKeyTransAES128AndOriginatorInfo

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testKeyTransAES128AndOriginatorInfo()
    throws Exception
{
    byte[]          data     = "WallaWallaWashington".getBytes();

    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    X509CertificateHolder origCert = new X509CertificateHolder(_origCert.getEncoded());

    edGen.setOriginatorInfo(new OriginatorInfoGenerator(origCert).generate());

    edGen.addRecipientInfoGenerator(new JceKeyTransRecipientInfoGenerator(_reciCert).setProvider(BC));

    ByteArrayOutputStream  bOut = new ByteArrayOutputStream();

    OutputStream out = edGen.open(
                            bOut, new JceCMSContentEncryptorBuilder(CMSAlgorithm.AES128_CBC).setProvider(BC).build());

    out.write(data);

    out.close();

    CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(bOut.toByteArray());

    assertTrue(ep.getOriginatorInfo().getCertificates().getMatches(null).contains(origCert));

    RecipientInformationStore  recipients = ep.getRecipientInfos();

    assertEquals(ep.getEncryptionAlgOID(), CMSEnvelopedDataGenerator.AES128_CBC);

    Collection  c = recipients.getRecipients();
    Iterator    it = c.iterator();

    while (it.hasNext())
    {
        RecipientInformation   recipient = (RecipientInformation)it.next();

        assertEquals(recipient.getKeyEncryptionAlgOID(), PKCSObjectIdentifiers.rsaEncryption.getId());

        CMSTypedStream recData = recipient.getContentStream(new JceKeyTransEnvelopedRecipient(_reciKP.getPrivate()).setProvider(BC));

        assertEquals(true, Arrays.equals(data, CMSTestUtil.streamToByteArray(recData.getContentStream())));
    }

    ep.close();
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:47,代码来源:NewEnvelopedDataStreamTest.java

示例12: testKeyTransCAST5SunJCE

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testKeyTransCAST5SunJCE()
    throws Exception
{
    if (Security.getProvider("SunJCE") == null)
    {
        return;
    }

    String version = System.getProperty("java.version");
    if (version.startsWith("1.4") || version.startsWith("1.3"))
    {
        return;
    }

    byte[]          data     = "WallaWallaWashington".getBytes();

    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    edGen.addRecipientInfoGenerator(new JceKeyTransRecipientInfoGenerator(_reciCert).setProvider("SunJCE"));

    ByteArrayOutputStream  bOut = new ByteArrayOutputStream();

    OutputStream out = edGen.open(
                            bOut, new JceCMSContentEncryptorBuilder(CMSAlgorithm.CAST5_CBC).setProvider(BC).build());

    out.write(data);

    out.close();

    CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(bOut.toByteArray());

    RecipientInformationStore  recipients = ep.getRecipientInfos();

    assertEquals(ep.getEncryptionAlgOID(), CMSEnvelopedDataGenerator.CAST5_CBC);

    Collection  c = recipients.getRecipients();
    Iterator    it = c.iterator();

    while (it.hasNext())
    {
        RecipientInformation   recipient = (RecipientInformation)it.next();

        assertEquals(recipient.getKeyEncryptionAlgOID(), PKCSObjectIdentifiers.rsaEncryption.getId());

        CMSTypedStream recData = recipient.getContentStream(new JceKeyTransEnvelopedRecipient(_reciKP.getPrivate()).setProvider("SunJCE").setContentProvider(BC));

        assertEquals(true, Arrays.equals(data, CMSTestUtil.streamToByteArray(recData.getContentStream())));
    }

    ep.close();
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:52,代码来源:NewEnvelopedDataStreamTest.java

示例13: testAESKEK

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testAESKEK()
    throws Exception
{
    byte[]    data = "WallaWallaWashington".getBytes();
    SecretKey kek  = CMSTestUtil.makeAES192Key();

    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    byte[]  kekId = new byte[] { 1, 2, 3, 4, 5 };

    edGen.addRecipientInfoGenerator(new JceKEKRecipientInfoGenerator(kekId, kek).setProvider(BC));

    ByteArrayOutputStream  bOut = new ByteArrayOutputStream();

    OutputStream out = edGen.open(
                            bOut,
                            new JceCMSContentEncryptorBuilder(CMSAlgorithm.DES_EDE3_CBC).setProvider(BC).build());
    out.write(data);

    out.close();

    CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(bOut.toByteArray());

    RecipientInformationStore  recipients = ep.getRecipientInfos();

    assertEquals(ep.getEncryptionAlgOID(), CMSEnvelopedDataGenerator.DES_EDE3_CBC);

    Collection  c = recipients.getRecipients();
    Iterator    it = c.iterator();

    while (it.hasNext())
    {
        RecipientInformation   recipient = (RecipientInformation)it.next();

        assertEquals(recipient.getKeyEncryptionAlgOID(), "2.16.840.1.101.3.4.1.25");

        CMSTypedStream recData = recipient.getContentStream(new JceKEKEnvelopedRecipient(kek).setProvider(BC));

        assertEquals(true, Arrays.equals(data, CMSTestUtil.streamToByteArray(recData.getContentStream())));
    }

    ep.close();
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:44,代码来源:NewEnvelopedDataStreamTest.java

示例14: testTwoAESKEK

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testTwoAESKEK()
    throws Exception
{
    byte[]    data = "WallaWallaWashington".getBytes();
    SecretKey kek1  = CMSTestUtil.makeAES192Key();
    SecretKey kek2  = CMSTestUtil.makeAES192Key();

    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    byte[]  kekId1 = new byte[] { 1, 2, 3, 4, 5 };
    byte[]  kekId2 = new byte[] { 5, 4, 3, 2, 1 };

    edGen.addRecipientInfoGenerator(new JceKEKRecipientInfoGenerator(kekId1, kek1).setProvider(BC));
    edGen.addRecipientInfoGenerator(new JceKEKRecipientInfoGenerator(kekId2, kek2).setProvider(BC));

    ByteArrayOutputStream  bOut = new ByteArrayOutputStream();

    OutputStream out = edGen.open(
                            bOut,
                            new JceCMSContentEncryptorBuilder(CMSAlgorithm.DES_EDE3_CBC).setProvider(BC).build());
    out.write(data);

    out.close();

    CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(bOut.toByteArray());

    RecipientInformationStore  recipients = ep.getRecipientInfos();

    assertEquals(ep.getEncryptionAlgOID(), CMSEnvelopedDataGenerator.DES_EDE3_CBC);

    RecipientId                recSel = new KEKRecipientId(kekId2);

    RecipientInformation       recipient = recipients.get(recSel);

    assertEquals(recipient.getKeyEncryptionAlgOID(), "2.16.840.1.101.3.4.1.25");

    CMSTypedStream recData = recipient.getContentStream(new JceKEKEnvelopedRecipient(kek2).setProvider(BC));

    assertEquals(true, Arrays.equals(data, CMSTestUtil.streamToByteArray(recData.getContentStream())));

    ep.close();
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:43,代码来源:NewEnvelopedDataStreamTest.java

示例15: testKeyTransCAST5SunJCE

import org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator; //导入依赖的package包/类
public void testKeyTransCAST5SunJCE()
    throws Exception
{
    if (Security.getProvider("SunJCE") == null)
    {
        return;
    }
    
    String version = System.getProperty("java.version");
    if (version.startsWith("1.4") || version.startsWith("1.3"))
    {
        return;
    }
    
    byte[]          data     = "WallaWallaWashington".getBytes();
    
    CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

    edGen.addKeyTransRecipient(_reciCert);

    ByteArrayOutputStream  bOut = new ByteArrayOutputStream();
    
    OutputStream out = edGen.open(
                            bOut, CMSEnvelopedDataGenerator.CAST5_CBC, "SunJCE");

    out.write(data);
    
    out.close();
    
    CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(bOut.toByteArray());

    RecipientInformationStore  recipients = ep.getRecipientInfos();

    assertEquals(ep.getEncryptionAlgOID(), CMSEnvelopedDataGenerator.CAST5_CBC);
    
    Collection  c = recipients.getRecipients();
    Iterator    it = c.iterator();
    
    while (it.hasNext())
    {
        RecipientInformation   recipient = (RecipientInformation)it.next();

        assertEquals(recipient.getKeyEncryptionAlgOID(), PKCSObjectIdentifiers.rsaEncryption.getId());
        
        CMSTypedStream recData = recipient.getContentStream(_reciKP.getPrivate(), "SunJCE");
        
        assertEquals(true, Arrays.equals(data, CMSTestUtil.streamToByteArray(recData.getContentStream())));
    }
    
    ep.close();
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:52,代码来源:EnvelopedDataStreamTest.java


注:本文中的org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。