According to http://docs.oracle.com/javase/6/docs/technotes/guides/security/overview/jsoverview.html:
For historical (export control) reasons, the cryptography APIs are organized into two distinct packages. The
java.security
package contains classes that are not subject to export controls (likeSignature
andMessageDigest
). Thejavax.crypto
package contains classes that are subject to export controls (likeCipher
andKeyAgreement
).
What does this mean?
What is the difference?
Note: This document reference is quoted in Java EE doc in security section >> http://docs.oracle.com/javaee/6/tutorial/doc/bnbwj.html | is this ref outdated ?
javax.crypto. Provides the classes and interfaces for cryptographic operations. javax.crypto.interfaces. Provides interfaces for Diffie-Hellman keys as defined in RSA Laboratories' PKCS #3.
Although AES is free for any use public or private, commercial or non-commercial programs that provide encryption capabilities are subject to U.S. export controls and sanctions administered by the Bureau of Industry and Security (BIS) under the Export Administration Regulations (EAR) and the Commerce Control List (CCL) ...
U.S. export rules. U.S. non-military exports are controlled by Export Administration Regulations (EAR), a short name for the U.S. Code of Federal Regulations (CFR) Title 15 chapter VII, subchapter C.
The Java Cryptography Architecture (JCA) is a set of APIs to implement concepts of modern cryptography such as digital signatures, message digests, and certificates.
The first thing to note is that the text you quoted starts 'for historic reasons'.
The USA had export controls over some cryptographic algorithms and implementations above certain key lengths. They were mostly dropped during the Clinton administration: certainly those that affected Java. Any reference you read to them in reference to Java cryptography is obsolete.
Java is however affected by crypto import policies, and that's why the Unlimited Strength Crypto Policy download exists. If it's legal in your jurisdiction, you can download and install it. All it does is enable code that is already present in the JRE and which therefore has already been exported. QED
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With