From ef99b3faf2b819881f5677453e22161c1ae3cc00 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 24 Aug 2021 17:56:19 +0300 Subject: [PATCH] =?utf8?q?DJB=20=D1=82=D0=BE=20=D0=BD=D0=B5=20=D1=81=D0=B2?= =?utf8?q?=D1=8F=D1=82=D0=BE=D0=B9,=20=D0=BA=D0=BE=D1=81=D1=8F=D1=87=D0=B8?= =?utf8?q?=D1=82=20=D0=B2=20=D1=81=D0=B2=D0=BE=D1=91=D0=BC=20Python=20?= =?utf8?q?=D0=BA=D0=BE=D0=B4=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit http://ed25519.cr.yp.to/python/sign.py В нём есть вот такая строчка, которая должна чуть-чуть изменить изменить сообщение и убедиться что функция проверки упадёт: try: forgedm = ''.join([chr(ord(m[i])+(i==forgedmlen-1)) for i in range(len(m))]) ed25519.checkvalid(s,forgedm,pk) forgedsuccess = 1 except: pass assert not forgedsuccess вот только проблема в том, что если значение последнего байта будет 0xFF, то... при переполнении Python будет ругаться на range(256). При этом возникнет exception и тест посчитает что мы штатно упали, как и ожидали. Вот не надо делать checkvalid выбрасывающим исключения, ну вот зачем, DJB, ты это сделал? -- 2.50.0