Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class X509Certificate extends Certificate
Основной формат X.509 был определен ISO/IEC и ANSI X9 и описывается ниже в ASN.1:
Certificate ::= SEQUENCE { tbsCertificate TBSCertificate, signatureAlgorithm AlgorithmIdentifier, signature BIT STRING }
Эти сертификаты широко используются, чтобы поддерживать аутентификацию и другую функциональность в системах Защиты в сети Интернет. Общее применение включает Почту с усовершенствованной защитой (PEM), Безопасность Транспортного уровня (SSL), подписывание кода для распределения достоверного программного обеспечения, и Защищает Электронные Транзакции (НАБОР).
Этими сертификатами управляют и ручались за Центрами сертификации (АВАРИЯ). АВАРИЯ Является службами, которые создают сертификаты, помещая данные в стандартный формат X.509 и затем в цифровой форме подписывая те данные. Действие АВАРИИ как доверенные третьи стороны, представляющиеся между принципалами, у кого нет никаких сведений из первоисточника друг друга. Сертификаты CA или подписываются собой, или некоторым другим CA, таким как "корневой" CA.
Определение ASN.1 tbsCertificate
:
TBSCertificate ::= SEQUENCE { version [0] EXPLICIT Version DEFAULT v1, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectPublicKeyInfo SubjectPublicKeyInfo, }
Вот пример кода, чтобы инстанцировать сертификата X.509:
InputStream inStream = new FileInputStream("fileName-of-cert"); X509Certificate cert = X509Certificate.getInstance(inStream); inStream.close();ИЛИ
byte[] certData = <certificate read from a file, say> X509Certificate cert = X509Certificate.getInstance(certData);
Или в случае, код, который инстанцирует сертификата X.509, консультируется с файлом свойств безопасности Java, чтобы определить местоположение фактической реализации или инстанцирует реализации по умолчанию.
Файл свойств безопасности Java располагается в файле под названием <JAVA_HOME>/lib/security/java.security. <JAVA_HOME> обращается к значению java.home системного свойства, и определяет каталог, где JRE устанавливается. В файле свойств Security реализация по умолчанию для X.509 v1 может быть дана, такие как:
cert.provider.x509v1=com.sun.security.cert.internal.x509.X509V1CertImpl
Значение этого cert.provider.x509v1
свойство должно быть изменено на instatiate другая реализация. Если это свойство безопасности не будет установлено, то реализация по умолчанию будет использоваться. В настоящий момент, из-за возможных ограничений безопасности на доступ к свойствам Security, это значение ищется и кэшируется во время инициализации класса, и будет нейтрализация на реализации по умолчанию, если свойство Security не будет доступно.
Отметьте: классы в пакете javax.security.cert
существуйте для совместимости с более ранними версиями Расширения Защищенных сокетов Java (JSSE). Новые приложения должны вместо этого использовать стандартный Java классы сертификата SE, расположенные в java.security.cert
.
Certificate
, X509Extension
Конструктор и Описание |
---|
X509Certificate() |
Модификатор и Тип | Метод и Описание |
---|---|
abstract void |
checkValidity()
Проверки, что сертификат в настоящий момент допустим.
|
abstract void |
checkValidity(Date date)
Проверки, что указанная дата в пределах срока действия сертификата.
|
static X509Certificate |
getInstance(byte[] certData)
Инстанцирует объекта X509Certificate, и инициализирует это с указанным байтовым массивом.
|
static X509Certificate |
getInstance(InputStream inStream)
Инстанцирует объекта X509Certificate, и инициализирует это с данными, считанными из входного потока
inStream . |
abstract Principal |
getIssuerDN()
Добирается
issuer (отличительное имя выпускающего), оценивают от сертификата. |
abstract Date |
getNotAfter()
Добирается
notAfter дата со срока действия сертификата. |
abstract Date |
getNotBefore()
Добирается
notBefore дата со срока действия сертификата. |
abstract BigInteger |
getSerialNumber()
Добирается
serialNumber значение от сертификата. |
abstract String |
getSigAlgName()
Получает имя алгоритма подписи для алгоритма подписи сертификата.
|
abstract String |
getSigAlgOID()
Получает строку OID алгоритма подписи от сертификата.
|
abstract byte[] |
getSigAlgParams()
Получает DER-закодированные параметры алгоритма подписи от алгоритма подписи этого сертификата.
|
abstract Principal |
getSubjectDN()
Добирается
subject (подвергните отличительное имя), значение от сертификата. |
abstract int |
getVersion()
Добирается
version (номер версии) значение от сертификата. |
equals, getEncoded, getPublicKey, hashCode, toString, verify, verify
public static final X509Certificate getInstance(InputStream inStream) throws CertificateException
inStream
. Реализация (X509Certificate является абстрактным классом) обеспечивается классом, определенным как значение cert.provider.x509v1
свойство в файле свойств безопасности. Отметьте: Только один DER-закодированный сертификат, как ожидают, будет во входном потоке. Кроме того, все подклассы X509Certificate должны предоставить конструктору формы:
public <subClass>(InputStream inStream) ...
inStream
- входной поток с данными, которые будут считаны, чтобы инициализировать сертификат.CertificateException
- если инициализация класса или ошибка парсинга сертификата происходят.public static final X509Certificate getInstance(byte[] certData) throws CertificateException
cert.provider.x509v1
свойство в файле свойств безопасности. Отметьте: Все подклассы X509Certificate должны предоставить конструктору формы:
public <subClass>(InputStream inStream) ...
certData
- байтовый массив, содержащий DER-закодированный сертификат.certData
.CertificateException
- если инициализация класса или ошибка парсинга сертификата происходят.public abstract void checkValidity() throws CertificateExpiredException, CertificateNotYetValidException
Срок действия состоит из двух дат/временных стоимостей: первые и последние даты (и времена), на котором сертификат допустим. Это определяется в ASN.1 как:
validity ValidityValidity ::= SEQUENCE { notBefore CertificateValidityDate, notAfter CertificateValidityDate }
CertificateValidityDate ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }
CertificateExpiredException
- если сертификат истек.CertificateNotYetValidException
- если сертификат еще не допустим.public abstract void checkValidity(Date date) throws CertificateExpiredException, CertificateNotYetValidException
date
- Дата, чтобы проверить по видеть, допустим ли этот сертификат в той дате/времени.CertificateExpiredException
- если сертификат истек относительно date
предоставленный.CertificateNotYetValidException
- если сертификат еще не допустим относительно date
предоставленный.checkValidity()
public abstract int getVersion()
version
(номер версии) значение от сертификата. Определение ASN.1 для этого: version [0] EXPLICIT Version DEFAULT v1Version ::= INTEGER { v1(0), v2(1), v3(2) }
public abstract BigInteger getSerialNumber()
serialNumber
значение от сертификата. Порядковый номер является целым числом, присвоенным центром сертификации каждому сертификату. Это должно быть уникально для каждого сертификата, выпущенного данным CA (то есть, имя выпускающего и порядковый номер идентифицируют уникальный сертификат). Определение ASN.1 для этого: serialNumber CertificateSerialNumberCertificateSerialNumber ::= INTEGER
public abstract Principal getIssuerDN()
issuer
(отличительное имя выпускающего), оценивают от сертификата. Имя выпускающего идентифицирует объект, который подписался (и вышел), сертификат. Поле имени выпускающего содержит отличительное имя X.500 (DN). Определение ASN.1 для этого:
issuer NameName ::= CHOICE { RDNSequence } RDNSequence ::= SEQUENCE OF RelativeDistinguishedName RelativeDistinguishedName ::= SET OF AttributeValueAssertion AttributeValueAssertion ::= SEQUENCE { AttributeType, AttributeValue } AttributeType ::= OBJECT IDENTIFIER AttributeValue ::= ANY
Name
описывает иерархическое имя, составленное из атрибутов, таких как название страны, и соответствующие значения, такие как US. Тип AttributeValue
компонент определяется AttributeType
; вообще это будет a directoryString
. A directoryString
обычно один из PrintableString
, TeletexString
или UniversalString
.public abstract Principal getSubjectDN()
subject
(подвергните отличительное имя), значение от сертификата. Определение ASN.1 для этого: subject Name
См. getIssuerDN
для Name
и другие соответствующие определения.
getIssuerDN()
public abstract Date getNotBefore()
notBefore
дата со срока действия сертификата. Соответствующие определения ASN.1: validity ValidityValidity ::= SEQUENCE { notBefore CertificateValidityDate, notAfter CertificateValidityDate }
CertificateValidityDate ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }
checkValidity()
public abstract Date getNotAfter()
notAfter
дата со срока действия сертификата. См. getNotBefore
для соответствующих определений ASN.1.checkValidity()
public abstract String getSigAlgName()
signatureAlgorithm AlgorithmIdentifierAlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL } -- contains a value of the type -- registered for use with the -- algorithm object identifier value
Имя алгоритма определяется от algorithm
Строка OID.
public abstract String getSigAlgOID()
См. getSigAlgName
для соответствующих определений ASN.1.
public abstract byte[] getSigAlgParams()
См. getSigAlgName
для соответствующих определений ASN.1.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.