Share via


KeyStore 클래스

정의

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

[Android.Runtime.Register("java/security/KeyStore", DoNotGenerateAcw=true)]
public class KeyStore : Java.Lang.Object
[<Android.Runtime.Register("java/security/KeyStore", DoNotGenerateAcw=true)>]
type KeyStore = class
    inherit Object
상속
KeyStore
특성

설명

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

KeyStore 다양한 유형의 항목을 관리합니다. 각 항목 유형은 인터페이스를 KeyStore.Entry 구현합니다. 세 가지 기본 KeyStore.Entry 구현이 제공됩니다.

<ul><li><b>KeyStore.PrivateKeyEntry</b>

이 유형의 항목은 암호화 를 PrivateKey보유하며, 무단 액세스를 방지하기 위해 선택적으로 보호된 형식으로 저장됩니다. 해당 공개 키에 대한 인증서 체인도 함께 제공됩니다.

프라이빗 키 및 인증서 체인은 지정된 엔터티에서 자체 인증에 사용됩니다. 이 인증을 위한 애플리케이션에는 소프트웨어 릴리스 및/또는 라이선스의 일부로 JAR 파일에 서명하는 소프트웨어 배포 조직이 포함됩니다.

<li><b>KeyStore.SecretKeyEntry</b>

이 유형의 항목은 암호화 를 SecretKey보유하며, 무단 액세스를 방지하기 위해 선택적으로 보호된 형식으로 저장됩니다.

<li><b>KeyStore.TrustedCertificateEntry</b>

이 유형의 항목에는 다른 당사자에 속한 단일 공개 키가 Certificate 포함됩니다. 키 저장소 소유자는 인증서의 공개 키가 실제로 인증서주체 (소유자)가 식별한 ID에 속한다고 신뢰하기 때문에 신뢰할 수 있는 인증서라고 합니다.

이 유형의 항목은 다른 당사자를 인증하는 데 사용할 수 있습니다. </ul>

키 저장소의 각 항목은 "별칭" 문자열로 식별됩니다. 프라이빗 키 및 연결된 인증서 체인의 경우 이러한 문자열은 엔터티가 자체 인증할 수 있는 다양한 방법을 구분합니다. 예를 들어 엔터티는 다른 인증 기관을 사용하거나 다른 공개 키 알고리즘을 사용하여 자신을 인증할 수 있습니다.

별칭이 대/소문자를 구분하는지 여부는 구현에 따라 달라집니다. 문제를 방지하려면 경우에 따라 다른 KeyStore에서 별칭을 사용하지 않는 것이 좋습니다.

키 저장소가 영구적인지 여부와 키 저장소가 영구인 경우 키 저장소에서 사용하는 메커니즘은 여기에 지정되지 않습니다. 이렇게 하면 중요한 키(예: 프라이빗 또는 비밀) 키를 보호하기 위한 다양한 기술을 사용할 수 있습니다. 스마트 카드 또는 기타 통합 암호화 엔진(SafeKeyper)은 한 가지 옵션이며 파일과 같은 간단한 메커니즘도 사용할 수 있습니다(다양한 형식).

KeyStore 개체를 요청하는 일반적인 방법은 기존 키 저장소 파일을 지정하고, 기본 형식을 사용하고, 특정 키 저장소 형식을 제공하는 것입니다.

<ul><li>기존 키 저장소 파일을 지정하려면 다음을 수행합니다.

// get keystore password
               char[] password = getPassword();

               // probe the keystore file and load the keystore entries
               KeyStore ks = KeyStore.getInstance(new File("keyStoreName"), password);

시스템은 지정된 파일을 검색하여 키 저장소 형식을 확인하고 항목이 이미 로드된 키 저장소 구현을 반환합니다. 이 방법을 사용하는 경우 키 저장소의 #load(java.io.InputStream, char[]) load 메서드를 호출할 필요가 없습니다.

<li>기본 형식을 사용하려면 다음을 수행합니다.

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());

시스템은 기본 형식에 대한 키 저장소 구현을 반환합니다.

<li>특정 키 저장소 유형을 제공하려면 다음을 수행합니다.

KeyStore ks = KeyStore.getInstance("JKS");

시스템은 환경에서 사용할 수 있는 지정된 키 저장소 유형의 가장 선호되는 구현을 반환합니다. </ul>

키 저장소에 액세스하려면 먼저 이어야 #load(java.io.InputStream, char[]) loaded합니다.

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());

               // get user password and file input stream
               char[] password = getPassword();

               try (FileInputStream fis = new FileInputStream("keyStoreName")) {
                   ks.load(fis, password);
               }

위의 load 메서드를 사용하여 빈 키 저장소를 만들려면 를 인수로 전달 null 합니다 InputStream .

키 저장소가 로드되면 키 저장소에서 기존 항목을 읽거나 키 저장소에 새 항목을 쓸 수 있습니다.

KeyStore.ProtectionParameter protParam =
                   new KeyStore.PasswordProtection(password);

               // get my private key
               KeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry)
                   ks.getEntry("privateKeyAlias", protParam);
               PrivateKey myPrivateKey = pkEntry.getPrivateKey();

               // save my secret key
               javax.crypto.SecretKey mySecretKey;
               KeyStore.SecretKeyEntry skEntry =
                   new KeyStore.SecretKeyEntry(mySecretKey);
               ks.setEntry("secretKeyAlias", skEntry, protParam);

               // store away the keystore
               try (FileOutputStream fos = new FileOutputStream("newKeyStoreName")) {
                   ks.store(fos, password);
               }

키 저장소를 로드하고, 프라이빗 키 항목을 보호하고, 비밀 키 항목을 보호하고, 키 저장소를 저장하는 데 동일한 암호를 사용할 수 있지만(위의 샘플 코드에 표시된 대로) 다른 암호 또는 기타 보호 매개 변수도 사용할 수 있습니다.

Android는 다음 KeyStore 형식을 제공합니다. table<>thead<>tr<>th>Algorithm</th th>><Supported API Levels</th<>/tr></thead><tbody><tr tr<>td>AndroidCAStore</td td>><14+</td<>/tr tr>><<td>AndroidKeyStore</td td>><18+</td/tr>< tr tr<>class="deprecated" <><td>BCPKCS12</td td><>1-8</td></tr tr tr>><<td>BKS</td td><>1+</td></tr tr><tr<>td>BouncyCastle</td td td><>1+</td></tr tr><<>td>PKCS12</td td><>1+</td<>/tr tr><class="deprecated"><td>PKCS12-DEF</td><td>1-8</td<>/tr<>/tbody></table>

이러한 형식은 Java 암호화 아키텍처 표준 알고리즘 이름 설명서의 KeyStore 섹션 에 설명되어 있습니다.

1.2에 추가되었습니다.

에 대한 Java 설명서입니다 java.security.KeyStore.

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

생성자

KeyStore(IntPtr, JniHandleOwnership)

JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

KeyStore(KeyStoreSpi, Provider, String)

지정된 형식의 KeyStore 개체를 만들고 지정된 SPI 개체(공급자 구현)를 캡슐화합니다.

속성

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
DefaultType

보안 속성에 지정된 keystore.type 기본 키 저장소 형식을 반환하거나, 이러한 속성이 없으면 문자열 "jks"("Java 키 저장소"의 약어)를 반환합니다.

Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

(다음에서 상속됨 Object)
JniPeerMembers

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

PeerReference

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

(다음에서 상속됨 Object)
Provider

이 키 저장소의 공급자를 반환합니다.

ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

Type

이 키 저장소의 형식을 반환합니다.

메서드

Aliases()

이 키 저장소의 모든 별칭 이름을 나열합니다.

Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
ContainsAlias(String)

지정된 별칭이 이 키 저장소에 있는지 확인합니다.

DeleteEntry(String)

이 키 저장소에서 지정된 별칭으로 식별되는 항목을 삭제합니다.

Dispose()

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

(다음에서 상속됨 Object)
EntryInstanceOf(String, Class)

지정된 의 키 저장소 Entry 가 지정된 alias 의 instance 또는 하위 클래스entryClass인지 확인합니다.

Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
GetCertificate(String)

지정된 별칭과 연결된 인증서를 반환합니다.

GetCertificateAlias(Certificate)

인증서가 지정된 인증서와 일치하는 첫 번째 키 저장소 항목의 (별칭) 이름을 반환합니다.

GetCertificateChain(String)

지정된 별칭과 연결된 인증서 체인을 반환합니다.

GetCreationDate(String)

지정된 별칭으로 식별되는 항목의 생성 날짜를 반환합니다.

GetEntry(String, KeyStore+IProtectionParameter)

지정된 보호 매개 변수를 사용하여 지정된 별칭에 대한 키 저장소 Entry 를 가져옵니다.

GetHashCode()

개체의 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
GetInstance(File, Char[])

적절한 키 저장소 형식의 로드된 키 저장소 개체를 반환합니다.

GetInstance(File, KeyStore+ILoadStoreParameter)

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

GetInstance(String)

지정된 형식의 키 저장소 개체를 반환합니다.

GetInstance(String, Provider)

지정된 형식의 키 저장소 개체를 반환합니다.

GetInstance(String, String)

지정된 형식의 키 저장소 개체를 반환합니다.

GetKey(String, Char[])

지정된 암호를 사용하여 지정된 별칭과 연결된 키를 반환합니다.

IsCertificateEntry(String)

지정된 별칭으로 식별된 항목이 에 대한 호출 setCertificateEntry에 의해 생성되었거나 를 사용하여 에 대한 호출에 setEntry 의해 만들어진 경우 true를 TrustedCertificateEntry반환합니다.

IsKeyEntry(String)

지정된 별칭으로 식별된 항목이 에 대한 호출 setKeyEntry에 의해 생성되었거나 또는 를 사용하여 에 대한 호출로 setEntry 만들어진 경우 true를 PrivateKeyEntrySecretKeyEntry반환합니다.

JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Load(KeyStore+ILoadStoreParameter)

지정된 입력 스트림에서 이 KeyStore를 로드합니다.

Load(Stream, Char[])

지정된 입력 스트림에서 이 KeyStore를 로드합니다.

Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
SetCertificateEntry(String, Certificate)

지정된 신뢰할 수 있는 인증서를 지정된 별칭에 할당합니다.

SetEntry(String, KeyStore+IEntry, KeyStore+IProtectionParameter)

지정된 별칭 아래에 키 저장소 Entry 를 저장합니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
SetKeyEntry(String, Byte[], Certificate[])

지정된 별칭에 지정된 키(이미 보호된 키)를 할당합니다.

SetKeyEntry(String, IKey, Char[], Certificate[])

지정된 별칭에 지정된 키를 할당하여 지정된 암호로 보호합니다.

Size()

이 키 저장소의 항목 수를 검색합니다.

Store(KeyStore+ILoadStoreParameter)

이 키 저장소를 지정된 출력 스트림에 저장하고 지정된 암호로 무결성을 보호합니다.

Store(Stream, Char[])

이 키 저장소를 지정된 출력 스트림에 저장하고 지정된 암호로 무결성을 보호합니다.

ToArray<T>()

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

(다음에서 상속됨 Object)
Wait()

현재 스레드가 각성될 때까지 대기하도록 합니다. 일반적으로 <알림을<> 받>거나<<> 중단/em>합니다.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IJavaPeerable.Disposed()

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

(다음에서 상속됨 Object)
IJavaPeerable.DisposeUnlessReferenced()

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

(다음에서 상속됨 Object)
IJavaPeerable.Finalized()

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

GetJniTypeName(IJavaPeerable)

이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.

적용 대상