Интерфейс KeyValue
- Все суперинтерфейсы:
XMLStructure
public interface KeyValue extends XMLStructure
KeyValue согласно Рекомендации W3C по синтаксису и обработке XML-подписей. Объект KeyValue содержит единственный открытый ключ, который может быть полезен при проверке подписи. Определение XML-схемы:
<element name="KeyValue" type="ds:KeyValueType"/>
<complexType name="KeyValueType" mixed="true">
<choice>
<element ref="ds:DSAKeyValue"/>
<element ref="ds:RSAKeyValue"/>
<!-- <element ref="dsig11:ECKeyValue"/> -->
<!-- ECC keys (XMLDsig 1.1) will use the any element -->
<any namespace="##other" processContents="lax"/>
</choice>
</complexType>
<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
<complexType name="DSAKeyValueType">
<sequence>
<sequence minOccurs="0">
<element name="P" type="ds:CryptoBinary"/>
<element name="Q" type="ds:CryptoBinary"/>
</sequence>
<element name="G" type="ds:CryptoBinary" minOccurs="0"/>
<element name="Y" type="ds:CryptoBinary"/>
<element name="J" type="ds:CryptoBinary" minOccurs="0"/>
<sequence minOccurs="0">
<element name="Seed" type="ds:CryptoBinary"/>
<element name="PgenCounter" type="ds:CryptoBinary"/>
</sequence>
</sequence>
</complexType>
<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
<complexType name="RSAKeyValueType">
<sequence>
<element name="Modulus" type="ds:CryptoBinary"/>
<element name="Exponent" type="ds:CryptoBinary"/>
</sequence>
</complexType>
<complexType name="ECKeyValueType">
<sequence>
<choice>
<element name="ECParameters" type="dsig11:ECParametersType" />
<element name="NamedCurve" type="dsig11:NamedCurveType" />
</choice>
<element name="PublicKey" type="dsig11:ECPointType" />
</sequence>
<attribute name="Id" type="ID" use="optional" />
</complexType>
<complexType name="NamedCurveType">
<attribute name="URI" type="anyURI" use="required" />
</complexType>
<simpleType name="ECPointType">
<restriction base="ds:CryptoBinary" />
</simpleType>
См. раздел 4.5.2.3.1 Рекомендации W3C для определения типа ECParametersType. Экземпляр KeyValue можно создать, вызвав метод newKeyValue класса KeyInfoFactory и передав ему объект PublicKey, представляющий значение открытого ключа. Вот пример создания объекта KeyValue из объекта DSAPublicKey сертификата Certificate, хранящегося в хранилище ключей KeyStore:
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
PublicKey dsaPublicKey = keyStore.getCertificate("myDSASigningCert").getPublicKey();
KeyInfoFactory factory = KeyInfoFactory.getInstance("DOM");
KeyValue keyValue = factory.newKeyValue(dsaPublicKey);
Этот класс возвращает элементы DSAKeyValue и RSAKeyValue в виде объектов типов DSAPublicKey и RSAPublicKey соответственно. Обратите внимание, что не все поля схемы доступны в качестве параметров этих типов.- С момента:
- 1.6
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
DSA_TYPE |
URI, определяющий тип DSA KeyValue KeyInfo: http://www.w3.org/2000/09/xmldsig#DSAKeyValue. |
static final String |
EC_TYPE |
URI, определяющий тип EC KeyValue KeyInfo: http://www.w3.org/2009/xmldsig11#ECKeyValue. |
static final String |
RSA_TYPE |
URI, определяющий тип RSA KeyValue KeyInfo: http://www.w3.org/2000/09/xmldsig#RSAKeyValue. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
PublicKey |
getPublicKey() |
Возвращает открытый ключ этого объекта KeyValue. |
Методы, объявленные в интерфейсе javax.xml.crypto.XMLStructure
isFeatureSupported
Подробное описание полей
DSA_TYPE
static final String DSA_TYPE
type класса RetrievalMethod для описания удалённой структуры DSAKeyValue.- См. также:
RSA_TYPE
static final String RSA_TYPE
type класса RetrievalMethod для описания удалённой структуры RSAKeyValue.- См. также:
EC_TYPE
static final String EC_TYPE
type класса RetrievalMethod для описания удалённой структуры ECKeyValue.- См. также:
Подробное описание методов
getPublicKey
PublicKey getPublicKey() throws KeyException
KeyValue.- Возвращает:
- открытый ключ этого объекта
KeyValue - Исключения:
-
KeyException- если этот объектKeyValueнельзя преобразовать в объектPublicKey
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.xml.crypto/javax/xml/crypto/dsig/keyinfo/KeyValue.html