2 часа назад
История
README.md
Введение
gost-curl — curl-подобный HTTP-клиент с поддержкой ГОСТ алгоритмов. Поддерживается только TLS 1.3, шифр “Кузнечик”. Шифр “Магма” не поддерживается.
Основано на библиотеке crypto-gost.
-> % ./gost-curl -h
gost-curl — консольный HTTP-клиент с поддержкой ГОСТ TLS 1.3 v0.1.0. Red Stars Systems 2026.
Использование: gost-curl [опции] <url>
Опции:
-X, --request <метод> HTTP-метод (по умолчанию: GET)
-d, --data <тело> Тело запроса (меняет метод на POST)
-H, --header <Имя:Знч> Заголовок запроса (можно повторять)
-v, --verbose Показать заголовки запроса и ответа
-o, --output <файл> Сохранить ответ в файл (по умолчанию: stdout)
-L, --location Следовать перенаправлениям (3xx)
-k, --insecure Отключить проверку сертификата и hostname (только разработка)
-I, --head Получить только заголовки (HEAD-запрос)
-C, --continue-at <N|-> Докачка: -C - (авто) или -C <оффсет>
-u, --user <user:pass> Basic-аутентификация (user:pass или запрос пароля)
-x, --proxy <url> HTTP/SOCKS5-прокси (http://user:pass@host:port)
-r, --range <N-N|N-|-N> Диапазон байт
-T, --upload-file <ф> Загрузить файл (PUT)
-F, --form <n=v|n=@ф> Multipart form-data (можно повторять)
--ca, --cacert <файл> CA-сертификат(ы) (PEM или DER) для проверки сервера.
PEM-файл может содержать цепочку доверенных CA
--cert <файл>[:<пароль>] Клиентский сертификат для mTLS.
PEM — цепочка сертификатов (leaf + промежуточные).
PKCS12/PFX — сертификат + ключ. Пароль опционально.
--key <файл> Закрытый ключ клиента (PEM или DER) для mTLS.
Поддерживаются зашифрованные PEM-ключи.
--passin <spec> Источник пароля для PKCS12 или зашифрованного ключа.
Форматы: pass:xxx, file:путь, env:VAR, stdin
--connect-timeout с Таймаут соединения (по умолчанию: 10)
--read-timeout с Таймаут чтения (по умолчанию: 30)
--tlsv1.3 Использовать TLS 1.3 (всегда включён)
--progress-bar Показать прогресс-бар со скоростью и ETA
--speed-limit <байт/с> Отмена при скорости ниже лимита
--speed-time <сек> Время замера скорости (по умолч. 30)
--retry <N> Повтор при ошибке до N раз
--retry-delay <сек> Задержка между повторами (по умолч. 1)
--limit-rate <скорость> Ограничить скорость (500K, 2M, 1G)
--no-verify-hostname Отключить проверку совпадения имени хоста (CN/SAN) с сертификатом (по умолчанию включена)
-h, --help Показать эту справку
Примеры:
gost-curl --ca ca.pem https://gost-server.example/api
gost-curl --ca ca-chain.pem --cert client.pem --key client-key.pem \
https://mtls-server.example/api
gost-curl --cert client.p12:secret https://mtls-server.example/api
gost-curl --cert client.p12 --passin file:pass.txt https://mtls-server.example/api
gost-curl --cert encrypted.pem --key encrypted-key.pem --passin pass:secret \
https://mtls-server.example/api
gost-curl -k -X POST -d '{"key":"value"}' -H "Content-Type: application/json" \
--ca ca.pem https://gost-server.example/api
gost-curl -k -L -o page.html https://gost-server.example/redirect
Раздел для разработчиков
Для сборки необходимо установить Java 21+, maven.
Для получения бинарного файла необходимо дополнительно установить GraalVM 25+.
# Получение исполняемого jar-файла
make gost-curl-jar
# Получение бинарного исполняемого файла
make gost-curl-native
Лицензия
Автор: Михаил Ананьев.
Данный проект распространяется под Открытой лицензией на программное обеспечение “Рэд старс системс”, версия 1.0.
Текст лицензии находится в файле LICENSE или по ссылке.
Описание
Консольный HTTP-клиент (curl-аналог) с поддержкой ГОСТ TLS 1.3
Конвейеры
0
успешных
0
с ошибкой