Пример #1
0
    def test_encode_decode(self):
        n_keys = 8
        n_passwds = 8

        LEN = 12

        for keys in range(n_keys):
            length = int(random.random() * LEN)

            key = os.urandom(LEN - length).encode('hex')
            padded_key = transform_passwd(key)

            for passwds in range(n_passwds):
                passwd = os.urandom(length).encode('hex')

                original = make_gsm_dict(passwd)

                # encode
                encrypted = encryptData(padded_key, pickle.dumps(original))

                # decode
                pickledobj = decryptData(padded_key, encrypted)
                decrypted = pickle.load(StringIO(pickledobj))

                self.assertEqual(decrypted, original)
Пример #2
0
    def get(self, uuid):
        try:
            data = open(os.path.join(self.secrets_path, uuid)).read()
        except IOError:
            raise KeyringNoMatchError("No secrets for uuid %s" % uuid)

        pickledobj = decryptData(self.key, data, testforpickle=True)
        try:
            return pickle.load(StringIO(pickledobj))
        except:
            raise KeyringNoMatchError("bad password")
Пример #3
0
    def test_decode_fixed(self):

        T = [('b7b96d81cc86e6f9',
                '',
                'cb867e4037a302198ee51523393923996cf56621de3e21ca46c147c7635a'
                '4597287a45f17dd984ccf9195db3b21e404007959d57fdd12594e96cb65d'
                'fc453f6d'),
            ('0000000000497a9b',
                '2ed9eff633',
                'e53100eac23d4afb2a0ed0f3b16b0a35066f71fea80a3559c2d21d368173'
                '8c0042d2f8bdbb4467eea3bf7102922fdb5f14ddc810837bc8ded8fcf40e'
                '717e82c5cee71acbe17d1135b99e5115c6cf881d'),
            ('000000000000d07d',
                '9771d7edad6b',
                '2a682d46c4ce665ba7acc238f11f50c836defd05de1431a2af5ab47dd4f4'
                '6c775a91b26fc087f347d5f1fe592575d3b1681372777e943ffaa2f77e81'
                'e5c5ab6d32fa420c261ecebc72a3daf96e69ba4e'),
            ('39db1d780077cf13',
                '',
                '583c69ee32ced39574654a64701eb36d04e98d052976d840be4691d12a51'
                '7e1839f6208354ca244abcf28d6e9fecbef7c5559417c1e23285802a8ffc'
                'ca907ff7'),
            ('00000000000052e0',
                '17a0b94b488e',
                '15e06ff63bd85c6b06a2d2f6a36128fa0154cdb7778676c5bd589ca0c3ea'
                'ac4b8f179002b69d322b110f10a208e365285f7aff5ada1d36ee6cfc140e'
                '77f1f25b8ea13185b2add3896071a2fbf0bdd051'),
            ('00000000004ccb76',
                '034604574e',
                '3a058a4cb44af041b7e9609e0b05d2607b74e358f2046402671a715ee5c2'
                '453d5beb41acb8a01fd4278ceb2a58d07002ee92b567b3f60d68311aadd4'
                '538715022930390e43fe41853f6587261eae4dde'),
            ('e477fd4e2ab84397',
                '',
                'd9b1ee5dadede634e5e508a9de6d2c5f5179efb5da65dcd4721d8c9fe6d1'
                '011eec6672a93e619413b20960b66b8c2a770ab736f83767434a0e03f392'
                '6fd967ca'),
            ('00000073966b9008',
                '15eed9',
                'f87df3422f9a8e95c89149be782de06ca6c4d4189a2c5686d1186b51ebf2'
                'dad879f15c1eb1943dd6e321e05dcc9759ef25189cc7980e6b3a8ae5ab38'
                'f6fb20e31b4fe49929c8613f699dfe6b2adc71bf'),
            ('0000e34a67f172f8',
                '41dfd679b972',
                '490cc79eed800e217ab62702284d3e5c61022b8ec0459eb54ec1fd2071e1'
                'e486f6a7d895b2ef34553dba1daed165a1d8a61e439cfa83777f1b5a97d0'
                'c8e2ac081ef3fa703083c3db97211b33630ec2b1'),
            ('0000000000000018',
                'f462f7e7aa525d1125cd7f',
                '17bfeab05df5be698372e71c107b5ac750846cc9e5d0259ea706945889a7'
                '70699f2f5229e4ed03f47a5b755d66cceb0d9796ec0e09ed28413986e447'
                '84fa9158a6ed086d98aca1558266b4db6150c1b9fa83b5597ea17559422b'
                'ee95b9272afd'),
            ('0000000986b93eda',
                '785964d244f22e',
                '1459254a9dbe14a088acb911badff5b17d2993541a7080c6cc01de99096b'
                '48a81fed141f38a7843a55a88ad8b065394afde5a8a735b773a266cdbc20'
                '59fa73b2ebd25d47e71350c0e5b5f6bb352a7def'),
            ('0000002ef2b543f79bb97371',
                '447759',
                '55d47083f0cb00b9dd4065530f2ea67eb0065c20d4efe9f0125cf4b47785'
                '6268bd1718d544d3346c7d12d6293a222318890cc3c32ec776e711add688'
                '13a0bb0bdcbdb82e6244fd56f477a578d452b763'),
            ('b5f166646d9dde97',
                '9c082a9c',
                'a3408b3e99b0fced6bda3eb648714169814f2260157c82d28780aacb30b0'
                '9905928fbf5bcfd98188d7dd185e625a3b05bd312e211b4a96f88e796a4a'
                'ee137319afa8a7726f2dc0190c1e3c8377633dfe'),
            ('0000000085532a66',
                'db57406690243f06',
                'c0015c98db59407a43d09401aadef3bdab330d9926cffb8f9d7b0f8bbff5'
                'b07a062b6fe6c2bc77bcd5d55f8c81fc943e772c86666cd875c007804226'
                '3f6a3dcca0acd83483156a744cbafbee0d43c0b3'),
            ('00000000005bd30e',
                '559958a4411bf08e0f',
                '270bba1a98649e37ec0de94d46085fcbbe50f50688f2eb5848bcb5aa601d'
                'c98eb6e714b85c3679d21dd4a59beec82d48f09db11da49283bc261df59b'
                '770c20027ab75c190126875d118c8e659e4a7465'),
            ('00000b78961f4a341ce23df7',
                '4c73',
                'f65de12f497d67e1d65902f4ed34e5c3ef0e881ae3942f29391e0f7fc7f8'
                '4a7bf67dea6b2d7c3e5cbbdb0801ed89703bb3b325b063d96b9eec7a11ed'
                '229361dc')]

        for t in T:
            original = make_gsm_dict(t[1])

            # decode
            pickledobj = decryptData(t[0], t[2].decode('hex'),
                                                            testforpickle=True)
            decrypted = pickle.load(StringIO(pickledobj))

            self.assertEqual(decrypted, original)