# StandardSecurityHandler

Element | Missed Instructions | Cov. | Missed Branches | Cov. | Missed | Cxty | Missed | Lines | Missed | Methods
Total | 256 of 2,291 | 88% | 42 of 209 | 79% | 41 | 137 | 48 | 450 | 3 | 32
validatePerms(PDEncryption, int, boolean) |  | 60% |  | 43% | 8 | 9 | 7 | 16 | 0 | 1
prepareForDecryption(PDEncryption, COSArray, DecryptionMaterial) |  | 86% |  | 86% | 6 | 23 | 5 | 65 | 0 | 1
isUserPassword(String, byte[], byte[], int, byte[], int, int, boolean) |  | 0% |  | 0% | 3 | 3 | 3 | 3 | 1 | 1
computeEncryptedKeyRev56(byte[], boolean, byte[], byte[], byte[], byte[], int) |  | 76% |  | 70% | 3 | 6 | 6 | 24 | 0 | 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
computeOwnerPassword(byte[], byte[], int, int) |  | 87% |  | 91% | 1 | 7 | 1 | 16 | 0 | 1
isUserPassword(byte[], byte[], byte[], int, byte[], int, int, boolean) |  | 61% |  | 66% | 1 | 3 | 1 | 4 | 0 | 1
truncate127(byte[]) |  | 35% |  | 50% | 1 | 2 | 3 | 5 | 0 | 1
prepareDocumentForEncryption(PDDocument) |  | 90% |  | 71% | 4 | 8 | 4 | 31 | 0 | 1
prepareEncryptionDictRev6(String, String, PDEncryption, int) |  | 97% |  | 100% | 0 | 2 | 3 | 52 | 0 | 1
computeHash2B(byte[], byte[], byte[]) |  | 96% |  | 100% | 0 | 9 | 3 | 40 | 0 | 1
isUserPassword56(byte[], byte[], int) |  | 85% |  | 50% | 1 | 2 | 1 | 9 | 0 | 1
isOwnerPassword(byte[], byte[], byte[], int, byte[], int, int, boolean) |  | 93% |  | 87% | 1 | 5 | 1 | 14 | 0 | 1
computeHash2A(byte[], byte[], byte[]) |  | 88% |  | 83% | 1 | 4 | 1 | 11 | 0 | 1
getDocumentIDBytes(COSArray) |  | 85% |  | 50% | 2 | 3 | 1 | 6 | 0 | 1
computeSHA256(byte[], byte[], byte[]) |  | 82% |  | 50% | 1 | 2 | 0 | 4 | 0 | 1
computeRevisionNumber(int) |  | 94% |  | 85% | 2 | 8 | 1 | 11 | 0 | 1
static {...} |  | 100% |  | n/a | 0 | 1 | 0 | 4 | 0 | 1
prepareEncryptionDictRev2345(String, String, PDEncryption, int, PDDocument, int, int) |  | 100% |  | 83% | 1 | 4 | 0 | 28 | 0 | 1
computeUserPassword(byte[], byte[], int, byte[], int, int, boolean) |  | 100% |  | 90% | 1 | 6 | 0 | 23 | 0 | 1
computeEncryptedKeyRev234(byte[], byte[], int, byte[], boolean, int, int) |  | 100% |  | 100% | 0 | 6 | 0 | 19 | 0 | 1
getUserPassword(byte[], byte[], int, int) |  | 100% |  | 90% | 1 | 6 | 0 | 16 | 0 | 1
computeRC4key(byte[], int, int) |  | 100% |  | 100% | 0 | 4 | 0 | 9 | 0 | 1
concat(byte[], byte[], byte[]) |  | 100% |  | n/a | 0 | 1 | 0 | 5 | 0 | 1
truncateOrPad(byte[]) |  | 100% |  | n/a | 0 | 1 | 0 | 5 | 0 | 1
computeEncryptedKey(byte[], byte[], byte[], byte[], byte[], int, byte[], int, int, boolean, boolean) |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 1
isUserPassword234(byte[], byte[], byte[], int, byte[], int, int, boolean) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1
prepareEncryptionDictAES(PDEncryption, COSName) |  | 100% |  | n/a | 0 | 1 | 0 | 8 | 0 | 1
concat(byte[], byte[]) |  | 100% |  | n/a | 0 | 1 | 0 | 4 | 0 | 1
StandardSecurityHandler(StandardProtectionPolicy) |  | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1
StandardSecurityHandler() |  | 100% |  | n/a | 0 | 1 | 0 | 2 | 0 | 1