]> Sergey Matveev's repositories - stargrave-blog.git/commit
Tcl формат KEKS данных
authorSergey Matveev <stargrave@stargrave.org>
Sun, 28 Sep 2025 07:33:20 +0000 (10:33 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 28 Sep 2025 07:33:20 +0000 (10:33 +0300)
commit663f37b78c8bdaad68e812fe9617920076110c82
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent82e85c0ba01f79020669b4255107e2846e34334a
Tcl формат KEKS данных

Так как формат публичных ключей у меня поменялся, из-за изменения
формата подписанных (1622a2b02d847235ed48eae27b14868bc7604c36) данных,
то ключи мне надо конвертировать. По сути просто поменять местоположение
нескольких полей.

Как же удобно это можно сделать через промежуточное Tcl представление.
kekspp -tcl <key.pub выдаст мне портянку с:

    MAGIC "cm/pub"
    MAP {
      load {MAP {
        t {STR "pub"}
        v {MAP {
          id {BIN [binary decode hex "5ad..."]}
    [...]

которую я просто в редакторе исправляю в:

    MAGIC "cm/pub"
    MAP {
      tbs {MAP {
        t {STR "pub"}
      }}
      data {MAP {
        id {BIN [binary decode hex "5ad..."]}
    [...]

и делаю keks.tcl </tmp/... | xxd -r -p >new.pub

Для MessagePack я не помню с ходу инструментов с промежуточным
представлением. Для ASN.1 точно были, но работали не всегда хорошо
(детали не вспомню за сроком давности).