## Uses of Interface
java.security.PublicKey

- Packages that use PublicKey
  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.
  java.security.interfaces | Provides interfaces for generating RSA (Rivest, Shamir and Adleman AsymmetricCipher algorithm) keys as defined in the RSA Laboratory Technical Note PKCS#1, and DSA (Digital Signature Algorithm) keys as defined in NIST's FIPS-186.
  javax.crypto.interfaces | Provides interfaces for Diffie-Hellman keys as defined in RSA Laboratories' PKCS #3.
  javax.security.cert | Provides classes for public key certificates.
  javax.xml.crypto.dsig.keyinfo | Classes for parsing and processing `KeyInfo` elements and structures.

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

    Methods in java.security that return PublicKey
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected abstract PublicKey` | KeyFactorySpi.`engineGeneratePublic(KeySpec keySpec)` Generates a public key object from the provided key specification (key material).
    `PublicKey` | KeyFactory.`generatePublic(KeySpec keySpec)` Generates a public key object from the provided key specification (key material).
    `PublicKey` | KeyPair.`getPublic()` Returns a reference to the public key component of this key pair.
    `PublicKey` | Certificate.`getPublicKey()` Deprecated. Returns the key of the principal-key pair being guaranteed by the guarantor.
    `PublicKey` | Identity.`getPublicKey()` Deprecated. Returns this identity's public key.

    Methods in java.security with parameters of type PublicKey
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected abstract void` | SignatureSpi.`engineInitVerify(PublicKey publicKey)` Initializes this signature object with the specified public key for verification operations.
    `abstract Identity` | IdentityScope.`getIdentity(PublicKey key)` Deprecated. Retrieves the identity with the specified public key.
    `void` | Signature.`initVerify(PublicKey publicKey)` Initializes this object for verification.
    `void` | Identity.`setPublicKey(PublicKey key)` Deprecated. Sets this identity's public key.
    `boolean` | SignedObject.`verify(PublicKey verificationKey, Signature verificationEngine)` Verifies that the signature in this SignedObject is the valid signature for the object stored inside, with the given verification key, using the designated verification engine.

    Constructors in java.security with parameters of type PublicKey
    Constructor | Description
    --- | ---
    `KeyPair(PublicKey publicKey, PrivateKey privateKey)` Constructs a key pair from the given public key and private key.

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

    Methods in java.security.cert that return PublicKey
    Modifier and Type | Method | Description
    --- | --- | ---
    `PublicKey` | TrustAnchor.`getCAPublicKey()` Returns the public key of the most-trusted CA.
    `PublicKey` | PKIXCertPathValidatorResult.`getPublicKey()` Returns the public key of the subject (target) of the certification path, including any inherited public key parameters if applicable.
    `abstract PublicKey` | Certificate.`getPublicKey()` Gets the public key from this certificate.
    `PublicKey` | X509CertSelector.`getSubjectPublicKey()` Returns the subjectPublicKey criterion.

    Methods in java.security.cert with parameters of type PublicKey
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | X509CertSelector.`setSubjectPublicKey(PublicKey key)` Sets the subjectPublicKey criterion.
    `abstract void` | X509CRL.`verify(PublicKey key)` Verifies that this CRL was signed using the private key that corresponds to the given public key.
    `abstract void` | Certificate.`verify(PublicKey key)` 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.
    `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` | Certificate.`verify(PublicKey key, Provider sigProvider)` Verifies that this certificate was signed using the private key that corresponds to the specified public key.
    `abstract void` | X509CRL.`verify(PublicKey key, String sigProvider)` Verifies that this CRL was signed using the private key that corresponds to the given public key.
    `abstract void` | Certificate.`verify(PublicKey key, String sigProvider)` Verifies that this certificate was signed using the private key that corresponds to the specified public key.

    Constructors in java.security.cert with parameters of type PublicKey
    Constructor | Description
    --- | ---
    `PKIXCertPathBuilderResult(CertPath certPath, TrustAnchor trustAnchor, PolicyNode policyTree, PublicKey subjectPublicKey)` Creates an instance of `PKIXCertPathBuilderResult` containing the specified parameters.
    `PKIXCertPathValidatorResult(TrustAnchor trustAnchor, PolicyNode policyTree, PublicKey subjectPublicKey)` Creates an instance of `PKIXCertPathValidatorResult` containing the specified parameters.
    `TrustAnchor(String caName, PublicKey pubKey, byte[] nameConstraints)` Creates an instance of `TrustAnchor` where the most-trusted CA is specified as a distinguished name and public key.
    `TrustAnchor(X500Principal caPrincipal, PublicKey pubKey, byte[] nameConstraints)` Creates an instance of `TrustAnchor` where the most-trusted CA is specified as an X500Principal and public key.

  - ### Uses of PublicKey in java.security.interfaces

    Subinterfaces of PublicKey in java.security.interfaces
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `DSAPublicKey` The interface to a DSA public key.
    `interface` | `ECPublicKey` The interface to an elliptic curve (EC) public key.
    `interface` | `RSAPublicKey` The interface to an RSA public key.

  - ### Uses of PublicKey in javax.crypto.interfaces

    Subinterfaces of PublicKey in javax.crypto.interfaces
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `DHPublicKey` The interface to a Diffie-Hellman public key.

  - ### Uses of PublicKey in javax.security.cert

    Methods in javax.security.cert that return PublicKey
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract PublicKey` | Certificate.`getPublicKey()` Gets the public key from this certificate.

    Methods in javax.security.cert with parameters of type PublicKey
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract void` | Certificate.`verify(PublicKey key)` Verifies that this certificate was signed using the private key that corresponds to the specified public key.
    `abstract void` | Certificate.`verify(PublicKey key, String sigProvider)` Verifies that this certificate was signed using the private key that corresponds to the specified public key.

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

    Methods in javax.xml.crypto.dsig.keyinfo that return PublicKey
    Modifier and Type | Method | Description
    --- | --- | ---
    `PublicKey` | KeyValue.`getPublicKey()` Returns the public key of this `KeyValue`.

    Methods in javax.xml.crypto.dsig.keyinfo with parameters of type PublicKey
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract KeyValue` | KeyInfoFactory.`newKeyValue(PublicKey key)` Creates a `KeyValue` from the specified public key.

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, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.