From e81df8efcd1677293a93d3f5f8bcf969ecd6c14c Mon Sep 17 00:00:00 2001 From: Scott Phillips Date: Tue, 23 Nov 2021 22:59:32 -0500 Subject: [PATCH 1/4] blake3 implementation compatible with Android --- java/build.gradle | 3 ++- .../main/java/trinsic/security/OberonSecurityProvider.java | 6 ++++-- java/src/main/java/trinsic/services/ServiceBase.java | 2 +- java/src/test/java/TrinsicServicesTest.java | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/java/build.gradle b/java/build.gradle index 962873402..08f1a4af2 100644 --- a/java/build.gradle +++ b/java/build.gradle @@ -65,7 +65,8 @@ dependencies { implementation 'io.grpc:grpc-netty-shaded:1.42.1' implementation 'io.grpc:grpc-protobuf:1.42.1' implementation 'io.grpc:grpc-stub:1.42.1' - implementation 'ky.korins:blake3_3:2.9.0' + // https://mvnrepository.com/artifact/io.github.rctcwyvrn/blake3 + implementation 'io.github.rctcwyvrn:blake3:1.3' implementation 'io.leonard:base58:0.0.2' compileOnly 'org.apache.tomcat:annotations-api:6.0.53' // necessary for Java 9+ diff --git a/java/src/main/java/trinsic/security/OberonSecurityProvider.java b/java/src/main/java/trinsic/security/OberonSecurityProvider.java index 35d78492c..81f20231a 100644 --- a/java/src/main/java/trinsic/security/OberonSecurityProvider.java +++ b/java/src/main/java/trinsic/security/OberonSecurityProvider.java @@ -3,7 +3,7 @@ import com.google.protobuf.ByteString; import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.Message; -import ky.korins.blake3.Blake3; +import io.github.rctcwyvrn.blake3.Blake3; import trinsic.okapi.DidException; import trinsic.okapi.Oberon; import trinsic.okapi.security.v1.Security; @@ -21,7 +21,9 @@ public String GetAuthHeader(Account.AccountProfile accountProfile, Message messa // compute the hash of the request and return the result var bytes = message.toByteArray(); - var messageHash = Blake3.newHasher().update(bytes).done(64); + var hasher = Blake3.newInstance(); + hasher.update(bytes); + var messageHash = hasher.digest(64); var nonce = CommonOuterClass.Nonce.newBuilder() .setTimestamp(Instant.now().toEpochMilli()) diff --git a/java/src/main/java/trinsic/services/ServiceBase.java b/java/src/main/java/trinsic/services/ServiceBase.java index 2a5595db2..ac537ffde 100644 --- a/java/src/main/java/trinsic/services/ServiceBase.java +++ b/java/src/main/java/trinsic/services/ServiceBase.java @@ -15,7 +15,7 @@ public abstract class ServiceBase { private Account.AccountProfile profile = null; private CommonOuterClass.ServerConfig configuration = null; private ManagedChannel channel = null; - private ISecurityProvider securityProvider = new OberonSecurityProvider(); + private final ISecurityProvider securityProvider = new OberonSecurityProvider(); protected ServiceBase(Account.AccountProfile accountProfile, CommonOuterClass.ServerConfig serverConfig) { this.profile = accountProfile; diff --git a/java/src/test/java/TrinsicServicesTest.java b/java/src/test/java/TrinsicServicesTest.java index 6a9716c2f..f7970eec5 100644 --- a/java/src/test/java/TrinsicServicesTest.java +++ b/java/src/test/java/TrinsicServicesTest.java @@ -16,7 +16,7 @@ class TrinsicServicesTest { @Test - public void testServiceBaseSetProfile() throws InterruptedException { + public void testServiceBaseSetProfile() { var accountService = new AccountService(null, TrinsicUtilities.getTestServerConfig()); Assertions.assertThrows(IllegalArgumentException.class, () -> accountService.buildMetadata(null)); From 64bfad5167e842da33fac547e8bf32c5f15cf953 Mon Sep 17 00:00:00 2001 From: Scott Phillips Date: Wed, 24 Nov 2021 08:00:25 -0500 Subject: [PATCH 2/4] no message --- java/src/test/java/TrinsicServicesTest.java | 2 +- java/src/test/java/VaccineDemo.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/java/src/test/java/TrinsicServicesTest.java b/java/src/test/java/TrinsicServicesTest.java index f7970eec5..460f129a7 100644 --- a/java/src/test/java/TrinsicServicesTest.java +++ b/java/src/test/java/TrinsicServicesTest.java @@ -59,6 +59,6 @@ private void createAndShutdownChannel(String myAddress) throws MalformedURLExcep @Test public void testTrinsicServiceDemo() throws IOException, DidException { - new VaccineDemo().run(); + VaccineDemo.run(); } } \ No newline at end of file diff --git a/java/src/test/java/VaccineDemo.java b/java/src/test/java/VaccineDemo.java index 13dfcba7f..0ef142ed3 100644 --- a/java/src/test/java/VaccineDemo.java +++ b/java/src/test/java/VaccineDemo.java @@ -82,6 +82,10 @@ public static void run() throws IOException, DidException { System.out.println("Verification result: " + isValid); Assertions.assertTrue(isValid); // } + + accountService.shutdown(); + credentialsService.shutdown(); + walletService.shutdown(); } // pathData() { From 645d14bd2ac4c99052d2b7118cf5682597172207 Mon Sep 17 00:00:00 2001 From: Scott Phillips Date: Wed, 24 Nov 2021 12:02:17 -0500 Subject: [PATCH 3/4] Channel update --- java/src/main/java/trinsic/services/ServiceBase.java | 3 ++- java/src/test/java/VaccineDemo.java | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/java/src/main/java/trinsic/services/ServiceBase.java b/java/src/main/java/trinsic/services/ServiceBase.java index ac537ffde..af0ce09cc 100644 --- a/java/src/main/java/trinsic/services/ServiceBase.java +++ b/java/src/main/java/trinsic/services/ServiceBase.java @@ -2,6 +2,7 @@ import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.Message; +import io.grpc.Channel; import io.grpc.ManagedChannel; import io.grpc.Metadata; import trinsic.TrinsicUtilities; @@ -50,7 +51,7 @@ public CommonOuterClass.ServerConfig getConfiguration() { return this.configuration; } - public ManagedChannel getChannel() { + public Channel getChannel() { return this.channel; } diff --git a/java/src/test/java/VaccineDemo.java b/java/src/test/java/VaccineDemo.java index 0ef142ed3..3dbbaf90e 100644 --- a/java/src/test/java/VaccineDemo.java +++ b/java/src/test/java/VaccineDemo.java @@ -25,6 +25,7 @@ public static void main(String[] args) throws IOException, DidException { public static void run() throws IOException, DidException { // createService() { var serverConfig = TrinsicUtilities.getTestServerConfig(); + System.out.println("Connecting to:\n" + serverConfig); var accountService = new AccountService(null, serverConfig); // } From a6848883bf5f980b682d57ccfaedc9ce8d0a1c2d Mon Sep 17 00:00:00 2001 From: Scott Phillips Date: Wed, 24 Nov 2021 13:25:36 -0500 Subject: [PATCH 4/4] Java updates --- java/build.gradle | 3 +-- .../trinsic/services/account/v1/AccountServiceGrpc.java | 6 +++--- .../main/java/trinsic/services/common/v1/CommonGrpc.java | 2 +- .../main/java/trinsic/services/common/v1/ProviderGrpc.java | 2 +- .../services/trustregistry/v1/TrustRegistryGrpc.java | 2 +- .../services/universalwallet/v1/UniversalWallet.java | 2 +- .../services/universalwallet/v1/WalletServiceGrpc.java | 6 +++--- .../templates/v1/CredentialTemplatesGrpc.java | 2 +- .../services/verifiablecredentials/v1/CredentialGrpc.java | 2 +- python/trinsic/proto/services/account/v1/__init__.py | 2 -- 10 files changed, 13 insertions(+), 16 deletions(-) diff --git a/java/build.gradle b/java/build.gradle index 08f1a4af2..fc0082bd1 100644 --- a/java/build.gradle +++ b/java/build.gradle @@ -61,10 +61,9 @@ dependencies { implementation 'com.google.protobuf:protobuf-java-util:3.19.1' implementation group: 'net.java.dev.jna', name: 'jna', version: '5.8.0' - implementation 'io.grpc:protoc-gen-grpc-java:1.42.1' implementation 'io.grpc:grpc-netty-shaded:1.42.1' implementation 'io.grpc:grpc-protobuf:1.42.1' - implementation 'io.grpc:grpc-stub:1.42.1' + implementation 'io.grpc:grpc-stub:1.42.1' // This has to match the version of protoc-gen-grpc-java used in `sdk/devops/generate_proto_files.py` // https://mvnrepository.com/artifact/io.github.rctcwyvrn/blake3 implementation 'io.github.rctcwyvrn:blake3:1.3' implementation 'io.leonard:base58:0.0.2' diff --git a/java/src/main/java/trinsic/services/account/v1/AccountServiceGrpc.java b/java/src/main/java/trinsic/services/account/v1/AccountServiceGrpc.java index 17ab095fa..44c7fc901 100644 --- a/java/src/main/java/trinsic/services/account/v1/AccountServiceGrpc.java +++ b/java/src/main/java/trinsic/services/account/v1/AccountServiceGrpc.java @@ -5,14 +5,14 @@ /** */ @javax.annotation.Generated( - value = "by gRPC proto compiler (version 1.41.0)", + value = "by gRPC proto compiler (version 1.42.1)", comments = "Source: services/account/v1/account.proto") @io.grpc.stub.annotations.GrpcGenerated public final class AccountServiceGrpc { private AccountServiceGrpc() {} - public static final String SERVICE_NAME = "services.account.v1.trinsic.services.AccountService"; + public static final String SERVICE_NAME = "services.account.v1.AccountService"; // Static method descriptors that strictly reflect the proto. private static volatile io.grpc.MethodDescriptor