Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.xml.crypto.dsig.keyinfo
Interface KeyValue

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"/>
            <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>

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 Summary
`static String` | `DSA_TYPE` URI identifying the DSA KeyValue KeyInfo type: http://www.w3.org/2000/09/xmldsig#DSAKeyValue.
`static String` | `RSA_TYPE` URI identifying the RSA KeyValue KeyInfo type: http://www.w3.org/2000/09/xmldsig#RSAKeyValue.

Method Summary
`PublicKey` | `getPublicKey()` Returns the public key of this `KeyValue`.

Methods inherited from interface javax.xml.crypto.XMLStructure
`isFeatureSupported`

Field Detail

### DSA_TYPE

    static final String DSA_TYPE

  URI identifying the DSA KeyValue KeyInfo type: http://www.w3.org/2000/09/xmldsig#DSAKeyValue. This can be specified as the value of the `type` parameter of the `RetrievalMethod` class to describe a remote `DSAKeyValue` structure.

  See Also:
    Constant Field Values

### RSA_TYPE

    static final String RSA_TYPE

  URI identifying the RSA KeyValue KeyInfo type: http://www.w3.org/2000/09/xmldsig#RSAKeyValue. This can be specified as the value of the `type` parameter of the `RetrievalMethod` class to describe a remote `RSAKeyValue` structure.

  See Also:
    Constant Field Values

Method Detail

### getPublicKey

    PublicKey getPublicKey()
                           throws KeyException

  Returns the public key of this `KeyValue`.

  Returns:
    the public key of this `KeyValue`
  Throws:
    `KeyException` - if this `KeyValue` cannot be converted to a `PublicKey`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.