diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..a606b2d --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,19 @@ +Copyright (C) 2016 Southern Storm Software, Pty Ltd. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..22d985b --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ + +Noise-Java Library +================== + +Noise-Java is a plain Java implementation of the +[Noise Protocol](http://noiseprotocol.org), intended as a +reference implementation. The code is distributed under the +terms of the MIT license. + +This library is written in plain Java, making use of the Java Cryptography +Extension (JCE) to provide cryptographic primitives and infrastructure. +Where a primitive is not normally present in standard JDK's, Noise-Java +provides fallback implementations. It is assumed that the platform JDK +has the following providers built-in: + + * SHA-256 + * SHA-512 + * AES/GCM/NoPadding + +If AES/GCM/NoPadding is not available, then the Noise-Java library will +emulate GCM on top of AES/CTR/NoPadding using a custom GHASH implementation. +If CTR mode isn't available either, then the "AESGCM" cipher cannot be used. + +All other cryptographic primitives are emulated with plain Java +reference implementations: ChaChaPoly, BLAKE2s, BLAKE2b, Curve25519, +and Curve448. + +If you have better implementations of the cryptographic primitives +available, you can modify the createDH(), createCipher(), and +createHash() functions in the "Noise" class to integrate your versions. + +The [documentation](http://rweather.github.com/noise-java/index.html) +contains more information on the library, examples, and how to build it. + +For more information on this library, to report bugs, to contribute, +or to suggest improvements, please contact the author Rhys Weatherley via +[email](mailto:rhys.weatherley@gmail.com).