From 0c193f49a804b6e13120d38d25d19063cbbeba54 Mon Sep 17 00:00:00 2001 From: Gus Narea Date: Wed, 8 Jul 2020 18:29:25 +0100 Subject: [PATCH 1/3] feat: Implement PoWeb handshake messages --- build.gradle | 19 +++++++++++++++++++ src/main/proto/poweb-handshake.proto | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/main/proto/poweb-handshake.proto diff --git a/build.gradle b/build.gradle index 833a2a9..5b2f0f9 100644 --- a/build.gradle +++ b/build.gradle @@ -3,6 +3,8 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile buildscript { ext { kotlinVersion = '1.3.72' + protobufVersion = '3.12.2' + protobufGradleVersion = '0.8.12' } } @@ -13,6 +15,7 @@ plugins { id('maven-publish') id("com.diffplug.gradle.spotless") version "3.27.1" id('jacoco') + id("com.google.protobuf") version "$protobufGradleVersion" } group = "tech.relaycorp" @@ -26,6 +29,11 @@ dependencies { implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion") + // Protobuf + implementation "com.google.protobuf:protobuf-gradle-plugin:$protobufGradleVersion" + implementation "com.google.protobuf:protobuf-java:$protobufVersion" + implementation "com.google.protobuf:protobuf-java-util:$protobufVersion" + testImplementation("org.jetbrains.kotlin:kotlin-test") // Use the Kotlin JUnit5 integration. @@ -43,6 +51,17 @@ tasks.withType(KotlinCompile).configureEach { kotlinOptions.jvmTarget = "1.8" } +protobuf { + protoc { artifact = "com.google.protobuf:protoc:$protobufVersion" } +} +sourceSets { + main { + kotlin { + srcDirs "build/generated/source/proto/main/java" + } + } +} + jacoco { toolVersion = "0.8.5" } diff --git a/src/main/proto/poweb-handshake.proto b/src/main/proto/poweb-handshake.proto new file mode 100644 index 0000000..c31e6a3 --- /dev/null +++ b/src/main/proto/poweb-handshake.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +option java_multiple_files = true; +option java_package = "tech.relaycorp.poweb.messages.handshake"; + +package relaynet.poweb.handshake; + +message Challenge { + // Sent by the gateway at the start of the connection + + string gateway_nonce = 1; +} + +message Response { + // Sent by the endpoint in response to Challenge + + // The gateway's nonce signed by each endpoint certificate. + repeated bytes gateway_nonce_signatures = 1; +} From c872d3f5b248a0426195236c6d95893034c33469 Mon Sep 17 00:00:00 2001 From: Gus Narea Date: Wed, 8 Jul 2020 18:34:08 +0100 Subject: [PATCH 2/3] fix warning --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5b2f0f9..b27ba69 100644 --- a/build.gradle +++ b/build.gradle @@ -57,7 +57,7 @@ protobuf { sourceSets { main { kotlin { - srcDirs "build/generated/source/proto/main/java" + setBuildDir("build/generated/source/proto/main/java") } } } From af3501a02b354c4db029666e7b3a4008122ec4e1 Mon Sep 17 00:00:00 2001 From: Gus Narea Date: Wed, 8 Jul 2020 18:59:13 +0100 Subject: [PATCH 3/3] Integrate IDEA plugin --- build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle b/build.gradle index b27ba69..4632361 100644 --- a/build.gradle +++ b/build.gradle @@ -16,6 +16,7 @@ plugins { id("com.diffplug.gradle.spotless") version "3.27.1" id('jacoco') id("com.google.protobuf") version "$protobufGradleVersion" + id('idea') } group = "tech.relaycorp"