com.fitbur.bouncycastle.cms.KEKRecipientInfoGenerator Maven / Gradle / Ivy
package com.fitbur.bouncycastle.cms;
import com.fitbur.bouncycastle.asn1.ASN1OctetString;
import com.fitbur.bouncycastle.asn1.DEROctetString;
import com.fitbur.bouncycastle.asn1.cms.KEKIdentifier;
import com.fitbur.bouncycastle.asn1.cms.KEKRecipientInfo;
import com.fitbur.bouncycastle.asn1.cms.RecipientInfo;
import com.fitbur.bouncycastle.operator.GenericKey;
import com.fitbur.bouncycastle.operator.OperatorException;
import com.fitbur.bouncycastle.operator.SymmetricKeyWrapper;
public abstract class KEKRecipientInfoGenerator
implements RecipientInfoGenerator
{
private final KEKIdentifier kekIdentifier;
protected final SymmetricKeyWrapper wrapper;
protected KEKRecipientInfoGenerator(KEKIdentifier kekIdentifier, SymmetricKeyWrapper wrapper)
{
this.kekIdentifier = kekIdentifier;
this.wrapper = wrapper;
}
public final RecipientInfo generate(GenericKey contentEncryptionKey)
throws CMSException
{
try
{
ASN1OctetString encryptedKey = new DEROctetString(wrapper.generateWrappedKey(contentEncryptionKey));
return new RecipientInfo(new KEKRecipientInfo(kekIdentifier, wrapper.getAlgorithmIdentifier(), encryptedKey));
}
catch (OperatorException e)
{
throw new CMSException("exception wrapping content key: " + e.getMessage(), e);
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy