## Uses of Class
java.security.Provider

- Packages that use Provider
  Package | Description
  --- | ---
  java.security | Provides the classes and interfaces for the security framework.
  java.security.cert | Provides classes and interfaces for parsing and managing certificates, certificate revocation lists (CRLs), and certification paths.
  javax.crypto | Provides the classes and interfaces for cryptographic operations.
  javax.net.ssl | Provides classes for the secure socket package.
  javax.security.auth.login | This package provides a pluggable authentication framework.
  javax.smartcardio | Java™ Smart Card I/O API.
  javax.xml.crypto.dsig | Classes for generating and validating XML digital signatures.
  javax.xml.crypto.dsig.keyinfo | Classes for parsing and processing `KeyInfo` elements and structures.
  jdk.security.jarsigner | This package defines APIs for signing jar files.
  org.ietf.jgss | This package presents a framework that allows application developers to make use of security services like authentication, data integrity and data confidentiality from a variety of underlying security mechanisms like Kerberos, using a unified API.

- - ### Uses of Provider in java.security

    Subclasses of Provider in java.security
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AuthProvider` | This class defines login and logout methods for a provider.

    Methods in java.security that return Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `Provider` | Provider.`configure​(String configArg)` | Apply the supplied configuration argument to this provider instance and return the configured provider.
    `Provider` | AlgorithmParameterGenerator.`getProvider()` | Returns the provider of this algorithm parameter generator object.
    `Provider` | AlgorithmParameters.`getProvider()` | Returns the provider of this parameter object.
    `Provider` | KeyFactory.`getProvider()` | Returns the provider of this key factory object.
    `Provider` | KeyPairGenerator.`getProvider()` | Returns the provider of this key pair generator object.
    `Provider` | KeyStore.`getProvider()` | Returns the provider of this keystore.
    `Provider` | MessageDigest.`getProvider()` | Returns the provider of this message digest object.
    `Provider` | Policy.`getProvider()` | Return the Provider of this Policy.
    `Provider` | Provider.Service.`getProvider()` | Return the Provider of this service.
    `Provider` | SecureRandom.`getProvider()` | Returns the provider of this `SecureRandom` object.
    `static Provider` | Security.`getProvider​(String name)` | Returns the provider installed with the specified name, if any.
    `Provider` | Signature.`getProvider()` | Returns the provider of this signature object.
    `static Provider[]` | Security.`getProviders()` | Returns an array containing all the installed providers.
    `static Provider[]` | Security.`getProviders​(String filter)` | Returns an array containing all installed providers that satisfy the specified selection criterion, or null if no such providers have been installed.
    `static Provider[]` | Security.`getProviders​(Map<String,​String> filter)` | Returns an array containing all installed providers that satisfy the specified selection criteria, or null if no such providers have been installed.

    Methods in java.security with parameters of type Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `static int` | Security.`addProvider​(Provider provider)` | Adds a provider to the next position available.
    `static AlgorithmParameterGenerator` | AlgorithmParameterGenerator.`getInstance​(String algorithm, Provider provider)` | Returns an AlgorithmParameterGenerator object for generating a set of parameters to be used with the specified algorithm.
    `static AlgorithmParameters` | AlgorithmParameters.`getInstance​(String algorithm, Provider provider)` | Returns a parameter object for the specified algorithm.
    `static KeyFactory` | KeyFactory.`getInstance​(String algorithm, Provider provider)` | Returns a KeyFactory object that converts public/private keys of the specified algorithm.
    `static KeyPairGenerator` | KeyPairGenerator.`getInstance​(String algorithm, Provider provider)` | Returns a KeyPairGenerator object that generates public/private key pairs for the specified algorithm.
    `static KeyStore` | KeyStore.`getInstance​(String type, Provider provider)` | Returns a keystore object of the specified type.
    `static MessageDigest` | MessageDigest.`getInstance​(String algorithm, Provider provider)` | Returns a MessageDigest object that implements the specified digest algorithm.
    `static Policy` | Policy.`getInstance​(String type, Policy.Parameters params, Provider provider)` | Returns a Policy object of the specified type.
    `static SecureRandom` | SecureRandom.`getInstance​(String algorithm, Provider provider)` | Returns a `SecureRandom` object that implements the specified Random Number Generator (RNG) algorithm.
    `static SecureRandom` | SecureRandom.`getInstance​(String algorithm, SecureRandomParameters params, Provider provider)` | Returns a `SecureRandom` object that implements the specified Random Number Generator (RNG) algorithm and supports the specified `SecureRandomParameters` request.
    `static Signature` | Signature.`getInstance​(String algorithm, Provider provider)` | Returns a Signature object that implements the specified signature algorithm.
    `static int` | Security.`insertProviderAt​(Provider provider, int position)` | Adds a new provider, at a specified position.
    `static KeyStore.Builder` | KeyStore.Builder.`newInstance​(String type, Provider provider, File file, KeyStore.ProtectionParameter protection)` | Returns a new Builder object.
    `static KeyStore.Builder` | KeyStore.Builder.`newInstance​(String type, Provider provider, KeyStore.ProtectionParameter protection)` | Returns a new Builder object.

    Constructors in java.security with parameters of type Provider
    Constructor | Description
    --- | ---
    `AlgorithmParameterGenerator​(AlgorithmParameterGeneratorSpi paramGenSpi, Provider provider, String algorithm)` | Creates an AlgorithmParameterGenerator object.
    `AlgorithmParameters​(AlgorithmParametersSpi paramSpi, Provider provider, String algorithm)` | Creates an AlgorithmParameters object.
    `KeyFactory​(KeyFactorySpi keyFacSpi, Provider provider, String algorithm)` | Creates a KeyFactory object.
    `KeyStore​(KeyStoreSpi keyStoreSpi, Provider provider, String type)` | Creates a KeyStore object of the given type, and encapsulates the given provider implementation (SPI object) in it.
    `SecureRandom​(SecureRandomSpi secureRandomSpi, Provider provider)` | Creates a `SecureRandom` object.
    `Service​(Provider provider, String type, String algorithm, String className, List<String> aliases, Map<String,​String> attributes)` | Construct a new service.

  - ### Uses of Provider in java.security.cert

    Methods in java.security.cert that return Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `Provider` | CertificateFactory.`getProvider()` | Returns the provider of this certificate factory.
    `Provider` | CertPathBuilder.`getProvider()` | Returns the provider of this `CertPathBuilder`.
    `Provider` | CertPathValidator.`getProvider()` | Returns the `Provider` of this `CertPathValidator`.
    `Provider` | CertStore.`getProvider()` | Returns the provider of this `CertStore`.

    Methods in java.security.cert with parameters of type Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `static CertificateFactory` | CertificateFactory.`getInstance​(String type, Provider provider)` | Returns a certificate factory object for the specified certificate type.
    `static CertPathBuilder` | CertPathBuilder.`getInstance​(String algorithm, Provider provider)` | Returns a `CertPathBuilder` object that implements the specified algorithm.
    `static CertPathValidator` | CertPathValidator.`getInstance​(String algorithm, Provider provider)` | Returns a `CertPathValidator` object that implements the specified algorithm.
    `static CertStore` | CertStore.`getInstance​(String type, CertStoreParameters params, Provider provider)` | Returns a `CertStore` object that implements the specified `CertStore` type.
    `void` | Certificate.`verify​(PublicKey key, Provider sigProvider)` | Verifies that this certificate was signed using the private key that corresponds to the specified public key.
    `void` | X509Certificate.`verify​(PublicKey key, Provider sigProvider)` | Verifies that this certificate was signed using the private key that corresponds to the specified public key.
    `void` | X509CRL.`verify​(PublicKey key, Provider sigProvider)` | Verifies that this CRL was signed using the private key that corresponds to the given public key.

    Constructors in java.security.cert with parameters of type Provider
    Constructor | Description
    --- | ---
    `CertificateFactory​(CertificateFactorySpi certFacSpi, Provider provider, String type)` | Creates a CertificateFactory object of the given type, and encapsulates the given provider implementation (SPI object) in it.
    `CertPathBuilder​(CertPathBuilderSpi builderSpi, Provider provider, String algorithm)` | Creates a `CertPathBuilder` object of the given algorithm, and encapsulates the given provider implementation (SPI object) in it.
    `CertPathValidator​(CertPathValidatorSpi validatorSpi, Provider provider, String algorithm)` | Creates a `CertPathValidator` object of the given algorithm, and encapsulates the given provider implementation (SPI object) in it.
    `CertStore​(CertStoreSpi storeSpi, Provider provider, String type, CertStoreParameters params)` | Creates a `CertStore` object of the given type, and encapsulates the given provider implementation (SPI object) in it.

  - ### Uses of Provider in javax.crypto

    Methods in javax.crypto that return Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `Provider` | Cipher.`getProvider()` | Returns the provider of this `Cipher` object.
    `Provider` | ExemptionMechanism.`getProvider()` | Returns the provider of this `ExemptionMechanism` object.
    `Provider` | KeyAgreement.`getProvider()` | Returns the provider of this `KeyAgreement` object.
    `Provider` | KeyGenerator.`getProvider()` | Returns the provider of this `KeyGenerator` object.
    `Provider` | Mac.`getProvider()` | Returns the provider of this `Mac` object.
    `Provider` | SecretKeyFactory.`getProvider()` | Returns the provider of this `SecretKeyFactory` object.

    Methods in javax.crypto with parameters of type Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Cipher` | Cipher.`getInstance​(String transformation, Provider provider)` | Returns a `Cipher` object that implements the specified transformation.
    `static ExemptionMechanism` | ExemptionMechanism.`getInstance​(String algorithm, Provider provider)` | Returns an `ExemptionMechanism` object that implements the specified exemption mechanism algorithm.
    `static KeyAgreement` | KeyAgreement.`getInstance​(String algorithm, Provider provider)` | Returns a `KeyAgreement` object that implements the specified key agreement algorithm.
    `static KeyGenerator` | KeyGenerator.`getInstance​(String algorithm, Provider provider)` | Returns a `KeyGenerator` object that generates secret keys for the specified algorithm.
    `static Mac` | Mac.`getInstance​(String algorithm, Provider provider)` | Returns a `Mac` object that implements the specified MAC algorithm.
    `static SecretKeyFactory` | SecretKeyFactory.`getInstance​(String algorithm, Provider provider)` | Returns a `SecretKeyFactory` object that converts secret keys of the specified algorithm.
    `PKCS8EncodedKeySpec` | EncryptedPrivateKeyInfo.`getKeySpec​(Key decryptKey, Provider provider)` | Extract the enclosed PKCS8EncodedKeySpec object from the encrypted data and return it.

    Constructors in javax.crypto with parameters of type Provider
    Constructor | Description
    --- | ---
    `Cipher​(CipherSpi cipherSpi, Provider provider, String transformation)` | Creates a Cipher object.
    `ExemptionMechanism​(ExemptionMechanismSpi exmechSpi, Provider provider, String mechanism)` | Creates a ExemptionMechanism object.
    `KeyAgreement​(KeyAgreementSpi keyAgreeSpi, Provider provider, String algorithm)` | Creates a KeyAgreement object.
    `KeyGenerator​(KeyGeneratorSpi keyGenSpi, Provider provider, String algorithm)` | Creates a KeyGenerator object.
    `Mac​(MacSpi macSpi, Provider provider, String algorithm)` | Creates a MAC object.
    `SecretKeyFactory​(SecretKeyFactorySpi keyFacSpi, Provider provider, String algorithm)` | Creates a SecretKeyFactory object.

  - ### Uses of Provider in javax.net.ssl

    Methods in javax.net.ssl that return Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `Provider` | KeyManagerFactory.`getProvider()` | Returns the provider of this `KeyManagerFactory` object.
    `Provider` | SSLContext.`getProvider()` | Returns the provider of this `SSLContext` object.
    `Provider` | TrustManagerFactory.`getProvider()` | Returns the provider of this `TrustManagerFactory` object.

    Methods in javax.net.ssl with parameters of type Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `static KeyManagerFactory` | KeyManagerFactory.`getInstance​(String algorithm, Provider provider)` | Returns a `KeyManagerFactory` object that acts as a factory for key managers.
    `static SSLContext` | SSLContext.`getInstance​(String protocol, Provider provider)` | Returns a `SSLContext` object that implements the specified secure socket protocol.
    `static TrustManagerFactory` | TrustManagerFactory.`getInstance​(String algorithm, Provider provider)` | Returns a `TrustManagerFactory` object that acts as a factory for trust managers.

    Constructors in javax.net.ssl with parameters of type Provider
    Constructor | Description
    --- | ---
    `KeyManagerFactory​(KeyManagerFactorySpi factorySpi, Provider provider, String algorithm)` | Creates a KeyManagerFactory object.
    `SSLContext​(SSLContextSpi contextSpi, Provider provider, String protocol)` | Creates an SSLContext object.
    `TrustManagerFactory​(TrustManagerFactorySpi factorySpi, Provider provider, String algorithm)` | Creates a TrustManagerFactory object.

  - ### Uses of Provider in javax.security.auth.login

    Methods in javax.security.auth.login that return Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `Provider` | Configuration.`getProvider()` | Return the Provider of this Configuration.

    Methods in javax.security.auth.login with parameters of type Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Configuration` | Configuration.`getInstance​(String type, Configuration.Parameters params, Provider provider)` | Returns a Configuration object of the specified type.

  - ### Uses of Provider in javax.smartcardio

    Methods in javax.smartcardio that return Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `Provider` | TerminalFactory.`getProvider()` | Returns the provider of this TerminalFactory.

    Methods in javax.smartcardio with parameters of type Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `static TerminalFactory` | TerminalFactory.`getInstance​(String type, Object params, Provider provider)` | Returns a TerminalFactory of the specified type that is initialized with the specified parameters.

  - ### Uses of Provider in javax.xml.crypto.dsig

    Methods in javax.xml.crypto.dsig that return Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `Provider` | TransformService.`getProvider()` | Returns the provider of this `TransformService`.
    `Provider` | XMLSignatureFactory.`getProvider()` | Returns the provider of this `XMLSignatureFactory`.

    Methods in javax.xml.crypto.dsig with parameters of type Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `static TransformService` | TransformService.`getInstance​(String algorithm, String mechanismType, Provider provider)` | Returns a `TransformService` that supports the specified algorithm URI (ex: `Transform.XPATH2`) and mechanism type (ex: DOM) as supplied by the specified provider.
    `static XMLSignatureFactory` | XMLSignatureFactory.`getInstance​(String mechanismType, Provider provider)` | Returns an `XMLSignatureFactory` that supports the requested XML processing mechanism and representation type (ex: "DOM"), as supplied by the specified provider.

  - ### Uses of Provider in javax.xml.crypto.dsig.keyinfo

    Methods in javax.xml.crypto.dsig.keyinfo that return Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `Provider` | KeyInfoFactory.`getProvider()` | Returns the provider of this `KeyInfoFactory`.

    Methods in javax.xml.crypto.dsig.keyinfo with parameters of type Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `static KeyInfoFactory` | KeyInfoFactory.`getInstance​(String mechanismType, Provider provider)` | Returns a `KeyInfoFactory` that supports the requested XML processing mechanism and representation type (ex: "DOM"), as supplied by the specified provider.

  - ### Uses of Provider in jdk.security.jarsigner

    Methods in jdk.security.jarsigner with parameters of type Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `JarSigner.Builder` | JarSigner.Builder.`digestAlgorithm​(String algorithm, Provider provider)` | Sets the digest algorithm from the specified provider.
    `JarSigner.Builder` | JarSigner.Builder.`signatureAlgorithm​(String algorithm, Provider provider)` | Sets the signature algorithm from the specified provider.

  - ### Uses of Provider in org.ietf.jgss

    Methods in org.ietf.jgss with parameters of type Provider
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract void` | GSSManager.`addProviderAtEnd​(Provider p, Oid mech)` | This method is used to indicate to the GSSManager that the application would like a particular provider to be used if no other provider can be found that supports the given mechanism.
    `abstract void` | GSSManager.`addProviderAtFront​(Provider p, Oid mech)` | This method is used to indicate to the GSSManager that the application would like a particular provider to be used ahead of all others when support is desired for the given mechanism.