SignatureMethod (Java SE 26 & JDK 26)
Description: declaration: module: java.xml.crypto, package: javax.xml.crypto.dsig, interface: SignatureMethod
Keywords: javax.xml.crypto.dsig.SignatureMethod interface

# Interface SignatureMethod

All Superinterfaces:
  `AlgorithmMethod, XMLStructure`

public interface SignatureMethod extends XMLStructure, AlgorithmMethod
A representation of the XML `SignatureMethod` element as defined in the W3C Recommendation for XML-Signature Syntax and Processing. The XML Schema Definition is defined as:

      <element name="SignatureMethod" type="ds:SignatureMethodType"/>
        <complexType name="SignatureMethodType" mixed="true">
          <sequence>
            <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
            <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
              <!-- (0,unbounded) elements from (1,1) namespace -->
          </sequence>
          <attribute name="Algorithm" type="anyURI" use="required"/>
        </complexType>

A `SignatureMethod` instance may be created by invoking the `newSignatureMethod` method of the `XMLSignatureFactory` class.

The signature method algorithm URIs defined in this class are specified in the W3C Recommendation for XML-Signature Syntax and Processing and RFC 9231: Additional XML Security Uniform Resource Identifiers (URIs)

Since:
  1.6
See Also:
  - `XMLSignatureFactory.newSignatureMethod(String, SignatureMethodParameterSpec)`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `DSA_SHA1`
  The DSA-SHA1 (DSS) signature method algorithm URI.
  `static final String`
  `DSA_SHA256`
  The DSA-SHA256 (DSS) signature method algorithm URI.
  `static final String`
  `ECDSA_SHA1`
  The ECDSA-SHA1 (FIPS 180-4) signature method algorithm URI.
  `static final String`
  `ECDSA_SHA224`
  The ECDSA-SHA224 (FIPS 180-4) signature method algorithm URI.
  `static final String`
  `ECDSA_SHA256`
  The ECDSA-SHA256 (FIPS 180-4) signature method algorithm URI.
  `static final String`
  `ECDSA_SHA3_224`
  The ECDSA-SHA3-224 signature method algorithm URI.
  `static final String`
  `ECDSA_SHA3_256`
  The ECDSA-SHA3-256 signature method algorithm URI.
  `static final String`
  `ECDSA_SHA3_384`
  The ECDSA-SHA3-384 signature method algorithm URI.
  `static final String`
  `ECDSA_SHA3_512`
  The ECDSA-SHA3-512 signature method algorithm URI.
  `static final String`
  `ECDSA_SHA384`
  The ECDSA-SHA384 (FIPS 180-4) signature method algorithm URI.
  `static final String`
  `ECDSA_SHA512`
  The ECDSA-SHA512 (FIPS 180-4) signature method algorithm URI.
  `static final String`
  `ED25519`
  The ED25519 signature method algorithm URI.
  `static final String`
  `ED448`
  The ED448 signature method algorithm URI.
  `static final String`
  `HMAC_SHA1`
  The HMAC-SHA1 MAC signature method algorithm URI
  `static final String`
  `HMAC_SHA224`
  The HMAC-SHA224 MAC signature method algorithm URI.
  `static final String`
  `HMAC_SHA256`
  The HMAC-SHA256 MAC signature method algorithm URI.
  `static final String`
  `HMAC_SHA384`
  The HMAC-SHA384 MAC signature method algorithm URI.
  `static final String`
  `HMAC_SHA512`
  The HMAC-SHA512 MAC signature method algorithm URI.
  `static final String`
  `RSA_PSS`
  The RSASSA-PSS signature method algorithm URI.
  `static final String`
  `RSA_SHA1`
  The RSA-SHA1 (PKCS #1) signature method algorithm URI.
  `static final String`
  `RSA_SHA224`
  The RSA-SHA224 (PKCS #1) signature method algorithm URI.
  `static final String`
  `RSA_SHA256`
  The RSA-SHA256 (PKCS #1) signature method algorithm URI.
  `static final String`
  `RSA_SHA384`
  The RSA-SHA384 (PKCS #1) signature method algorithm URI.
  `static final String`
  `RSA_SHA512`
  The RSA-SHA512 (PKCS #1) signature method algorithm URI.
  `static final String`
  `SHA1_RSA_MGF1`
  The SHA1-RSA-MGF1 (PKCS #1) signature method algorithm URI.
  `static final String`
  `SHA224_RSA_MGF1`
  The SHA224-RSA-MGF1 (PKCS #1) signature method algorithm URI.
  `static final String`
  `SHA256_RSA_MGF1`
  The SHA256-RSA-MGF1 (PKCS #1) signature method algorithm URI.
  `static final String`
  `SHA3_224_RSA_MGF1`
  The SHA3-224-RSA-MGF1 (PKCS #1) signature method algorithm URI.
  `static final String`
  `SHA3_256_RSA_MGF1`
  The SHA3-256-RSA-MGF1 (PKCS #1) signature method algorithm URI.
  `static final String`
  `SHA3_384_RSA_MGF1`
  The SHA3-384-RSA-MGF1 (PKCS #1) signature method algorithm URI.
  `static final String`
  `SHA3_512_RSA_MGF1`
  The SHA3-512-RSA-MGF1 (PKCS #1) signature method algorithm URI.
  `static final String`
  `SHA384_RSA_MGF1`
  The SHA384-RSA-MGF1 (PKCS #1) signature method algorithm URI.
  `static final String`
  `SHA512_RSA_MGF1`
  The SHA512-RSA-MGF1 (PKCS #1) signature method algorithm URI.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `AlgorithmParameterSpec`
  `getParameterSpec()`
  Returns the algorithm-specific input parameters of this `SignatureMethod`.

  ### Methods declared in interface AlgorithmMethod

  `getAlgorithm`
  Modifier and Type
  Method
  Description
  `String`
  `getAlgorithm()`
  Returns the algorithm URI of this `AlgorithmMethod`.

  ### Methods declared in interface XMLStructure

  `isFeatureSupported`
  Modifier and Type
  Method
  Description
  `boolean`
  `isFeatureSupported(String feature)`
  Indicates whether a specified feature is supported.

- ## Field Details

  - ### DSA_SHA1

    static final String DSA_SHA1
    The DSA-SHA1 (DSS) signature method algorithm URI.
    See Also:
      - Constant Field Values

  - ### DSA_SHA256

    static final String DSA_SHA256
    The DSA-SHA256 (DSS) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### RSA_SHA1

    static final String RSA_SHA1
    The RSA-SHA1 (PKCS #1) signature method algorithm URI.
    See Also:
      - Constant Field Values

  - ### RSA_SHA224

    static final String RSA_SHA224
    The RSA-SHA224 (PKCS #1) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### RSA_SHA256

    static final String RSA_SHA256
    The RSA-SHA256 (PKCS #1) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### RSA_SHA384

    static final String RSA_SHA384
    The RSA-SHA384 (PKCS #1) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### RSA_SHA512

    static final String RSA_SHA512
    The RSA-SHA512 (PKCS #1) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### SHA1_RSA_MGF1

    static final String SHA1_RSA_MGF1
    The SHA1-RSA-MGF1 (PKCS #1) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### SHA224_RSA_MGF1

    static final String SHA224_RSA_MGF1
    The SHA224-RSA-MGF1 (PKCS #1) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### SHA256_RSA_MGF1

    static final String SHA256_RSA_MGF1
    The SHA256-RSA-MGF1 (PKCS #1) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### SHA384_RSA_MGF1

    static final String SHA384_RSA_MGF1
    The SHA384-RSA-MGF1 (PKCS #1) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### SHA512_RSA_MGF1

    static final String SHA512_RSA_MGF1
    The SHA512-RSA-MGF1 (PKCS #1) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### ECDSA_SHA1

    static final String ECDSA_SHA1
    The ECDSA-SHA1 (FIPS 180-4) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### ECDSA_SHA224

    static final String ECDSA_SHA224
    The ECDSA-SHA224 (FIPS 180-4) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### ECDSA_SHA256

    static final String ECDSA_SHA256
    The ECDSA-SHA256 (FIPS 180-4) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### ECDSA_SHA384

    static final String ECDSA_SHA384
    The ECDSA-SHA384 (FIPS 180-4) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### ECDSA_SHA512

    static final String ECDSA_SHA512
    The ECDSA-SHA512 (FIPS 180-4) signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### HMAC_SHA1

    static final String HMAC_SHA1
    The HMAC-SHA1 MAC signature method algorithm URI
    See Also:
      - Constant Field Values

  - ### HMAC_SHA224

    static final String HMAC_SHA224
    The HMAC-SHA224 MAC signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### HMAC_SHA256

    static final String HMAC_SHA256
    The HMAC-SHA256 MAC signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### HMAC_SHA384

    static final String HMAC_SHA384
    The HMAC-SHA384 MAC signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### HMAC_SHA512

    static final String HMAC_SHA512
    The HMAC-SHA512 MAC signature method algorithm URI.
    Since:
      11
    See Also:
      - Constant Field Values

  - ### RSA_PSS

    static final String RSA_PSS
    The RSASSA-PSS signature method algorithm URI.

    Calling `XMLSignatureFactory.newSignatureMethod(RSA_PSS, null)` returns a `SignatureMethod` object that uses the default parameter as defined in RFC 6931 Section 2.3.9, which uses SHA-256 as the `DigestMethod`, MGF1 with SHA-256 as the `MaskGenerationFunction`, 32 as `SaltLength`, and 1 as `TrailerField`. This default parameter is represented as an `RSAPSSParameterSpec` type and returned by the `getParameterSpec()` method of the `SignatureMethod` object.

    Since:
      17
    See Also:
      - Constant Field Values

  - ### ED25519

    static final String ED25519
    The ED25519 signature method algorithm URI.
    Since:
      21
    See Also:
      - Constant Field Values

  - ### ED448

    static final String ED448
    The ED448 signature method algorithm URI.
    Since:
      21
    See Also:
      - Constant Field Values

  - ### SHA3_224_RSA_MGF1

    static final String SHA3_224_RSA_MGF1
    The SHA3-224-RSA-MGF1 (PKCS #1) signature method algorithm URI.
    Since:
      22
    See Also:
      - Constant Field Values

  - ### SHA3_256_RSA_MGF1

    static final String SHA3_256_RSA_MGF1
    The SHA3-256-RSA-MGF1 (PKCS #1) signature method algorithm URI.
    Since:
      22
    See Also:
      - Constant Field Values

  - ### SHA3_384_RSA_MGF1

    static final String SHA3_384_RSA_MGF1
    The SHA3-384-RSA-MGF1 (PKCS #1) signature method algorithm URI.
    Since:
      22
    See Also:
      - Constant Field Values

  - ### SHA3_512_RSA_MGF1

    static final String SHA3_512_RSA_MGF1
    The SHA3-512-RSA-MGF1 (PKCS #1) signature method algorithm URI.
    Since:
      22
    See Also:
      - Constant Field Values

  - ### ECDSA_SHA3_224

    static final String ECDSA_SHA3_224
    The ECDSA-SHA3-224 signature method algorithm URI.
    Since:
      25
    See Also:
      - Constant Field Values

  - ### ECDSA_SHA3_256

    static final String ECDSA_SHA3_256
    The ECDSA-SHA3-256 signature method algorithm URI.
    Since:
      25
    See Also:
      - Constant Field Values

  - ### ECDSA_SHA3_384

    static final String ECDSA_SHA3_384
    The ECDSA-SHA3-384 signature method algorithm URI.
    Since:
      25
    See Also:
      - Constant Field Values

  - ### ECDSA_SHA3_512

    static final String ECDSA_SHA3_512
    The ECDSA-SHA3-512 signature method algorithm URI.
    Since:
      25
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getParameterSpec

    AlgorithmParameterSpec getParameterSpec()
    Returns the algorithm-specific input parameters of this `SignatureMethod`.

    The returned parameters can be typecast to a `SignatureMethodParameterSpec` object.

    Specified by:
      `getParameterSpec` in interface `AlgorithmMethod`
    Returns:
      the algorithm-specific input parameters of this `SignatureMethod` (may be `null` if not specified)