1
package org.bouncycastle.cms.jcajce;
3
import java.io.InputStream;
4
import java.security.Key;
6
import javax.crypto.Cipher;
7
import javax.crypto.CipherInputStream;
8
import javax.crypto.SecretKey;
10
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
11
import org.bouncycastle.cms.CMSException;
12
import org.bouncycastle.cms.RecipientOperator;
13
import org.bouncycastle.operator.InputDecryptor;
15
public class JceKEKEnvelopedRecipient
16
extends JceKEKRecipient
18
public JceKEKEnvelopedRecipient(SecretKey recipientKey)
23
public RecipientOperator getRecipientOperator(AlgorithmIdentifier keyEncryptionAlgorithm, final AlgorithmIdentifier contentEncryptionAlgorithm, byte[] encryptedContentEncryptionKey)
26
Key secretKey = extractSecretKey(keyEncryptionAlgorithm, contentEncryptionAlgorithm, encryptedContentEncryptionKey);
28
final Cipher dataCipher = contentHelper.createContentCipher(secretKey, contentEncryptionAlgorithm);
30
return new RecipientOperator(new InputDecryptor()
32
public AlgorithmIdentifier getAlgorithmIdentifier()
34
return contentEncryptionAlgorithm;
37
public InputStream getInputStream(InputStream dataOut)
39
return new CipherInputStream(dataOut, dataCipher);