Всё плохо с существующими ASN.1 библиотеками и книгами

Что: e66aa937f5944de5ed36325186bdd5c462b38398

Когда: 2017-09-23 23:23:12+03:00

Темы: python

Всё плохо с существующими ASN.1 библиотеками и книгами

https://github.com/andrivet/python-asn1
Эта библиотека является форком другой. Существует давно. Время от
времени в неё что-то коммитится. Но... она некорректно (невалидно)
кодирует отрицательные целые числа. Если её забросили, то почему
всё-равно коммиты продолжают делать? Или не знают о баге?

http://luca.ntop.org/Teaching/Appunti/asn1.html
Эта документация по ASN.1 на которую ссылается сама Go реализация
encoding/asn1. Как минимум, в ней говорится что формат UTCTime может
быть разнообразным и в DER оно вот тоже в куче разных видов. Это ошибка,
обман (в DER возможна запись только в UTC).

Официальную спецификацию ASN.1 DER тоже читать... мягко говоря
непонятно. Или нужно соответствующее образование программерское, но я ни
черта не понял как надо кодировать отрицательные целые числа. Самое
понятное, ясное и простое по действиям я нашёл просто в реализации Go
encoding/asn1. Go это всё-таки неимоверно крутой язык -- его код
читается на раз два. А Python это просто помойка всяких говн (люто
ненавижу)!

pyasn1 библиотека которую мы используем: под Py27 в ней просто не
работает BitString пустой. Были баги с отсутствием сортировки. Ещё
какие-то по мелочам. Но нельзя её так просто было взять и чтобы всё
работало!

Всё в Python мире меня достало по этой теме и поэтому я решил взять и
написать own ASN.1 library with slots and offsets. Об этом уже упоминал
аж месяцы назад в a8fcb1a8b48f5ff1c74551cdcd4a06c57eb93470, но так и не
находилось время на его реализацию до конца (а ведь это надо сделать вне
рабочее время, чтобы компания, не имея прав, не смогла бы его сделать не
свободным).

оставить комментарий

Сгенерирован: SGBlog 0.34.0