예제 #1
0
def testStdEnc(
    expectedO, expectedU, expectedKey, strength=40, overrideID="xxxxxxxxxxxxxxxx", userPass="******", ownerPass="******"
):
    # do a 40 bit example known to work in Acrobat Reader 4.0
    enc = pdfencrypt.StandardEncryption(userPass, ownerPass, strength=strength)
    enc.setAllPermissions(0)
    enc.canPrint = 1
    enc.prepare(None, overrideID)

    pdfencrypt.equalityCheck(pdfencrypt.hexText(enc.O), expectedO, "%d bit O value" % strength)
    pdfencrypt.equalityCheck(pdfencrypt.hexText(enc.U), expectedU, "%d bit U value" % strength)
    pdfencrypt.equalityCheck(pdfencrypt.hexText(enc.key), expectedKey, "%d bit key value" % strength)
예제 #2
0
def testStdEnc(expectedO,expectedU,expectedKey,
                strength=40, overrideID='xxxxxxxxxxxxxxxx',
                userPass='******',ownerPass='******',
                ):
    # do a 40 bit example known to work in Acrobat Reader 4.0
    enc = pdfencrypt.StandardEncryption(userPass,ownerPass, strength=strength)
    enc.setAllPermissions(0)
    enc.canPrint = 1
    enc.prepare(None,overrideID)

    pdfencrypt.equalityCheck(pdfencrypt.hexText(enc.O),expectedO, '%d bit O value'%strength)
    pdfencrypt.equalityCheck(pdfencrypt.hexText(enc.U),expectedU, '%d bit U value'%strength)
    pdfencrypt.equalityCheck(pdfencrypt.hexText(enc.key),expectedKey, '%d bit key value'%strength)
예제 #3
0
 def checkEncryptionKey128Bit(self):
     userPass = '******'
     ownerHash = unHexText('<68E5704AC779A5F0CD89704406587A52F25BF61CADC56A0F8DB6C4DB0052534D>')
     documentID = 'xxxxxxxxxxxxxxxx'        
     permissions = -4
     encKey = encryptionkey(userPass, ownerHash, permissions, documentID, revision=3)
     assert hexText(encKey) == '<13DDE7585D9BE366C976DDD56AF541D1>'
예제 #4
0
 def checkEncryptionKey40Bit(self):
     userPass = '******'
     ownerHash = unHexText('<F86213EB0CED81F097947F3B343E34CAC8CA92CE8F6FEE2556FA31EC1FE968AF>')
     documentID = 'xxxxxxxxxxxxxxxx'        
     permissions = -4
     encKey = encryptionkey(userPass, ownerHash, permissions, documentID, revision=2)
     assert hexText(encKey) == '<7EBBD07A88>'
예제 #5
0
 def checkEncryptionKey128Bit(self):
     userPass = '******'
     ownerHash = unHexText('<68E5704AC779A5F0CD89704406587A52F25BF61CADC56A0F8DB6C4DB0052534D>')
     documentID = 'xxxxxxxxxxxxxxxx'        
     permissions = -4
     encKey = encryptionkey(userPass, ownerHash, permissions, documentID, revision=3)
     assert hexText(encKey) == '<13DDE7585D9BE366C976DDD56AF541D1>'
예제 #6
0
 def checkEncryptionKey40Bit(self):
     userPass = '******'
     ownerHash = unHexText('<F86213EB0CED81F097947F3B343E34CAC8CA92CE8F6FEE2556FA31EC1FE968AF>')
     documentID = 'xxxxxxxxxxxxxxxx'        
     permissions = -4
     encKey = encryptionkey(userPass, ownerHash, permissions, documentID, revision=2)
     assert hexText(encKey) == '<7EBBD07A88>'
 def checkUserHash128Bit(self):
     encKey = unHexText('<13DDE7585D9BE366C976DDD56AF541D1>')
     userHash = computeU(encKey, revision=3, documentId='xxxxxxxxxxxxxxxx')
     self.assertEqual(
         hexText(userHash),
         '<A9AE45CDE827FE0B7D6536267948836A00000000000000000000000000000000>'
     )
 def check0wnerHash128Bit(self):
     "owner key calculation"
     ownerHash = computeO('userpass', 'ownerpass', revision=3)
     self.assertEqual(
         hexText(ownerHash),
         '<68E5704AC779A5F0CD89704406587A52F25BF61CADC56A0F8DB6C4DB0052534D>'
     )
 def checkUserHash40Bit(self):
     encKey = unHexText('<7EBBD07A88>')
     userHash = computeU(encKey, revision=2, documentId='xxxxxxxxxxxxxxxx')
     self.assertEqual(
         hexText(userHash),
         '<AA154131D8FA105317F7104D2001A345D78A3DEEFA3D85D032FC9B4B35DA72A0>'
     )
 def check0wnerHash40Bit(self):
     "owner key calculation"
     ownerHash = computeO('userpass', 'ownerpass', revision=2)
     self.assertEqual(
         hexText(ownerHash),
         '<F86213EB0CED81F097947F3B343E34CAC8CA92CE8F6FEE2556FA31EC1FE968AF>'
     )
예제 #11
0
 def check0wnerHash128Bit(self):
     "owner key calculation"
     ownerHash = computeO('userpass','ownerpass', revision=3)
     assert hexText(ownerHash) == '<68E5704AC779A5F0CD89704406587A52F25BF61CADC56A0F8DB6C4DB0052534D>'
예제 #12
0
 def checkEncryptString40Bit(self):
     assert hexText(encodePDF(unHexText('<3DC3EBDA71>'), 9, 0, 'anonymous')) == '<57AC33DDEB5775982A>'
예제 #13
0
 def checkUserHash40Bit(self):
     encKey = unHexText('<7EBBD07A88>')
     userHash = computeU(encKey, revision=2, documentId='xxxxxxxxxxxxxxxx')
     assert hexText(userHash) == '<AA154131D8FA105317F7104D2001A345D78A3DEEFA3D85D032FC9B4B35DA72A0>'
예제 #14
0
 def check0wnerHash40Bit(self):
     "owner key calculation"
     ownerHash = computeO('userpass','ownerpass', revision=2)
     assert hexText(ownerHash) == '<F86213EB0CED81F097947F3B343E34CAC8CA92CE8F6FEE2556FA31EC1FE968AF>'
 def checkEncryptString40Bit(self):
     assert hexText(encodePDF(unHexText('<3DC3EBDA71>'), 9, 0,
                              'anonymous')) == '<57AC33DDEB5775982A>'
예제 #16
0
 def checkUserHash128Bit(self):
     encKey = unHexText('<13DDE7585D9BE366C976DDD56AF541D1>')
     userHash = computeU(encKey, revision=3, documentId='xxxxxxxxxxxxxxxx')
     assert hexText(userHash) == '<A9AE45CDE827FE0B7D6536267948836A00000000000000000000000000000000>'
예제 #17
0
 def checkEncryptString128Bit(self):
     assert hexText(encodePDF(unHexText('<3C0C5EBE0122D8EB2BDDF8A09FA8E29E>'),
                              9,
                              0,
                              'anonymous')
                    ) == '<27FB3E943FCF61878B>'
 def checkEncryptString128Bit(self):
     assert hexText(
         encodePDF(unHexText('<3C0C5EBE0122D8EB2BDDF8A09FA8E29E>'), 9, 0,
                   'anonymous')) == '<27FB3E943FCF61878B>'