"Код - это лучшая документация!" - так говорят недальновидные программисты, которые любят замыкать проекты на себе любимом, и искуственно делают себя самым незаменимым человеком в команде. В стане OpenSource тоже частенько происходят подобные процессы. Я же считаю, что такое положение вещей недопустимо, если заниматься выправлением цифровой вселенной в правильное, созидательное русло. Поэтому я всегда стараюсь писать простой код и не ленюсь сопровождать его комментариями. Но этого не всегда достаточно, когда проект разрастается.
Поэтому, для проекта MyTetra я потихоньку пишу документацию и различные обзоры функционала. Уже существуют статьи о настройке синхронизации через Интернет, описание формата хранения данных, описание опций командной строки, описания различных настроек подсистемы грячих клавиш. А сегодня опубликована новая статья:
Описание системы шифрования в MyTetra
Это описание очень долго существовало в закрытом виде в виде заметочек "чтобы не забыть как что с чем связано". Наконец-то у меня дошли руки собрать все воедино и сделать одну общую статью о всей подсистеме шифрования, используемой в MyTetra.
Существование такой статьи необходимо из-за того, что в MyTetra применяется не просто шифрование в лоб, по типу вот пароль, вот данные, шифруем! А сделаны различные дополнительные механизмы для проверки пароля при разных сценариях использования, плюс сделана реализация "запоминания пароля" для ленивых пользователей, что потребовало дополнительного усложнения системы шифрования и схемы хранения ключевых данных.
Рекомендуется к прочтению всем разработчикам, принимающих участие в проекте MyTetra.