MIRACL
======
What is MIRACL?
Multiprecision Integer and Rational Arithmetic Cryptographic Library – the MIRACL Crypto SDK – is a C software library that is widely regarded by developers as the gold standard open source SDK for elliptic curve cryptography (ECC).

Why is it different?
While many other cryptographic SDKs are focused on PC use, MIRACL also enables developers to build security into highly constrained environments, including embedded, mobile apps and SCADA.

Full documentation can be accessed here:
<ul type="disc">
  <li><a href="docs/miracl-user-manual/">About the MIRACL Crypto SDK: Introduction to installation</li>
  <li><a href="docs/miracl-explained/">MIRACL Explained: Licensing and reference manual</a></li>
</ul>

<h2>MIRACL enables</h2>

<ul type="disc">
<li>Reduced program code</li>
<li>Greatly simplified program development</li>
<li>Developer-designed APIs</li>
<li>Rapid implementation, using inline code wrappers, example programs and other innovations</li>
</ul>

These unique qualities are the reason MIRACL, and the solutions and services built using it, are in use in hundreds of organizations across the world, including BAE Systems, Hitachi, Intel, Panasonic, Toyota and many others.

<h2>Features and Benefits: why MIRACL is the right choice</h2>
MIRACL delivers a wide and unique range of benefits, enabling developers to secure even the most constrained environments quickly, easily and effectively. It features, amongst others:

<ul type="disc">
<li>An inline C++ wrapper – greatly simplifying program development</li>
<li>Over 25 example programs in C and C++, covering a wide range of applications, to give development a head start</li>
<li>Optimization of both embedded processors and RAM, to help developers overcome device and memory constraints</li>
<li>Compatibility with industry security technologies including AES encryption, RSA public key cryptography, Diffie-Hellman key exchange, DSA digital signature, and others</li>
<li>A set of tools that enable any new number-theoretic technique to be implemented quickly</li>
</ul>

The MIRACL library consists of well over 100 routines that cover all aspects of multi-precision arithmetic. Two new data-types are defined - big for large integers and flash (short for floating-slash) for large rational numbers. The large integer routines are based on Knuth’s algorithms, described in Chapter 4 of his classic work ‘The Art of Computer Programming’. Floating-slash arithmetic, which works with rounded fractions, was originally proposed by D. Matula and P. Kornerup. All routines have been thoroughly optimised for speed and efficiency, while at the same time remaining standard, portable C. However optional fast assembly language alternatives for certain time-critical routines are also included, particularly for the popular Intel 80x86 range of processors. A C++ interface is also provided. Full source code is included.

<h2>Bug Tracker</h2>
  MIRACL Ltd. uses JIRA for bug and feature tracking which is integrated with our development system.   If you find a bug, you should report bugs into the <a href="https://sdlc.certivox.com/browse/MIRACL">MIRACL bug tracker&nbsp;</a>.  You can check that the bug hasn't already been reported by searching for it. If you find the bug already reported, you can add a comment of your own about it, or change its status to &quot;Confirmed&quot;. If the bug hasn't been reported, you can file a new bug report.</p>
<h2>Community</h2>
  MIRACL Ltd. is most of all a community of like-minded information security professionals who believe that cryptography is a necessary tool to advance individual freedom and safeguard privacy. MIRACL Ltd. acts on that belief by providing tools that can be used to secure information, guard privacy and advance individual freedom.<br />
  Anyone who uses MIRACL Ltd. code or services is part of this global community, and we invite you to help shape MIRACL to better meet your needs. To make it yours!<br />
  Keep track of development and community news.</p>
<ul type="disc">
  <li>Follow @MIRACL on <a href="https://twitter.com/MIRACL">https://twitter.com/MIRACL</a></li>
  <li>Read our <a href="https://miracl.com/crypto-research-with-miracl-labs/">blog </a> for the latest security and crypto news first </li>
  <li>Have a question that's not a feature request or bug report? <u><a href="https://miracl.com/contact-miracl/">Contact Us.</a></u></li>
</ul>
<h2>Contributing:</h2>
  MIRACL Ltd. provides an Open Source suite of solutions for data security.  The MIRACL Ltd. team firmly believes that our solutions and the organizations and users who benefit by them all derive value from active contributions from the community.<br />
  You can contribute to help shape and improve our MIRACL Ltd. products.  If you have ideas and suggestions on new features and improvements that you would like to see and help bring to MIRACL Ltd., please fork the public available code on GitHub.
<h2>Authors:</strong></h2>
  <strong>MIRACL Ltd.</strong></p>
<ul>
  <li><a href="https://miracl.com/">https://miracl.com/</a></li>
  <li><a href="https://github.com/miracl">https://github.com/miracl</a></li>
  <li><a href="https://twitter.com/MIRACL">https://twitter.com/miracl</a></li>
  <li><a href="https://www.linkedin.com/company/miracl/">https://www.linkedin.com/company/miracl/</a></li>
</ul>

<h2>Copyright and License:</strong></h2>
<p>© 2018 MIRACL UK Ltd., All Rights Reserved.</p>
<p>MIRACL SDK provides developers with an  extensive and efficient set of cryptographic functions. For further information about its features and functionalities please refer to https://miracl.com.</p>
<p>MIRACL SDK is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p>
<p>MIRACL SDK is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.</p>
<p>You can be released from the requirements of the license by purchasing a commercial license. Buying such a license is mandatory as soon as you develop commercial activities involving MIRACL without disclosing the source code of your own applications, or shipping MIRACL with a closed source product.</P>
  <p>For full details regarding our MIRACL Ltd. terms of service please refer to the following links:</p>
<ul>
  <li><a href="https://miracl.com/privacy-policy/">Privacy Policy</a></li>
  <li><a href="https://miracl.com/gdpr-privacy-policy/">GDPR Data Protection Policy</a></li>
</ul>
