Class PubKeySecurityHandler
- java.lang.Object
-
- com.itextpdf.kernel.crypto.securityhandler.SecurityHandler
-
- com.itextpdf.kernel.crypto.securityhandler.PubKeySecurityHandler
-
- Direct Known Subclasses:
PubSecHandlerUsingAes128,PubSecHandlerUsingStandard40
public abstract class PubKeySecurityHandler extends SecurityHandler
-
-
Field Summary
Fields Modifier and Type Field Description private static IBouncyCastleFactoryBOUNCY_CASTLE_FACTORYprivate static intDEFAULT_KEY_LENGTHprivate java.util.List<PublicKeyRecipient>recipientsprivate byte[]seedprivate static intSEED_LENGTH-
Fields inherited from class com.itextpdf.kernel.crypto.securityhandler.SecurityHandler
extra, md5, mkey, nextObjectKey, nextObjectKeySize
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedPubKeySecurityHandler()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidaddAllRecipients(java.security.cert.Certificate[] certs, int[] permissions)private voidaddRecipient(java.security.cert.Certificate cert, int permission)protected byte[]computeGlobalKey(java.lang.String messageDigestAlgorithm, boolean encryptMetadata)protected static byte[]computeGlobalKeyOnReading(PdfDictionary encryptionDictionary, java.security.PrivateKey certificateKey, java.security.cert.Certificate certificate, java.lang.String certificateKeyProvider, IExternalDecryptionProcess externalDecryptionProcess, boolean encryptMetadata, java.lang.String digestAlgorithm)private IKeyTransRecipientInfocomputeRecipientInfo(java.security.cert.X509Certificate x509Certificate, byte[] abyte0)private IASN1PrimitivecreateDERForRecipient(byte[] in, java.security.cert.X509Certificate cert)protected PdfArraycreateRecipientsArray()protected abstract java.lang.StringgetDigestAlgorithm()private byte[]getEncodedRecipient(int index)private PdfArraygetEncodedRecipients()private intgetKeyLength(PdfDictionary encryptionDict)private intgetRecipientsSize()private byte[]getSeed()protected abstract voidinitKey(byte[] globalKey, int keyLength)protected voidinitKeyAndFillDictionary(PdfDictionary encryptionDictionary, java.security.cert.Certificate[] certs, int[] permissions, boolean encryptMetadata, boolean embeddedFilesOnly)protected voidinitKeyAndReadDictionary(PdfDictionary encryptionDictionary, java.security.Key certificateKey, java.security.cert.Certificate certificate, java.lang.String certificateKeyProvider, IExternalDecryptionProcess externalDecryptionProcess, boolean encryptMetadata)protected abstract voidsetPubSecSpecificHandlerDicEntries(PdfDictionary encryptionDictionary, boolean encryptMetadata, boolean embeddedFilesOnly)-
Methods inherited from class com.itextpdf.kernel.crypto.securityhandler.SecurityHandler
getDecryptor, getEncryptionStream, getMkey, getNextObjectKey, initMd5MessageDigest, setHashKeyForNextObject
-
-
-
-
Field Detail
-
BOUNCY_CASTLE_FACTORY
private static final IBouncyCastleFactory BOUNCY_CASTLE_FACTORY
-
SEED_LENGTH
private static final int SEED_LENGTH
- See Also:
- Constant Field Values
-
DEFAULT_KEY_LENGTH
private static final int DEFAULT_KEY_LENGTH
- See Also:
- Constant Field Values
-
recipients
private java.util.List<PublicKeyRecipient> recipients
-
seed
private byte[] seed
-
-
Method Detail
-
computeGlobalKey
protected byte[] computeGlobalKey(java.lang.String messageDigestAlgorithm, boolean encryptMetadata)
-
computeGlobalKeyOnReading
protected static byte[] computeGlobalKeyOnReading(PdfDictionary encryptionDictionary, java.security.PrivateKey certificateKey, java.security.cert.Certificate certificate, java.lang.String certificateKeyProvider, IExternalDecryptionProcess externalDecryptionProcess, boolean encryptMetadata, java.lang.String digestAlgorithm)
-
addAllRecipients
protected void addAllRecipients(java.security.cert.Certificate[] certs, int[] permissions)
-
createRecipientsArray
protected PdfArray createRecipientsArray()
-
setPubSecSpecificHandlerDicEntries
protected abstract void setPubSecSpecificHandlerDicEntries(PdfDictionary encryptionDictionary, boolean encryptMetadata, boolean embeddedFilesOnly)
-
getDigestAlgorithm
protected abstract java.lang.String getDigestAlgorithm()
-
initKey
protected abstract void initKey(byte[] globalKey, int keyLength)
-
initKeyAndFillDictionary
protected void initKeyAndFillDictionary(PdfDictionary encryptionDictionary, java.security.cert.Certificate[] certs, int[] permissions, boolean encryptMetadata, boolean embeddedFilesOnly)
-
initKeyAndReadDictionary
protected void initKeyAndReadDictionary(PdfDictionary encryptionDictionary, java.security.Key certificateKey, java.security.cert.Certificate certificate, java.lang.String certificateKeyProvider, IExternalDecryptionProcess externalDecryptionProcess, boolean encryptMetadata)
-
addRecipient
private void addRecipient(java.security.cert.Certificate cert, int permission)
-
getSeed
private byte[] getSeed()
-
getRecipientsSize
private int getRecipientsSize()
-
getEncodedRecipient
private byte[] getEncodedRecipient(int index) throws java.io.IOException, java.security.GeneralSecurityException- Throws:
java.io.IOExceptionjava.security.GeneralSecurityException
-
getEncodedRecipients
private PdfArray getEncodedRecipients()
-
createDERForRecipient
private IASN1Primitive createDERForRecipient(byte[] in, java.security.cert.X509Certificate cert) throws java.io.IOException, java.security.GeneralSecurityException
- Throws:
java.io.IOExceptionjava.security.GeneralSecurityException
-
computeRecipientInfo
private IKeyTransRecipientInfo computeRecipientInfo(java.security.cert.X509Certificate x509Certificate, byte[] abyte0) throws java.security.GeneralSecurityException, java.io.IOException
- Throws:
java.security.GeneralSecurityExceptionjava.io.IOException
-
getKeyLength
private int getKeyLength(PdfDictionary encryptionDict)
-
-