KeyStore 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다.
[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.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 |
이 |
DefaultType |
보안 속성에 지정된 |
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) |
지정된 의 키 저장소 |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
GetCertificate(String) |
지정된 별칭과 연결된 인증서를 반환합니다. |
GetCertificateAlias(Certificate) |
인증서가 지정된 인증서와 일치하는 첫 번째 키 저장소 항목의 (별칭) 이름을 반환합니다. |
GetCertificateChain(String) |
지정된 별칭과 연결된 인증서 체인을 반환합니다. |
GetCreationDate(String) |
지정된 별칭으로 식별되는 항목의 생성 날짜를 반환합니다. |
GetEntry(String, KeyStore+IProtectionParameter) |
지정된 보호 매개 변수를 사용하여 지정된 별칭에 대한 키 저장소 |
GetHashCode() |
개체의 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
GetInstance(File, Char[]) |
적절한 키 저장소 형식의 로드된 키 저장소 개체를 반환합니다. |
GetInstance(File, KeyStore+ILoadStoreParameter) |
이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다. |
GetInstance(String) |
지정된 형식의 키 저장소 개체를 반환합니다. |
GetInstance(String, Provider) |
지정된 형식의 키 저장소 개체를 반환합니다. |
GetInstance(String, String) |
지정된 형식의 키 저장소 개체를 반환합니다. |
GetKey(String, Char[]) |
지정된 암호를 사용하여 지정된 별칭과 연결된 키를 반환합니다. |
IsCertificateEntry(String) |
지정된 별칭으로 식별된 항목이 에 대한 호출 |
IsKeyEntry(String) |
지정된 별칭으로 식별된 항목이 에 대한 호출 |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
Load(KeyStore+ILoadStoreParameter) |
지정된 입력 스트림에서 이 KeyStore를 로드합니다. |
Load(Stream, Char[]) |
지정된 입력 스트림에서 이 KeyStore를 로드합니다. |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
SetCertificateEntry(String, Certificate) |
지정된 신뢰할 수 있는 인증서를 지정된 별칭에 할당합니다. |
SetEntry(String, KeyStore+IEntry, KeyStore+IProtectionParameter) |
지정된 별칭 아래에 키 저장소 |
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) |
이 클래스는 암호화 키 및 인증서에 대한 스토리지 기능을 나타냅니다. |