Example #1
0
    def verify(self, rawdata, signature):
        try:
            binary_sign = base64.b64decode(signature)
        except binasciiError:
            return False
        blocks = split(rawdata.encode(), BLOCK_SIZE)
        signature_blocks = split(binary_sign, 256)
        verified_block = []
        for raw_block, sign_block in zip(blocks, signature_blocks):
            c = int.from_bytes(sign_block, 'big')
            original = pow(c, self.e, self.n)
            signed = _int2Bytes(original)
            verified_block.append(signed)

        assembled = assemble(verified_block)

        return assembled == bytes(rawdata.encode())
Example #2
0
 def test_long_word(self):
     rawdata = bytes(randomword(30).encode())
     blocks = split(rawdata, 15)
     self.assertEqual(assemble(blocks), rawdata)
     self.assertNotEqual(assemble(blocks[:-1]), rawdata)
Example #3
0
 def test_no_padd(self):
     rawdata = bytes(randomword(30).encode())
     blocks = split(rawdata, 10)
     self.assertEqual(assemble(blocks), rawdata)
Example #4
0
 def test_all_word(self):
     for i in range(1, 2 ** 10):
         rawdata = bytes(randomword(i).encode())
         blocks = split(rawdata, 15)
         self.assertEqual(assemble(blocks), rawdata)