ChaincodeBase attempts to parse SSL certificates and keys provided by an external launcher in the following manner:
final SslContext createSSLContext() throws IOException {
final byte[] ckb = Files.readAllBytes(Paths.get(this.tlsClientKeyPath));
final byte[] ccb = Files.readAllBytes(Paths.get(this.tlsClientCertPath));
return GrpcSslContexts.forClient().trustManager(new File(this.tlsClientRootCertPath))
.keyManager(new ByteArrayInputStream(Base64.getDecoder().decode(ccb)),
new ByteArrayInputStream(Base64.getDecoder().decode(ckb)))
.build();
}
This fails, because the certs deployed by the external builder are in PEM format, but the code attempts to Base64 decode them.
The fix is obvious, and I have used it successfully in testing (however, I would have to jump through a bunch of hoops to contribute it, so someone else should probably do it).
ChaincodeBase attempts to parse SSL certificates and keys provided by an external launcher in the following manner:
This fails, because the certs deployed by the external builder are in PEM format, but the code attempts to Base64 decode them.
The fix is obvious, and I have used it successfully in testing (however, I would have to jump through a bunch of hoops to contribute it, so someone else should probably do it).