mirror of https://github.com/voidlizard/hbs2
wip, doc
This commit is contained in:
parent
c9349b21f9
commit
18ed7137b9
|
@ -573,6 +573,65 @@ From hbs21://8vFu9S79ysdWag4wek53YWXbC5nCRLF7arGp6181G4js
|
||||||
|
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
|
\paragraph{Инициализация нового зашифрованного (приватного) репозитория}
|
||||||
|
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Создание ключа шифрования
|
||||||
|
\item Создание группового ключа
|
||||||
|
\item Инициализация репозитория
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
# ключ для нового репозитория
|
||||||
|
|
||||||
|
hbs2 keyring-new > newrepo222.key
|
||||||
|
|
||||||
|
# ключи шифрования
|
||||||
|
hbs2 keyring-new -n2 > mykeys.key
|
||||||
|
|
||||||
|
# проиндексировать ключи
|
||||||
|
hbs2-keyman update
|
||||||
|
|
||||||
|
# посмотреть, что проиндексировались
|
||||||
|
hbs2-keyman list
|
||||||
|
|
||||||
|
[user@host:~]$ hbs2-keyman list
|
||||||
|
HfLafVAmqaZkYFQVtbhRwDEyJtpQduEd1cjDK4bq6N4T sign /home/hbs2/mykeys.key
|
||||||
|
BEoa1tY5tFYYbCtNVhSebz6fZQMSbuSADgkFDHP52wCm encrypt /home/hbs2/mykeys.key
|
||||||
|
48NGvahqkrQed4dGKNjbzMnv7rBbf5JTdc4DurhPzvmD encrypt /home/hbs2/mykeys.key
|
||||||
|
8vFu9S79ysdWag4wek53YWXbC5nCRLF7arGp6181G4js sign /home/hbs2/newrepo111.key
|
||||||
|
C6tTuapmG7sE8QktQo4q4tBr8kNWKvBruNb36HYThpuy sign /home/hbs2/newrepo222.key
|
||||||
|
|
||||||
|
# создать репо
|
||||||
|
mkdir encrypted
|
||||||
|
|
||||||
|
cd encrypted
|
||||||
|
git init
|
||||||
|
echo ENCRYPTED > README
|
||||||
|
git add README
|
||||||
|
git commit -a -m 'init encrypted'
|
||||||
|
|
||||||
|
# создать групповой ключ
|
||||||
|
[user@hbs2-test:~/encrypted]$ hbs2 groupkey from-keys > gk0.key
|
||||||
|
67CRxnoQWasQsY9iidjJDYXSTKEZkpSVgDQYweWuhfd3
|
||||||
|
BEoa1tY5tFYYbCtNVhSebz6fZQMSbuSADgkFDHP52wCm
|
||||||
|
^D
|
||||||
|
|
||||||
|
# инициализировать репозиторий
|
||||||
|
git hbs2 export --new --encrypted ./gk0.key C6tTuapmG7sE8QktQo4q4tBr8kNWKvBruNb36HYThpuy
|
||||||
|
|
||||||
|
# добавить remote
|
||||||
|
git remote add origin hbs2://C6tTuapmG7sE8QktQo4q4tBr8kNWKvBruNb36HYThpuy
|
||||||
|
|
||||||
|
git fetch origin
|
||||||
|
|
||||||
|
[user@host:~/encrypted]$ git fetch origin
|
||||||
|
From hbs21://C6tTuapmG7sE8QktQo4q4tBr8kNWKvBruNb36HYThpuy
|
||||||
|
* [new branch] master -> origin/master
|
||||||
|
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
|
||||||
\subsubsection{Клонировать (чужой) репозиторий}
|
\subsubsection{Клонировать (чужой) репозиторий}
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
|
@ -584,6 +643,101 @@ Cloning into '8vFu9S79ysdWag4wek53YWXbC5nCRLF7arGp6181G4js'...
|
||||||
Если клонируется зашифрованный репозиторий, то ключ, которым планируется
|
Если клонируется зашифрованный репозиторий, то ключ, которым планируется
|
||||||
расшифровка должен быть добавлен в hbs2-keyman ( hbs2-keyman update \&\& hbs2-keyman list )
|
расшифровка должен быть добавлен в hbs2-keyman ( hbs2-keyman update \&\& hbs2-keyman list )
|
||||||
|
|
||||||
|
\subsubsection{Обновить групповой ключ / метаданные}
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
git hbs2 export --encrypted ./gk-new.key C6tTuapmG7sE8QktQo4q4tBr8kNWKvBruNb36HYThpuy
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
Для обновления манифеста --- редактировать файл \texttt{.hbs2-git/manifest} и сделать
|
||||||
|
git commit/push либо же вызвать \texttt{git hbs2 export <LWWREF>}
|
||||||
|
|
||||||
|
\subsubsection{Смотреть групповой ключ}
|
||||||
|
|
||||||
|
\texttt{git hbs2 key}
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
[user@host:~/encrypted]$ git hbs2 key
|
||||||
|
E3Uq1u9xD6RYF5mzK373rGMCRyJoFCzRZh7oWhmqc9aD
|
||||||
|
|
||||||
|
[user@host:~/encrypted]$ git hbs2 key --full
|
||||||
|
;; group key E3Uq1u9xD6RYF5mzK373rGMCRyJoFCzRZh7oWhmqc9aD
|
||||||
|
|
||||||
|
member "BEoa1tY5tFYYbCtNVhSebz6fZQMSbuSADgkFDHP52wCm"
|
||||||
|
member "67CRxnoQWasQsY9iidjJDYXSTKEZkpSVgDQYweWuhfd3"
|
||||||
|
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
Если ключ есть, но команда \texttt{git hbs2 key --full} его не выводит --
|
||||||
|
попробовать сделать
|
||||||
|
|
||||||
|
\texttt{hbs2-peer fetch <HASH>}
|
||||||
|
|
||||||
|
и через какое-то время повторить.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
[user@host:~/encrypted]$ hbs2-peer fetch E3Uq1u9xD6RYF5mzK373rGMCRyJoFCzRZh7oWhmqc9aD
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
\subsubsection{Редактировать групповой ключ}
|
||||||
|
|
||||||
|
\paragraph{Способ 1 / DSL ключа}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item[-] Получить групповой ключ в виде DSL (см. вывод \texttt{git hbs2 key --full})
|
||||||
|
\item[-] Добавить или удалить \texttt{member} из файла
|
||||||
|
\item[-] Выполнить \texttt{hbs2 groupkey gen <GK-FILE|stdin>}
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\paragraph{Способ 2 / Список публичных ключей}
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
cat keys | hbs2 groupkey from-keys
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
В stdin перечислить в виде строк (без кавычек) публичные ключи участников
|
||||||
|
|
||||||
|
\pagebreak
|
||||||
|
|
||||||
|
\paragraph{Способ 3 / из <<сигилов>>}
|
||||||
|
|
||||||
|
Файл с персональной информацией некоего агента назвается <<сигил>> (<<sigil>>).
|
||||||
|
Он содержит публичный ключ шифрования, публичный ключ подписи и все это подписано
|
||||||
|
приватным ключом подписи контрагента. <<Сигил>> является публичной информацией,
|
||||||
|
своего рода визиткой, например:
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
cat my.sigil
|
||||||
|
# sigil file. public data
|
||||||
|
YDaV7iHp8H9mpsCPpKY9mEWxy9PT4FmKQBMunrLJdeu7ECzVeoPwLFJ1tA4r
|
||||||
|
S4rthPhmYjdxznYucdopok8Q2FqPgC2Co9Pz3UoJUQVXNXNHF7cQo7EbC3sp
|
||||||
|
g4SYE8CwbXBdT5ZWNtKJEFJtSKQwQsQzPYhwCsab6fMsejXCj1XRBMSBhKpw
|
||||||
|
yMUGzBpvxGWX2xp5tK9rCVbnkxwuV5X3MzNabhrQ4rZrTQ5kXn6Jk7wGy4Zk
|
||||||
|
JLuEBTmy4JfCRn
|
||||||
|
|
||||||
|
hbs2 sigil check my.sigil
|
||||||
|
(sigil
|
||||||
|
(sign-pubkey "ExTZuEy2qVBRshWdSwfxeKcMmQLbK2f5NxRwhvXda9qd")
|
||||||
|
(encrypt-pubkey "5UXrEhYECJ2kEQZZPEf4TisfWsLNdh2nGYQQz8X9ioMv"))
|
||||||
|
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
Это похоже на сертификат, но специально названо иначе, что бы не путать
|
||||||
|
с какими-либо распространенными моделями сертификатов.
|
||||||
|
|
||||||
|
Создать <<cигил>> можно при помощи команды
|
||||||
|
|
||||||
|
\texttt{hbs2 sigil create}
|
||||||
|
|
||||||
|
указав файл с ключами, публичный ключ и метаинформацию.
|
||||||
|
|
||||||
|
Участники могут создать свои <<сигилы>> и прислать их майнтенеру репозитория,
|
||||||
|
и тот может добавить их в групповой ключ при помощи команды
|
||||||
|
|
||||||
|
\texttt{hbs2 groupkey from-sigils <SIGIL-FILE-LIST>}
|
||||||
|
|
||||||
|
перечислив в командной строке список <<сигилов>>.
|
||||||
|
|
||||||
\subsubsection{Подписка на репозиторий}
|
\subsubsection{Подписка на репозиторий}
|
||||||
|
|
||||||
Подписаться на репозиторий, но не клонировать его:
|
Подписаться на репозиторий, но не клонировать его:
|
||||||
|
|
Loading…
Reference in New Issue