

Отличия касаются наименований oid-ов. Утилита имеет следующий синтаксис:
$dertcl.tcl <входной файл> <выходной файл | stdout> <1 | 0> <der | pem | hex>
где
- <входной файл> — указывает путь к файлу с ASN1-структурой;
- <выходной файл> — указывает на файл, где будет сохранен результат разбора: если в качестве выходого файла указано stdout, то результат будет отправлен в стандартный вывод;
- третий параметр указывает на то, что надо выводить полную (1) информацию;
- четвертый параметр задает формат входного файла, где der – это бинарный файл, pem указывает на то, что файл содержит данные в кодировке base64 с заголовком «-----BEGIN … — » и концевиком «-----END … — » как это принято в openssl, и, наконец, hex говорит, что файл содержит шестнадцатеричный код. При этом он может содержать и спецсимволы (\r, \n, \t), пробелы и символы «.» и «:». Откуда появились символы точка и двоеточие станет понятно ниже.
Формат hex был для меня просто жизненно необходим. Ведь для того, чтобы разобрать какой-нибудь кусок из распарсенного файла, приходилось переводить его в бинарный вид (der-кодировка) и сново пропускать через утилиту. Формат hex очень облегчил жизнь.
Конечно, пользоваться чистым кодом tcl (а впрочем как и любым другим скриптовым кодом, например, python) не совсем комфортно. Поэтому утилиты оформлена в дистрибутивы tclderdump для платформ Linux, Windows и OS X. Эти дистрибутивы самодостаточны: скачиваешь и запускаешь.
Однако вернемся к возможности просматривать ASN1-структуры, хранящиеся в шестнадцатеричном вид. Помимо выше упоминавшихся утилит для просмотра ASN1-структур есть еще хорошая утилита pyderasn, написанная на Python, которая в выводе использует символы точка и двоеточие, и было решено, что они тоже могут присутствовать в шестнадцатеричном коде. Ниже приводится результат распарсивания одного и того же сертификата x509 v.3 утилитами derdump.tcl и pederasn:

Но хотелось большего, а именно графического интерфейса и возможности распарсивать внутренние блоки налету. Было решено добавить этот функционал в утилиту cryptoarmpkcs, тем более, что ей есть куда развиваться, например, шифровать документы на сертификате адресата. И здесь опять не обойтись без просмотрщика ASN1-структур.
Для этих целей было решено переориентировать функциональную кнопку «Информация о токене». Мы именно переориентировали кнопку и закрепили за ней новый функционал «Просмотр ASN1-структуры», а информацию о подключенном токене по-прежнему можно получить, наведя курсор на имя токена справа от метки «Выберите токен/смарткарту»:

Здесь все просто. Выбираем файл с ASN1-структурой, указываем в каком он формате, решаем нужны ли нам дополнительные подробности и нажимаем кнопку «Просмотр ASN1-файла»:

Сравнивая правый и левый скриншоты, можно воочию видеть какую дополнительную информацию можно получить при нажатой кнопке «Дополнительная информация». Для сохранения структуры в разобранном виде достаточно нажать кнопку «Сохранить».
Если зажать левую клавишу мыши, то можно выделить интересующий нас блок. И, если теперь на выделенном блоке, нажать правую клавишу мыши, то появится меню со следующими пунктами:
- копировать в буфер обмена;
- просмотреть выделенный блок.
И если выбрать пункт «Просмотреть выделенный блок», то появится окно с распарсенным блоком:

Если же нажать кнопку «копировать в буфер обмена», то выделенный блок будет скопирован в буфер обмена. Буфер обмена можно будет просмотреть, нажав кнопку «ASN1-буфера обмена». Пользователь может сам положить данные в буфер обмена своими средствами, а потом здесь их просмотреть.
И поскольку утилита часто обновляется, то добавлена возможность получения новых версий утилиты непосредственно из нею. Для этого достаточно навести курсор мыши на поле «PKCS#11, x509v3, PKCS#10, PKCS#7, CMS, PKCS#12, ASN1», нажать правую кнопку мыши и выбрать в появившемся меню пункт «О программе». В появившемся окне достаточно выбрать платформу и нажать левую клавишу мыши:

При успешном получении дистрибутива вы получите соответствующее сообщение о том, где сохранен полученный архив:

P.S. Для тех кто в первый раз хочет получить утилиты, это по-прежнему можно сделать здесь: