JCE History flashcards
JCE History · Build recall with a focused review session.
32 cards. Read the term and the definition here. The deck at the top of this page is optional.
- JCE acronym
- Java Cryptography Extension: a Java API and provider framework for encryption, key agreement, and message authentication codes, originally distributed separately and later bundled into the JDK.
- JCE 1.2 release year
- JCE 1.2 shipped in 1998 with JDK 1.2, introducing javax.crypto classes such as Cipher, KeyGenerator, SecretKey, and Mac along with the SunJCE provider.
- JCE separate installation era
- Before J2SE 1.4 in 2002, JCE was an optional download installed over the JDK; bundling into the JDK ended the separate install step.
- JCA versus JCE
- JCA provides digests, signatures, key and certificate management; JCE extends it with encryption, key agreement, and MAC services under javax.crypto.
- SunJCE provider
- Sun's reference JCE provider, registered as 'SunJCE', historically supplied DES, DESede, AES, Blowfish, RSA ciphers, and Diffie-Hellman key agreement.
- Unlimited strength policy files
- Files named local_policy.jar and US_export_policy.jar that lifted export-driven key-length caps; required manual installation until JDK 8u161 made unlimited strength the default.
- Export control impact
- U.S. export regulations limited symmetric key lengths in early JCE releases, forcing weaker defaults and a separate strong-crypto download for many years.
- Bouncy Castle origin
- A clean-room JCE provider created in 2000, offering AES, elliptic curve, and other algorithms earlier than Sun's provider and widely used in constrained environments.
- Provider registration mechanism
- Providers are registered through java.security.Security or the java.security.properties file; JCE looks up algorithms by name across registered providers in order.
- J2SE 1.4 bundling
- In 2002, JCE became part of the standard JDK distribution, so applications no longer needed to install the extension separately.
- AES added to SunJCE
- AES support arrived in SunJCE with J2SE 5.0 in 2004, replacing DESede as the recommended symmetric cipher for new applications.
- SunPKCS11 provider
- Introduced in J2SE 5.0, this provider lets JCE delegate cryptographic operations to PKCS#11 devices such as hardware security modules and smart cards.
- Default unlimited strength date
- JDK 8 update 161 in 2018 enabled unlimited-strength cryptography by default, ending the policy-file workaround for most deployments.
- javax.crypto package
- The package introduced by JCE containing Cipher, KeyGenerator, KeyAgreement, Mac, SecretKey, and related exception and specification classes.
- Cipher class role
- The central JCE class that performs encryption and decryption; it is instantiated by algorithm name and configured with mode, key, and parameters.
- JCE modularization in JDK 9
- Java SE 9 moved javax.crypto into the java.base module and provider implementations into jdk.crypto modules, changing how deployments assemble crypto support.
- DESede legacy status
- Triple DES remained available in SunJCE for backward compatibility but was discouraged and eventually disabled by default in newer JDKs due to small block size.
- RC4 removal history
- RC4 support was disabled by default in JDK 8 updates and later removed, reflecting the algorithm's known biases and the shift to AES-based ciphers.
- KeyGenerator class
- A JCE class that generates symmetric secret keys for algorithms such as AES and DESede, optionally initialized with a key size and secure random source.
- Mac class purpose
- The JCE class for message authentication codes such as HmacSHA256, providing integrity and authenticity checks using a shared secret key.
- KeyAgreement class
- A JCE class implementing key agreement protocols such as Diffie-Hellman, allowing two parties to derive a shared secret over an insecure channel.
- Transformation string format
- The Cipher.getInstance argument combining algorithm, mode, and padding, for example AES/CBC/PKCS5Padding or RSA/ECB/OAEPWithSHA-256AndMGF1Padding.
- JCE 1.1 characteristics
- The 1997 release preceding JCE 1.2, limited in algorithm coverage and key strength, and distributed as a separate extension to the JDK.
- Clean-room provider meaning
- A provider implemented without copying reference source code, reducing legal risk; Bouncy Castle's clean-room status helped its adoption.
- JCE in J2SE 5.0
- The 2004 release added AES, the SunPKCS11 provider, and improved key management, marking JCE's maturation as part of the standard platform.
- Jurisdiction policy file location
- Historically stored under the JDK's lib/security directory as local_policy.jar and US_export_policy.jar, controlling maximum permitted key lengths.
- JCE and TLS relationship
- JCE supplies the cipher and digest primitives used by JSSE to implement TLS, so provider and policy settings affect TLS handshake capabilities.
- Provider ordering effect
- Because JCE searches providers in registration order, placing a custom provider before SunJCE changes which implementation is selected for a given algorithm name.
- JCE API stability
- The javax.crypto API has remained largely source-compatible since JCE 1.2, while provider implementations and default algorithm policies changed across JDK releases.
- Historical MD5 usage
- MD5 appeared in early JCE-era digests and signatures but was later disabled for signed JARs and discouraged elsewhere after collision attacks were demonstrated.
- JCE documentation lineage
- The Java Cryptography Architecture reference guide evolved from separate JCE and JCA guides into a single document covering providers, services, and policy.
- JCE historical significance
- JCE established a pluggable, algorithm-independent crypto API in Java, shaping later platform security design and enabling third-party provider ecosystems.