模块  java.base
软件包  java.security

Class KeyStore.Builder

  • Enclosing class:
    KeyStore

    public abstract static class KeyStore.Builder
    extends Object
    要实例化的KeyStore对象的描述。

    此类的实例封装实例化和初始化KeyStore对象所需的信息。 调用getKeyStore()方法时会触发该进程。

    这使得可以从KeyStore对象创建中解除配置,例如延迟密码提示,直到需要它为止。

    从以下版本开始:
    1.5
    另请参见:
    KeyStoreKeyStoreBuilderParameters
    • 构造方法详细信息

      • Builder

        protected Builder()
        构建一个新的Builder。
    • 方法详细信息

      • getKeyStore

        public abstract KeyStore getKeyStore()
                                      throws KeyStoreException
        返回此对象描述的KeyStore。
        结果
        该对象描述的 KeyStore
        异常
        KeyStoreException - 如果在操作期间发生错误,例如,如果无法实例化或加载KeyStore
      • newInstance

        public static KeyStore.Builder newInstance​(KeyStore keyStore,
                                                   KeyStore.ProtectionParameter protectionParameter)
        返回封装给定KeyStore的新Builder。 getKeyStore()返回对象的方法将返回keyStore ,该getProtectionParameter()方法将返回protectionParameters

        如果现有的KeyStore对象需要与基于Builder的API一起使用,这将非常有用。

        参数
        keyStore - 要封装的KeyStore
        protectionParameter - 用于保护KeyStore条目的ProtectionParameter
        结果
        一个新的Builder对象
        异常
        NullPointerException - 如果keyStore或protectionParameters为null
        IllegalArgumentException - 如果keyStore尚未初始化
      • newInstance

        public static KeyStore.Builder newInstance​(String type,
                                                   Provider provider,
                                                   File file,
                                                   KeyStore.ProtectionParameter protection)
        返回一个新的Builder对象。

        在返回的构建器上第一次调用getKeyStore()方法将创建类型为type的KeyStore,并调用其load()方法。 inputStream参数由file 如果protectionPasswordProtection ,则通过调用getPassword方法获取密码。 否则,如果protectionCallbackHandlerProtection ,则通过调用CallbackHandler获取密码。

        getKeyStore()后续调用将返回与初始调用相同的对象。 如果初始调用因KeyStoreException而失败,则后续调用也会抛出KeyStoreException。

        如果非null,则从provider实例化KeyStore。 否则,搜索所有已安装的提供程序。

        调用getProtectionParameter()将返回一个PasswordProtection对象,该对象封装用于调用load方法的密码。

        请注意getKeyStore()方法在调用此方法的代码的AccessControlContext内执行。

        参数
        type - 要构造的KeyStore的类型
        provider - 要从中实例化KeyStore的提供程序(或null)
        file - 包含KeyStore数据的文件
        protection - 保护KeyStore数据的ProtectionParameter
        结果
        一个新的Builder对象
        异常
        NullPointerException - 如果type,file或protection为null
        IllegalArgumentException - 如果保护不是PasswordProtection或CallbackHandlerProtection的实例; 或者如果文件不存在或者没有引用普通文件
      • newInstance

        public static KeyStore.Builder newInstance​(File file,
                                                   KeyStore.ProtectionParameter protection)
        返回一个新的Builder对象。

        在返回的构建器上第一次调用getKeyStore()方法将使用file创建KeyStore以检测密钥库类型,然后调用其load()方法。 它使用相同的算法来确定密钥库类型,如KeyStore.getInstance(File, LoadStoreParameter)中所述 inputStream参数由file 如果protectionPasswordProtection ,则通过调用getPassword方法获取密码。 否则,如果protectionCallbackHandlerProtection ,则通过调用CallbackHandler获取密码。

        getKeyStore()后续调用将返回与初始调用相同的对象。 如果初始调用因KeyStoreException而失败,则后续调用也会抛出KeyStoreException。

        调用getProtectionParameter()将返回一个PasswordProtection对象,该对象封装用于调用load方法的密码。

        请注意getKeyStore()方法在调用此方法的代码的AccessControlContext内执行。

        参数
        file - 包含KeyStore数据的文件
        protection - 保护KeyStore数据的ProtectionParameter
        结果
        一个新的Builder对象
        异常
        NullPointerException - 如果文件或保护为空
        IllegalArgumentException - 如果保护不是PasswordProtection或CallbackHandlerProtection的实例; 或者如果文件不存在或者没有引用普通文件
        从以下版本开始:
        9
      • newInstance

        public static KeyStore.Builder newInstance​(String type,
                                                   Provider provider,
                                                   KeyStore.ProtectionParameter protection)
        返回一个新的Builder对象。

        在返回的构建器上每次调用getKeyStore()方法都将返回一个类型为type的新KeyStore对象。 使用封装protectionLoadStoreParameter调用其load()方法。

        如果非null,则从provider实例化KeyStore。 否则,搜索所有已安装的提供程序。

        致电getProtectionParameter()将返回protection

        请注意getKeyStore()方法在调用此方法的代码的AccessControlContext内执行。

        参数
        type - 要构造的KeyStore的类型
        provider - 要从中实例化KeyStore的提供程序(或null)
        protection - 保护密钥库的ProtectionParameter
        结果
        一个新的Builder对象
        异常
        NullPointerException - 如果type或protection为null