X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=pygost%2Ftest_gost34112012.py;h=a2ef83887636d368c4c13f02692cfe1e3dd225e1;hb=fbaa1fc82dbec2c3ebaf8d272600ef4f91649e08;hp=78a638461ffaa58644d7d5c861aa1f58c7284513;hpb=f3cbdf5265fbc11a8cfd092264b372a89c669b44;p=pygost.git diff --git a/pygost/test_gost34112012.py b/pygost/test_gost34112012.py index 78a6384..a2ef838 100644 --- a/pygost/test_gost34112012.py +++ b/pygost/test_gost34112012.py @@ -1,11 +1,10 @@ # coding: utf-8 # PyGOST -- Pure Python GOST cryptographic functions library -# Copyright (C) 2015-2019 Sergey Matveev +# Copyright (C) 2015-2024 Sergey Matveev # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# the Free Software Foundation, version 3 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,6 +14,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +from os import urandom +from random import randint from unittest import skip from unittest import TestCase import hmac @@ -38,6 +39,20 @@ class TestCopy(TestCase): self.assertSequenceEqual(m.digest(), c.digest()) +class TestSymmetric(TestCase): + def runTest(self): + chunks = [] + for _ in range(randint(1, 10)): + chunks.append(urandom(randint(20, 80))) + m = GOST34112012256() + for chunk in chunks: + m.update(chunk) + self.assertSequenceEqual( + m.hexdigest(), + GOST34112012256(b"".join(chunks)).hexdigest(), + ) + + class TestHMAC(TestCase): """RFC 7836 """ @@ -89,7 +104,7 @@ class TestVectors(TestCase): ) def test_habr144(self): - """Test vector from https://habr.com/ru/post/450024/ + """Test vector from https://habr.com/ru/post/452200/ """ m = hexdec("d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000002400000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff") self.assertSequenceEqual(