1. Введение 1.1. Безопасность и модель угроз 2. Базовая терминология 3. Криптография 3.1. Дескриптор криптоалгоритма [CryptoDs] 3.1.1. Дескриптор хэш-функции [HashCryptoDs] 3.1.2. Дескриптор симметричного шифра [SymCiphCryptoDs] 3.1.3. Дескриптор асимметричного шифра [AsymCiphCryptoDs] 3.2. Дескриптор набора криптоалгоритмов [CryptoPack] 3.2.1. Набор для хэширования [HashCryptoPack] 3.2.2. Набор для симметричного шифрования [SymCiphCryptoPack] 3.2.3. Набор для подписи [SignCryptoPack; набор для подписи, т.е. AsymCiphCryptoDs + HashCryptoDs] 3.2.4. Набор для генерации ключей [KDCryptoPack; набор для Key Derivation, т.е. существующая KDF или SymCiphCryptoDs + HashCryptoDs] 3.2.4.1. Стартовое значение для KDF [KDInitValue; значение, которым впервые инициализируется KDF] 3.2.4.2. Константа для KDF [KDPrivConst; приватное значение, используемое в качестве второго аргумента KDF] 4. Установка соединения 4.1. Возможные параметры 4.1.1. Магическое число протокола 4.1.2. Версия протокола 4.2. Запрос рукопожатия 4.3. Ответ на рукопожатие 5. Сессия 5.1. Поток 5.1.1. Состояние [StreamState; Running, Desynchronized] 5.1.2. Идентификатор потока [StreamId, SrvStreamId, CltStreamId] 5.1.3. Секрет потока [StreamSecret] 5.1.4. Криптографические параметры потока 5.1.5. Параметры сжатия потока 5.1.6. Контроль последовательности 5.1.7. Шумовые пакеты 5.2. Секрет сессии [SessionSecret] 6. Событие 6.1. Тип события 6.2. Зарезервированные типы и диапазоны типов событий 6.3. Содержание события 6.3.1. Формат содержания зарезервированных событий 6.4. Запрос и ответ [абстрактно] 7. Пакет 7.1. Заголовок пакета 7.1.1. Код аутентификации [Packet Authentication Code, PAC, CltPAC, SrvPAC; проверка целостности и достоверности] 7.1.2. Флаги 7.1.3. Идентификатор ответа [RespId; мб стоит сделать PacketID и обязательным для всех, дабы перезапрашивать в случае повреждения] 7.2. Полезная нагрузка 7.2.1. Шум в полезной нагрузке пакета 7.3. Структура и шифрование 7.4. Пачка пакетов и разбиение полезной нагрузки 8. Транспортный адаптер 8.1. Дескриптор транспортного адаптера [TransportDs] 8.2. Свойства адаптеров 8.2.1. Максимальный размер полезной нагрузки 8.2.2. Гарантия последовательности 8.2.3. Гарантия обнаружения недоставки [?] 8.2.4. Гарантия целостности 8.2.5. Наличие шифрования 8.3. Список адаптеров [мб стоит вынести в отдельную спеку] 8.3.1. UDP-raw 8.3.2. TCP-raw 8.3.3. HTTP1.1-text+binary [текстовые HTTP/1.1 POST-запросы и бинарные ответы] 8.3.4. [???] 9. Сериализация данных [Linear Binary Map (?)] 9.1. Используемые ключи полезной нагрузки 10. Расширения протокола [SPX] 10.1. Идентификатор расширения [SPXI] 10.2. Дескриптор расширения [SPXD]