mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-20 16:45:09 +00:00
Allow client applications to work regardless of whether network was creating using a CA or cryptogen since they create different client certificate file names. Signed-off-by: Mark S. Lewis <Mark.S.Lewis@outlook.com>
70 lines
2.8 KiB
Java
70 lines
2.8 KiB
Java
/*
|
|
* Copyright IBM Corp. All Rights Reserved.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import io.grpc.Grpc;
|
|
import io.grpc.ManagedChannel;
|
|
import io.grpc.TlsChannelCredentials;
|
|
import org.hyperledger.fabric.client.identity.Identities;
|
|
import org.hyperledger.fabric.client.identity.Identity;
|
|
import org.hyperledger.fabric.client.identity.Signer;
|
|
import org.hyperledger.fabric.client.identity.Signers;
|
|
import org.hyperledger.fabric.client.identity.X509Identity;
|
|
|
|
import java.io.IOException;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Path;
|
|
import java.nio.file.Paths;
|
|
import java.security.InvalidKeyException;
|
|
import java.security.cert.CertificateException;
|
|
|
|
public final class Connections {
|
|
// Path to crypto materials.
|
|
private static final Path cryptoPath = Paths.get("..", "..", "test-network", "organizations", "peerOrganizations", "org1.example.com");
|
|
// Path to user certificate.
|
|
private static final Path certDirPath = cryptoPath.resolve(Paths.get("users", "User1@org1.example.com", "msp", "signcerts"));
|
|
// Path to user private key directory.
|
|
private static final Path keyDirPath = cryptoPath.resolve(Paths.get("users", "User1@org1.example.com", "msp", "keystore"));
|
|
// Path to peer tls certificate.
|
|
private static final Path tlsCertPath = cryptoPath.resolve(Paths.get("peers", "peer0.org1.example.com", "tls", "ca.crt"));
|
|
|
|
// Gateway peer end point.
|
|
private static final String peerEndpoint = "localhost:7051";
|
|
private static final String overrideAuth = "peer0.org1.example.com";
|
|
|
|
private static final String mspID = "Org1MSP";
|
|
|
|
private Connections() {
|
|
// Private constructor to prevent instantiation
|
|
}
|
|
|
|
public static ManagedChannel newGrpcConnection() throws IOException {
|
|
var credentials = TlsChannelCredentials.newBuilder()
|
|
.trustManager(tlsCertPath.toFile())
|
|
.build();
|
|
return Grpc.newChannelBuilder(peerEndpoint, credentials)
|
|
.overrideAuthority(overrideAuth)
|
|
.build();
|
|
}
|
|
|
|
public static Identity newIdentity() throws IOException, CertificateException {
|
|
try (var certReader = Files.newBufferedReader(getFirstFilePath(certDirPath))) {
|
|
var certificate = Identities.readX509Certificate(certReader);
|
|
return new X509Identity(mspID, certificate);
|
|
}
|
|
}
|
|
|
|
public static Signer newSigner() throws IOException, InvalidKeyException {
|
|
try (var keyReader = Files.newBufferedReader(getFirstFilePath(keyDirPath))) {
|
|
var privateKey = Identities.readPrivateKey(keyReader);
|
|
return Signers.newPrivateKeySigner(privateKey);
|
|
}
|
|
}
|
|
|
|
private static Path getFirstFilePath(Path dirPath) throws IOException {
|
|
try (var keyFiles = Files.list(dirPath)) {
|
|
return keyFiles.findFirst().orElseThrow();
|
|
}
|
|
}}
|