# 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

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