Files
Bridge-and-Join-s/internal/cryptocli

internal/cryptocli — Go-клиент crypto-service

Реализация m2mcore.CryptoVerifier поверх gRPC по Unix Domain Socket.

Состояние

На M1 — заглушка. Подключается к UDS-сокету crypto-service, проверяет доступность и возвращает ErrNotImplemented. Этого достаточно, чтобы:

  • m2m-core и другие сервисы могли инжектить клиент без условных веток;
  • логи различали «сокета нет» (например, контейнер crypto-service не запущен) от «сокет есть, но криптография не подключена» (нет лицензии КриптоПро JCP).

Когда станет полноценным

После генерации gRPC-стабов из services/crypto-service/proto/crypto.proto (требует protoc + плагины), что в свою очередь требует доступа к Maven Central / Go module proxy через прокси zetit.

API

cli := cryptocli.NewClient("/run/bj/crypto.sock")
info, err := cli.VerifyXMLDSig(ctx, signedXML)
if errors.Is(err, cryptocli.ErrNotImplemented) {
    // M1: запасной путь (ручная проверка / откладывание).
}