언어

DevicePolicyManager.GenerateKeyPair 메서드

정의

오버로드

속성 Description
GenerateKeyPair(ComponentName, String, KeyGenParameterSpec, IdAttestationFlags)

이 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 > permission</li>android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES/ul<><> 디바이스가 보안 하드웨어를 통해 키 생성을 지원하는 경우 이 방법은 키 집합에서 보안 하드웨어를 떠나지 않는 키를 만드는 데 유용합니다.

GenerateKeyPair(String, KeyGenParameterSpec, IdAttestationFlags, KeyChainManagerKeyPairScope)

지정된 범위를 사용하여 새 프라이빗/공개 키 쌍을 생성합니다.

GenerateKeyPair(ComponentName, String, KeyGenParameterSpec, IdAttestationFlags)

이 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 > permission</li>android.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_INFOID_TYPE_SERIALID_TYPE_IMEI및) 및 증명 레코드에 포함해야 하는 식별자의 비트 마스크이며ID_TYPE_MEIDID_TYPE_INDIVIDUAL_ATTESTATION, 개별 증명 인증서를 사용하여 증명 레코드에 서명해야 하는 경우 <증명 레코드에 디바이스 식별이 필요하지 않고 일괄 처리 증명 인증서를 사용해야 하는 경우 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<><An app that holds the > permission</li>android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES/ul<><> 디바이스가 보안 하드웨어를 통해 키 생성을 지원하는 경우 이 방법은 키 집합에서 보안 하드웨어를 떠나지 않는 키를 만드는 데 유용합니다. 키에 대한 액세스는 .에서와 같은 방식으로 제어됩니다 #installKeyPair.

Android android.os.Build.VERSION_CODES#S에서 자격 증명 관리 앱은 이 API를 호출할 수 있습니다. 자격 증명 관리 앱에서 호출하는 경우 componentName은 이어야 null합니다. 관리되지 않는 디바이스에는 자격 증명 관리 앱만 있을 수 있습니다.

이 메서드를 완료하는 데 몇 초 정도 걸릴 수 있으므로 작업자 스레드에서만 호출해야 합니다. 이 메서드는 주 스레드에서 호출할 때 반환 null 됩니다.

이 메서드는 스레드로부터 안전하지 않으므로 여러 스레드에서 동시에 호출하면 정의되지 않은 동작이 발생합니다. 호출이 실행 중인 동안 호출 스레드가 중단되면 결국 종료되고 반환 null됩니다.

참고: 제공된 alias 별칭이 기존 별칭인 경우 앱이 키에 액세스하기 위해 부여된 모든 이전 권한 부여 및 이 별칭과 연결된 인증서가 해지됩니다.

증명: 증명을 사용하도록 설정하려면 다음을 통해 keySpec증명 챌린지를 KeyGenParameterSpec.Builder#setAttestationChallenge 설정합니다. 매개 변수에 idAttestationFlags 플래그를 지정하면 디바이스의 고유 ID를 증명 레코드에 포함하도록 요청할 수 있습니다.

특정 식별자를 증명 레코드에 포함할 수 있으며, 개별 증명 인증서를 사용하여 증명 레코드에 서명할 수 있습니다. 디바이스에서 이러한 기능을 지원하는지 확인하려면 다음을 #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 요청할 수 있습니다.

에 대한 android.app.admin.DevicePolicyManager.generateKeyPair(android.content.ComponentName, java.lang.String, android.security.keystore.KeyGenParameterSpec, int)Java 설명서

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

적용 대상

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_USER . 또는 KeyChainManager#KEYPAIR_SCOPE_DEVICE.

반품

null AttestedKeyPair이 아닌 .

특성

적용 대상