Stay organized with collections
Save and categorize content based on your preferences.
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.
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:
Package Specification
- PKCS #1: RSA Cryptography Specifications, Version 2.2 (RFC 8017)
- Federal Information Processing Standards Publication (FIPS PUB) 186:
Digital Signature Standard (DSS)
For further documentation, please see:
Interfaces
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[],null,["# java.security.interfaces\n\nAdded in [API level 1](/guide/topics/manifest/uses-sdk-element#ApiLevels) \n\njava.security.interfaces\n========================\n\nProvides 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.\n\n\nNote that these interfaces are intended only for key\nimplementations whose key material is accessible and\navailable. These interfaces are not intended for key\nimplementations whose key material resides in\ninaccessible, protected storage (such as in a\nhardware device).\n\n\nFor more developer information on how to use these\ninterfaces, including information on how to design\n`Key` classes for hardware devices, please refer\nto these cryptographic provider developer guides:\n\n- [How to Implement a Provider in the Java Cryptography Architecture](https://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/HowToImplAProvider.html)\n\nPackage Specification\n---------------------\n\n- PKCS #1: RSA Cryptography Specifications, Version 2.2 (RFC 8017)\n- Federal Information Processing Standards Publication (FIPS PUB) 186: Digital Signature Standard (DSS)\n\nRelated Documentation\n---------------------\n\nFor further documentation, please see:\n\n- [Java Cryptography Architecture Reference Guide}](https://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec.html)\n\nInterfaces\n----------\n\n|----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [DSAKey](/reference/java/security/interfaces/DSAKey) | The interface to a DSA public or private key. |\n| [DSAKeyPairGenerator](/reference/java/security/interfaces/DSAKeyPairGenerator) | An interface to an object capable of generating DSA key pairs. |\n| [DSAParams](/reference/java/security/interfaces/DSAParams) | Interface to a DSA-specific set of key parameters, which defines a DSA *key family*. |\n| [DSAPrivateKey](/reference/java/security/interfaces/DSAPrivateKey) | The standard interface to a DSA private key. |\n| [DSAPublicKey](/reference/java/security/interfaces/DSAPublicKey) | The interface to a DSA public key. |\n| [ECKey](/reference/java/security/interfaces/ECKey) | The interface to an elliptic curve (EC) key. |\n| [ECPrivateKey](/reference/java/security/interfaces/ECPrivateKey) | The interface to an elliptic curve (EC) private key. |\n| [ECPublicKey](/reference/java/security/interfaces/ECPublicKey) | The interface to an elliptic curve (EC) public key. |\n| [EdECKey](/reference/java/security/interfaces/EdECKey) | An interface for an elliptic curve public/private key as defined by [RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA)](https://tools.ietf.org/html/rfc8032). |\n| [EdECPrivateKey](/reference/java/security/interfaces/EdECPrivateKey) | An interface for an elliptic curve private key as defined by [RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA)](https://tools.ietf.org/html/rfc8032). |\n| [EdECPublicKey](/reference/java/security/interfaces/EdECPublicKey) | An interface for an elliptic curve public key as defined by [RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA)](https://tools.ietf.org/html/rfc8032). |\n| [RSAKey](/reference/java/security/interfaces/RSAKey) | The interface to a public or private key in [PKCS#1 v2.2](https://tools.ietf.org/rfc/rfc8017.txt) standard, such as those for RSA, or RSASSA-PSS algorithms. |\n| [RSAMultiPrimePrivateCrtKey](/reference/java/security/interfaces/RSAMultiPrimePrivateCrtKey) | The interface to an RSA multi-prime private key, as defined in the [PKCS#1 v2.2](https://tools.ietf.org/rfc/rfc8017.txt) standard, using the *Chinese Remainder Theorem* (CRT) information values. |\n| [RSAPrivateCrtKey](/reference/java/security/interfaces/RSAPrivateCrtKey) | The interface to an RSA private key, as defined in the [PKCS#1 v2.2](https://tools.ietf.org/rfc/rfc8017.txt) standard, using the *Chinese Remainder Theorem* (CRT) information values. |\n| [RSAPrivateKey](/reference/java/security/interfaces/RSAPrivateKey) | The interface to an RSA private key. |\n| [RSAPublicKey](/reference/java/security/interfaces/RSAPublicKey) | The interface to an RSA public key. |\n| [XECKey](/reference/java/security/interfaces/XECKey) | An interface for an elliptic curve public/private key as defined by RFC 7748. |\n| [XECPrivateKey](/reference/java/security/interfaces/XECPrivateKey) | An interface for an elliptic curve private key as defined by RFC 7748. |\n| [XECPublicKey](/reference/java/security/interfaces/XECPublicKey) | An interface for an elliptic curve public key as defined by RFC 7748. |\n\n-\n\n Interfaces\n ----------\n\n - [DSAKey](/reference/java/security/interfaces/DSAKey)\n - [DSAKeyPairGenerator](/reference/java/security/interfaces/DSAKeyPairGenerator)\n - [DSAParams](/reference/java/security/interfaces/DSAParams)\n - [DSAPrivateKey](/reference/java/security/interfaces/DSAPrivateKey)\n - [DSAPublicKey](/reference/java/security/interfaces/DSAPublicKey)\n - [ECKey](/reference/java/security/interfaces/ECKey)\n - [ECPrivateKey](/reference/java/security/interfaces/ECPrivateKey)\n - [ECPublicKey](/reference/java/security/interfaces/ECPublicKey)\n - [EdECKey](/reference/java/security/interfaces/EdECKey)\n - [EdECPrivateKey](/reference/java/security/interfaces/EdECPrivateKey)\n - [EdECPublicKey](/reference/java/security/interfaces/EdECPublicKey)\n - [RSAKey](/reference/java/security/interfaces/RSAKey)\n - [RSAMultiPrimePrivateCrtKey](/reference/java/security/interfaces/RSAMultiPrimePrivateCrtKey)\n - [RSAPrivateCrtKey](/reference/java/security/interfaces/RSAPrivateCrtKey)\n - [RSAPrivateKey](/reference/java/security/interfaces/RSAPrivateKey)\n - [RSAPublicKey](/reference/java/security/interfaces/RSAPublicKey)\n - [XECKey](/reference/java/security/interfaces/XECKey)\n - [XECPrivateKey](/reference/java/security/interfaces/XECPrivateKey)\n - [XECPublicKey](/reference/java/security/interfaces/XECPublicKey)"]]