test_class.declarator: credentialManager
test_class.modifier: private
test_class.original_string: private CredentialManagerImpl credentialManager;
test_class.type: CredentialManagerImpl
test_class.var_name: credentialManager
test_class.declarator: masterPassword = "uber"
test_class.modifier: private
test_class.original_string: private String masterPassword = "uber";
test_class.type: String
test_class.var_name: masterPassword
test_class.declarator: masterPasswordProvider
test_class.modifier: private
test_class.original_string: private DummyMasterPasswordProvider masterPasswordProvider;
test_class.type: DummyMasterPasswordProvider
test_class.var_name: masterPasswordProvider
test_class.declarator: credentialManagerDirectory
test_class.modifier: private
test_class.original_string: private File credentialManagerDirectory;
test_class.type: File
test_class.var_name: credentialManagerDirectory
test_class.declarator: usernamePassword
test_class.modifier: private static
test_class.original_string: private static UsernamePassword usernamePassword;
test_class.type: UsernamePassword
test_class.var_name: usernamePassword
test_class.declarator: serviceURI
test_class.modifier: private static
test_class.original_string: private static URI serviceURI;
test_class.type: URI
test_class.var_name: serviceURI
test_class.declarator: privateKey
test_class.modifier: private static
test_class.original_string: private static Key privateKey;
test_class.type: Key
test_class.var_name: privateKey
test_class.declarator: privateKeyCertChain
test_class.modifier: private static
test_class.original_string: private static Certificate[] privateKeyCertChain;
test_class.type: Certificate[]
test_class.var_name: privateKeyCertChain
test_class.declarator: privateKeyFileURL = CredentialManagerImplTest.class.getResource(
  			"/security/test-private-key-cert.p12")
test_class.modifier: private static
test_class.original_string: private static URL privateKeyFileURL = CredentialManagerImplTest.class.getResource(
  			"/security/test-private-key-cert.p12");
test_class.type: URL
test_class.var_name: privateKeyFileURL
test_class.declarator: privateKeyAndPKCS12KeystorePassword = "test"
test_class.modifier: private static final
test_class.original_string: private static final String privateKeyAndPKCS12KeystorePassword = "test";
test_class.type: String
test_class.var_name: privateKeyAndPKCS12KeystorePassword
test_class.declarator: trustedCertficate
test_class.modifier: private static
test_class.original_string: private static X509Certificate trustedCertficate;
test_class.type: X509Certificate
test_class.var_name: trustedCertficate
test_class.declarator: trustedCertficateFileURL = CredentialManagerImplTest.class.getResource(
  			"/security/google-trusted-certificate.pem")
test_class.modifier: private static
test_class.original_string: private static URL trustedCertficateFileURL = CredentialManagerImplTest.class.getResource(
  			"/security/google-trusted-certificate.pem");
test_class.type: URL
test_class.var_name: trustedCertficateFileURL
test_class.declarator: keystoreChangedObserver
test_class.modifier: private static
test_class.original_string: private static Observer<KeystoreChangedEvent> keystoreChangedObserver;
test_class.type: Observer<KeystoreChangedEvent>
test_class.var_name: keystoreChangedObserver
test_class.file: taverna-credential-manager-impl/src/test/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImplTest.java
test_class.identifier: CredentialManagerImplTest
test_case.body: @Test
  	public void testChangeMasterPassword() throws CMException {
  		// Test the changeMasterPassword() method first to see if 
  		// it will initialize Credential Manager properly
  		credentialManager.changeMasterPassword("blah");
  		credentialManager.confirmMasterPassword("blah");
  		
  		// Add new stuff - key pair and password entries - under the new master password
  		String keyPairAlias = credentialManager.addKeyPair(privateKey, privateKeyCertChain);
  		credentialManager.addUsernameAndPasswordForService(usernamePassword, serviceURI);
  		
  		// Change the master password again and try to retrieve the private key and password
  		credentialManager.changeMasterPassword("hlab");
  		assertArrayEquals(credentialManager.getUsernameAndPasswordForService(serviceURI, false, "").getPassword(), usernamePassword.getPassword());
  		assertEquals(privateKey, credentialManager.getKeyPairsPrivateKey(keyPairAlias));
  		assertTrue(Arrays.equals(privateKeyCertChain, credentialManager.getKeyPairsCertificateChain(keyPairAlias)));
  		
  		// Load the Credential Manager back from the saved file to see of entries will be picked up properly
  		CredentialManagerImpl credentialManagerNew = null;
  		try {
  			credentialManagerNew = new CredentialManagerImpl();
  		} catch (CMException e) {
  			System.out.println(e.getStackTrace());
  		}
  		try {
  			credentialManagerNew
  					.setConfigurationDirectoryPath(credentialManagerDirectory.toPath());
  		} catch (CMException e) {
  			System.out.println(e.getStackTrace());
  		}
  
  		// Create the dummy master password provider
  		masterPasswordProvider = new DummyMasterPasswordProvider();
  		masterPasswordProvider.setMasterPassword("hlab");
  		List<MasterPasswordProvider> masterPasswordProviders = new ArrayList<MasterPasswordProvider>();
  		masterPasswordProviders.add(masterPasswordProvider);
  		credentialManager.setMasterPasswordProviders(masterPasswordProviders);
  		
  		// Set an empty list for service username and password providers
  		credentialManagerNew.setServiceUsernameAndPasswordProviders(new ArrayList<ServiceUsernameAndPasswordProvider>());
  
  		credentialManager.setJavaTruststorePasswordProviders(new ArrayList<JavaTruststorePasswordProvider>());
  
  		credentialManager.setTrustConfirmationProviders(new ArrayList<TrustConfirmationProvider>());		
  		
  		assertArrayEquals(credentialManager.getUsernameAndPasswordForService(serviceURI, false, "").getPassword(), usernamePassword.getPassword());
  		assertEquals(privateKey, credentialManager.getKeyPairsPrivateKey(keyPairAlias));
  		assertTrue(Arrays.equals(privateKeyCertChain, credentialManager.getKeyPairsCertificateChain(keyPairAlias)));
  
  	}
test_case.class_method_signature: CredentialManagerImplTest.testChangeMasterPassword()
test_case.full_signature: @Test public void testChangeMasterPassword()
test_case.identifier: testChangeMasterPassword
test_case.invocations: changeMasterPassword confirmMasterPassword addKeyPair addUsernameAndPasswordForService changeMasterPassword assertArrayEquals getPassword getUsernameAndPasswordForService getPassword assertEquals getKeyPairsPrivateKey assertTrue equals getKeyPairsCertificateChain println getStackTrace setConfigurationDirectoryPath toPath println getStackTrace setMasterPassword add setMasterPasswordProviders setServiceUsernameAndPasswordProviders setJavaTruststorePasswordProviders setTrustConfirmationProviders assertArrayEquals getPassword getUsernameAndPasswordForService getPassword assertEquals getKeyPairsPrivateKey assertTrue equals getKeyPairsCertificateChain
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testChangeMasterPassword()
focal_class.declarator: defaultTrustStorePasswords = Arrays.asList(
  			System.getProperty(PROPERTY_TRUSTSTORE_PASSWORD, ""), "changeit",
  			"changeme", "")
focal_class.modifier: public static
focal_class.original_string: public static List<String> defaultTrustStorePasswords = Arrays.asList(
  			System.getProperty(PROPERTY_TRUSTSTORE_PASSWORD, ""), "changeit",
  			"changeme", "");
focal_class.type: List<String>
focal_class.var_name: defaultTrustStorePasswords
focal_class.declarator: OLD_TRUSTSTORE_PASSWORD = "Tu/Ap%2_$dJt6*+Rca9v"
focal_class.modifier: public static final
focal_class.original_string: public static final String OLD_TRUSTSTORE_PASSWORD = "Tu/Ap%2_$dJt6*+Rca9v";
focal_class.type: String
focal_class.var_name: OLD_TRUSTSTORE_PASSWORD
focal_class.declarator: OLD_T2TRUSTSTORE_FILE = "t2truststore.jks"
focal_class.modifier: public static final
focal_class.original_string: public static final String OLD_T2TRUSTSTORE_FILE = "t2truststore.jks";
focal_class.type: String
focal_class.var_name: OLD_T2TRUSTSTORE_FILE
focal_class.declarator: logger = Logger
  			.getLogger(CredentialManagerImpl.class)
focal_class.modifier: private static
focal_class.original_string: private static Logger logger = Logger
  			.getLogger(CredentialManagerImpl.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: multiCaster = new MultiCaster<>(
  			this)
focal_class.modifier: private
focal_class.original_string: private MultiCaster<KeystoreChangedEvent> multiCaster = new MultiCaster<>(
  			this);
focal_class.type: MultiCaster<KeystoreChangedEvent>
focal_class.var_name: multiCaster
focal_class.declarator: credentialManagerDirectory = null
focal_class.modifier: private
focal_class.original_string: private File credentialManagerDirectory = null;
focal_class.type: File
focal_class.var_name: credentialManagerDirectory
focal_class.declarator: masterPassword
focal_class.modifier: private
focal_class.original_string: private String masterPassword;
focal_class.type: String
focal_class.var_name: masterPassword
focal_class.declarator: keystoreFile = null
focal_class.modifier: private
focal_class.original_string: private File keystoreFile = null;
focal_class.type: File
focal_class.var_name: keystoreFile
focal_class.declarator: truststoreFile = null
focal_class.modifier: private
focal_class.original_string: private File truststoreFile = null;
focal_class.type: File
focal_class.var_name: truststoreFile
focal_class.declarator: keystore
focal_class.modifier: private
focal_class.original_string: private KeyStore keystore;
focal_class.type: KeyStore
focal_class.var_name: keystore
focal_class.declarator: truststore
focal_class.modifier: private
focal_class.original_string: private KeyStore truststore;
focal_class.type: KeyStore
focal_class.var_name: truststore
focal_class.declarator: isInitialized = false
focal_class.modifier: private
focal_class.original_string: private boolean isInitialized = false;
focal_class.type: boolean
focal_class.var_name: isInitialized
focal_class.declarator: tavernaSSLSocketFactory
focal_class.modifier: private static
focal_class.original_string: private static SSLSocketFactory tavernaSSLSocketFactory;
focal_class.type: SSLSocketFactory
focal_class.var_name: tavernaSSLSocketFactory
focal_class.declarator: keystoresChangedObserver = new KeystoreChangedObserver()
focal_class.modifier: private
focal_class.original_string: private KeystoreChangedObserver keystoresChangedObserver = new KeystoreChangedObserver();
focal_class.type: KeystoreChangedObserver
focal_class.var_name: keystoresChangedObserver
focal_class.declarator: cachedServiceURIsList = null
focal_class.modifier: private
focal_class.original_string: private List<URI> cachedServiceURIsList = null;
focal_class.type: List<URI>
focal_class.var_name: cachedServiceURIsList
focal_class.declarator: cachedServiceURIsMap = null
focal_class.modifier: private
focal_class.original_string: private HashMap<URI, URI> cachedServiceURIsMap = null;
focal_class.type: HashMap<URI, URI>
focal_class.var_name: cachedServiceURIsMap
focal_class.declarator: clearCachedServiceURIsObserver = new ClearCachedServiceURIsObserver()
focal_class.modifier: private
focal_class.original_string: private ClearCachedServiceURIsObserver clearCachedServiceURIsObserver = new ClearCachedServiceURIsObserver();
focal_class.type: ClearCachedServiceURIsObserver
focal_class.var_name: clearCachedServiceURIsObserver
focal_class.declarator: masterPasswordProviders
focal_class.modifier: private
focal_class.original_string: private List<MasterPasswordProvider> masterPasswordProviders;
focal_class.type: List<MasterPasswordProvider>
focal_class.var_name: masterPasswordProviders
focal_class.declarator: javaTruststorePasswordProviders
focal_class.modifier: private
focal_class.original_string: private List<JavaTruststorePasswordProvider> javaTruststorePasswordProviders;
focal_class.type: List<JavaTruststorePasswordProvider>
focal_class.var_name: javaTruststorePasswordProviders
focal_class.declarator: serviceUsernameAndPasswordProviders
focal_class.modifier: private
focal_class.original_string: private List<ServiceUsernameAndPasswordProvider> serviceUsernameAndPasswordProviders;
focal_class.type: List<ServiceUsernameAndPasswordProvider>
focal_class.var_name: serviceUsernameAndPasswordProviders
focal_class.declarator: trustConfirmationProviders
focal_class.modifier: private
focal_class.original_string: private List<TrustConfirmationProvider> trustConfirmationProviders;
focal_class.type: List<TrustConfirmationProvider>
focal_class.var_name: trustConfirmationProviders
focal_class.declarator: applicationConfiguration
focal_class.modifier: private
focal_class.original_string: private ApplicationConfiguration applicationConfiguration;
focal_class.type: ApplicationConfiguration
focal_class.var_name: applicationConfiguration
focal_class.declarator: certificatesRevokedIndicatorFile
focal_class.modifier: private
focal_class.original_string: private File certificatesRevokedIndicatorFile;
focal_class.type: File
focal_class.var_name: certificatesRevokedIndicatorFile
focal_class.declarator: dnParser = new DistinguishedNameParserImpl()
focal_class.modifier: private
focal_class.original_string: private DistinguishedNameParser dnParser = new DistinguishedNameParserImpl();
focal_class.type: DistinguishedNameParser
focal_class.var_name: dnParser
focal_class.declarator: REALLY_DISABLED = false
focal_class.modifier: private static final
focal_class.original_string: private static final boolean REALLY_DISABLED = false;
focal_class.type: boolean
focal_class.var_name: REALLY_DISABLED
focal_class.file: taverna-credential-manager-impl/src/main/java/org/apache/taverna/security/credentialmanager/impl/CredentialManagerImpl.java
focal_class.identifier: CredentialManagerImpl
focal_class.interfaces: implements CredentialManager,
  		Observable<KeystoreChangedEvent>
focal_class.class_method_signature: CredentialManagerImpl.getSpecialTrustedCertificates()
focal_class.full_signature: private static List<URL> getSpecialTrustedCertificates()
focal_class.identifier: getSpecialTrustedCertificates
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: List<URL>
focal_class.signature: List<URL> getSpecialTrustedCertificates()
focal_class.class_method_signature: CredentialManagerImpl.installAuthenticator()
focal_class.full_signature: public void installAuthenticator()
focal_class.identifier: installAuthenticator
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void installAuthenticator()
focal_class.class_method_signature: CredentialManagerImpl.deleteRevokedCertificates()
focal_class.full_signature: public void deleteRevokedCertificates()
focal_class.identifier: deleteRevokedCertificates
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void deleteRevokedCertificates()
focal_class.class_method_signature: CredentialManagerImpl.CredentialManagerImpl()
focal_class.full_signature: public  CredentialManagerImpl()
focal_class.identifier: CredentialManagerImpl
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  CredentialManagerImpl()
focal_class.class_method_signature: CredentialManagerImpl.initialize()
focal_class.full_signature: private void initialize()
focal_class.identifier: initialize
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void initialize()
focal_class.class_method_signature: CredentialManagerImpl.getMasterPassword()
focal_class.full_signature: private String getMasterPassword()
focal_class.identifier: getMasterPassword
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getMasterPassword()
focal_class.class_method_signature: CredentialManagerImpl.loadKeystore()
focal_class.full_signature: private void loadKeystore()
focal_class.identifier: loadKeystore
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void loadKeystore()
focal_class.class_method_signature: CredentialManagerImpl.loadTruststore()
focal_class.full_signature: private void loadTruststore()
focal_class.identifier: loadTruststore
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void loadTruststore()
focal_class.class_method_signature: CredentialManagerImpl.loadJavaTruststoreUsingPasswordProviders(
  			KeyStore javaTruststore, File javaTruststoreFile)
focal_class.full_signature: private boolean loadJavaTruststoreUsingPasswordProviders(
  			KeyStore javaTruststore, File javaTruststoreFile)
focal_class.identifier: loadJavaTruststoreUsingPasswordProviders
focal_class.modifiers: private
focal_class.parameters: (
  			KeyStore javaTruststore, File javaTruststoreFile)
focal_class.return: boolean
focal_class.signature: boolean loadJavaTruststoreUsingPasswordProviders(
  			KeyStore javaTruststore, File javaTruststoreFile)
focal_class.class_method_signature: CredentialManagerImpl.getUsernameAndPasswordForService(String serviceURL)
focal_class.full_signature: @Deprecated public String[] getUsernameAndPasswordForService(String serviceURL)
focal_class.identifier: getUsernameAndPasswordForService
focal_class.modifiers: @Deprecated public
focal_class.parameters: (String serviceURL)
focal_class.return: String[]
focal_class.signature: String[] getUsernameAndPasswordForService(String serviceURL)
focal_class.class_method_signature: CredentialManagerImpl.getUsernameAndPasswordForService(URI serviceURI,
  			boolean usePathRecursion, String requestingMessage)
focal_class.full_signature: @Override public UsernamePassword getUsernameAndPasswordForService(URI serviceURI,
  			boolean usePathRecursion, String requestingMessage)
focal_class.identifier: getUsernameAndPasswordForService
focal_class.modifiers: @Override public
focal_class.parameters: (URI serviceURI,
  			boolean usePathRecursion, String requestingMessage)
focal_class.return: UsernamePassword
focal_class.signature: UsernamePassword getUsernameAndPasswordForService(URI serviceURI,
  			boolean usePathRecursion, String requestingMessage)
focal_class.class_method_signature: CredentialManagerImpl.getFragmentMappedURIsForAllUsernameAndPasswordPairs()
focal_class.full_signature: protected Map<URI, URI> getFragmentMappedURIsForAllUsernameAndPasswordPairs()
focal_class.identifier: getFragmentMappedURIsForAllUsernameAndPasswordPairs
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: Map<URI, URI>
focal_class.signature: Map<URI, URI> getFragmentMappedURIsForAllUsernameAndPasswordPairs()
focal_class.class_method_signature: CredentialManagerImpl.getPossibleServiceURIsToLookup(URI serviceURI,
  			boolean usePathRecursion)
focal_class.full_signature: protected LinkedHashSet<URI> getPossibleServiceURIsToLookup(URI serviceURI,
  			boolean usePathRecursion)
focal_class.identifier: getPossibleServiceURIsToLookup
focal_class.modifiers: protected
focal_class.parameters: (URI serviceURI,
  			boolean usePathRecursion)
focal_class.return: LinkedHashSet<URI>
focal_class.signature: LinkedHashSet<URI> getPossibleServiceURIsToLookup(URI serviceURI,
  			boolean usePathRecursion)
focal_class.class_method_signature: CredentialManagerImpl.addFragmentedURI(LinkedHashSet<URI> possibles, URI uri,
  			String rawFragment)
focal_class.full_signature: public void addFragmentedURI(LinkedHashSet<URI> possibles, URI uri,
  			String rawFragment)
focal_class.identifier: addFragmentedURI
focal_class.modifiers: public
focal_class.parameters: (LinkedHashSet<URI> possibles, URI uri,
  			String rawFragment)
focal_class.return: void
focal_class.signature: void addFragmentedURI(LinkedHashSet<URI> possibles, URI uri,
  			String rawFragment)
focal_class.class_method_signature: CredentialManagerImpl.getServiceURLsforAllUsernameAndPasswordPairs()
focal_class.full_signature: @Deprecated public ArrayList<String> getServiceURLsforAllUsernameAndPasswordPairs()
focal_class.identifier: getServiceURLsforAllUsernameAndPasswordPairs
focal_class.modifiers: @Deprecated public
focal_class.parameters: ()
focal_class.return: ArrayList<String>
focal_class.signature: ArrayList<String> getServiceURLsforAllUsernameAndPasswordPairs()
focal_class.class_method_signature: CredentialManagerImpl.addUsernameAndPasswordForService(
  			UsernamePassword usernamePassword, URI serviceURI)
focal_class.full_signature: @Override public String addUsernameAndPasswordForService(
  			UsernamePassword usernamePassword, URI serviceURI)
focal_class.identifier: addUsernameAndPasswordForService
focal_class.modifiers: @Override public
focal_class.parameters: (
  			UsernamePassword usernamePassword, URI serviceURI)
focal_class.return: String
focal_class.signature: String addUsernameAndPasswordForService(
  			UsernamePassword usernamePassword, URI serviceURI)
focal_class.class_method_signature: CredentialManagerImpl.saveUsernameAndPasswordForService(String username,
  			String password, String serviceURL)
focal_class.full_signature: @Deprecated public String saveUsernameAndPasswordForService(String username,
  			String password, String serviceURL)
focal_class.identifier: saveUsernameAndPasswordForService
focal_class.modifiers: @Deprecated public
focal_class.parameters: (String username,
  			String password, String serviceURL)
focal_class.return: String
focal_class.signature: String saveUsernameAndPasswordForService(String username,
  			String password, String serviceURL)
focal_class.class_method_signature: CredentialManagerImpl.deleteUsernameAndPasswordForService(URI serviceURI)
focal_class.full_signature: @Override public void deleteUsernameAndPasswordForService(URI serviceURI)
focal_class.identifier: deleteUsernameAndPasswordForService
focal_class.modifiers: @Override public
focal_class.parameters: (URI serviceURI)
focal_class.return: void
focal_class.signature: void deleteUsernameAndPasswordForService(URI serviceURI)
focal_class.class_method_signature: CredentialManagerImpl.deleteUsernameAndPasswordForService(String serviceURL)
focal_class.full_signature: @Deprecated public void deleteUsernameAndPasswordForService(String serviceURL)
focal_class.identifier: deleteUsernameAndPasswordForService
focal_class.modifiers: @Deprecated public
focal_class.parameters: (String serviceURL)
focal_class.return: void
focal_class.signature: void deleteUsernameAndPasswordForService(String serviceURL)
focal_class.class_method_signature: CredentialManagerImpl.addKeyPair(Key privateKey, Certificate[] certs)
focal_class.full_signature: @Override public String addKeyPair(Key privateKey, Certificate[] certs)
focal_class.identifier: addKeyPair
focal_class.modifiers: @Override public
focal_class.parameters: (Key privateKey, Certificate[] certs)
focal_class.return: String
focal_class.signature: String addKeyPair(Key privateKey, Certificate[] certs)
focal_class.class_method_signature: CredentialManagerImpl.hasKeyPair(Key privateKey, Certificate[] certs)
focal_class.full_signature: @Override public boolean hasKeyPair(Key privateKey, Certificate[] certs)
focal_class.identifier: hasKeyPair
focal_class.modifiers: @Override public
focal_class.parameters: (Key privateKey, Certificate[] certs)
focal_class.return: boolean
focal_class.signature: boolean hasKeyPair(Key privateKey, Certificate[] certs)
focal_class.class_method_signature: CredentialManagerImpl.deleteKeyPair(String alias)
focal_class.full_signature: @Override public void deleteKeyPair(String alias)
focal_class.identifier: deleteKeyPair
focal_class.modifiers: @Override public
focal_class.parameters: (String alias)
focal_class.return: void
focal_class.signature: void deleteKeyPair(String alias)
focal_class.class_method_signature: CredentialManagerImpl.deleteKeyPair(Key privateKey, Certificate[] certs)
focal_class.full_signature: @Override public void deleteKeyPair(Key privateKey, Certificate[] certs)
focal_class.identifier: deleteKeyPair
focal_class.modifiers: @Override public
focal_class.parameters: (Key privateKey, Certificate[] certs)
focal_class.return: void
focal_class.signature: void deleteKeyPair(Key privateKey, Certificate[] certs)
focal_class.class_method_signature: CredentialManagerImpl.exportKeyPair(String alias, Path exportFile,
  			String pkcs12Password)
focal_class.full_signature: @Override public void exportKeyPair(String alias, Path exportFile,
  			String pkcs12Password)
focal_class.identifier: exportKeyPair
focal_class.modifiers: @Override public
focal_class.parameters: (String alias, Path exportFile,
  			String pkcs12Password)
focal_class.return: void
focal_class.signature: void exportKeyPair(String alias, Path exportFile,
  			String pkcs12Password)
focal_class.class_method_signature: CredentialManagerImpl.getCertificate(KeystoreType ksType, String alias)
focal_class.full_signature: @Override public Certificate getCertificate(KeystoreType ksType, String alias)
focal_class.identifier: getCertificate
focal_class.modifiers: @Override public
focal_class.parameters: (KeystoreType ksType, String alias)
focal_class.return: Certificate
focal_class.signature: Certificate getCertificate(KeystoreType ksType, String alias)
focal_class.class_method_signature: CredentialManagerImpl.getKeyPairsCertificateChain(String alias)
focal_class.full_signature: @Override public Certificate[] getKeyPairsCertificateChain(String alias)
focal_class.identifier: getKeyPairsCertificateChain
focal_class.modifiers: @Override public
focal_class.parameters: (String alias)
focal_class.return: Certificate[]
focal_class.signature: Certificate[] getKeyPairsCertificateChain(String alias)
focal_class.class_method_signature: CredentialManagerImpl.getKeyPairsPrivateKey(String alias)
focal_class.full_signature: @Override public Key getKeyPairsPrivateKey(String alias)
focal_class.identifier: getKeyPairsPrivateKey
focal_class.modifiers: @Override public
focal_class.parameters: (String alias)
focal_class.return: Key
focal_class.signature: Key getKeyPairsPrivateKey(String alias)
focal_class.class_method_signature: CredentialManagerImpl.addTrustedCertificate(X509Certificate cert)
focal_class.full_signature: @Override public String addTrustedCertificate(X509Certificate cert)
focal_class.identifier: addTrustedCertificate
focal_class.modifiers: @Override public
focal_class.parameters: (X509Certificate cert)
focal_class.return: String
focal_class.signature: String addTrustedCertificate(X509Certificate cert)
focal_class.class_method_signature: CredentialManagerImpl.createKeyPairAlias(Key privateKey, Certificate certs[])
focal_class.full_signature: @Override public String createKeyPairAlias(Key privateKey, Certificate certs[])
focal_class.identifier: createKeyPairAlias
focal_class.modifiers: @Override public
focal_class.parameters: (Key privateKey, Certificate certs[])
focal_class.return: String
focal_class.signature: String createKeyPairAlias(Key privateKey, Certificate certs[])
focal_class.class_method_signature: CredentialManagerImpl.createTrustedCertificateAlias(X509Certificate cert)
focal_class.full_signature: @Override public String createTrustedCertificateAlias(X509Certificate cert)
focal_class.identifier: createTrustedCertificateAlias
focal_class.modifiers: @Override public
focal_class.parameters: (X509Certificate cert)
focal_class.return: String
focal_class.signature: String createTrustedCertificateAlias(X509Certificate cert)
focal_class.class_method_signature: CredentialManagerImpl.hasTrustedCertificate(Certificate cert)
focal_class.full_signature: @Override public boolean hasTrustedCertificate(Certificate cert)
focal_class.identifier: hasTrustedCertificate
focal_class.modifiers: @Override public
focal_class.parameters: (Certificate cert)
focal_class.return: boolean
focal_class.signature: boolean hasTrustedCertificate(Certificate cert)
focal_class.class_method_signature: CredentialManagerImpl.deleteTrustedCertificate(String alias)
focal_class.full_signature: @Override public void deleteTrustedCertificate(String alias)
focal_class.identifier: deleteTrustedCertificate
focal_class.modifiers: @Override public
focal_class.parameters: (String alias)
focal_class.return: void
focal_class.signature: void deleteTrustedCertificate(String alias)
focal_class.class_method_signature: CredentialManagerImpl.deleteTrustedCertificate(X509Certificate cert)
focal_class.full_signature: @Override public void deleteTrustedCertificate(X509Certificate cert)
focal_class.identifier: deleteTrustedCertificate
focal_class.modifiers: @Override public
focal_class.parameters: (X509Certificate cert)
focal_class.return: void
focal_class.signature: void deleteTrustedCertificate(X509Certificate cert)
focal_class.class_method_signature: CredentialManagerImpl.isKeyEntry(String alias)
focal_class.full_signature: @Override public boolean isKeyEntry(String alias)
focal_class.identifier: isKeyEntry
focal_class.modifiers: @Override public
focal_class.parameters: (String alias)
focal_class.return: boolean
focal_class.signature: boolean isKeyEntry(String alias)
focal_class.class_method_signature: CredentialManagerImpl.deleteEntry(KeystoreType ksType, String alias)
focal_class.full_signature: private void deleteEntry(KeystoreType ksType, String alias)
focal_class.identifier: deleteEntry
focal_class.modifiers: private
focal_class.parameters: (KeystoreType ksType, String alias)
focal_class.return: void
focal_class.signature: void deleteEntry(KeystoreType ksType, String alias)
focal_class.class_method_signature: CredentialManagerImpl.hasEntryWithAlias(KeystoreType ksType, String alias)
focal_class.full_signature: @Override public boolean hasEntryWithAlias(KeystoreType ksType, String alias)
focal_class.identifier: hasEntryWithAlias
focal_class.modifiers: @Override public
focal_class.parameters: (KeystoreType ksType, String alias)
focal_class.return: boolean
focal_class.signature: boolean hasEntryWithAlias(KeystoreType ksType, String alias)
focal_class.class_method_signature: CredentialManagerImpl.getAliases(KeystoreType ksType)
focal_class.full_signature: @Override public ArrayList<String> getAliases(KeystoreType ksType)
focal_class.identifier: getAliases
focal_class.modifiers: @Override public
focal_class.parameters: (KeystoreType ksType)
focal_class.return: ArrayList<String>
focal_class.signature: ArrayList<String> getAliases(KeystoreType ksType)
focal_class.class_method_signature: CredentialManagerImpl.getServiceURIsForAllUsernameAndPasswordPairs()
focal_class.full_signature: @Override public List<URI> getServiceURIsForAllUsernameAndPasswordPairs()
focal_class.identifier: getServiceURIsForAllUsernameAndPasswordPairs
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: List<URI>
focal_class.signature: List<URI> getServiceURIsForAllUsernameAndPasswordPairs()
focal_class.class_method_signature: CredentialManagerImpl.loadPKCS12Keystore(Path pkcs12File, String pkcs12Password)
focal_class.full_signature: @Override public KeyStore loadPKCS12Keystore(Path pkcs12File, String pkcs12Password)
focal_class.identifier: loadPKCS12Keystore
focal_class.modifiers: @Override public
focal_class.parameters: (Path pkcs12File, String pkcs12Password)
focal_class.return: KeyStore
focal_class.signature: KeyStore loadPKCS12Keystore(Path pkcs12File, String pkcs12Password)
focal_class.class_method_signature: CredentialManagerImpl.addObserver(Observer<KeystoreChangedEvent> observer)
focal_class.full_signature: @Override public void addObserver(Observer<KeystoreChangedEvent> observer)
focal_class.identifier: addObserver
focal_class.modifiers: @Override public
focal_class.parameters: (Observer<KeystoreChangedEvent> observer)
focal_class.return: void
focal_class.signature: void addObserver(Observer<KeystoreChangedEvent> observer)
focal_class.class_method_signature: CredentialManagerImpl.getObservers()
focal_class.full_signature: @Override public List<Observer<KeystoreChangedEvent>> getObservers()
focal_class.identifier: getObservers
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: List<Observer<KeystoreChangedEvent>>
focal_class.signature: List<Observer<KeystoreChangedEvent>> getObservers()
focal_class.class_method_signature: CredentialManagerImpl.removeObserver(Observer<KeystoreChangedEvent> observer)
focal_class.full_signature: @Override public void removeObserver(Observer<KeystoreChangedEvent> observer)
focal_class.identifier: removeObserver
focal_class.modifiers: @Override public
focal_class.parameters: (Observer<KeystoreChangedEvent> observer)
focal_class.return: void
focal_class.signature: void removeObserver(Observer<KeystoreChangedEvent> observer)
focal_class.class_method_signature: CredentialManagerImpl.saveKeystore(KeystoreType ksType)
focal_class.full_signature: private void saveKeystore(KeystoreType ksType)
focal_class.identifier: saveKeystore
focal_class.modifiers: private
focal_class.parameters: (KeystoreType ksType)
focal_class.return: void
focal_class.signature: void saveKeystore(KeystoreType ksType)
focal_class.class_method_signature: CredentialManagerImpl.confirmMasterPassword(String password)
focal_class.full_signature: @Override public boolean confirmMasterPassword(String password)
focal_class.identifier: confirmMasterPassword
focal_class.modifiers: @Override public
focal_class.parameters: (String password)
focal_class.return: boolean
focal_class.signature: boolean confirmMasterPassword(String password)
focal_class.class_method_signature: CredentialManagerImpl.changeMasterPassword(String newMasterPassword)
focal_class.full_signature: @Override public void changeMasterPassword(String newMasterPassword)
focal_class.identifier: changeMasterPassword
focal_class.modifiers: @Override public
focal_class.parameters: (String newMasterPassword)
focal_class.return: void
focal_class.signature: void changeMasterPassword(String newMasterPassword)
focal_class.class_method_signature: CredentialManagerImpl.initializeSSL()
focal_class.full_signature: @Override public void initializeSSL()
focal_class.identifier: initializeSSL
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void initializeSSL()
focal_class.class_method_signature: CredentialManagerImpl.createSSLSocketFactory()
focal_class.full_signature: private SSLSocketFactory createSSLSocketFactory()
focal_class.identifier: createSSLSocketFactory
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: SSLSocketFactory
focal_class.signature: SSLSocketFactory createSSLSocketFactory()
focal_class.class_method_signature: CredentialManagerImpl.getTavernaSSLSocketFactory()
focal_class.full_signature: @Override public SSLSocketFactory getTavernaSSLSocketFactory()
focal_class.identifier: getTavernaSSLSocketFactory
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: SSLSocketFactory
focal_class.signature: SSLSocketFactory getTavernaSSLSocketFactory()
focal_class.class_method_signature: CredentialManagerImpl.getAuthenticator()
focal_class.full_signature: @Override public Authenticator getAuthenticator()
focal_class.identifier: getAuthenticator
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Authenticator
focal_class.signature: Authenticator getAuthenticator()
focal_class.class_method_signature: CredentialManagerImpl.shouldTrust(final X509Certificate[] chain)
focal_class.full_signature: private boolean shouldTrust(final X509Certificate[] chain)
focal_class.identifier: shouldTrust
focal_class.modifiers: private
focal_class.parameters: (final X509Certificate[] chain)
focal_class.return: boolean
focal_class.signature: boolean shouldTrust(final X509Certificate[] chain)
focal_class.class_method_signature: CredentialManagerImpl.normalizeServiceURI(URI serviceURI)
focal_class.full_signature: public URI normalizeServiceURI(URI serviceURI)
focal_class.identifier: normalizeServiceURI
focal_class.modifiers: public
focal_class.parameters: (URI serviceURI)
focal_class.return: URI
focal_class.signature: URI normalizeServiceURI(URI serviceURI)
focal_class.class_method_signature: CredentialManagerImpl.resetAuthCache()
focal_class.full_signature: @Override public boolean resetAuthCache()
focal_class.identifier: resetAuthCache
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean resetAuthCache()
focal_class.class_method_signature: CredentialManagerImpl.hasUsernamePasswordForService(URI serviceURI)
focal_class.full_signature: @Override public boolean hasUsernamePasswordForService(URI serviceURI)
focal_class.identifier: hasUsernamePasswordForService
focal_class.modifiers: @Override public
focal_class.parameters: (URI serviceURI)
focal_class.return: boolean
focal_class.signature: boolean hasUsernamePasswordForService(URI serviceURI)
focal_class.class_method_signature: CredentialManagerImpl.loadDefaultSecurityFiles()
focal_class.full_signature: private void loadDefaultSecurityFiles()
focal_class.identifier: loadDefaultSecurityFiles
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void loadDefaultSecurityFiles()
focal_class.class_method_signature: CredentialManagerImpl.setConfigurationDirectoryPath(Path credentialManagerPath)
focal_class.full_signature: @Override public void setConfigurationDirectoryPath(Path credentialManagerPath)
focal_class.identifier: setConfigurationDirectoryPath
focal_class.modifiers: @Override public
focal_class.parameters: (Path credentialManagerPath)
focal_class.return: void
focal_class.signature: void setConfigurationDirectoryPath(Path credentialManagerPath)
focal_class.class_method_signature: CredentialManagerImpl.setMasterPasswordProviders(
  			List<MasterPasswordProvider> masterPasswordProviders)
focal_class.full_signature: public void setMasterPasswordProviders(
  			List<MasterPasswordProvider> masterPasswordProviders)
focal_class.identifier: setMasterPasswordProviders
focal_class.modifiers: public
focal_class.parameters: (
  			List<MasterPasswordProvider> masterPasswordProviders)
focal_class.return: void
focal_class.signature: void setMasterPasswordProviders(
  			List<MasterPasswordProvider> masterPasswordProviders)
focal_class.class_method_signature: CredentialManagerImpl.getMasterPasswordProviders()
focal_class.full_signature: public List<MasterPasswordProvider> getMasterPasswordProviders()
focal_class.identifier: getMasterPasswordProviders
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<MasterPasswordProvider>
focal_class.signature: List<MasterPasswordProvider> getMasterPasswordProviders()
focal_class.class_method_signature: CredentialManagerImpl.setJavaTruststorePasswordProviders(
  			List<JavaTruststorePasswordProvider> javaTruststorePasswordProvider)
focal_class.full_signature: public void setJavaTruststorePasswordProviders(
  			List<JavaTruststorePasswordProvider> javaTruststorePasswordProvider)
focal_class.identifier: setJavaTruststorePasswordProviders
focal_class.modifiers: public
focal_class.parameters: (
  			List<JavaTruststorePasswordProvider> javaTruststorePasswordProvider)
focal_class.return: void
focal_class.signature: void setJavaTruststorePasswordProviders(
  			List<JavaTruststorePasswordProvider> javaTruststorePasswordProvider)
focal_class.class_method_signature: CredentialManagerImpl.getJavaTruststorePasswordProviders()
focal_class.full_signature: public List<JavaTruststorePasswordProvider> getJavaTruststorePasswordProviders()
focal_class.identifier: getJavaTruststorePasswordProviders
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<JavaTruststorePasswordProvider>
focal_class.signature: List<JavaTruststorePasswordProvider> getJavaTruststorePasswordProviders()
focal_class.class_method_signature: CredentialManagerImpl.setServiceUsernameAndPasswordProviders(
  			List<ServiceUsernameAndPasswordProvider> serviceUsernameAndPasswordProviders)
focal_class.full_signature: public void setServiceUsernameAndPasswordProviders(
  			List<ServiceUsernameAndPasswordProvider> serviceUsernameAndPasswordProviders)
focal_class.identifier: setServiceUsernameAndPasswordProviders
focal_class.modifiers: public
focal_class.parameters: (
  			List<ServiceUsernameAndPasswordProvider> serviceUsernameAndPasswordProviders)
focal_class.return: void
focal_class.signature: void setServiceUsernameAndPasswordProviders(
  			List<ServiceUsernameAndPasswordProvider> serviceUsernameAndPasswordProviders)
focal_class.class_method_signature: CredentialManagerImpl.getServiceUsernameAndPasswordProviders()
focal_class.full_signature: public List<ServiceUsernameAndPasswordProvider> getServiceUsernameAndPasswordProviders()
focal_class.identifier: getServiceUsernameAndPasswordProviders
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<ServiceUsernameAndPasswordProvider>
focal_class.signature: List<ServiceUsernameAndPasswordProvider> getServiceUsernameAndPasswordProviders()
focal_class.class_method_signature: CredentialManagerImpl.setTrustConfirmationProviders(
  			List<TrustConfirmationProvider> trustConfirmationProviders)
focal_class.full_signature: public void setTrustConfirmationProviders(
  			List<TrustConfirmationProvider> trustConfirmationProviders)
focal_class.identifier: setTrustConfirmationProviders
focal_class.modifiers: public
focal_class.parameters: (
  			List<TrustConfirmationProvider> trustConfirmationProviders)
focal_class.return: void
focal_class.signature: void setTrustConfirmationProviders(
  			List<TrustConfirmationProvider> trustConfirmationProviders)
focal_class.class_method_signature: CredentialManagerImpl.getTrustConfirmationProviders()
focal_class.full_signature: public List<TrustConfirmationProvider> getTrustConfirmationProviders()
focal_class.identifier: getTrustConfirmationProviders
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<TrustConfirmationProvider>
focal_class.signature: List<TrustConfirmationProvider> getTrustConfirmationProviders()
focal_class.class_method_signature: CredentialManagerImpl.setApplicationConfiguration(
  			ApplicationConfiguration applicationConfiguration)
focal_class.full_signature: public void setApplicationConfiguration(
  			ApplicationConfiguration applicationConfiguration)
focal_class.identifier: setApplicationConfiguration
focal_class.modifiers: public
focal_class.parameters: (
  			ApplicationConfiguration applicationConfiguration)
focal_class.return: void
focal_class.signature: void setApplicationConfiguration(
  			ApplicationConfiguration applicationConfiguration)
focal_method.body: @Override
  	public void changeMasterPassword(String newMasterPassword)
  			throws CMException {
  		// Need to make sure we are initialized before we do anything else
  		// as Credential Manager can be created but not initialized
  		initialize();
  
  		String oldMasterPassword = masterPassword;
  		KeyStore oldKeystore = keystore;
  		KeyStore oldTruststore = truststore;
  
  		try {
  			synchronized (keystore) {
  				// Create a new keystore and copy all items from the current
  				// one, encrypting them with the new password
  				KeyStore newKeystore = null;
  				try {
  					// Try to create Taverna's Keystore as Bouncy Castle
  					// UBER-type keystore.
  					newKeystore = KeyStore.getInstance("UBER", "BC");
  				} catch (Exception ex) {
  					// The requested keystore type is not available from
  					// security providers.
  					String exMessage = "Failed to instantiate a new Bouncy Castle Keystore when changing master password.";
  					throw new CMException(exMessage, ex);
  				}
  				try {
  					// Initialize a new empty keystore
  					newKeystore.load(null, null);
  				} catch (Exception ex) {
  					String exMessage = "Failed to create a new empty Keystore to copy over the entries from the current one.";
  					throw new CMException(exMessage, ex);
  				}
  
  				Enumeration<String> aliases = keystore.aliases();
  				while (aliases.hasMoreElements()) {
  					String alias = aliases.nextElement();
  					if (REALLY_DISABLED) {
  						if (alias.startsWith("password#")) { // a password entry
  							SecretKeySpec passwordKey = (((SecretKeySpec) keystore
  									.getKey(alias, masterPassword.toCharArray())));
  							newKeystore.setKeyEntry(alias, passwordKey,
  									newMasterPassword.toCharArray(), null);
  						} else if (alias.startsWith("keypair#")) { // a private key entry
  							// Get the private key for the alias
  							PrivateKey privateKey = (PrivateKey) keystore
  									.getKey(alias, masterPassword.toCharArray());
  							// Get the related public key's certificate chain
  							Certificate[] certChain = keystore
  									.getCertificateChain(alias);
  							newKeystore.setKeyEntry(alias, privateKey,
  									newMasterPassword.toCharArray(), certChain);
  						}
  					}
  					// Do all entries at once, not reason to separate password &
  					// key pair entries
  					newKeystore.setEntry(
  							alias,
  							keystore.getEntry(alias,
  									new KeyStore.PasswordProtection(
  											masterPassword.toCharArray())),
  							new KeyStore.PasswordProtection(newMasterPassword
  									.toCharArray()));
  				}
  				try (FileOutputStream fos = new FileOutputStream(keystoreFile)) {
  					newKeystore.store(fos, newMasterPassword.toCharArray());
  				}
  				keystore = newKeystore;
  			}
  
  			// Truststore does not need to be re-encrypeted item by item as
  			// entries there are not encrypted, just the whole truststore
  			synchronized (truststore) {
  				try (FileOutputStream fos = new FileOutputStream(truststoreFile)) {
  					truststore.store(fos, newMasterPassword.toCharArray());
  				}
  			}
  
  			// Set the new master password as well
  			masterPassword = newMasterPassword;
  		} catch (Exception ex) {
  			// rollback
  			keystore = oldKeystore;
  			truststore = oldTruststore;
  			masterPassword = oldMasterPassword;
  			saveKeystore(KEYSTORE);
  			saveKeystore(TRUSTSTORE);
  
  			String exMessage = "Failed to change maaster password - reverting to the old one";
  			logger.error(exMessage, ex);
  			throw (new CMException(exMessage));
  		}
  	}
focal_method.class_method_signature: CredentialManagerImpl.changeMasterPassword(String newMasterPassword)
focal_method.full_signature: @Override public void changeMasterPassword(String newMasterPassword)
focal_method.identifier: changeMasterPassword
focal_method.invocations: initialize getInstance load aliases hasMoreElements nextElement startsWith getKey toCharArray setKeyEntry toCharArray startsWith getKey toCharArray getCertificateChain setKeyEntry toCharArray setEntry getEntry toCharArray toCharArray store toCharArray store toCharArray saveKeystore saveKeystore error
focal_method.modifiers: @Override public
focal_method.parameters: (String newMasterPassword)
focal_method.return: void
focal_method.signature: void changeMasterPassword(String newMasterPassword)