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
Modifier and Type | Field | Description |
---|---|---|
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
Modifier and Type | Method | Description |
---|---|---|
PublicKey | getPublicKey() | Returns the public key of this |
Methods declared in 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 thisKeyValue
cannot be converted to aPublicKey