[О блоге]
[наверх]
[пред]
[2021-08-24 17:56:19+03:00]
[ef99b3faf2b819881f5677453e22161c1ae3cc00]
Темы: [djb][python]
DJB то не святой, косячит в своём Python коде
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, ты это сделал?
[оставить комментарий]