@Nadir 말한 것처럼,이 KeyUsage
선택적 ExtendedKeyUsage
인증서 구조에서, 당신은 RFC 5280에서이를 확인할 수있다 다음과
KeyUsage ::= BIT STRING {
digitalSignature (0),
nonRepudiation (1), -- recent editions of X.509 have
-- renamed this bit to contentCommitment
keyEncipherment (2),
dataEncipherment (3),
keyAgreement (4),
keyCertSign (5),
cRLSign (6),
encipherOnly (7),
decipherOnly (8) }
및 ExtendedKeyUsage
하면 SEQUENCE
Object identifiers OIDs의 정의된다
ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
KeyPurposeId ::= OBJECT IDENTIFIER
0,123,414 가능 OID를은 다음과 같습니다
id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 }
id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 }
id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 }
id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 }
id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 }
id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 }
당신이 클래스 java.security.cert.X509Certificate
사용할 수있는 자바를 통해 디지털 서명을 수행하기 위해 발행하는 민간있는이 인증서에 관련된 주요 확인 요청으로 :
import java.security.KeyStore;
import java.security.cert.X509Certificate;
KeyStore ks = ...;
X509Certificate certificate = (X509Certificate) ks.getCertificate(alias);
boolean[] keyUsage = certificate.getKeyUsage();
// keyUsage[0] --> digitalSignature
// keyUsage[1] --> non repudiation
if(keyUsage[0] || keyUsage[1]){
// certificate is issued to perform signature
}
선택적 경우를
X509Certificate certificate =...;
certificate .getExtendedKeyUsage();
희망이 도움이,을 : 당신은 당신이 같은 클래스로 ExtendedKeyUsage
에 액세스 할 수 있습니다, 필요
어떻게 그 값을 검색하나요? 같은 인증서를로드 할 때 : Certificate certificate = ks.getCertificate (aliass); 나는 얻지 않는다 .getKeyUsage(); X509 인증서로 처리해야합니까? @nadir – caniaskyouaquestion
내가 X509로 캐스팅하고 getKeyUsage()를 사용합니다. toString(); Z @ 77ef6359 – caniaskyouaquestion
portecle 프로젝트를 살펴보면 핵심 사용법과 확장 된 키 사용법을 보여주는 멋진 도구입니다. 소스 포지 (sourceforge) http://sourceforge.net/p/portecle/code/ci/master/tree/ – Nadir