From: Sergey Matveev Date: Tue, 14 Apr 2020 08:03:50 +0000 (+0300) Subject: Зарелизил PyDERASN 7.7/7.8 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=da6f77caf60218017f75abdba0a62d0f52d05e71;p=stargrave-blog.git Зарелизил PyDERASN 7.7/7.8 https://lists.cypherpunks.ru/pipermail/pyderasn-devel/2020-April/000044.html https://lists.cypherpunks.ru/pipermail/pyderasn-devel/2020-April/000047.html Прежде тэги не проверялись при декодировании на чёткое следование требованиям BER/CER/DER (они общие для тэгов). Например там могли идти байты с нулевым значением -- при декодировании номер тэга будет такой же, но у него несколько разных представлений возможно. Кроме того, любой тэг в короткой форме можно всегда представить и в длинной, что тоже запрещено. Почему я раньше не проверял? Наверное были мысли о том, что, раз всё равно наверняка декодирование будет идти по схеме, где в виде байтов задаётся требуемый тэг, то вопросы его корректности -- это вопрос корректности схемы, который PyDERASN-а не касается. Но функи типа tag_strip, len_decode используются далеко не только во внутренностях и работе с высокоуровневыми объектами, поэтому было бы хорошо чтобы они блюли стандарты и проверки. Благо что BER/CER/DER требования тут общие. Плюс добавил явный запрет на использование aware datetime-ов, ибо по сути работа идёт только с naive временами, и aware datetime-ов может смутить разработчика неожиданным поведением. ---