Module java.xml.crypto
Package javax.xml.crypto.dsig

# 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_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`
`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`
`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 javax.xml.crypto.AlgorithmMethod

`getAlgorithm`

### Methods declared in interface javax.xml.crypto.XMLStructure

`isFeatureSupported`

## 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

## 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)