From 4dffb278147e009b0844a147587b148313f22a2b Mon Sep 17 00:00:00 2001 From: Sergey Matveev <stargrave@stargrave.org> Date: Sun, 16 Feb 2020 21:45:09 +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.0=20(=D0=B8=207.1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit ТÑма ÑабоÑÑ Ð¿Ñоделана над ÑÑим Ñелизом! Ðз важнейÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹, Ñади коÑоÑÑÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ обновлÑÑÑÑÑ: * ÑоÑÑиÑовка ÑлеменÑов пÑи кодиÑовании в DER делалаÑÑ Ð½ÐµÐ¿ÑавилÑно. Ðа пÑакÑике, по ÑиÑÑÐ¾Ð¼Ñ Ð²ÐµÐ·ÐµÐ½Ð¸Ñ Ñ Ð½Ð¾Ð¼ÐµÑами IMPLICIT/EXPLICIT ÑÑгов, оно полÑÑаеÑÑÑ ÐºÐ¾ÑÑекÑнÑм, но Ñ Ð² кÑÑÑе ÑолÑко пÑо X.509 облаÑÑÑ * в SET кодиÑование можно бÑло заÑÑнÑÑÑ Ð½ÐµÑколÑко ÑлеменÑов Ñ Ð¾Ð´Ð½Ð¸Ð¼ и Ñем же ÑÑгом и поÑледний "вÑигÑаеÑ", ниÑего не ÑпадÑÑ, Ñ Ð¾ÑÑ ÑиÑÑаÑÐ¸Ñ Ð°Ð±ÑолÑÑно недопÑÑÑÐ¸Ð¼Ð°Ñ ÐÑ Ð° далÑÑе Ñ Ñвидел как-Ñо ÑÑо в pyasn1 поÑвилоÑÑ ÑÑо-Ñо не ÑÐµÐ¼Ñ Ð¿Ð¾Ñокового декодиÑованиÑ. Ð Ð¼ÐµÐ½Ñ Ð² дополнение не оÑÑавлÑла мÑÑÐ»Ñ ÑÑо оÑпаÑÑиÑÑ CACert.org CRL-ÐºÑ Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ð¾Ð»Ð³Ð¸Ð³Ð° в PyDERASN (в дÑÑÐ³Ð¸Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑÐµÐºÐ°Ñ ÐµÑÑ Ð±Ð¾Ð»ÑÑе оÑÑÑимо): http://pyderasn.cypherpunks.ru/performance.html Реализовал Ñ Ñежим декодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ evgen (event generation). ÐÑо позволÑÐµÑ Ð±ÑквалÑно поÑок ÑобÑÑий декодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±ÑабаÑÑваÑÑ Ð½Ð° леÑÑ, вообÑе не Ð·Ð°Ð½Ð¸Ð¼Ð°Ñ Ð¿Ð°Ð¼ÑÑÑ Ð´ÐµÐºÐ¾Ð´Ð¸ÑованнÑми ÑÑÑÑкÑÑÑами (нÑ, поÑÑи). Ðобавил поддеÑÐ¶ÐºÑ (Ð½Ñ ÑоÑнее оно и Ñак ÑабоÑало, пÑоÑÑо не бÑло ÑдобнÑÑ Ð¾Ð±ÑÑÑок) mmap-ed Ñайлов над коÑоÑÑми можно ÑделаÑÑ memoryview -- ÑÑо позволÑÐµÑ Ð²Ð¾Ð¾Ð±Ñе не загÑÑжаÑÑ Ð´ÐµÐºÐ¾Ð´Ð¸ÑÑемÑй Ñайл в памÑÑÑ. ХоÑоÑо, Ð¼Ð¾Ð¶ÐµÑ ÑепеÑÑ Ð´ÐµÐºÐ¾Ð´Ð¸ÑоваÑÑ Ð²ÑÑ ÑÑо Ñгодно. Ркак закодиÑоваÑÑ? Ðобавил возможноÑÑÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² CER. ÐекодиÑоваÑÑ ÐµÐ³Ð¾ в BER Ñежиме и Ñак можно, пÑавда без валидаÑии ÑÑо ÑÑо валиднÑй CER. CER пиÑÐµÑ ÑÑÐ°Ð·Ñ Ð½Ð°Ð¿ÑÑмÑÑ Ð² writer: Ñ Ð¾ÑÑ Ð¿Ð°Ð¼ÑÑÑ, Ñ Ð¾ÑÑ Ñайл на диÑке. Ðне CER оÑÐµÐ½Ñ Ð¿Ð¾Ð½ÑавилÑÑ: ÑеалÑно можно без пÑоблем его кодиÑоваÑÑ Ð¿Ð¾Ñоково, плÑÑ Ð¾Ð½ Ð¸Ð¼ÐµÐµÑ Ð¾Ð´Ð½Ð¾ и ÑолÑко одно пÑедÑÑавление, ÑÑо Ð´ÐµÐ»Ð°ÐµÑ Ð¿ÑигоднÑм Ð´Ð»Ñ ÐºÑипÑогÑаÑии. Ðо... наÑколÑко понимаÑ, поÑвилÑÑ Ð¾Ð½ ÑÑÑÑ Ð¿Ð¾Ð¿Ð¾Ð·Ð¶Ðµ Ñем DER, ÑÑÑÑ Ð¿Ð¾Ñложнее ÑÑебÑÐµÑ ÐºÐ¾Ð´ÐµÐºÐ¸ и поÑÑÐ¾Ð¼Ñ Ð½Ð° пÑакÑике в маÑÑÑ Ð½Ðµ поÑÑл кÑипÑогÑаÑиÑеÑкие. ТепеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ в памÑÑи имеÑÑ ÑолÑко Python ÑÑÑÑкÑÑÑÑ. РеÑли Ñ Ð¾ÑеÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾ Ð³Ð¸Ð³Ð°Ð±Ð°Ð¹Ñ Ð·Ð°ÐºÐ¾Ð´Ð¸ÑоваÑÑ? Ðобавил поддеÑÐ¶ÐºÑ ÑÑÐµÐ½Ð¸Ñ OCTET STRING-ов из memoryview. ÐÑли ÑÑÐ¾Ñ memoryview бÑÐ´ÐµÑ Ð½Ð°Ð´ mmap-нÑÑÑм Ñайлом, Ñо ÑÑи гигабайÑÑ Ð½Ðµ пÑидÑÑÑÑ Ð·Ð°Ð³ÑÑжаÑÑ Ð² памÑÑÑ, а пÑÑм бÑквалÑно килобайÑнÑми кÑÑоÑками копиÑÑÑ Ð¸Ð· mmap Ñайла в какой-Ñо вÑÑ Ð¾Ð´Ð½Ð¾Ð¹ бÑÑеÑ/Ñайл. Ðо ÑÑи бинаÑнÑе даннÑе в CER кодиÑовании бÑдÑÑ ÑазбиÑÑ Ð½Ð° множеÑÑво кÑÑоÑков! Ðобавил agg_octet_string коÑоÑÑй из evgen-ов Ð¼Ð¾Ð¶ÐµÑ Ñдобно ÑобÑаÑÑ Ð¸Ñ Ð²Ð¾ÐµÐ´Ð¸Ð½Ð¾, напÑÐ¸Ð¼ÐµÑ ÑÑÐ°Ð·Ñ Ð·Ð°Ð¿Ð¸ÑÑÐ²Ð°Ñ Ð² Ñайл или Ñам hasher какой-нибÑдÑ. РеÑли Ñ Ð¾ÑеÑÑÑ ÑоздаÑÑ Ð²ÑÑ Ð¶Ðµ CRL-кÑ, в коÑоÑой Ð¼Ð¸Ð»Ð»Ð¸Ð¾Ð½Ñ Ð·Ð°Ð¿Ð¸Ñей? Ðобавил возможноÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ÑеÑаÑоÑов в SEQUENCE OF. -- 2.51.0