| prepareForDecryption(PDEncryption, COSArray, DecryptionMaterial) |  | 0% |  | 0% | 25 | 25 | 69 | 69 | 1 | 1 |
| prepareEncryptionDictRev6(String, String, PDEncryption, int) |  | 0% |  | 0% | 2 | 2 | 52 | 52 | 1 | 1 |
| computeHash2B(byte[], byte[], byte[]) |  | 0% |  | 0% | 9 | 9 | 40 | 40 | 1 | 1 |
| static {...} |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| prepareEncryptionDictRev234(String, String, PDEncryption, int, PDDocument, int, int) |  | 0% |  | 0% | 4 | 4 | 25 | 25 | 1 | 1 |
| computeUserPassword(byte[], byte[], int, byte[], int, int, boolean) |  | 0% |  | 0% | 8 | 8 | 25 | 25 | 1 | 1 |
| validatePerms(PDEncryption, int, boolean) |  | 0% |  | 0% | 9 | 9 | 16 | 16 | 1 | 1 |
| prepareDocumentForEncryption(PDDocument) |  | 0% |  | 0% | 8 | 8 | 31 | 31 | 1 | 1 |
| computeEncryptedKeyRev234(byte[], byte[], int, byte[], boolean, int, int) |  | 0% |  | 0% | 6 | 6 | 19 | 19 | 1 | 1 |
| computeEncryptedKeyRev56(byte[], boolean, byte[], byte[], byte[], byte[], int) |  | 0% |  | 0% | 6 | 6 | 24 | 24 | 1 | 1 |
| computeOwnerPassword(byte[], byte[], int, int) |  | 0% |  | 0% | 7 | 7 | 16 | 16 | 1 | 1 |
| getUserPassword234(byte[], byte[], int, int) |  | 0% |  | 0% | 6 | 6 | 16 | 16 | 1 | 1 |
| isOwnerPassword56(byte[], byte[], byte[], int) |  | 0% |  | 0% | 3 | 3 | 10 | 10 | 1 | 1 |
| computeRC4key(byte[], int, int) |  | 0% |  | 0% | 4 | 4 | 9 | 9 | 1 | 1 |
| isUserPassword56(byte[], byte[], int) |  | 0% |  | 0% | 2 | 2 | 9 | 9 | 1 | 1 |
| computeRevisionNumber(int) |  | 0% |  | 0% | 8 | 8 | 11 | 11 | 1 | 1 |
| concat(byte[], byte[], byte[]) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| isUserPassword(String, byte[], byte[], int, byte[], int, int, boolean) |  | 0% |  | 0% | 3 | 3 | 3 | 3 | 1 | 1 |
| adjustUserKey(byte[]) |  | 0% |  | 0% | 4 | 4 | 9 | 9 | 1 | 1 |
| truncateOrPad(byte[]) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| isOwnerPassword(byte[], byte[], byte[], int, byte[], int, int, boolean) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| computeEncryptedKey(byte[], byte[], byte[], byte[], byte[], int, byte[], int, int, boolean, boolean) |  | 0% |  | 0% | 3 | 3 | 3 | 3 | 1 | 1 |
| isUserPassword(byte[], byte[], byte[], int, byte[], int, int, boolean) |  | 0% |  | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
| isUserPassword234(byte[], byte[], byte[], int, byte[], int, int, boolean) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| prepareEncryptionDictAES(PDEncryption, COSName) |  | 0% | | n/a | 1 | 1 | 8 | 8 | 1 | 1 |
| concat(byte[], byte[]) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| getDocumentIDBytes(COSArray) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| isOwnerPassword234(byte[], byte[], byte[], int, byte[], int, int, boolean) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| truncate127(byte[]) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| getUserPassword(byte[], byte[], int, int) |  | 0% |  | 0% | 3 | 3 | 3 | 3 | 1 | 1 |
| computeHash2A(byte[], byte[], byte[]) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| logIfStrongEncryptionMissing() |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| isOwnerPassword(String, byte[], byte[], int, byte[], int, int, boolean) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| computeSHA256(byte[], byte[], byte[]) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| StandardSecurityHandler(StandardProtectionPolicy) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| StandardSecurityHandler() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |