DevicePolicyManager.InstallKeyPair 方法

定义

重载

InstallKeyPair(ComponentName, IPrivateKey, Certificate[], String, Boolean)

可以通过以下方式调用此 API 来安装证书链和叶证书的相应私钥:ul>li Device owner/li><li>Profile owner<</li<>>li Delegated certificate installer</li li>Credential management app</><li><li>An app that holds the android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES permission</li></ul>><<在获得直接用户批准的情况下,配置文件中的所有应用都可以访问证书链并使用私钥。

InstallKeyPair(ComponentName, IPrivateKey, Certificate[], String, InstallKeyFlags)

可以通过以下方式调用此 API 来安装证书链和叶证书的相应私钥:ul>li Device owner/li><li>Profile owner<</li<>>li Delegated certificate installer</li li>Credential management app</><li><li>An app that holds the android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES permission</li></ul>><<配置文件中的所有应用都可以访问证书链并使用私钥,前提是用户获得直接批准(如果允许用户选择私钥)。

InstallKeyPair(ComponentName, IPrivateKey, Certificate, String)

可以通过以下 API 调用以安装证书和相应的私钥:ul>li Device owner/li li>Profile owner<</><>li><li Delegated certificate installer</li li Credential management app/<>>li<>li>An app< that holds the android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES permission</li></ul> All apps within the profile will can to access the certificate and use the private key,><< 给定直接用户批准。

InstallKeyPair(ComponentName, IPrivateKey, Certificate[], String, Boolean)

可以通过以下方式调用此 API 来安装证书链和叶证书的相应私钥:ul>li Device owner/li><li>Profile owner<</li<>>li Delegated certificate installer</li li>Credential management app</><li><li>An app that holds the android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES permission</li></ul>><<在获得直接用户批准的情况下,配置文件中的所有应用都可以访问证书链并使用私钥。

[Android.Runtime.Register("installKeyPair", "(Landroid/content/ComponentName;Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;Ljava/lang/String;Z)Z", "GetInstallKeyPair_Landroid_content_ComponentName_Ljava_security_PrivateKey_arrayLjava_security_cert_Certificate_Ljava_lang_String_ZHandler", ApiSince=24)]
[Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")]
public virtual bool InstallKeyPair (Android.Content.ComponentName? admin, Java.Security.IPrivateKey privKey, Java.Security.Cert.Certificate[] certs, string alias, bool requestAccess);
[<Android.Runtime.Register("installKeyPair", "(Landroid/content/ComponentName;Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;Ljava/lang/String;Z)Z", "GetInstallKeyPair_Landroid_content_ComponentName_Ljava_security_PrivateKey_arrayLjava_security_cert_Certificate_Ljava_lang_String_ZHandler", ApiSince=24)>]
[<Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")>]
abstract member InstallKeyPair : Android.Content.ComponentName * Java.Security.IPrivateKey * Java.Security.Cert.Certificate[] * string * bool -> bool
override this.InstallKeyPair : Android.Content.ComponentName * Java.Security.IPrivateKey * Java.Security.Cert.Certificate[] * string * bool -> bool

参数

admin
ComponentName

此请求与哪个 DeviceAdminReceiver 请求相关联,或者 null 调用方不是设备管理员。

privKey
IPrivateKey

要安装的私钥。

certs
Certificate[]

要安装的证书链。 该链应以叶证书开头,并按顺序包含信任链。 这将由 android.security.KeyChain#getCertificateChain.

alias
String

要在其中安装证书的私钥别名。 如果具有该别名的证书已存在,则会覆盖该证书。

requestAccess
Boolean

true 以请求立即向调用应用授予对凭据的访问权限。 否则,用户批准将限制对凭据的访问。

返回

true 如果安装了密钥,则为 false /&;否则。

属性

注解

可以通过以下方式调用此 API 来安装证书链和叶证书的相应私钥:ul>li Device owner/li><li>Profile owner<</li<>>li Delegated certificate installer</li li>Credential management app</><li><li>An app that holds the android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES permission</li></ul>><<在获得直接用户批准的情况下,配置文件中的所有应用都可以访问证书链并使用私钥。

从 Android android.os.Build.VERSION_CODES#S中,凭据管理应用可以调用此 API。 但是,此 API 默认将密钥对设置为用户可选择,当凭据管理应用调用时不允许这样做。 #installKeyPair(ComponentName, PrivateKey, Certificate[], String, int)应改为使用未设置为标志来调用#INSTALLKEY_SET_USER_SELECTABLE。 请注意,在非托管设备上只能有凭据管理应用。

此 API 的调用方可以立即授予自己对证书和私钥的访问权限,而无需用户批准。 除非严格必要,否则最好不要请求此请求,因为它会打开其他安全漏洞。

注意:如果提供的 alias 是现有别名,则会撤销所有以前授予应用访问与此别名关联的密钥和证书的权限。

适用于 . 的 android.app.admin.DevicePolicyManager.installKeyPair(android.content.ComponentName, java.security.PrivateKey, java.security.cert.Certificate[], java.lang.String, boolean)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于

InstallKeyPair(ComponentName, IPrivateKey, Certificate[], String, InstallKeyFlags)

可以通过以下方式调用此 API 来安装证书链和叶证书的相应私钥:ul>li Device owner/li><li>Profile owner<</li<>>li Delegated certificate installer</li li>Credential management app</><li><li>An app that holds the android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES permission</li></ul>><<配置文件中的所有应用都可以访问证书链并使用私钥,前提是用户获得直接批准(如果允许用户选择私钥)。

[Android.Runtime.Register("installKeyPair", "(Landroid/content/ComponentName;Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;Ljava/lang/String;I)Z", "GetInstallKeyPair_Landroid_content_ComponentName_Ljava_security_PrivateKey_arrayLjava_security_cert_Certificate_Ljava_lang_String_IHandler", ApiSince=28)]
[Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")]
public virtual bool InstallKeyPair (Android.Content.ComponentName? admin, Java.Security.IPrivateKey privKey, Java.Security.Cert.Certificate[] certs, string alias, Android.App.Admin.InstallKeyFlags flags);
[<Android.Runtime.Register("installKeyPair", "(Landroid/content/ComponentName;Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;Ljava/lang/String;I)Z", "GetInstallKeyPair_Landroid_content_ComponentName_Ljava_security_PrivateKey_arrayLjava_security_cert_Certificate_Ljava_lang_String_IHandler", ApiSince=28)>]
[<Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")>]
abstract member InstallKeyPair : Android.Content.ComponentName * Java.Security.IPrivateKey * Java.Security.Cert.Certificate[] * string * Android.App.Admin.InstallKeyFlags -> bool
override this.InstallKeyPair : Android.Content.ComponentName * Java.Security.IPrivateKey * Java.Security.Cert.Certificate[] * string * Android.App.Admin.InstallKeyFlags -> bool

参数

admin
ComponentName

此请求与哪个 DeviceAdminReceiver 请求相关联,或者 null 调用方不是设备管理员。

privKey
IPrivateKey

要安装的私钥。

certs
Certificate[]

要安装的证书链。 该链应以叶证书开头,并按顺序包含信任链。 这将由 android.security.KeyChain#getCertificateChain.

alias
String

要在其中安装证书的私钥别名。 如果具有该别名的证书已存在,则会覆盖该证书。

flags
InstallKeyFlags

用于请求向调用应用授予对凭据的访问权限并将密钥设置为用户可选择的标志。 请参见 #INSTALLKEY_SET_USER_SELECTABLE#INSTALLKEY_REQUEST_CREDENTIALS_ACCESS

返回

true 如果安装了密钥,则为 false /&;否则。

属性

注解

可以通过以下方式调用此 API 来安装证书链和叶证书的相应私钥:ul>li Device owner/li><li>Profile owner<</li<>>li Delegated certificate installer</li li>Credential management app</><li><li>An app that holds the android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES permission</li></ul>><<配置文件中的所有应用都可以访问证书链并使用私钥,前提是用户获得直接批准(如果允许用户选择私钥)。

从 Android android.os.Build.VERSION_CODES#S中,凭据管理应用可以调用此 API。 如果凭据管理应用调用:ul>li componentName 必须为 nullr</li><>。别名必须存在于凭据管理应用的 android.security.AppUriAuthenticationPolicy</li li<>>中。密钥对不能是用户可选择<的/li></ul> 注意,只有非托管设备上的凭据管理应用。><<

此 API 的调用方可以立即授予自己对证书和私钥的访问权限,而无需用户批准。 除非严格必要,否则最好不要请求此请求,因为它会打开其他安全漏洞。

包含在 #INSTALLKEY_SET_USER_SELECTABLE 参数中 flags ,以允许用户从对话框中选择密钥。

注意:如果提供的 alias 是现有别名,则会撤销所有以前授予应用访问与此别名关联的密钥和证书的权限。

适用于 . 的 android.app.admin.DevicePolicyManager.installKeyPair(android.content.ComponentName, java.security.PrivateKey, java.security.cert.Certificate[], java.lang.String, int)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于

InstallKeyPair(ComponentName, IPrivateKey, Certificate, String)

可以通过以下 API 调用以安装证书和相应的私钥:ul>li Device owner/li li>Profile owner<</><>li><li Delegated certificate installer</li li Credential management app/<>>li<>li>An app< that holds the android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES permission</li></ul> All apps within the profile will can to access the certificate and use the private key,><< 给定直接用户批准。

[Android.Runtime.Register("installKeyPair", "(Landroid/content/ComponentName;Ljava/security/PrivateKey;Ljava/security/cert/Certificate;Ljava/lang/String;)Z", "GetInstallKeyPair_Landroid_content_ComponentName_Ljava_security_PrivateKey_Ljava_security_cert_Certificate_Ljava_lang_String_Handler")]
[Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")]
public virtual bool InstallKeyPair (Android.Content.ComponentName? admin, Java.Security.IPrivateKey privKey, Java.Security.Cert.Certificate cert, string alias);
[<Android.Runtime.Register("installKeyPair", "(Landroid/content/ComponentName;Ljava/security/PrivateKey;Ljava/security/cert/Certificate;Ljava/lang/String;)Z", "GetInstallKeyPair_Landroid_content_ComponentName_Ljava_security_PrivateKey_Ljava_security_cert_Certificate_Ljava_lang_String_Handler")>]
[<Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")>]
abstract member InstallKeyPair : Android.Content.ComponentName * Java.Security.IPrivateKey * Java.Security.Cert.Certificate * string -> bool
override this.InstallKeyPair : Android.Content.ComponentName * Java.Security.IPrivateKey * Java.Security.Cert.Certificate * string -> bool

参数

admin
ComponentName

此请求与哪个 DeviceAdminReceiver 请求相关联,或者 null 调用方不是设备管理员。

privKey
IPrivateKey

要安装的私钥。

cert
Certificate

要安装的证书。

alias
String

要在其中安装证书的私钥别名。 如果具有该别名的证书已存在,则会覆盖该证书。

返回

true 如果安装了密钥,则为 false /&;否则。

属性

注解

可以通过以下 API 调用以安装证书和相应的私钥:ul>li Device owner/li li>Profile owner<</><>li><li Delegated certificate installer</li li Credential management app/<>>li<>li>An app< that holds the android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES permission</li></ul> All apps within the profile will can to access the certificate and use the private key,><< 给定直接用户批准。

从 Android android.os.Build.VERSION_CODES#S中,凭据管理应用可以调用此 API。 但是,此 API 默认将密钥对设置为用户可选择,当凭据管理应用调用时不允许这样做。 #installKeyPair(ComponentName, PrivateKey, Certificate[], String, int)应改为使用未设置为标志来调用#INSTALLKEY_SET_USER_SELECTABLE

未经直接用户批准,将不会向此 API 的调用方授予对已安装凭据的访问权限。 这是为了安全 - 如果证书安装程序遭到入侵,它已安装的证书将受到保护。

如果安装程序必须有权访问凭据,请改为调用 #installKeyPair(ComponentName, PrivateKey, Certificate[], String, boolean)

注意:如果提供的 alias 是现有别名,则会撤销所有以前授予应用访问与此别名关联的密钥和证书的权限。

适用于 . 的 android.app.admin.DevicePolicyManager.installKeyPair(android.content.ComponentName, java.security.PrivateKey, java.security.cert.Certificate, java.lang.String)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于