- All Superinterfaces:
- XMLStructure
public interface KeyValue extends XMLStructure
A representation of the XML 
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.- Since:
- 1.6
- See Also:
- KeyInfoFactory.newKeyValue(PublicKey)
- 
Field SummaryFields Modifier and Type Field Description static StringDSA_TYPEURI identifying the DSA KeyValue KeyInfo type: http://www.w3.org/2000/09/xmldsig#DSAKeyValue.static StringEC_TYPEURI identifying the EC KeyValue KeyInfo type: http://www.w3.org/2009/xmldsig11#ECKeyValue.static StringRSA_TYPEURI identifying the RSA KeyValue KeyInfo type: http://www.w3.org/2000/09/xmldsig#RSAKeyValue.
- 
Method SummaryModifier and Type Method Description PublicKeygetPublicKey()Returns the public key of thisKeyValue.
- 
Field Details- 
DSA_TYPEURI identifying the DSA KeyValue KeyInfo type: http://www.w3.org/2000/09/xmldsig#DSAKeyValue. This can be specified as the value of thetypeparameter of theRetrievalMethodclass to describe a remoteDSAKeyValuestructure.- See Also:
- Constant Field Values
 
- 
RSA_TYPEURI identifying the RSA KeyValue KeyInfo type: http://www.w3.org/2000/09/xmldsig#RSAKeyValue. This can be specified as the value of thetypeparameter of theRetrievalMethodclass to describe a remoteRSAKeyValuestructure.- See Also:
- Constant Field Values
 
- 
EC_TYPEURI identifying the EC KeyValue KeyInfo type: http://www.w3.org/2009/xmldsig11#ECKeyValue. This can be specified as the value of thetypeparameter of theRetrievalMethodclass to describe a remoteECKeyValuestructure.- See Also:
- Constant Field Values
 
 
- 
- 
Method Details- 
getPublicKeyReturns the public key of thisKeyValue.- Returns:
- the public key of this KeyValue
- Throws:
- KeyException- if this- KeyValuecannot be converted to a- PublicKey
 
 
-