AlgorithmConstraints (Java Platform SE 8 )
Keywords: java.security.AlgorithmConstraints interface
Date: 2018-07-01

compact1, compact2, compact3
java.security

## Interface AlgorithmConstraints

-     public interface AlgorithmConstraints

  This interface specifies constraints for cryptographic algorithms, keys (key sizes), and other algorithm parameters.

  `AlgorithmConstraints` objects are immutable. An implementation of this interface should not provide methods that can change the state of an instance once it has been created.

  Note that `AlgorithmConstraints` can be used to represent the restrictions described by the security properties `jdk.certpath.disabledAlgorithms` and `jdk.tls.disabledAlgorithms`, or could be used by a concrete `PKIXCertPathChecker` to check whether a specified certificate in the certification path contains the required algorithm constraints.

  Since:
    1.7
  See Also:
    `SSLParameters.getAlgorithmConstraints()`, `SSLParameters.setAlgorithmConstraints(AlgorithmConstraints)`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `permits(Set<CryptoPrimitive> primitives, Key key)` Determines whether a key is granted permission for the specified cryptographic primitives.
    `boolean` | `permits(Set<CryptoPrimitive> primitives, String algorithm, AlgorithmParameters parameters)` Determines whether an algorithm is granted permission for the specified cryptographic primitives.
    `boolean` | `permits(Set<CryptoPrimitive> primitives, String algorithm, Key key, AlgorithmParameters parameters)` Determines whether an algorithm and the corresponding key are granted permission for the specified cryptographic primitives.

- - ### Method Detail

    - #### permits

          boolean permits(Set<CryptoPrimitive> primitives,
                          String algorithm,
                          AlgorithmParameters parameters)

      Determines whether an algorithm is granted permission for the specified cryptographic primitives.
      Parameters:
        `primitives` - a set of cryptographic primitives
        `algorithm` - the algorithm name
        `parameters` - the algorithm parameters, or null if no additional parameters
      Returns:
        true if the algorithm is permitted and can be used for all of the specified cryptographic primitives
      Throws:
        `IllegalArgumentException` - if primitives or algorithm is null or empty

    - #### permits

          boolean permits(Set<CryptoPrimitive> primitives,
                          Key key)

      Determines whether a key is granted permission for the specified cryptographic primitives.

      This method is usually used to check key size and key usage.

      Parameters:
        `primitives` - a set of cryptographic primitives
        `key` - the key
      Returns:
        true if the key can be used for all of the specified cryptographic primitives
      Throws:
        `IllegalArgumentException` - if primitives is null or empty, or the key is null

    - #### permits

          boolean permits(Set<CryptoPrimitive> primitives,
                          String algorithm,
                          Key key,
                          AlgorithmParameters parameters)

      Determines whether an algorithm and the corresponding key are granted permission for the specified cryptographic primitives.
      Parameters:
        `primitives` - a set of cryptographic primitives
        `algorithm` - the algorithm name
        `key` - the key
        `parameters` - the algorithm parameters, or null if no additional parameters
      Returns:
        true if the key and the algorithm can be used for all of the specified cryptographic primitives
      Throws:
        `IllegalArgumentException` - if primitives or algorithm is null or empty, or the key is null

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2018, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.