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


Java CMSEnvelopedDataGenerator.generate方法代码示例

本文整理汇总了Java中org.bouncycastle.cms.CMSEnvelopedDataGenerator.generate方法的典型用法代码示例。如果您正苦于以下问题:Java CMSEnvelopedDataGenerator.generate方法的具体用法?Java CMSEnvelopedDataGenerator.generate怎么用?Java CMSEnvelopedDataGenerator.generate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.bouncycastle.cms.CMSEnvelopedDataGenerator的用法示例。


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

示例1: encrypt

import org.bouncycastle.cms.CMSEnvelopedDataGenerator; //导入方法依赖的package包/类
private byte[] encrypt(byte[] data) throws CertificateEncodingException,
		CMSException, IOException {
	CMSEnvelopedDataGenerator cmsEnvelopedDataGenerator = new CMSEnvelopedDataGenerator();
	for (X509Certificate destinationCertificate : this.destinationCertificates) {
		cmsEnvelopedDataGenerator
				.addRecipientInfoGenerator(new JceKeyTransRecipientInfoGenerator(
						destinationCertificate)
						.setProvider(BouncyCastleProvider.PROVIDER_NAME));
	}
	CMSTypedData cmsTypedData = new CMSProcessableByteArray(data);
	CMSEnvelopedData cmsEnvelopedData = cmsEnvelopedDataGenerator.generate(
			cmsTypedData,
			new JceCMSContentEncryptorBuilder(CMSAlgorithm.AES128_CBC)
					.setProvider(BouncyCastleProvider.PROVIDER_NAME)
					.build());
	return cmsEnvelopedData.getEncoded();
}
 
开发者ID:e-Contract,项目名称:mycarenet,代码行数:18,代码来源:Sealer.java

示例2: testECKeyAgree

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

    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

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

    CMSEnvelopedData ed = edGen.generate(
        new CMSProcessableByteArray(data),
        CMSEnvelopedDataGenerator.AES128_CBC, BC);

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

    RecipientInformationStore recipients = ed.getRecipientInfos();

    confirmDataReceived(recipients, data, _reciEcCert, _reciEcKP.getPrivate(), BC);
    confirmNumberRecipients(recipients, 1);
}
 
开发者ID:mlundblad,项目名称:bc-java,代码行数:23,代码来源:EnvelopedDataTest.java

示例3: testECKeyAgree

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

    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

    edGen.addRecipientInfoGenerator(new JceKeyAgreeRecipientInfoGenerator(CMSAlgorithm.ECDH_SHA1KDF,
        _origEcKP.getPrivate(), _origEcKP.getPublic(),
         CMSAlgorithm.AES128_WRAP).addRecipient(_reciEcCert).setProvider(BC));

    CMSEnvelopedData ed = edGen.generate(
        new CMSProcessableByteArray(data),
        new BcCMSContentEncryptorBuilder(CMSAlgorithm.AES128_CBC).build());

    assertEquals(ed.getEncryptionAlgOID(), CMSAlgorithm.AES128_CBC.getId());

    RecipientInformationStore recipients = ed.getRecipientInfos();

    confirmDataReceived(recipients, data, _reciEcCert, _reciEcKP.getPrivate(), BC);
    confirmNumberRecipients(recipients, 1);
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:23,代码来源:BcEnvelopedDataTest.java

示例4: testKeyTransLight128RC4

import org.bouncycastle.cms.CMSEnvelopedDataGenerator; //导入方法依赖的package包/类
private void testKeyTransLight128RC4()
        throws Exception
{
    byte[]          data     = "WallaWallaBouncyCastle".getBytes();

    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

    edGen.addRecipientInfoGenerator(new BcRSAKeyTransRecipientInfoGenerator(_reciCert));

    CMSEnvelopedData ed = edGen.generate(
        new CMSProcessableByteArray(data),
        new BcCMSContentEncryptorBuilder(NISTObjectIdentifiers.id_aes128_CBC).build());

    RecipientInformationStore recipients = ed.getRecipientInfos();

    if (!ed.getEncryptionAlgOID().equals(NISTObjectIdentifiers.id_aes128_CBC.getId()))
    {
        fail("enc oid mismatch");
    }

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

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

        byte[] recData = recipient.getContent(new BcRSAKeyTransEnvelopedRecipient((AsymmetricKeyParameter)_reciKP.getPrivate()));

        if (!Arrays.areEqual(data, recData))
        {
            fail("decryption failed");
        }
    }
    else
    {
        fail("no recipient found");
    }
}
 
开发者ID:ttt43ttt,项目名称:gwt-crypto,代码行数:40,代码来源:BcEnvelopedDataTest.java

示例5: tryKekAlgorithm

import org.bouncycastle.cms.CMSEnvelopedDataGenerator; //导入方法依赖的package包/类
private void tryKekAlgorithm(BcSymmetricKeyWrapper kekWrapper, BcSymmetricKeyUnwrapper kekUnwrapper, ASN1ObjectIdentifier algOid)
    throws NoSuchAlgorithmException, NoSuchProviderException, CMSException
{
    byte[]    data = "WallaWallaWashington".getBytes();
    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

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

    edGen.addRecipientInfoGenerator(new BcKEKRecipientInfoGenerator(kekId, kekWrapper));

    CMSEnvelopedData ed = edGen.generate(
                            new CMSProcessableByteArray(data),
                            new BcCMSContentEncryptorBuilder(CMSAlgorithm.DES_EDE3_CBC).build());

    RecipientInformationStore recipients = ed.getRecipientInfos();

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

    assertEquals(ed.getEncryptionAlgOID(), CMSAlgorithm.DES_EDE3_CBC.getId());

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

        assertEquals(algOid.getId(), recipient.getKeyEncryptionAlgOID());

        byte[] recData = recipient.getContent(new BcKEKEnvelopedRecipient(kekUnwrapper));

        assertTrue(Arrays.equals(data, recData));
    }
    else
    {
        fail("no recipient found");
    }
}
 
开发者ID:mlundblad,项目名称:bc-java,代码行数:37,代码来源:BcEnvelopedDataTest.java

示例6: testKeyTransSmallAES

import org.bouncycastle.cms.CMSEnvelopedDataGenerator; //导入方法依赖的package包/类
public void testKeyTransSmallAES()
    throws Exception
{
    byte[]          data     = new byte[] { 0, 1, 2, 3 };

    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

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

    CMSEnvelopedData ed = edGen.generate(
                          new CMSProcessableByteArray(data),
                          new JceCMSContentEncryptorBuilder(CMSAlgorithm.AES128_CBC).setProvider(BC).build());

    RecipientInformationStore  recipients = ed.getRecipientInfos();

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

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

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

        byte[] recData = recipient.getContent(new JceKeyTransEnvelopedRecipient(_reciKP.getPrivate()).setProvider(BC));
        assertEquals(true, Arrays.equals(data, recData));
    }
    else
    {
        fail("no recipient found");
    }
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:34,代码来源:NewEnvelopedDataTest.java

示例7: testKeyTransLight128RC4

import org.bouncycastle.cms.CMSEnvelopedDataGenerator; //导入方法依赖的package包/类
public void testKeyTransLight128RC4()
    throws Exception
{
    byte[]          data     = "WallaWallaBouncyCastle".getBytes();

    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

    edGen.addRecipientInfoGenerator(new BcRSAKeyTransRecipientInfoGenerator(new JcaX509CertificateHolder(_reciCert)));

    CMSEnvelopedData ed = edGen.generate(
                            new CMSProcessableByteArray(data),
                            new BcCMSContentEncryptorBuilder(new ASN1ObjectIdentifier("1.2.840.113549.3.4"), 128).build());

    RecipientInformationStore  recipients = ed.getRecipientInfos();

    assertEquals(ed.getEncryptionAlgOID(), "1.2.840.113549.3.4");

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

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

        byte[] recData = recipient.getContent(new BcRSAKeyTransEnvelopedRecipient(PrivateKeyFactory.createKey(PrivateKeyInfo.getInstance(_reciKP.getPrivate().getEncoded()))));

        assertEquals(true, Arrays.equals(data, recData));
    }
    else
    {
        fail("no recipient found");
    }
}
 
开发者ID:mlundblad,项目名称:bc-java,代码行数:34,代码来源:BcEnvelopedDataTest.java

示例8: tryKekAlgorithm

import org.bouncycastle.cms.CMSEnvelopedDataGenerator; //导入方法依赖的package包/类
private void tryKekAlgorithm(SecretKey kek, DERObjectIdentifier algOid)
    throws NoSuchAlgorithmException, NoSuchProviderException, CMSException
{
    byte[]    data = "WallaWallaWashington".getBytes();
    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

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

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

    CMSEnvelopedData ed = edGen.generate(
                            new CMSProcessableByteArray(data),
                            new JceCMSContentEncryptorBuilder(CMSAlgorithm.DES_EDE3_CBC).setProvider(BC).build());

    RecipientInformationStore recipients = ed.getRecipientInfos();

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

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

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

        assertEquals(algOid.getId(), recipient.getKeyEncryptionAlgOID());

        byte[] recData = recipient.getContent(new JceKEKEnvelopedRecipient(kek).setProvider(BC));

        assertTrue(Arrays.equals(data, recData));
    }
    else
    {
        fail("no recipient found");
    }
}
 
开发者ID:mlundblad,项目名称:bc-java,代码行数:37,代码来源:NewEnvelopedDataTest.java

示例9: testKeyTrans128RC4

import org.bouncycastle.cms.CMSEnvelopedDataGenerator; //导入方法依赖的package包/类
public void testKeyTrans128RC4()
    throws Exception
{
    byte[]          data     = "WallaWallaBouncyCastle".getBytes();

    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

    edGen.addKeyTransRecipient(_reciCert);

    CMSEnvelopedData ed = edGen.generate(
                            new CMSProcessableByteArray(data),
                            "1.2.840.113549.3.4", 128, "BC");

    RecipientInformationStore  recipients = ed.getRecipientInfos();

    assertEquals(ed.getEncryptionAlgOID(), "1.2.840.113549.3.4");
    
    Collection  c = recipients.getRecipients();
    Iterator    it = c.iterator();

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

        byte[] recData = recipient.getContent(_reciKP.getPrivate(), "BC");

        assertEquals(true, Arrays.equals(data, recData));
    }
    else
    {
        fail("no recipient found");
    }
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:34,代码来源:EnvelopedDataTest.java

示例10: testKeyTransLight128RC4

import org.bouncycastle.cms.CMSEnvelopedDataGenerator; //导入方法依赖的package包/类
public void testKeyTransLight128RC4()
    throws Exception
{
    byte[]          data     = "WallaWallaBouncyCastle".getBytes();

    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

    edGen.addRecipientInfoGenerator(new BcRSAKeyTransRecipientInfoGenerator(new JcaX509CertificateHolder(_reciCert)));

    CMSEnvelopedData ed = edGen.generate(
                            new CMSProcessableByteArray(data),
                            new JceCMSContentEncryptorBuilder(new ASN1ObjectIdentifier("1.2.840.113549.3.4"), 128).setProvider(BC).build());

    RecipientInformationStore  recipients = ed.getRecipientInfos();

    assertEquals(ed.getEncryptionAlgOID(), "1.2.840.113549.3.4");

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

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

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

        assertEquals(true, Arrays.equals(data, recData));
    }
    else
    {
        fail("no recipient found");
    }
}
 
开发者ID:mlundblad,项目名称:bc-java,代码行数:34,代码来源:NewEnvelopedDataTest.java

示例11: testECMQVKeyAgreeMultiple

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

    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

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

    recipientGenerator.addRecipient(_reciEcCert);
    recipientGenerator.addRecipient(_reciEcCert2);

    edGen.addRecipientInfoGenerator(recipientGenerator);

    CMSEnvelopedData ed = edGen.generate(
        new CMSProcessableByteArray(data),
        new BcCMSContentEncryptorBuilder(CMSAlgorithm.AES128_CBC).build());

    assertEquals(ed.getEncryptionAlgOID(), CMSAlgorithm.AES128_CBC.getId());

    RecipientInformationStore recipients = ed.getRecipientInfos();

    confirmDataReceived(recipients, data, _reciEcCert, _reciEcKP.getPrivate(), BC);
    confirmDataReceived(recipients, data, _reciEcCert2, _reciEcKP2.getPrivate(), BC);
    confirmNumberRecipients(recipients, 2);
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:28,代码来源:BcEnvelopedDataTest.java

示例12: passwordUTF8Test

import org.bouncycastle.cms.CMSEnvelopedDataGenerator; //导入方法依赖的package包/类
private void passwordUTF8Test(String algorithm)
    throws Exception
{
    byte[] data = Hex.decode("504b492d4320434d5320456e76656c6f706564446174612053616d706c65");

    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

    edGen.addPasswordRecipient(new PKCS5Scheme2UTF8PBEKey("abc\u5639\u563b".toCharArray(), new byte[20], 5), algorithm);

    CMSEnvelopedData ed = edGen.generate(
                          new CMSProcessableByteArray(data),
                          CMSEnvelopedDataGenerator.AES128_CBC, "BC");

    RecipientInformationStore  recipients = ed.getRecipientInfos();

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

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

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

        byte[] recData = recipient.getContent(new PKCS5Scheme2UTF8PBEKey("abc\u5639\u563b".toCharArray(), new byte[20], 5), "BC");
        assertEquals(true, Arrays.equals(data, recData));
    }
    else
    {
        fail("no recipient found");
    }
}
 
开发者ID:mlundblad,项目名称:bc-java,代码行数:34,代码来源:EnvelopedDataTest.java

示例13: testKeyTransRC4

import org.bouncycastle.cms.CMSEnvelopedDataGenerator; //导入方法依赖的package包/类
public void testKeyTransRC4()
    throws Exception
{
    byte[]          data     = "WallaWallaBouncyCastle".getBytes();

    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

    edGen.addKeyTransRecipient(_reciCert);

    CMSEnvelopedData ed = edGen.generate(
                            new CMSProcessableByteArray(data),
                            "1.2.840.113549.3.4", "BC");

    RecipientInformationStore  recipients = ed.getRecipientInfos();

    assertEquals(ed.getEncryptionAlgOID(), "1.2.840.113549.3.4");
    
    Collection  c = recipients.getRecipients();

    assertEquals(1, c.size());

    Iterator    it = c.iterator();

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

        byte[] recData = recipient.getContent(_reciKP.getPrivate(), "BC");

        assertEquals(true, Arrays.equals(data, recData));
    }
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:33,代码来源:EnvelopedDataTest.java

示例14: testKeyTrans

import org.bouncycastle.cms.CMSEnvelopedDataGenerator; //导入方法依赖的package包/类
private void testKeyTrans(String algorithm)
    throws Exception
{
    byte[]          data     = "WallaWallaWashington".getBytes();

    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

    edGen.addKeyTransRecipient(keyCert);

    CMSEnvelopedData ed = edGen.generate(
                            new CMSProcessableByteArray(data),
                            algorithm, (String)null);

    RecipientInformationStore recipients = ed.getRecipientInfos();


    assertEquals(ed.getEncryptionAlgOID(), algorithm);

    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(keyPair.getPrivate(), (String)null);

        assertEquals(true, Arrays.equals(data, recData));
    }
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:36,代码来源:NullProviderTest.java

示例15: testKeyTrans

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

    CMSEnvelopedDataGenerator edGen = new CMSEnvelopedDataGenerator();

    edGen.addRecipientInfoGenerator(new BcRSAKeyTransRecipientInfoGenerator(new JcaX509CertificateHolder(_reciCert)));

    CMSEnvelopedData ed = edGen.generate(
                            new CMSProcessableByteArray(data),
                            new BcCMSContentEncryptorBuilder(CMSAlgorithm.DES_EDE3_CBC).build());

    RecipientInformationStore  recipients = ed.getRecipientInfos();


    assertEquals(ed.getEncryptionAlgOID(), CMSAlgorithm.DES_EDE3_CBC.getId());

    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 BcRSAKeyTransEnvelopedRecipient(PrivateKeyFactory.createKey(PrivateKeyInfo.getInstance(_reciKP.getPrivate().getEncoded()))));

        assertEquals(true, Arrays.equals(data, recData));
    }
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:36,代码来源:BcEnvelopedDataTest.java


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