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 IBouncyCastleFactory
BOUNCY_CASTLE_FACTORY
private static int
DEFAULT_KEY_LENGTH
private java.util.List<PublicKeyRecipient>
recipients
private byte[]
seed
private static int
SEED_LENGTH
-
Fields inherited from class com.itextpdf.kernel.crypto.securityhandler.SecurityHandler
extra, md5, mkey, nextObjectKey, nextObjectKeySize
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
PubKeySecurityHandler()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
addAllRecipients(java.security.cert.Certificate[] certs, int[] permissions)
private void
addRecipient(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 IKeyTransRecipientInfo
computeRecipientInfo(java.security.cert.X509Certificate x509Certificate, byte[] abyte0)
private IASN1Primitive
createDERForRecipient(byte[] in, java.security.cert.X509Certificate cert)
protected PdfArray
createRecipientsArray()
protected abstract java.lang.String
getDigestAlgorithm()
private byte[]
getEncodedRecipient(int index)
private PdfArray
getEncodedRecipients()
private int
getKeyLength(PdfDictionary encryptionDict)
private int
getRecipientsSize()
private byte[]
getSeed()
protected abstract void
initKey(byte[] globalKey, int keyLength)
protected void
initKeyAndFillDictionary(PdfDictionary encryptionDictionary, java.security.cert.Certificate[] certs, int[] permissions, boolean encryptMetadata, boolean embeddedFilesOnly)
protected void
initKeyAndReadDictionary(PdfDictionary encryptionDictionary, java.security.Key certificateKey, java.security.cert.Certificate certificate, java.lang.String certificateKeyProvider, IExternalDecryptionProcess externalDecryptionProcess, boolean encryptMetadata)
protected abstract void
setPubSecSpecificHandlerDicEntries(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.IOException
java.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.IOException
java.security.GeneralSecurityException
-
computeRecipientInfo
private IKeyTransRecipientInfo computeRecipientInfo(java.security.cert.X509Certificate x509Certificate, byte[] abyte0) throws java.security.GeneralSecurityException, java.io.IOException
- Throws:
java.security.GeneralSecurityException
java.io.IOException
-
getKeyLength
private int getKeyLength(PdfDictionary encryptionDict)
-
-