diff options
Diffstat (limited to 'pkix/src/main/java/org/spongycastle/cms/KEKRecipientInformation.java')
-rw-r--r-- | pkix/src/main/java/org/spongycastle/cms/KEKRecipientInformation.java | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/pkix/src/main/java/org/spongycastle/cms/KEKRecipientInformation.java b/pkix/src/main/java/org/spongycastle/cms/KEKRecipientInformation.java new file mode 100644 index 00000000..3388d6fa --- /dev/null +++ b/pkix/src/main/java/org/spongycastle/cms/KEKRecipientInformation.java @@ -0,0 +1,38 @@ +package org.spongycastle.cms; + +import java.io.IOException; + +import org.spongycastle.asn1.cms.KEKIdentifier; +import org.spongycastle.asn1.cms.KEKRecipientInfo; +import org.spongycastle.asn1.x509.AlgorithmIdentifier; + +/** + * the RecipientInfo class for a recipient who has been sent a message + * encrypted using a secret key known to the other side. + */ +public class KEKRecipientInformation + extends RecipientInformation +{ + private KEKRecipientInfo info; + + KEKRecipientInformation( + KEKRecipientInfo info, + AlgorithmIdentifier messageAlgorithm, + CMSSecureReadable secureReadable, + AuthAttributesProvider additionalData) + { + super(info.getKeyEncryptionAlgorithm(), messageAlgorithm, secureReadable, additionalData); + + this.info = info; + + KEKIdentifier kekId = info.getKekid(); + + this.rid = new KEKRecipientId(kekId.getKeyIdentifier().getOctets()); + } + + protected RecipientOperator getRecipientOperator(Recipient recipient) + throws CMSException, IOException + { + return ((KEKRecipient)recipient).getRecipientOperator(keyEncAlg, messageAlgorithm, info.getEncryptedKey().getOctets()); + } +} |