compact3

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

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  DSAKey | The interface to a DSA public or private key.
  DSAKeyPairGenerator | An interface to an object capable of generating DSA key pairs.
  DSAParams | Interface to a DSA-specific set of key parameters, which defines a DSA key family.
  DSAPrivateKey | The standard interface to a DSA private key.
  DSAPublicKey | The interface to a DSA public key.
  ECKey | The interface to an elliptic curve (EC) key.
  ECPrivateKey | The interface to an elliptic curve (EC) private key.
  ECPublicKey | The interface to an elliptic curve (EC) public key.
  RSAKey | The interface to a public or private key in PKCS#1 v2.2 standard, such as those for RSA, or RSASSA-PSS algorithms.
  RSAMultiPrimePrivateCrtKey | The interface to an RSA multi-prime private key, as defined in the PKCS#1 v2.2 standard, using the Chinese Remainder Theorem (CRT) information values.
  RSAPrivateCrtKey | The interface to an RSA private key, as defined in the PKCS#1 v2.2 standard, using the Chinese Remainder Theorem (CRT) information values.
  RSAPrivateKey | The interface to an RSA private key.
  RSAPublicKey | The interface to an RSA public key.

## Package java.security.interfaces Description

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.

Note that these interfaces are intended only for key implementations whose key material is accessible and available. These interfaces are not intended for key implementations whose key material resides in inaccessible, protected storage (such as in a hardware device).

For more developer information on how to use these interfaces, including information on how to design `Key` classes for hardware devices, please refer to these cryptographic provider developer guides:

- How to Implement a Provider for the Java™ Cryptography Architecture

## Package Specification

- PKCS #1: RSA Cryptography Specifications, Version 2.2 (RFC 8017)
- Federal Information Processing Standards Publication (FIPS PUB) 186: Digital Signature Standard (DSS)

## Related Documentation

For further documentation, please see:

- Java™ Cryptography Architecture API Specification and Reference

Since:
  JDK1.1

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.