| package org.bouncycastle.cms; |
| |
| import org.bouncycastle.asn1.DERNull; |
| import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; |
| import org.bouncycastle.asn1.x509.AlgorithmIdentifier; |
| |
| public interface PasswordRecipient |
| extends Recipient |
| { |
| public static final int PKCS5_SCHEME2 = 0; |
| public static final int PKCS5_SCHEME2_UTF8 = 1; |
| |
| static final class PRF |
| { |
| public static final PRF HMacSHA1 = new PRF("HMacSHA1", new AlgorithmIdentifier(PKCSObjectIdentifiers.id_hmacWithSHA1, DERNull.INSTANCE)); |
| public static final PRF HMacSHA224 = new PRF("HMacSHA224", new AlgorithmIdentifier(PKCSObjectIdentifiers.id_hmacWithSHA224, DERNull.INSTANCE)); |
| public static final PRF HMacSHA256 = new PRF("HMacSHA256", new AlgorithmIdentifier(PKCSObjectIdentifiers.id_hmacWithSHA256, DERNull.INSTANCE)); |
| public static final PRF HMacSHA384 = new PRF("HMacSHA384", new AlgorithmIdentifier(PKCSObjectIdentifiers.id_hmacWithSHA384, DERNull.INSTANCE)); |
| public static final PRF HMacSHA512 = new PRF("HMacSHA512", new AlgorithmIdentifier(PKCSObjectIdentifiers.id_hmacWithSHA512, DERNull.INSTANCE)); |
| |
| private final String hmac; |
| final AlgorithmIdentifier prfAlgID; |
| |
| private PRF(String hmac, AlgorithmIdentifier prfAlgID) |
| { |
| this.hmac = hmac; |
| this.prfAlgID = prfAlgID; |
| } |
| |
| public String getName() |
| { |
| return hmac; |
| } |
| |
| public AlgorithmIdentifier getAlgorithmID() |
| { |
| return prfAlgID; |
| } |
| } |
| |
| byte[] calculateDerivedKey(int schemeID, AlgorithmIdentifier derivationAlgorithm, int keySize) |
| throws CMSException; |
| |
| RecipientOperator getRecipientOperator(AlgorithmIdentifier keyEncryptionAlgorithm, AlgorithmIdentifier contentEncryptionAlgorithm, byte[] derivedKey, byte[] encryptedEncryptedContentKey) |
| throws CMSException; |
| |
| int getPasswordConversionScheme(); |
| |
| char[] getPassword(); |
| } |