Class KeyStore.Builder

java.lang.Object
java.security.KeyStore.Builder
Enclosing class:
KeyStore

public abstract static classKeyStore.BuilderextendsObject
A description of a to-be-instantiatedKeyStore object.

An instance of this class encapsulates the information needed to instantiate and initialize aKeyStore object. That process is triggered when thegetKeyStore() method is called.

This makes it possible to decouple configuration fromKeyStore object creation and e.g. delay a password prompt until it is needed.

Since:
1.5
See Also:
  • Constructor Details

    • Builder

      protected Builder()
      Construct a newBuilder.
  • Method Details

    • getKeyStore

      public abstract KeyStore getKeyStore() throwsKeyStoreException
      Returns theKeyStore described by this object.
      Returns:
      theKeyStore described by this object
      Throws:
      KeyStoreException - if an error occurred during the operation, for example if theKeyStore could not be instantiated or loaded
    • getProtectionParameter

      public abstract KeyStore.ProtectionParameter getProtectionParameter(String alias) throwsKeyStoreException
      Returns theProtectionParameter that should be used to obtain theEntry with the given alias. ThegetKeyStore method must be invoked before this method may be called.
      Parameters:
      alias - the alias of theKeyStore entry
      Returns:
      theProtectionParameter that should be used to obtain theEntry with the given alias.
      Throws:
      NullPointerException - if alias isnull
      KeyStoreException - if an error occurred during the operation
      IllegalStateException - if thegetKeyStore method has not been invoked prior to calling this method
    • newInstance

      public static KeyStore.Builder newInstance(KeyStore keyStore,KeyStore.ProtectionParameter protectionParameter)
      Returns a newBuilder that encapsulates the givenKeyStore. ThegetKeyStore() method of the returned object will returnkeyStore, thegetProtectionParameter() method will returnprotectionParameters.

      This is useful if an existingKeyStore object needs to be used with builder-based APIs.

      Parameters:
      keyStore - theKeyStore to be encapsulated
      protectionParameter - theProtectionParameter used to protect theKeyStore entries
      Returns:
      a newBuilder object
      Throws:
      NullPointerException - ifkeyStore orprotectionParameter isnull
      IllegalArgumentException - if thekeyStore has not been initialized
    • newInstance

      public static KeyStore.Builder newInstance(String type,Provider provider,File file,KeyStore.ProtectionParameter protection)
      Returns a newBuilder object.

      The first call to thegetKeyStore() method on the returned builder will create aKeyStore of typetype and call itsload() method. TheinputStream argument is constructed fromfile. Ifprotection is aPasswordProtection, the password is obtained by calling thegetPassword method. Otherwise, ifprotection is aCallbackHandlerProtection, the password is obtained by invoking the CallbackHandler.

      Subsequent calls togetKeyStore() return the same object as the initial call. If the initial call failed with aKeyStoreException, subsequent calls also throw aKeyStoreException.

      TheKeyStore is instantiated fromprovider if non-null. Otherwise, all installed providers are searched.

      Calls togetProtectionParameter() will return aPasswordProtection object encapsulating the password that was used to invoke theload method.

      Parameters:
      type - the type ofKeyStore to be constructed
      provider - the provider from which theKeyStore is to be instantiated (ornull)
      file - the File that contains theKeyStore data
      protection - theProtectionParameter securing theKeyStore data
      Returns:
      a newBuilder object
      Throws:
      NullPointerException - if type, file or protection isnull
      IllegalArgumentException - if protection is not an instance of either PasswordProtection or CallbackHandlerProtection; or if file does not exist or does not refer to a normal file
    • newInstance

      public static KeyStore.Builder newInstance(File file,KeyStore.ProtectionParameter protection)
      Returns a newBuilder object.

      The first call to thegetKeyStore() method on the returned builder will create aKeyStore usingfile to detect the keystore type and then call itsload() method. It uses the same algorithm to determine the keystore type as described inKeyStore.getInstance(File, LoadStoreParameter). TheinputStream argument is constructed fromfile. Ifprotection is aPasswordProtection, the password is obtained by calling thegetPassword method. Otherwise, ifprotection is aCallbackHandlerProtection, the password is obtained by invoking the CallbackHandler.

      Subsequent calls togetKeyStore() return the same object as the initial call. If the initial call failed with aKeyStoreException, subsequent calls also throw aKeyStoreException.

      Calls togetProtectionParameter() will return aPasswordProtection object encapsulating the password that was used to invoke theload method.

      Parameters:
      file - the File that contains theKeyStore data
      protection - theProtectionParameter securing theKeyStore data
      Returns:
      a newBuilder object
      Throws:
      NullPointerException - if file or protection isnull
      IllegalArgumentException - if protection is not an instance of either PasswordProtection or CallbackHandlerProtection; or if file does not exist or does not refer to a normal file
      Since:
      9
    • newInstance

      public static KeyStore.Builder newInstance(String type,Provider provider,KeyStore.ProtectionParameter protection)
      Returns a newBuilder object.

      Each call to thegetKeyStore() method on the returned builder will return a newKeyStore object of typetype. Itsload() method is invoked using aLoadStoreParameter that encapsulatesprotection.

      TheKeyStore is instantiated fromprovider if non-null. Otherwise, all installed providers are searched.

      Calls togetProtectionParameter() will returnprotection.

      Parameters:
      type - the type ofKeyStore to be constructed
      provider - the provider from which theKeyStore is to be instantiated (ornull)
      protection - theProtectionParameter securing theKeystore
      Returns:
      a newBuilder object
      Throws:
      NullPointerException - if type or protection isnull