XMLStructurepublic interface KeyValue extends XMLStructure
KeyValue element as defined in the  W3C Recommendation for XML-Signature Syntax and Processing. A KeyValue object contains a single public key that may be useful in validating the signature. The XML schema definition is defined as: 
    <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>
  See section 4.5.2.3.1 of the W3C Recommendation for the definition of ECParametersType. A KeyValue instance may be created by invoking the newKeyValue method of the KeyInfoFactory class, and passing it a PublicKey representing the value of the public key. Here is an example of creating a KeyValue from a DSAPublicKey of a Certificate stored in a KeyStore: 
 KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
 PublicKey dsaPublicKey = keyStore.getCertificate("myDSASigningCert").getPublicKey();
 KeyInfoFactory factory = KeyInfoFactory.getInstance("DOM");
 KeyValue keyValue = factory.newKeyValue(dsaPublicKey);
  This class returns the DSAKeyValue and RSAKeyValue elements as objects of type DSAPublicKey and RSAPublicKey, respectively. Note that not all of the fields in the schema are accessible as parameters of these types.| Modifier and Type | Field | Description | 
|---|---|---|
| static final String | DSA_TYPE | URI identifying the DSA KeyValue KeyInfo type: http://www.w3.org/2000/09/xmldsig#DSAKeyValue. | 
| static final String | EC_TYPE | URI identifying the EC KeyValue KeyInfo type: http://www.w3.org/2009/xmldsig11#ECKeyValue. | 
| static final String | RSA_TYPE | URI identifying the RSA KeyValue KeyInfo type: http://www.w3.org/2000/09/xmldsig#RSAKeyValue. | 
| Modifier and Type | Method | Description | 
|---|---|---|
| PublicKey | getPublicKey() | Returns the public key of this  KeyValue. | 
isFeatureSupported
static final String DSA_TYPE
type parameter of the RetrievalMethod class to describe a remote DSAKeyValue structure.static final String RSA_TYPE
type parameter of the RetrievalMethod class to describe a remote RSAKeyValue structure.static final String EC_TYPE
type parameter of the RetrievalMethod class to describe a remote ECKeyValue structure.PublicKey getPublicKey() throws KeyException
KeyValue.KeyValue
KeyException - if this KeyValue cannot be converted to a 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