1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Trisia-gotlcp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Go TLCP

Github CI Documentation GitHub go.mod Go version GitHub tag (latest SemVer)

Технология информационной безопасности Transport Layer Cryptography Protocol (TLCP)

GoTLCP использует язык Go для реализации протокола TLCP (также известного как GMSSL), который соответствует стандарту «GB/T OnClickListener 38636-2020 信息安全技术 传输层密码协议».

GoTLCP реализует протоколы уровня записей, семейство протоколов рукопожатия и вычисление ключей, поддерживает полное рукопожатие TLCP, переиспользование сессий, защиту передачи и одностороннюю аутентификацию (серверная аутентификация) и двустороннюю аутентификацию.

Поддержка шифр-кортежей и их приоритет следующие:

  1. ECC_SM4_GCM_SM3
  2. ECC_SM4_CBC_SM3
  3. ECDHE_SM4_GCM_SM3
  4. ECDHE_SM4_CBC_SM3

Перед использованием GoTLCP, обязательно ознакомьтесь с «Go TLCP Disclaimer»!

Если клонирование и предварительный просмотр документации вызывают трудности, перейдите на https://gitee.com/Trisia/gotlcp

Благодарности:

  • Алгоритмы серии SM в проекте реализованы в проекте emmansun/gmsm, где оптимизация производительности алгоритмов достигается за счет использования инструкций процессора.
  • Код протокола TLCP проекта вырезан из модуля golang/src/crypto/tls версии go 1.19.## Установка

Для установки и использования GoTLCP вам необходимо сначала установить Go и настроить вашу среду Go. GoTLCP требует версию Go 1.18 или выше.

Вы можете установить GoTLCP с помощью следующей команды:

go get -u gitee.com/Trisia/gotlcp

GoTLCP обеспечивает обратную совместимость API, вы можете смело обновлять библиотеку GoTLCP до последней версии.

Быстрый старт

Клиент

package main

import (
	"fmt"
	"gitee.com/Trisia/gotlcp/tlcp"
)

func main() {
	conn, err := tlcp.Dial("tcp", "127.0.0.1:8443", &tlcp.Config{InsecureSkipVerify: true})
	if err != nil {
		panic(err)
	}
	defer conn.Close()

	buff := make([]byte, 516)
	n, err := conn.Read(buff)
	if err != nil {
		panic(err)
	}
	fmt.Printf(">> %s\n", buff[:n])
}

Примечание: настройка клиента InsecureSkipVerify указывает на пропуск проверки сертификата сервера.

Сервер

package main

import (
	"gitee.com/Trisia/gotlcp/tlcp"
	"net"
)

func main() {
	// Детали парсинга сертификатов представлены в полном коде ниже.
	config := &tlcp.Config{
		Certificates: []tlcp.Certificate{sigCert, encCert},
	}

	listen, err := tlcp.Listen("tcp", ":8443", config)
	if err != nil {
		panic(err)
	}
	var conn net.Conn
	for {
		conn, err = listen.Accept()
		if err != nil {
			panic(err)
		}
		_, _ = conn.Write([]byte("Hello Go TLCP!"))
		_ = conn.Close()
	}
}
```- Полный код доступен по ссылке [quickstart/server/main.go](./example/quickstart/server/main.go)

> Если вам требуется поддержка как TLCP, так и TLS протоколов, обратитесь к разделу [«GoTLCP протокол адаптер»](./pa/README.md).

## Документация

- [О TLCP протоколе](./doc/AboutTLCP.md)
- [GoTLCP цифровые сертификаты и ключи](./doc/CertAndKey.md)
- [Настройка GoTLCP клиента](./doc/ClientConfig.md)
- [Настройка GoTLCP сервера](./doc/ServerConfig.md)
- [Настройка GoTLCP HTTPS](./doc/HTTPsConfig.md)
- [GoTLCP протокол адаптер](./pa/README.md)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Go
MIT
Отмена

Обновления (35)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Trisia-gotlcp.git
git@api.gitlife.ru:oschina-mirror/Trisia-gotlcp.git
oschina-mirror
Trisia-gotlcp
Trisia-gotlcp
main