Class CryptoProviders
- java.lang.Object
-
- ghidra.formats.gfilesystem.crypto.CryptoProviders
-
public class CryptoProviders extends java.lang.ObjectRegistry ofcrypto providersandsession creator.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description CachedPasswordProvidergetCachedCryptoProvider()Returns theCachedPasswordProvider.<T extends CryptoProvider>
TgetCryptoProviderInstance(java.lang.Class<T> providerClass)Returns the previously registered matchingCryptoProviderinstance.static CryptoProvidersgetInstance()Fetch the globalCryptoProviderssingleton instance.CryptoSessionnewSession()Creates a newCryptoSession.voidregisterCryptoProvider(CryptoProvider provider)Adds aCryptoProviderto this registry.voidunregisterCryptoProvider(CryptoProvider provider)Removes aCryptoProviderfrom this registry.
-
-
-
Method Detail
-
getInstance
public static CryptoProviders getInstance()
Fetch the globalCryptoProviderssingleton instance.- Returns:
- shared
CryptoProviderssingleton instance
-
registerCryptoProvider
public void registerCryptoProvider(CryptoProvider provider)
Adds aCryptoProviderto this registry.TODO: do we need provider priority ordering?
- Parameters:
provider-CryptoProvider
-
unregisterCryptoProvider
public void unregisterCryptoProvider(CryptoProvider provider)
Removes aCryptoProviderfrom this registry.- Parameters:
provider-CryptoProviderto remove
-
getCachedCryptoProvider
public CachedPasswordProvider getCachedCryptoProvider()
Returns theCachedPasswordProvider.(Used by GUI actions to manage the cache)
- Returns:
- cached crypto provider instance
-
getCryptoProviderInstance
public <T extends CryptoProvider> T getCryptoProviderInstance(java.lang.Class<T> providerClass)
Returns the previously registered matchingCryptoProviderinstance.- Type Parameters:
T- CryptoProvider type- Parameters:
providerClass-CryptoProviderclass- Returns:
- previously registered CryptoProvider instance, or null if not found
-
newSession
public CryptoSession newSession()
Creates a newCryptoSession.TODO: to truly be effective when multiple files are being opened (ie. batch import), nested sessions need to be implemented.
- Returns:
- new
CryptoSessioninstance
-
-