xenon
@xenon
Too drunk to fsck

Как «помечать» объекты, красиво ли добавлять свои атрибуты в чужие объекты?

В моем случае у меня есть цепочка (list) сертификатов (cryptography.x509), но хотелось бы разобраться в общем случае.

Из этого списка, некоторые сертификаты могут не пройти проверку (например, "протухнуть"). И у нас есть функция (назовем ее verify_chain), которая проверяет сертификаты.

А уже затем, другая функция print_cert печатает каждый сертификат из цепочки (по 1 штуке) и хотелось бы, чтобы она могла напечатать, какой из сертификатов не прошел проверку. Важный момент - проверка и печать разделены, неправильно проверять сертификат без контекста (т.к. он подписан другим сертификатом из цепочки, и без того сертификата он не валиден, а с ним - валиден.).

Как решить задачу - я вижу аж несколько способов, но мне интересно, какой из них идеологически верный?

Самый простой, но спорный - тупо вхерачить в объект чужого класса свой удивительный атрибут и делать вроде `cert.verified = True`. Всем хорош, работать будет, но принято ли так делать в хорошем обществе?

Или делать свой класс (на основе вот этого, стандартного, из чужого пакета) и постоянно конвертироваться между ними, и все это только ради одного булевого поля?
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Я бы заставил verify_chain() возвращать список объектов-сертификатов, не прошедших проверку (ну и переименовал бы её соответственно, типа find_broken_certs()). Так как это ссылки на существующие объекты, объём памяти будет затрачен минимальный. Проверить, есть ли в списке хоть один сертификат - тривиально. А если хочется подробностей - вот он список, читай.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы