Class TrustStore
java.lang.Object
net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
net.shibboleth.idp.installer.plugin.impl.TrustStore
- All Implemented Interfaces:
Component
,DestructableComponent
,InitializableComponent
Code to handle (load, update, check) the trust store for an individual plugin.
a thin shim on BC.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
An opaque handle around aPGPSignature
. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Path
The key store backup.private String
Explicit path to trust store.private Path
Where the IdP is installed.private org.bouncycastle.openpgp.PGPPublicKeyRingCollection
KeyRing.private final org.slf4j.Logger
logger.private String
The plugin this is the trust store for.private Path
The key store. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
checkSignature
(InputStream input, TrustStore.Signature signature) Run a signature check over the streams.boolean
contains
(TrustStore.Signature signature) Does the key that made this signature exist in our keyrings?protected void
Create an empty store and save to new location.protected void
void
importKeyFromStream
(TrustStore.Signature sigForKey, InputStream keyStream, Predicate<String> accept) Load up the provided store and if the key is found and the Predicate allows it add it to the store which we will then save.protected void
Load the store from its designated location.private static org.bouncycastle.openpgp.PGPPublicKeyRingCollection
Return a store loaded from the supplied stream.void
Save the store to its designated location.void
Save the store to its designated location.void
setIdpHome
(Path what) Set IdPHome.void
setPluginId
(String what) Set the pluginId.void
setTrustStore
(String what) Set explicitTrustStore.static TrustStore.Signature
signatureOf
(InputStream stream) Provide an opaque signature object from an input stream.Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, initialize, isDestroyed, isInitialized
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger loglogger. -
idpHome
Where the IdP is installed. -
explicitTrustStore
Explicit path to trust store. -
pluginId
The plugin this is the trust store for. -
store
The key store. -
backup
The key store backup. -
keyRings
KeyRing.
-
-
Constructor Details
-
TrustStore
public TrustStore()
-
-
Method Details
-
setPluginId
Set the pluginId.- Parameters:
what
- to set.
-
setIdpHome
Set IdPHome.- Parameters:
what
- The idpHome to set.
-
setTrustStore
Set explicitTrustStore.- Parameters:
what
- The value to set.
-
loadStoreFrom
private static org.bouncycastle.openpgp.PGPPublicKeyRingCollection loadStoreFrom(InputStream in) throws IOException Return a store loaded from the supplied stream.- Parameters:
in
- the stream- Returns:
- a suitable store
- Throws:
IOException
- fromFiles.newInputStream(Path, java.nio.file.OpenOption...)
and fromPGPPublicKeyRingCollection(InputStream, org.bouncycastle.openpgp.operator.KeyFingerPrintCalculator)
-
loadStore
Load the store from its designated location.- Throws:
IOException
- fromFiles.newInputStream(Path, java.nio.file.OpenOption...)
and fromPGPPublicKeyRingCollection(InputStream, org.bouncycastle.openpgp.operator.KeyFingerPrintCalculator)
-
createNewStore
Create an empty store and save to new location.- Throws:
IOException
- fromsaveStore()
and in the unlikely event thatPGPPublicKeyRingCollection(java.util.Collection)
has problems.
-
saveStore
Save the store to its designated location.- Throws:
IOException
- fromFiles.newOutputStream(Path, java.nio.file.OpenOption...)
and fromPGPPublicKeyRingCollection.encode(OutputStream)
-
saveStoreInternal
Save the store to its designated location.- Throws:
IOException
- fromFiles.newOutputStream(Path, java.nio.file.OpenOption...)
and fromPGPPublicKeyRingCollection.encode(OutputStream)
-
importKeyFromStream
public void importKeyFromStream(TrustStore.Signature sigForKey, InputStream keyStream, Predicate<String> accept) throws IOException Load up the provided store and if the key is found and the Predicate allows it add it to the store which we will then save.- Parameters:
sigForKey
- the signature we are looking for a key for.keyStream
- where to load the key fromaccept
- whether we actually want to install this key- Throws:
IOException
- if the load or save fails
-
signatureOf
Provide an opaque signature object from an input stream.- Parameters:
stream
- what to read.- Returns:
- the Signature.
- Throws:
IOException
- if there is a problem reading the file of it it doesn't represent a signature
-
contains
Does the key that made this signature exist in our keyrings?- Parameters:
signature
- what to ask about- Returns:
- whether it is there
-
checkSignature
Run a signature check over the streams.- Parameters:
input
- what to checksignature
- what to check with- Returns:
- whether it passed or not
- Throws:
IOException
- if we get an error reading the stream
-
doInitialize
- Overrides:
doInitialize
in classAbstractInitializableComponent
- Throws:
ComponentInitializationException
-