模块  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方法并向传递表示公钥值的PublicKey来创建KeyValue实例。 以下是从存储在KeyStore中的CertificateDSAPublicKey创建KeyValue示例
      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结构。
        另请参见:
        常数字段值
      • RSA_TYPE

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

      • getPublicKey

        PublicKey getPublicKey()
                        throws KeyException
        返回此 KeyValue
        结果
        这个 KeyValue
        异常
        KeyException - 如果这个 KeyValue无法转换为 PublicKey