DevicePolicyManager.InstallKeyPair 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
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 |
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 |
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 |
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
如果安装了密钥,则为
- 属性
注解
可以通过以下方式调用此 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 开放源代码项目创建和共享的工作进行的修改,并根据 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
如果安装了密钥,则为
- 属性
注解
可以通过以下方式调用此 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 必须为 null
r</li><>。别名必须存在于凭据管理应用的 android.security.AppUriAuthenticationPolicy
</li li<>>中。密钥对不能是用户可选择<的/li></ul> 注意,只有非托管设备上的凭据管理应用。><<
此 API 的调用方可以立即授予自己对证书和私钥的访问权限,而无需用户批准。 除非严格必要,否则最好不要请求此请求,因为它会打开其他安全漏洞。
包含在 #INSTALLKEY_SET_USER_SELECTABLE
参数中 flags
,以允许用户从对话框中选择密钥。
注意:如果提供的 alias
是现有别名,则会撤销所有以前授予应用访问与此别名关联的密钥和证书的权限。
本页的某些部分是根据 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
如果安装了密钥,则为
- 属性
注解
可以通过以下 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 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。