Module  java.xml.crypto

Interface KeyValue

  • All Superinterfaces:
    XMLStructure


    public interface KeyValue
    extends XMLStructure
    KeyValue中定义的XML KeyValue元素的表示 一个KeyValue对象包含一个可用于验证签名的公钥。 XML模式定义定义为:
      <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> 
    可以通过调用KeyInfoFactory类的newKeyValue方法创建一个KeyValue实例,并传递一个PublicKey表示公钥的值。 以下是一个KeyValueCertificateCertificate存储在KeyStore中的示例
      KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
     PublicKey dsaPublicKey = keyStore.getCertificate("myDSASigningCert").getPublicKey();
     KeyInfoFactory factory = KeyInfoFactory.getInstance("DOM");
     KeyValue keyValue = factory.newKeyValue(dsaPublicKey); 
    此类分别返回DSAKeyValueRSAKeyValue元素作为DSAPublicKeyRSAPublicKey类型的对象。 请注意,并非模式中的所有字段都可以作为这些类型的参数访问。
    从以下版本开始:
    1.6
    另请参见:
    KeyInfoFactory.newKeyValue(PublicKey)
    • 字段详细信息

      • DSA_TYPE

        static final String DSA_TYPE
        标识DSA KeyValue KeyInfo类型的URI:http://www.w3.org/2000/09/xmldsig#DSAKeyValue。 这可以指定为RetrievalMethod类的type参数的值来描述远程DSAKeyValue结构。
        另请参见:
        Constant Field Values
      • RSA_TYPE

        static final String RSA_TYPE
        标识RSA KeyValue KeyInfo类型的URI:http://www.w3.org/2000/09/xmldsig#RSAKeyValue。 这可以指定为RetrievalMethod类的type参数的值来描述远程RSAKeyValue结构。
        另请参见:
        Constant Field Values
    • 方法详细信息

      • getPublicKey

        PublicKey getPublicKey​()
                        throws KeyException
        返回此 KeyValue
        结果
        这个公钥的这个 KeyValue
        异常
        KeyException - 如果这个 KeyValue不能转换为 PublicKey