語言

DevicePolicyManager.GenerateKeyPair 方法

定義

多載

名稱 Description
GenerateKeyPair(ComponentName, String, KeyGenParameterSpec, IdAttestationFlags)

此 API 可由以下方式呼叫以產生新的私鑰/公鑰對:ul<li 裝置>擁有者</li><li>個人資料擁有者</li><li>委派憑證安裝程式</li><>li 憑證管理應用程式</li><li>持有<權限>的應用程式/liandroid.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES</ul><>若裝置支援透過安全硬體產生金鑰,此方法有助於在鑰匙鏈中建立從未離開安全硬體的金鑰。

GenerateKeyPair(String, KeyGenParameterSpec, IdAttestationFlags, KeyChainManagerKeyPairScope)

產生一對新的私鑰/公鑰,並指定範圍。

GenerateKeyPair(ComponentName, String, KeyGenParameterSpec, IdAttestationFlags)

此 API 可由以下方式呼叫以產生新的私鑰/公鑰對:ul<li 裝置>擁有者</li><li>個人資料擁有者</li><li>委派憑證安裝程式</li><>li 憑證管理應用程式</li><li>持有<權限>的應用程式/liandroid.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES</ul><>若裝置支援透過安全硬體產生金鑰,此方法有助於在鑰匙鏈中建立從未離開安全硬體的金鑰。

[Android.Runtime.Register("generateKeyPair", "(Landroid/content/ComponentName;Ljava/lang/String;Landroid/security/keystore/KeyGenParameterSpec;I)Landroid/security/AttestedKeyPair;", "GetGenerateKeyPair_Landroid_content_ComponentName_Ljava_lang_String_Landroid_security_keystore_KeyGenParameterSpec_IHandler", ApiSince=28)]
[Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")]
public virtual Android.Security.AttestedKeyPair? GenerateKeyPair(Android.Content.ComponentName? admin, string algorithm, Android.Security.Keystore.KeyGenParameterSpec keySpec, Android.App.Admin.IdAttestationFlags idAttestationFlags);
[<Android.Runtime.Register("generateKeyPair", "(Landroid/content/ComponentName;Ljava/lang/String;Landroid/security/keystore/KeyGenParameterSpec;I)Landroid/security/AttestedKeyPair;", "GetGenerateKeyPair_Landroid_content_ComponentName_Ljava_lang_String_Landroid_security_keystore_KeyGenParameterSpec_IHandler", ApiSince=28)>]
[<Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")>]
abstract member GenerateKeyPair : Android.Content.ComponentName * string * Android.Security.Keystore.KeyGenParameterSpec * Android.App.Admin.IdAttestationFlags -> Android.Security.AttestedKeyPair
override this.GenerateKeyPair : Android.Content.ComponentName * string * Android.Security.Keystore.KeyGenParameterSpec * Android.App.Admin.IdAttestationFlags -> Android.Security.AttestedKeyPair

參數

admin
ComponentName

這個請求是與哪個 DeviceAdminReceiver 裝置相關聯,或者 null 如果呼叫者不是裝置管理員。

algorithm
String

密鑰產生演算法,請參見 java.security.KeyPairGenerator

keySpec
KeyGenParameterSpec

要產生的金鑰規格,請參見 java.security.KeyPairGenerator

idAttestationFlags
IdAttestationFlags

一個位元遮罩,記錄應包含在認證記錄中應包含的識別碼(ID_TYPE_BASE_INFO、、ID_TYPE_SERIALID_TYPE_IMEIID_TYPE_MEID),以及ID_TYPE_INDIVIDUAL_ATTESTATION是否應使用個別認證憑證簽署。 <若證明記錄中不需裝置識別,且使用批次證明證書,則應通過 P>0 測試。 <p> 若指定任何旗標,則必須包含證明挑戰。keySpec

傳回

若金鑰產生成功,則為非空 AttestedKeyPair ,否則為空。

屬性

備註

此 API 可由以下方式呼叫以產生新的私鑰/公鑰對:ul<li 裝置>擁有者</li><li>個人資料擁有者</li><li>委派憑證安裝程式</li><>li 憑證管理應用程式</li><li>持有<權限>的應用程式/liandroid.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES</ul><>若裝置支援透過安全硬體產生金鑰,此方法有助於在鑰匙鏈中建立從未離開安全硬體的金鑰。 存取金鑰的方式與 中 #installKeyPair相同。

從 Android android.os.Build.VERSION_CODES#S版本,憑證管理應用程式可以呼叫這個 API。 若憑證管理應用程式呼叫,元件名稱必須為 null。 請注意,憑證管理應用程式只能在未受管理的裝置上安裝。

由於此方法可能需要數秒鐘完成,因此應僅從工作執行緒呼叫。 此方法在從主執行緒呼叫時回傳 null

此方法並非執行緒安全,若同時從多個執行緒呼叫,會導致行為未定義。 如果呼叫執行緒在調用過程中被中斷,最終會終止並返回 null

注意:若提供的 alias 是現有別名,該應用程式先前獲得的存取該別名金鑰及憑證的授權將被撤銷。

驗證:為了啟用認證,請透過 設定一個認證挑戰keySpecKeyGenParameterSpec.Builder#setAttestationChallenge。 透過為參數指定旗標 idAttestationFlags ,可以請求將裝置的唯一身份納入證明記錄中。

可在認證記錄中包含特定識別碼,並可使用個別認證證書來簽署認證記錄。 要了解裝置是否支援這些功能,請參考 #isDeviceIdAttestationSupported()#isUniqueDeviceAttestationSupported()

裝置擁有者、個人資料擁有者、其委派憑證安裝程式及憑證管理應用程式,皆可申請 #ID_TYPE_BASE_INFO 在認證記錄中包含一般裝置資訊,包括製造商、型號、品牌、裝置及產品。 只有裝置擁有者、組織擁有裝置或關聯使用者的設定檔擁有者,以及其委託的憑證安裝者可以使用 #ID_TYPE_SERIAL#ID_TYPE_IMEI 並且 #ID_TYPE_MEID 在裝置支援的情況下,請求認證唯一裝置識別碼(序號、IMEI 和 MEID), #isDeviceIdAttestationSupported()如 。 此外,裝置擁有者、組織擁有裝置的設定檔擁有者及其委派憑證安裝者,也可以透過指定 #ID_TYPE_INDIVIDUAL_ATTESTATION 旗標(若裝置支援,請參見 #isUniqueDeviceAttestationSupported())請求以個別認證憑證簽署該紀錄。

若 、 #ID_TYPE_SERIAL#ID_TYPE_IMEI 中任一#ID_TYPE_MEID為 ,則隱含假設 也#ID_TYPE_BASE_INFO為 。

只有在 StrongBox 中完成金鑰產生時,才能請求使用 #ID_TYPE_INDIVIDUAL_ATTESTATION 認證。

Java 文件 android.app.admin.DevicePolicyManager.generateKeyPair(android.content.ComponentName, java.lang.String, android.security.keystore.KeyGenParameterSpec, int)

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

GenerateKeyPair(String, KeyGenParameterSpec, IdAttestationFlags, KeyChainManagerKeyPairScope)

產生一對新的私鑰/公鑰,並指定範圍。

[Android.Runtime.Register("generateKeyPair", "(Ljava/lang/String;Landroid/security/keystore/KeyGenParameterSpec;II)Landroid/security/AttestedKeyPair;", "GetGenerateKeyPair_Ljava_lang_String_Landroid_security_keystore_KeyGenParameterSpec_IIHandler", ApiSince=37)]
[Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")]
public virtual Android.Security.AttestedKeyPair GenerateKeyPair(string algorithm, Android.Security.Keystore.KeyGenParameterSpec keySpec, Android.App.Admin.IdAttestationFlags idAttestationFlags, Android.Security.KeyChainManagerKeyPairScope scope);
[<Android.Runtime.Register("generateKeyPair", "(Ljava/lang/String;Landroid/security/keystore/KeyGenParameterSpec;II)Landroid/security/AttestedKeyPair;", "GetGenerateKeyPair_Ljava_lang_String_Landroid_security_keystore_KeyGenParameterSpec_IIHandler", ApiSince=37)>]
[<Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")>]
abstract member GenerateKeyPair : string * Android.Security.Keystore.KeyGenParameterSpec * Android.App.Admin.IdAttestationFlags * Android.Security.KeyChainManagerKeyPairScope -> Android.Security.AttestedKeyPair
override this.GenerateKeyPair : string * Android.Security.Keystore.KeyGenParameterSpec * Android.App.Admin.IdAttestationFlags * Android.Security.KeyChainManagerKeyPairScope -> Android.Security.AttestedKeyPair

參數

algorithm
String

密鑰產生演算法,請參見 java.security.KeyPairGenerator

keySpec
KeyGenParameterSpec

要產生的金鑰規格,請參見 java.security.KeyPairGenerator

idAttestationFlags
IdAttestationFlags

一個應包含在證明記錄中識別碼的位元遮罩。 詳情請參見基礎方法。

scope
KeyChainManagerKeyPairScope

金鑰對的作用範圍: KeyChainManager#KEYPAIR_SCOPE_USERKeyChainManager#KEYPAIR_SCOPE_DEVICE

傳回

非零 AttestedKeyPair

屬性

適用於