예제 #1
0
파일: test.py 프로젝트: yorgyetson/kerl
    def test_generate_trytes_and_multisqueeze(self):
        file = 'test_vectors/generateTrytesAndMultiSqueeze'
        with open(file, 'r') as f:
            reader = csv.DictReader(f)
            for count, line in enumerate(reader):
                trytes = line['trytes']
                hashes1 = line['Kerl_squeeze1']
                hashes2 = line['Kerl_squeeze2']
                hashes3 = line['Kerl_squeeze3']

                trits = conv.trytes_to_trits(trytes)

                kerl = py3kerl.Kerl()
                kerl.absorb(trits)

                trits_out = []
                kerl.squeeze(trits_out)
                trytes_out = conv.trits_to_trytes(trits_out)
                self.assertEqual(
                    hashes1, trytes_out, 'line:' + str(count + 2) + ' ' +
                    hashes1 + '!=' + trytes_out)

                trits_out = []
                kerl.squeeze(trits_out)
                trytes_out = conv.trits_to_trytes(trits_out)
                self.assertEqual(
                    hashes2, trytes_out, 'line:' + str(count + 2) + ' ' +
                    hashes2 + '!=' + trytes_out)

                trits_out = []
                kerl.squeeze(trits_out)
                trytes_out = conv.trits_to_trytes(trits_out)
                self.assertEqual(
                    hashes3, trytes_out, 'line:' + str(count + 2) + ' ' +
                    hashes3 + '!=' + trytes_out)
예제 #2
0
파일: test.py 프로젝트: yorgyetson/kerl
    def test_input_greater_243(self):
        inp = 'G9JYBOMPUXHYHKSNRNMMSSZCSHOFYOYNZRSZMAAYWDYEIMVVOGKPJBVBM9TDPULSFUNMTVXRKFIDOHUXXVYDLFSZYZTWQYTE9SPYYWYTXJYQ9IFGYOLZXWZBKWZN9QOOTBQMWMUBLEWUEEASRHRTNIQWJQNDWRYLCA'

        trits = conv.trytes_to_trits(inp)

        kerl = py3kerl.Kerl()
        kerl.absorb(trits)
        trits_out = []
        kerl.squeeze(trits_out, length=486)

        trytes_out = conv.trits_to_trytes(trits_out)

        self.assertEqual(
            trytes_out,
            "LUCKQVACOGBFYSPPVSSOXJEKNSQQRQKPZC9NXFSMQNRQCGGUL9OHVVKBDSKEQEBKXRNUJSRXYVHJTXBPDWQGNSCDCBAIRHAQCOWZEBSNHIJIGPZQITIBJQ9LNTDIBTCQ9EUWKHFLGFUVGGUWJONK9GBCDUIMAYMMQX"
        )
예제 #3
0
파일: test.py 프로젝트: yorgyetson/kerl
    def test_output_greater_243(self):
        inp = '9MIDYNHBWMBCXVDEFOFWINXTERALUKYYPPHKP9JJFGJEIUY9MUDVNFZHMMWZUYUSWAIOWEVTHNWMHANBH'

        trits = conv.trytes_to_trits(inp)

        kerl = py3kerl.Kerl()
        kerl.absorb(trits)
        trits_out = []
        kerl.squeeze(trits_out, length=486)

        trytes_out = conv.trits_to_trytes(trits_out)

        self.assertEqual(
            trytes_out,
            "G9JYBOMPUXHYHKSNRNMMSSZCSHOFYOYNZRSZMAAYWDYEIMVVOGKPJBVBM9TDPULSFUNMTVXRKFIDOHUXXVYDLFSZYZTWQYTE9SPYYWYTXJYQ9IFGYOLZXWZBKWZN9QOOTBQMWMUBLEWUEEASRHRTNIQWJQNDWRYLCA"
        )
예제 #4
0
파일: test.py 프로젝트: yorgyetson/kerl
    def test_correct_first(self):
        inp = 'EMIDYNHBWMBCXVDEFOFWINXTERALUKYYPPHKP9JJFGJEIUY9MUDVNFZHMMWZUYUSWAIOWEVTHNWMHANBH'

        trits = conv.trytes_to_trits(inp)

        kerl = py3kerl.Kerl()
        kerl.absorb(trits)
        trits_out = []
        kerl.squeeze(trits_out)

        trytes_out = conv.trits_to_trytes(trits_out)

        self.assertEqual(
            trytes_out,
            "EJEAOOZYSAWFPZQESYDHZCGYNSTWXUMVJOVDWUNZJXDGWCLUFGIMZRMGCAZGKNPLBRLGUNYWKLJTYEAQX"
        )
예제 #5
0
파일: test.py 프로젝트: yorgyetson/kerl
    def test_generate_trytes_hash(self):
        file = 'test_vectors/generateTrytesAndHashes'
        with open(file, 'r') as f:
            reader = csv.DictReader(f)
            for count, line in enumerate(reader):
                trytes = line['trytes']
                hashes = line['Kerl_hash']

                trits = conv.trytes_to_trits(trytes)

                kerl = py3kerl.Kerl()
                kerl.absorb(trits)
                trits_out = []
                kerl.squeeze(trits_out)

                trytes_out = conv.trits_to_trytes(trits_out)

                self.assertEqual(
                    hashes, trytes_out, 'line:' + str(count + 2) + ' ' +
                    hashes + '!=' + trytes_out)
예제 #6
0
파일: py3kerl.py 프로젝트: yorgyetson/kerl
            trits_from_hash[TRIT_HASH_LENGTH - 1] = 0

            stop = TRIT_HASH_LENGTH
            if length < TRIT_HASH_LENGTH:
                stop = length
            trits[offset:stop] = trits_from_hash[0:stop]

            flipped_bytes = bytes(
                [conv.convert_sign(~b) for b in unsigned_hash])

            # Reset internal state before feeding back in
            self.__init__()
            self.k.update(flipped_bytes)

            offset += TRIT_HASH_LENGTH


if __name__ == '__main__':
    inp = 'G9JYBOMPUXHYHKSNRNMMSSZCSHOFYOYNZRSZMAAYWDYEIMVVOGKPJBVBM9TDPULSFUNMTVXRKFIDOHUXXVYDLFSZYZTWQYTE9SPYYWYTXJYQ9IFGYOLZXWZBKWZN9QOOTBQMWMUBLEWUEEASRHRTNIQWJQNDWRYLCA'

    trits = conv.trytes_to_trits(inp)

    kerl = Kerl()
    kerl.absorb(trits)

    trits_out = []

    kerl.squeeze(trits_out, length=486)

    print('Out: ' + conv.trits_to_trytes(trits_out))
예제 #7
0
파일: py3kerl.py 프로젝트: grendias/kerl
            trits_from_hash = conv.convertToTrits(signed_hash)
            trits_from_hash[TRIT_HASH_LENGTH - 1] = 0

            stop = TRIT_HASH_LENGTH
            if length < TRIT_HASH_LENGTH:
                stop = length
            trits[offset:stop] = trits_from_hash[0:stop]

            flipped_bytes = bytes([conv.convert_sign(~b) for b in unsigned_hash])

            # Reset internal state before feeding back in
            self.__init__()
            self.k.update(flipped_bytes)

            offset += TRIT_HASH_LENGTH


if __name__ == '__main__':
    inp = 'G9JYBOMPUXHYHKSNRNMMSSZCSHOFYOYNZRSZMAAYWDYEIMVVOGKPJBVBM9TDPULSFUNMTVXRKFIDOHUXXVYDLFSZYZTWQYTE9SPYYWYTXJYQ9IFGYOLZXWZBKWZN9QOOTBQMWMUBLEWUEEASRHRTNIQWJQNDWRYLCA'

    trits = conv.trytes_to_trits(inp)

    kerl = Kerl()
    kerl.absorb(trits)

    trits_out = []

    kerl.squeeze(trits_out, length=486)

    print('Out: ' + conv.trits_to_trytes(trits_out))