public final class PublicKeySecurityHandler extends SecurityHandler
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
FILTER
The filter name.
|
private PublicKeyProtectionPolicy |
policy |
private static java.lang.String |
SUBFILTER4 |
private static java.lang.String |
SUBFILTER5 |
encryptionKey, keyLength
Constructor and Description |
---|
PublicKeySecurityHandler()
Constructor.
|
PublicKeySecurityHandler(PublicKeyProtectionPolicy p)
Constructor used for encryption.
|
Modifier and Type | Method and Description |
---|---|
private void |
appendCertInfo(java.lang.StringBuilder extraInfo,
org.bouncycastle.cms.KeyTransRecipientId ktRid,
java.security.cert.X509Certificate certificate,
org.bouncycastle.cert.X509CertificateHolder materialCert) |
private org.bouncycastle.asn1.cms.KeyTransRecipientInfo |
computeRecipientInfo(java.security.cert.X509Certificate x509certificate,
byte[] abyte0) |
private byte[][] |
computeRecipientsField(byte[] seed) |
private int |
computeVersionNumber()
Computes the version number of the StandardSecurityHandler based on the encryption key
length.
|
private org.bouncycastle.asn1.ASN1Primitive |
createDERForRecipient(byte[] in,
java.security.cert.X509Certificate cert) |
boolean |
hasProtectionPolicy()
Returns whether a protection policy has been set.
|
void |
prepareDocumentForEncryption(PDDocument doc)
Prepare the document for encryption.
|
private void |
prepareEncryptionDictAES(PDEncryption encryptionDictionary,
COSName aesVName,
byte[][] recipients) |
void |
prepareForDecryption(PDEncryption encryption,
COSArray documentIDArray,
DecryptionMaterial decryptionMaterial)
Prepares everything to decrypt the document.
|
decrypt, decryptStream, encryptDataRC4, encryptDataRC4, encryptStream, encryptString, getCurrentAccessPermission, getKeyLength, isAES, setAES, setCurrentAccessPermission, setDecryptMetadata, setKeyLength, setStreamFilterName, setStringFilterName
public static final java.lang.String FILTER
private static final java.lang.String SUBFILTER4
private static final java.lang.String SUBFILTER5
private PublicKeyProtectionPolicy policy
public PublicKeySecurityHandler()
public PublicKeySecurityHandler(PublicKeyProtectionPolicy p)
p
- The protection policy.public void prepareForDecryption(PDEncryption encryption, COSArray documentIDArray, DecryptionMaterial decryptionMaterial) throws java.io.IOException
prepareForDecryption
in class SecurityHandler
encryption
- encryption dictionary, can be retrieved via
PDDocument.getEncryption()
documentIDArray
- document id which is returned via
COSDocument.getDocumentID()
(not used by
this handler)decryptionMaterial
- Information used to decrypt the document.java.io.IOException
- If there is an error accessing data. If verbose mode
is enabled, the exception message will provide more details why the
match wasn't successful.private void appendCertInfo(java.lang.StringBuilder extraInfo, org.bouncycastle.cms.KeyTransRecipientId ktRid, java.security.cert.X509Certificate certificate, org.bouncycastle.cert.X509CertificateHolder materialCert)
public void prepareDocumentForEncryption(PDDocument doc) throws java.io.IOException
prepareDocumentForEncryption
in class SecurityHandler
doc
- The document that will be encrypted.java.io.IOException
- If there is an error while encrypting.private int computeVersionNumber()
private void prepareEncryptionDictAES(PDEncryption encryptionDictionary, COSName aesVName, byte[][] recipients)
private byte[][] computeRecipientsField(byte[] seed) throws java.security.GeneralSecurityException, java.io.IOException
java.security.GeneralSecurityException
java.io.IOException
private org.bouncycastle.asn1.ASN1Primitive createDERForRecipient(byte[] in, java.security.cert.X509Certificate cert) throws java.io.IOException, java.security.GeneralSecurityException
java.io.IOException
java.security.GeneralSecurityException
private org.bouncycastle.asn1.cms.KeyTransRecipientInfo computeRecipientInfo(java.security.cert.X509Certificate x509certificate, byte[] abyte0) throws java.io.IOException, java.security.cert.CertificateEncodingException, java.security.InvalidKeyException, javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException
java.io.IOException
java.security.cert.CertificateEncodingException
java.security.InvalidKeyException
javax.crypto.BadPaddingException
javax.crypto.IllegalBlockSizeException
public boolean hasProtectionPolicy()
hasProtectionPolicy
in class SecurityHandler