Sharing, shipping, transmission or transfer (exporting) of almost all encryption software in either source code or object code is subject to US export regulations. Even most publicly available "dual-use" encryption code requires a license or License Exception to ship outside the U.S.
A License Exception under the EAR is an authorization based on a set of criteria, which when met, allows the exporter to circumvent export licensing requirements. The release of publicly available encryption code under the EAR is generally authorized by License Exception TSU (Technology and Software - Unrestricted) whereby the exporter provides the US Government with a "one-time" notification of the location of the publicly available encryption code prior to or at the time the code is placed in the public domain. Notification after transmission of the code outside the US is an export control violation.
In addition, US persons are prohibited, without prior authorization, from providing technical assistance (i.e., providing instruction, skills training, a working knowledge, and consulting services) to a foreign national with the intent to assist in the overseas development or manufacture of encryption software that is subject to U.S. Government notification or authorization. This prohibition does NOT limit university personnel from teaching or discussing general information about cryptography or developing or sharing encryption code within the United States that arises during, or results from, fundamental research.
Three license exceptions are available for the university when the tangible export of items and software containing encryption code is necessary for travel or relocation:
There are reporting requirements to the Commerce Department related to the export of strong crypto products, and there may be a 30 day delay required. Contact the Office of Export and Secure Research Compliance if you have questions or need further information.
Source code is a convenient expression of one or more processes that may be turned by a programming system into equipment executable form (“object code” (or object language)). A computer program's source code is the collection of files needed to convert from human-readable form to some kind of computer-executable form. The source code may be converted into an executable file by a compiler, or executed on the fly from the human readable form with the aid of an interpreter.
Object code (or object language) is an equipment executable form of a convenient expression of one or more processes (“source code” (or source language)) that has been converted by a programming system. In other words, object code is the representation of code that a compiler or assembler generates by processing a source code file. The object code file contains a sequence of machine-readable instructions that is processed by the CPU in a computer. Operating system or application software is usually in the form of compiled object code.
This material is adapted from the basic design and content of Stanford University's Export Controls page.
We appreciate Stanford University in granting us permission to use their content.