mirror of
https://github.com/corda/corda.git
synced 2025-06-06 01:11:45 +00:00
ENT-3642: move the crypto service builder method to node-api (#5198)
* ENT-3642: move the crypto service builder method to node-api * ENT-3642: add arg for different crypto services * ENT-3642: add arg for cryptoservice config * ENT-3642: add null check for BCC requirement * ENT-3642: remove double-bang operator * ENT-3642: cryptoservice factory method moved to its own class, improve API * ENT-3642: remove import
This commit is contained in:
parent
603da3eeff
commit
726798cce8
@ -0,0 +1,18 @@
|
|||||||
|
package net.corda.nodeapi.internal.cryptoservice
|
||||||
|
|
||||||
|
import net.corda.core.identity.CordaX500Name
|
||||||
|
import net.corda.nodeapi.internal.config.FileBasedCertificateStoreSupplier
|
||||||
|
import net.corda.nodeapi.internal.cryptoservice.bouncycastle.BCCryptoService
|
||||||
|
import java.nio.file.Path
|
||||||
|
|
||||||
|
class CryptoServiceFactory {
|
||||||
|
companion object {
|
||||||
|
fun makeCryptoService(cryptoServiceName: SupportedCryptoServices, legalName: CordaX500Name, signingCertificateStore: FileBasedCertificateStoreSupplier? = null, cryptoServiceConf: Path? = null): CryptoService {
|
||||||
|
// The signing certificate store can be null for other services as only BCC requires is at the moment.
|
||||||
|
if (cryptoServiceName != SupportedCryptoServices.BC_SIMPLE || signingCertificateStore == null) {
|
||||||
|
throw IllegalArgumentException("Currently only BouncyCastle is used as a crypto service. A valid signing certificate store is required.")
|
||||||
|
}
|
||||||
|
return BCCryptoService(legalName.x500Principal, signingCertificateStore)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -81,6 +81,8 @@ import net.corda.nodeapi.internal.crypto.X509Utilities.CORDA_ROOT_CA
|
|||||||
import net.corda.nodeapi.internal.crypto.X509Utilities.DEFAULT_VALIDITY_WINDOW
|
import net.corda.nodeapi.internal.crypto.X509Utilities.DEFAULT_VALIDITY_WINDOW
|
||||||
import net.corda.nodeapi.internal.crypto.X509Utilities.DISTRIBUTED_NOTARY_ALIAS_PREFIX
|
import net.corda.nodeapi.internal.crypto.X509Utilities.DISTRIBUTED_NOTARY_ALIAS_PREFIX
|
||||||
import net.corda.nodeapi.internal.crypto.X509Utilities.NODE_IDENTITY_ALIAS_PREFIX
|
import net.corda.nodeapi.internal.crypto.X509Utilities.NODE_IDENTITY_ALIAS_PREFIX
|
||||||
|
import net.corda.nodeapi.internal.cryptoservice.CryptoServiceFactory
|
||||||
|
import net.corda.nodeapi.internal.cryptoservice.SupportedCryptoServices
|
||||||
import net.corda.nodeapi.internal.cryptoservice.bouncycastle.BCCryptoService
|
import net.corda.nodeapi.internal.cryptoservice.bouncycastle.BCCryptoService
|
||||||
import net.corda.nodeapi.internal.persistence.*
|
import net.corda.nodeapi.internal.persistence.*
|
||||||
import net.corda.tools.shell.InteractiveShell
|
import net.corda.tools.shell.InteractiveShell
|
||||||
@ -172,7 +174,7 @@ abstract class AbstractNode<S>(val configuration: NodeConfiguration,
|
|||||||
val transactionStorage = makeTransactionStorage(configuration.transactionCacheSizeBytes).tokenize()
|
val transactionStorage = makeTransactionStorage(configuration.transactionCacheSizeBytes).tokenize()
|
||||||
val networkMapClient: NetworkMapClient? = configuration.networkServices?.let { NetworkMapClient(it.networkMapURL, versionInfo) }
|
val networkMapClient: NetworkMapClient? = configuration.networkServices?.let { NetworkMapClient(it.networkMapURL, versionInfo) }
|
||||||
val attachments = NodeAttachmentService(metricRegistry, cacheFactory, database, configuration.devMode).tokenize()
|
val attachments = NodeAttachmentService(metricRegistry, cacheFactory, database, configuration.devMode).tokenize()
|
||||||
val cryptoService = configuration.makeCryptoService()
|
val cryptoService = CryptoServiceFactory.makeCryptoService(SupportedCryptoServices.BC_SIMPLE, configuration.myLegalName, configuration.signingCertificateStore)
|
||||||
@Suppress("LeakingThis")
|
@Suppress("LeakingThis")
|
||||||
val networkParametersStorage = makeNetworkParametersStorage()
|
val networkParametersStorage = makeNetworkParametersStorage()
|
||||||
val cordappProvider = CordappProviderImpl(cordappLoader, CordappConfigFileProvider(configuration.cordappDirectories), attachments).tokenize()
|
val cordappProvider = CordappProviderImpl(cordappLoader, CordappConfigFileProvider(configuration.cordappDirectories), attachments).tokenize()
|
||||||
|
@ -10,11 +10,9 @@ import net.corda.core.internal.notary.NotaryServiceFlow
|
|||||||
import net.corda.core.utilities.NetworkHostAndPort
|
import net.corda.core.utilities.NetworkHostAndPort
|
||||||
import net.corda.node.services.config.rpc.NodeRpcOptions
|
import net.corda.node.services.config.rpc.NodeRpcOptions
|
||||||
import net.corda.node.services.config.schema.v1.V1NodeConfigurationSpec
|
import net.corda.node.services.config.schema.v1.V1NodeConfigurationSpec
|
||||||
import net.corda.nodeapi.internal.cryptoservice.bouncycastle.BCCryptoService
|
|
||||||
import net.corda.nodeapi.internal.config.FileBasedCertificateStoreSupplier
|
import net.corda.nodeapi.internal.config.FileBasedCertificateStoreSupplier
|
||||||
import net.corda.nodeapi.internal.config.MutualSslConfiguration
|
import net.corda.nodeapi.internal.config.MutualSslConfiguration
|
||||||
import net.corda.nodeapi.internal.config.User
|
import net.corda.nodeapi.internal.config.User
|
||||||
import net.corda.nodeapi.internal.cryptoservice.CryptoService
|
|
||||||
import net.corda.nodeapi.internal.persistence.DatabaseConfig
|
import net.corda.nodeapi.internal.persistence.DatabaseConfig
|
||||||
import net.corda.notary.experimental.bftsmart.BFTSmartConfig
|
import net.corda.notary.experimental.bftsmart.BFTSmartConfig
|
||||||
import net.corda.notary.experimental.raft.RaftConfig
|
import net.corda.notary.experimental.raft.RaftConfig
|
||||||
@ -104,10 +102,6 @@ interface NodeConfiguration {
|
|||||||
|
|
||||||
internal val defaultJmxReporterType = JmxReporterType.JOLOKIA
|
internal val defaultJmxReporterType = JmxReporterType.JOLOKIA
|
||||||
}
|
}
|
||||||
|
|
||||||
fun makeCryptoService(): CryptoService {
|
|
||||||
return BCCryptoService(this.myLegalName.x500Principal, this.signingCertificateStore)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
data class FlowOverrideConfig(val overrides: List<FlowOverride> = listOf())
|
data class FlowOverrideConfig(val overrides: List<FlowOverride> = listOf())
|
||||||
|
@ -17,6 +17,8 @@ import net.corda.nodeapi.internal.crypto.X509Utilities.CORDA_CLIENT_CA
|
|||||||
import net.corda.nodeapi.internal.crypto.X509Utilities.CORDA_CLIENT_TLS
|
import net.corda.nodeapi.internal.crypto.X509Utilities.CORDA_CLIENT_TLS
|
||||||
import net.corda.nodeapi.internal.crypto.X509Utilities.CORDA_ROOT_CA
|
import net.corda.nodeapi.internal.crypto.X509Utilities.CORDA_ROOT_CA
|
||||||
import net.corda.nodeapi.internal.crypto.X509Utilities.DEFAULT_VALIDITY_WINDOW
|
import net.corda.nodeapi.internal.crypto.X509Utilities.DEFAULT_VALIDITY_WINDOW
|
||||||
|
import net.corda.nodeapi.internal.cryptoservice.CryptoServiceFactory
|
||||||
|
import net.corda.nodeapi.internal.cryptoservice.SupportedCryptoServices
|
||||||
import org.bouncycastle.asn1.x500.X500Name
|
import org.bouncycastle.asn1.x500.X500Name
|
||||||
import org.bouncycastle.openssl.jcajce.JcaPEMWriter
|
import org.bouncycastle.openssl.jcajce.JcaPEMWriter
|
||||||
import org.bouncycastle.operator.ContentSigner
|
import org.bouncycastle.operator.ContentSigner
|
||||||
@ -55,7 +57,7 @@ open class NetworkRegistrationHelper(
|
|||||||
private val certificatesDirectory: Path = config.certificatesDirectory
|
private val certificatesDirectory: Path = config.certificatesDirectory
|
||||||
private val myLegalName: CordaX500Name = config.myLegalName
|
private val myLegalName: CordaX500Name = config.myLegalName
|
||||||
private val emailAddress: String = config.emailAddress
|
private val emailAddress: String = config.emailAddress
|
||||||
private val cryptoService = config.makeCryptoService()
|
private val cryptoService = CryptoServiceFactory.makeCryptoService(SupportedCryptoServices.BC_SIMPLE, config.myLegalName, config.signingCertificateStore)
|
||||||
private val certificateStore = config.signingCertificateStore.get(true)
|
private val certificateStore = config.signingCertificateStore.get(true)
|
||||||
private val requestIdStore = certificatesDirectory / "certificate-request-id.txt"
|
private val requestIdStore = certificatesDirectory / "certificate-request-id.txt"
|
||||||
protected val rootTrustStore: X509KeyStore
|
protected val rootTrustStore: X509KeyStore
|
||||||
|
Loading…
x
Reference in New Issue
Block a user