DevicePolicyManager.GenerateKeyPair メソッド

定義

この API は、新しい秘密キーと公開キーのペアを生成するために呼び出すことができます。ul>li Device owner</li li<>>Profile owner</li li<>>Delegated certificate installer</li li>><Credential management app</li li>><アクセス許可<を保持android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATESするアプリ/li></ul>><<デバイスがセキュリティで保護されたハードウェアを介したキー生成をサポートしている場合、この方法は、セキュリティで保護されたハードウェアから離れることのないキーを KeyChain に作成する場合に役立ちます。

[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_INDIVIDUAL_ATTESTATIONID_TYPE_MEIDに含める必要がある識別子のビットマスク。また、ID_TYPE_SERIALID_TYPE_IMEI構成証明レコードに個別の構成証明証明書を使用して署名する必要がある場合は 。 <構成証明レコードにデバイス ID が必要なく、バッチ構成証明証明書を使用する必要がある場合は、p>0 を渡す必要があります。 <p> フラグが指定されている場合は、構成証明チャレンジを に keySpec含む必要があります。

戻り値

キーの生成が成功した場合は null AttestedKeyPair 以外、それ以外の場合は null。

属性

注釈

この API は、新しい秘密キーと公開キーのペアを生成するために呼び出すことができます。ul>li Device owner</li li<>>Profile owner</li li<>>Delegated certificate installer</li li>><Credential management app</li li>><アクセス許可<を保持android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATESするアプリ/li></ul>><<デバイスがセキュリティで保護されたハードウェアを介したキー生成をサポートしている場合、この方法は、セキュリティで保護されたハードウェアから離れることのないキーを KeyChain に作成する場合に役立ちます。 キーへのアクセスは、 と同じ方法で #installKeyPair制御されます。

Android android.os.Build.VERSION_CODES#Sから、資格情報管理アプリはこの API を呼び出すことができます。 資格情報管理アプリによって呼び出される場合、componentName は である null必要があります。 アンマネージド デバイスには資格情報管理アプリしか存在できないことに注意してください。

このメソッドの完了には数秒かかる場合があるため、ワーカー スレッドからのみ呼び出す必要があります。 このメソッドは、nullメイン スレッドから呼び出されたときに を返します。

このメソッドはスレッド セーフではありません。同時に複数のスレッドから呼び出すと、未定義の動作が発生します。 呼び出しが実行中に呼び出し元のスレッドが中断された場合、最終的に が終了し、 が返 nullされます。

注: 指定 alias された が既存の別名の場合、キーにアクセスするためにアプリが付与されたすべての以前の許可が取り消され、この別名に関連付けられている証明書が取り消されます。

構成証明: 構成証明を有効にするには、 を使用して KeyGenParameterSpec.Builder#setAttestationChallengeで構成証明チャレンジkeySpecを設定します。 パラメーターにフラグを idAttestationFlags 指定することで、デバイスの一意の ID を構成証明レコードに含めるよう要求できます。

特定の識別子を構成証明レコードに含め、個々の構成証明証明書を使用して構成証明レコードに署名できます。 デバイスでこれらの機能がサポートされているかどうかを確認するには、 と #isUniqueDeviceAttestationSupported()#isDeviceIdAttestationSupported()参照してください。

デバイス所有者、プロファイル所有者、委任された証明書インストーラー、資格情報管理アプリを使用 #ID_TYPE_BASE_INFO して、製造元、モデル、ブランド、デバイス、製品などの一般的なデバイス情報を構成証明レコードに含めることを要求できます。 デバイス所有者、organization所有デバイスまたは関連ユーザーのプロファイル所有者、および委任された証明書インストーラーのみが を使用#ID_TYPE_SERIAL#ID_TYPE_IMEI#ID_TYPE_MEIDでき、デバイスでサポートされている場合は、一意のデバイス識別子 (シリアル番号、IMEI、MEID に対応する) を要求できます (参照)。#isDeviceIdAttestationSupported() さらに、デバイス所有者、organization所有デバイスのプロファイル所有者、および委任された証明書インストーラーは、 フラグを指定#ID_TYPE_INDIVIDUAL_ATTESTATIONすることで、個々の構成証明証明書を使用して構成証明レコードに署名するように要求することもできます (デバイスでサポートされている場合は、「」を参照)。#isUniqueDeviceAttestationSupported()

のいずれかの #ID_TYPE_SERIAL#ID_TYPE_IMEI#ID_TYPE_MEID が設定されている場合は、 も暗黙的に設定されていると見なされます#ID_TYPE_BASE_INFO

を使用する #ID_TYPE_INDIVIDUAL_ATTESTATION 構成証明は、StrongBox でキーの生成が行われた場合にのみ要求できます。

の Java ドキュメント android.app.admin.DevicePolicyManager.generateKeyPair(android.content.ComponentName, java.lang.String, android.security.keystore.KeyGenParameterSpec, int)

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象