- 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 Summary
Fields 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
EC_TYPE
URI identifying the EC KeyValue KeyInfo type: http://www.w3.org/2009/xmldsig11#ECKeyValue.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 thisKeyValue
.
-
Field Details
-
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 thetype
parameter of theRetrievalMethod
class to describe a remoteDSAKeyValue
structure.- See Also:
- Constant Field Values
-
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 thetype
parameter of theRetrievalMethod
class to describe a remoteRSAKeyValue
structure.- See Also:
- Constant Field Values
-
EC_TYPE
URI identifying the EC KeyValue KeyInfo type: http://www.w3.org/2009/xmldsig11#ECKeyValue. This can be specified as the value of thetype
parameter of theRetrievalMethod
class to describe a remoteECKeyValue
structure.- See Also:
- Constant Field Values
-
-
Method Details
-
getPublicKey
Returns the public key of thisKeyValue
.- Returns:
- the public key of this
KeyValue
- Throws:
KeyException
- if thisKeyValue
cannot be converted to aPublicKey
-