Class RemoteSigningProviderFactory
- All Implemented Interfaces:
AlgorithmExecutionCapabilityProvider, ConfigurableProvider<SigningProvider>, SigningProviderFactory
SigningProvider.
The remote service is attached by a unique endpoint identifier stating where it is remotely reachable; its internal implementation is free (any technology) and it may gate each signature behind an external operator. Private keys never leave the remote side: this provider requires no process-local keyring.
Configuration
endpoint(required) — unique identifier/address of the remote servicekeyRefPrefix(optional, default"zeroecho-remote:")operationHorizon(optional ISO-8601, fixed atP90D)
Transport-specific keys (trust anchors, client credential) are consumed by the
concrete RemoteSigningTransport opened for the endpoint.
Capability registration
This provider also declares its signature capabilities under a distinct
implementation id (zeroecho-remote.signing-provider). Because the
signing-plan resolver binds exactly one implementation per algorithm, the remote
and local (zeroecho-lib) providers are mutually exclusive signing
backends: a deployment registers this provider's
AlgorithmExecutionCapabilityProvider entry in place of the local one,
never alongside it.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionallocate(ProviderConfig config) Allocates a new instance using the provided configuration.allocate(ProviderConfig config, SigningProviderRuntimeDependencies dependencies) Allocates a provider with explicit process-local runtime dependencies.id()Returns a stable backend identifier (e.g.protected RemoteSigningTransportopenTransport(ProviderConfig config) Opens the concrete transport for the configured remote endpoint.Returns the configuration keys understood by this backend.voidvalidateConfig(ProviderConfig config) Validates the provided configuration before allocation.
-
Field Details
-
IMPLEMENTATION_ID
Stable implementation id for capability binding.- See Also:
-
DC_REMOTE_TRANSPORT_UNCONFIGURED
Stable failure code when no concrete transport is configured for the endpoint.- See Also:
-
-
Constructor Details
-
RemoteSigningProviderFactory
public RemoteSigningProviderFactory()Creates a remote signing-provider factory.
-
-
Method Details
-
id
Description copied from interface:ConfigurableProviderReturns a stable backend identifier (e.g."fs","jdbc").- Specified by:
idin interfaceConfigurableProvider<SigningProvider>- Returns:
- backend identifier (never
null, never blank)
-
supportedKeys
Description copied from interface:ConfigurableProviderReturns the configuration keys understood by this backend.Keys are informational (diagnostics/validation/help). Unknown keys must be ignored by implementations for forward compatibility.
- Specified by:
supportedKeysin interfaceConfigurableProvider<SigningProvider>- Returns:
- supported configuration keys (never
null)
-
capabilities
- Specified by:
capabilitiesin interfaceAlgorithmExecutionCapabilityProvider
-
validateConfig
Description copied from interface:ConfigurableProviderValidates the provided configuration before allocation.Implementations should use this hook to enforce backend-specific invariants such as required keys and key formats. The default implementation already verifies that
ProviderConfig.backendId()matchesConfigurableProvider.id(). Unknown keys should normally be ignored for forward compatibility, but may be reported through provider-local logging that names keys only and never logs values.The default implementation performs a null check and verifies that the supplied backend id matches
ConfigurableProvider.id(). Providers with additional requirements should override this method, invoke the default implementation, and then validate their own keys.- Specified by:
validateConfigin interfaceConfigurableProvider<SigningProvider>- Parameters:
config- configuration to validate (nevernull)
-
allocate
Description copied from interface:ConfigurableProviderAllocates a new instance using the provided configuration.Implementations must validate required keys and throw
IllegalArgumentExceptionif configuration is incomplete or invalid.- Specified by:
allocatein interfaceConfigurableProvider<SigningProvider>- Parameters:
config- configuration (nevernull)- Returns:
- new instance (never
null)
-
allocate
public SigningProvider allocate(ProviderConfig config, SigningProviderRuntimeDependencies dependencies) Description copied from interface:SigningProviderFactoryAllocates a provider with explicit process-local runtime dependencies.- Specified by:
allocatein interfaceSigningProviderFactory- Parameters:
config- validated persistent provider configurationdependencies- process-local security capabilities- Returns:
- opened signing provider owned by the caller
-
openTransport
Opens the concrete transport for the configured remote endpoint.The default binds the packaged mutually-authenticated HTTPS transport (
HttpsRemoteSigningTransport), building its TLS context from the configured PKCS#12 client keystore and trust store. When no TLS keystore is configured the endpoint has no packaged transport and this fails withDC_REMOTE_TRANSPORT_UNCONFIGURED; deployments (or tests) may override this method to attach an alternative technology behind the endpoint identifier.- Parameters:
config- validated provider configuration- Returns:
- an open transport to the remote signing service
-