< prev index next >

src/java.base/share/classes/java/security/Provider.java

Print this page




  44  * <li>Algorithms (such as DSA, RSA, or SHA-256).
  45  *
  46  * <li>Key generation, conversion, and management facilities (such as for
  47  * algorithm-specific keys).
  48  *
  49  * </ul>
  50  *
  51  * <p>Some provider implementations may encounter unrecoverable internal
  52  * errors during their operation, for example a failure to communicate with a
  53  * security token. A {@link ProviderException} should be used to indicate
  54  * such errors.
  55  *
  56  * <p>Please note that a provider can be used to implement any security
  57  * service in Java that uses a pluggable architecture with a choice
  58  * of implementations that fit underneath.
  59  *
  60  * <p>The service type {@code Provider} is reserved for use by the
  61  * security framework. Services of this type cannot be added, removed,
  62  * or modified by applications.
  63  * The following attributes are automatically placed in each Provider object:
  64  * <table cellspacing=4>
  65  * <caption><b>Attributes Automatically Placed in a Provider Object</b></caption>

  66  * <tr><th>Name</th><th>Value</th>


  67  * <tr><td>{@code Provider.id name}</td>
  68   *    <td>{@code String.valueOf(provider.getName())}</td>
  69  * <tr><td>{@code Provider.id version}</td>
  70  *     <td>{@code String.valueOf(provider.getVersionStr())}</td>
  71  * <tr><td>{@code Provider.id info}</td>
  72        <td>{@code String.valueOf(provider.getInfo())}</td>
  73  * <tr><td>{@code Provider.id className}</td>
  74  *     <td>{@code provider.getClass().getName()}</td>

  75  * </table>
  76  *
  77  * <p>Each provider has a name and a version string. A provider normally
  78  * identifies itself with a file named {@code java.security.Provider}
  79  * in the resource directory {@code META-INF/services}.
  80  * Security providers are looked up via the {@link ServiceLoader} mechanism
  81  * using the {@link ClassLoader#getSystemClassLoader application class loader}.
  82  *
  83  * <p>Providers may be configured such that they are automatically
  84  * installed and made available at runtime via the
  85  * {@link Security#getProviders() Security.getProviders()} method.
  86  * The mechanism for configuring and installing security providers is
  87  * implementation-specific.
  88  *
  89  * @implNote
  90  * The JDK implementation supports static registration of the security
  91  * providers via the {@code conf/security/java.security} file in the Java
  92  * installation directory. These providers are automatically installed by
  93  * the JDK runtime, see <a href =
  94  * "../../../technotes/guides/security/crypto/CryptoSpec.html#Provider">The Provider Class</a>




  44  * <li>Algorithms (such as DSA, RSA, or SHA-256).
  45  *
  46  * <li>Key generation, conversion, and management facilities (such as for
  47  * algorithm-specific keys).
  48  *
  49  * </ul>
  50  *
  51  * <p>Some provider implementations may encounter unrecoverable internal
  52  * errors during their operation, for example a failure to communicate with a
  53  * security token. A {@link ProviderException} should be used to indicate
  54  * such errors.
  55  *
  56  * <p>Please note that a provider can be used to implement any security
  57  * service in Java that uses a pluggable architecture with a choice
  58  * of implementations that fit underneath.
  59  *
  60  * <p>The service type {@code Provider} is reserved for use by the
  61  * security framework. Services of this type cannot be added, removed,
  62  * or modified by applications.
  63  * The following attributes are automatically placed in each Provider object:
  64  * <table class="plain">
  65  * <caption><b>Attributes Automatically Placed in a Provider Object</b></caption>
  66  * <thead>
  67  * <tr><th>Name</th><th>Value</th>
  68  * </thead>
  69  * <tbody>
  70  * <tr><td>{@code Provider.id name}</td>
  71  *     <td>{@code String.valueOf(provider.getName())}</td>
  72  * <tr><td>{@code Provider.id version}</td>
  73  *     <td>{@code String.valueOf(provider.getVersionStr())}</td>
  74  * <tr><td>{@code Provider.id info}</td>
  75  *     <td>{@code String.valueOf(provider.getInfo())}</td>
  76  * <tr><td>{@code Provider.id className}</td>
  77  *     <td>{@code provider.getClass().getName()}</td>
  78  * </tbody>
  79  * </table>
  80  *
  81  * <p>Each provider has a name and a version string. A provider normally
  82  * identifies itself with a file named {@code java.security.Provider}
  83  * in the resource directory {@code META-INF/services}.
  84  * Security providers are looked up via the {@link ServiceLoader} mechanism
  85  * using the {@link ClassLoader#getSystemClassLoader application class loader}.
  86  *
  87  * <p>Providers may be configured such that they are automatically
  88  * installed and made available at runtime via the
  89  * {@link Security#getProviders() Security.getProviders()} method.
  90  * The mechanism for configuring and installing security providers is
  91  * implementation-specific.
  92  *
  93  * @implNote
  94  * The JDK implementation supports static registration of the security
  95  * providers via the {@code conf/security/java.security} file in the Java
  96  * installation directory. These providers are automatically installed by
  97  * the JDK runtime, see <a href =
  98  * "../../../technotes/guides/security/crypto/CryptoSpec.html#Provider">The Provider Class</a>


< prev index next >