feat: живой цикл M2M с НРД + мастер установки ключа на флешку
Инфраструктура M2M (живой обмен с НРД через ИШ): - обработка M2MTransferResponse: ERROR(M2Mxx) → заявка Отклонена, сохранение ответа; INFO → ждём Decision; идемпотентность поллера - fallback-корреляция ответов с нулевым GUID (M2M14/M2M17) по FIFO - сырой XML ответа НРД в карточке заявки (для пересылки в ТП) - тестовый пакет роботу приведён к эталону m2m_robot_samples (CostInfo=Yes, 4 бумаги, IsolationStatus, DocumentSeries=сценарий); override паспорта - редирект из теста сразу в карточку заявки Мастер установки ключа Валидаты на флешку (admin/setup/keywizard): - пошаговый: загрузка .7z+пароль → выбор флешки → запись → справочник сертификатов (CRL) → перезапуск+проверка ИШ → готово - привилегированный воркер (bj-keymedia) в host-namespace через файл-обмен, bj-server остаётся в песочнице - сохранение структуры профиля архива (spr<N>), перечисление съёмных USB Прочее: - пакет-доказательство для ТП НРД + форма регистрации участника M2M - эталонные образцы робота (DOC/m2m_robot_samples) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,17 +1,20 @@
|
||||
// build.gradle.kts — Gradle build для crypto-service.
|
||||
//
|
||||
// Артефакт: ./build/libs/crypto-service-0.1.0-all.jar (shadow jar).
|
||||
// Запуск: java -jar crypto-service-0.1.0-all.jar (UDS из BJ_CRYPTO_SOCKET).
|
||||
// Запуск:
|
||||
// java -Djava.library.path=/opt/Validata/VDCSP/lib/amd64 \
|
||||
// -jar crypto-service-0.1.0-all.jar
|
||||
//
|
||||
// Зависимости (Maven Central, подключаются автоматически):
|
||||
// - grpc-java (server + protoc-gen-java)
|
||||
// - protobuf-java
|
||||
// - apache santuario (XMLDSig)
|
||||
// - jcp (КриптоПро JCP) — внешний jar, поставляется заказчиком
|
||||
// отдельно вместе с лицензией; положить в libs/.
|
||||
// Зависимости:
|
||||
// - grpc-java (server + protoc-gen-java) — Maven Central
|
||||
// - protobuf-java — Maven Central
|
||||
// - apache santuario (XMLDSig) — Maven Central
|
||||
// - Pki1.LocalIface.jar (Валидата JNI) — libs/ (положен из
|
||||
// /opt/Validata/VDCSP/lib/)
|
||||
//
|
||||
// Соберётся, когда Maven Central доступен через прокси zetit
|
||||
// (пока ждём админа).
|
||||
// Java toolchain — 17 (LTS), на Astra 1.7 ставится из openjdk-17-jdk.
|
||||
|
||||
import com.google.protobuf.gradle.id
|
||||
|
||||
plugins {
|
||||
id("java")
|
||||
@@ -25,13 +28,13 @@ version = "0.1.0"
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion.set(JavaLanguageVersion.of(21))
|
||||
languageVersion.set(JavaLanguageVersion.of(17))
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
flatDir { dirs("libs") } // для jcp.jar
|
||||
flatDir { dirs("libs") } // Pki1.LocalIface.jar (Валидата)
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -43,11 +46,13 @@ dependencies {
|
||||
implementation("io.grpc:grpc-stub:$grpcVer")
|
||||
implementation("com.google.protobuf:protobuf-java:$protobufVer")
|
||||
|
||||
// XMLDSig (с ГОСТ-патчем поставляется в libs/ заказчиком).
|
||||
// XMLDSig — построение/разбор подписи. ГОСТ-алгоритмы реализуем сами
|
||||
// (digest + signature через VCERT_*), Santuario используем только для
|
||||
// канонизации и сборки XML-структуры.
|
||||
implementation("org.apache.santuario:xmlsec:3.0.4")
|
||||
|
||||
// КриптоПро JCP — кладётся в services/crypto-service/libs/jcp.jar.
|
||||
// implementation(files("libs/jcp.jar"))
|
||||
// Валидата Клиент L — Pki1.LocalIface.jar.
|
||||
implementation(files("libs/Pki1.LocalIface.jar"))
|
||||
|
||||
compileOnly("javax.annotation:javax.annotation-api:1.3.2")
|
||||
implementation("ch.qos.logback:logback-classic:1.5.6")
|
||||
@@ -58,6 +63,9 @@ dependencies {
|
||||
|
||||
application {
|
||||
mainClass.set("ru.zetit.bridgeandjoins.crypto.CryptoServer")
|
||||
applicationDefaultJvmArgs = listOf(
|
||||
"-Djava.library.path=/opt/Validata/VDCSP/lib/amd64",
|
||||
)
|
||||
}
|
||||
|
||||
protobuf {
|
||||
@@ -78,6 +86,14 @@ protobuf {
|
||||
}
|
||||
}
|
||||
|
||||
tasks.test {
|
||||
sourceSets {
|
||||
main {
|
||||
proto {
|
||||
srcDir("proto")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<Test> {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user