diff --git a/libs/corda-sdk/src/main/kotlin/net/corda/sdk/packaging/KeyStoreHelper.kt b/libs/corda-sdk/src/main/kotlin/net/corda/sdk/packaging/KeyStoreHelper.kt index a135aa61d9b..819d68f6539 100644 --- a/libs/corda-sdk/src/main/kotlin/net/corda/sdk/packaging/KeyStoreHelper.kt +++ b/libs/corda-sdk/src/main/kotlin/net/corda/sdk/packaging/KeyStoreHelper.kt @@ -85,15 +85,18 @@ class KeyStoreHelper { certificateAlias: String, certificateFactoryType: String = "X.509" ) { - val keyStore = KeyStore.getInstance(KEYSTORE_INSTANCE_TYPE) - keyStore.load(keyStoreFile.inputStream(), keyStorePassword.toCharArray()) - keyStore.setCertificateEntry( - certificateAlias, - CertificateFactory.getInstance(certificateFactoryType) - .generateCertificate(certificateInputStream), - ) - keyStoreFile.outputStream().use { - keyStore.store(it, keyStorePassword.toCharArray()) + keyStoreFile.inputStream().use { inputStream -> + val keyStore = KeyStore.getInstance(KEYSTORE_INSTANCE_TYPE) + keyStore.load(inputStream, keyStorePassword.toCharArray()) + keyStore.setCertificateEntry( + certificateAlias, + CertificateFactory.getInstance(certificateFactoryType) + .generateCertificate(certificateInputStream), + ) + + keyStoreFile.outputStream().use { outputStream -> + keyStore.store(outputStream, keyStorePassword.toCharArray()) + } } } @@ -110,15 +113,18 @@ class KeyStoreHelper { certificateAlias: String, exportedCertFile: File ) { - val keyStore = KeyStore.getInstance(KEYSTORE_INSTANCE_TYPE) - keyStore.load(keyStoreFile.inputStream(), keyStorePassword.toCharArray()) - val cert = keyStore.getCertificate(certificateAlias) - val writer = StringWriter() - PemWriter(writer).use { pw -> - val gen: PemObjectGenerator = JcaMiscPEMGenerator(cert) - pw.writeObject(gen) + keyStoreFile.inputStream().use { + val keyStore = KeyStore.getInstance(KEYSTORE_INSTANCE_TYPE) + keyStore.load(it, keyStorePassword.toCharArray()) + val cert = keyStore.getCertificate(certificateAlias) + StringWriter().use { sw -> + PemWriter(sw).use { pw -> + val gen: PemObjectGenerator = JcaMiscPEMGenerator(cert) + pw.writeObject(gen) + } + exportedCertFile.writeText(sw.toString()) + } } - exportedCertFile.writeText(writer.toString()) } /** diff --git a/tools/corda-runtime-gradle-plugin/src/main/kotlin/net/corda/gradle/plugin/configuration/NetworkConfig.kt b/tools/corda-runtime-gradle-plugin/src/main/kotlin/net/corda/gradle/plugin/configuration/NetworkConfig.kt index 1d37e199d9d..ebcae483536 100644 --- a/tools/corda-runtime-gradle-plugin/src/main/kotlin/net/corda/gradle/plugin/configuration/NetworkConfig.kt +++ b/tools/corda-runtime-gradle-plugin/src/main/kotlin/net/corda/gradle/plugin/configuration/NetworkConfig.kt @@ -20,8 +20,9 @@ class NetworkConfig(val configFilePath: String) { init { val mapper = ObjectMapper() vNodes = try { - val fis = FileInputStream(configFilePath) - mapper.readValue(fis, object : TypeReference>() {}) + FileInputStream(configFilePath).use { + mapper.readValue(it, object : TypeReference>() {}) + } } catch (e: Exception) { throw CordaRuntimeGradlePluginException("Failed to read network configuration file, with exception: $e") } diff --git a/tools/corda-runtime-gradle-plugin/src/main/kotlin/net/corda/gradle/plugin/cordapp/CordappTasksImpl.kt b/tools/corda-runtime-gradle-plugin/src/main/kotlin/net/corda/gradle/plugin/cordapp/CordappTasksImpl.kt index 10c21529726..d374471ce86 100644 --- a/tools/corda-runtime-gradle-plugin/src/main/kotlin/net/corda/gradle/plugin/cordapp/CordappTasksImpl.kt +++ b/tools/corda-runtime-gradle-plugin/src/main/kotlin/net/corda/gradle/plugin/cordapp/CordappTasksImpl.kt @@ -51,10 +51,11 @@ class CordappTasksImpl(var pc: ProjectContext) { private fun validateGroupPolicy() { val groupPolicyFile = File(pc.groupPolicyFilePath) val groupPolicy = try { - val fis = FileInputStream(groupPolicyFile) val mapper = ObjectMapper() mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - mapper.readValue(fis, GroupPolicyDTO::class.java) + FileInputStream(groupPolicyFile).use { fis -> + mapper.readValue(fis, GroupPolicyDTO::class.java) + } } catch (e: Exception) { throw CordaRuntimeGradlePluginException("Failed to read GroupPolicy from group policy file with exception: $e.", e) } @@ -93,19 +94,23 @@ class CordappTasksImpl(var pc: ProjectContext) { password = pc.keystorePassword ) pc.logger.quiet("Importing default gradle certificate") - KeyStoreHelper().importCertificateIntoKeyStore( - keyStoreFile = keystoreFile, - keyStorePassword = pc.keystorePassword, - certificateInputStream = File(pc.gradleDefaultCertFilePath).inputStream(), - certificateAlias = pc.gradleDefaultCertAlias - ) + File(pc.gradleDefaultCertFilePath).inputStream().use { + KeyStoreHelper().importCertificateIntoKeyStore( + keyStoreFile = keystoreFile, + keyStorePassword = pc.keystorePassword, + certificateInputStream = it, + certificateAlias = pc.gradleDefaultCertAlias + ) + } pc.logger.quiet("Importing R3 signing certificate") - KeyStoreHelper().importCertificateIntoKeyStore( - keyStoreFile = keystoreFile, - keyStorePassword = pc.keystorePassword, - certificateInputStream = File(pc.r3RootCertFile).inputStream(), - certificateAlias = pc.r3RootCertKeyAlias - ) + File(pc.r3RootCertFile).inputStream().use { + KeyStoreHelper().importCertificateIntoKeyStore( + keyStoreFile = keystoreFile, + keyStorePassword = pc.keystorePassword, + certificateInputStream = it, + certificateAlias = pc.r3RootCertKeyAlias + ) + } KeyStoreHelper().exportCertificateFromKeyStore( keyStoreFile = keystoreFile,