From da6f77caf60218017f75abdba0a62d0f52d05e71 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 14 Apr 2020 11:03:50 +0300 Subject: [PATCH] =?utf8?q?=D0=97=D0=B0=D1=80=D0=B5=D0=BB=D0=B8=D0=B7=D0=B8?= =?utf8?q?=D0=BB=20PyDERASN=207.7/7.8?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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-ов может смутить разработчика неожиданным поведением. -- 2.50.0