GithubHelp home page GithubHelp logo

pinkdiamond1 / oqs-engine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from open-quantum-safe/oqs-engine

0.0 1.0 0.0 257 KB

[not supported] An OpenSSL ENGINE that enables the use of post-quantum digital signature algorithms from liboqs.

Home Page: https://openquantumsafe.org/

License: MIT License

C 94.05% eC 0.23% CMake 5.71%

oqs-engine's Introduction

oqs-engine


NOTE: As of April 2021 we are no longer maintaining oqs-engine due to a lack of new contributors on this project. Our development on dynamic plugging algorithms into OpenSSL will focus on OpenSSL's provider interface via the oqs-provider sub-project.


oqs-engine is a C-based OpenSSL ENGINE that enables the use of post-quantum digital signature algorithms.

Overview

liboqs is an open source C library for quantum-resistant cryptographic algorithms. See here for more information.

oqs-engine is an OpenSSL ENGINE that provides pmeth (PKEY) and ameth (ASN1) operations for post-quantum digital signature algorithms supplied by liboqs. The engine also provides for dynamic assignment of openssl NIDs, which means updates/changes to the NIST algorithms supported by liboqs will be dynamically reflected by this ENGINE. oqs-engine aims to facilitate the integration of liboqs into generalised OpenSSL deployments.

Both liboqs and this ENGINE are part of the Open Quantum Safe (OQS) project, which aims to develop and prototype quantum-safe cryptography. More information about the project can be found here.

Status

The ENGINE requires OPENSSL 1.1.0g or later.

We do not recommend using this in a production environment or to protect sensitive data.

liboqs and this ENGINE are provided "as is", without warranty of any kind. See the LICENSE for the full disclaimer.

Limitations and Security

As research advances, the supported algorithms may see rapid changes in their security, and may even prove insecure against both classical and quantum computers.

We believe that the NIST Post-Quantum Cryptography standardization project is currently the best avenue to identifying potentially quantum-resistant algorithms, and strongly recommend that applications and protocols rely on the outcomes of the NIST standardization project when deploying quantum-safe cryptography.

While at the time of this writing there are no vulnerabilities known in any of the quantum-safe algorithms used by the ENGINE, it is advisable to wait on deploying quantum-safe algorithms until further guidance is provided by the standards community, especially from the NIST standardization project.

Quickstart

Linux

  1. Install dependencies:

    On Ubuntu:

      apt install cmake gcc ninja-build libssl-dev doxygen
    
  2. Get the source:

     git clone -b master https://github.com/open-quantum-safe/oqs-engine.git
     cd oqs-engine
    

    and build:

     mkdir build && cd build
     cmake -G"Ninja" ..
     ninja
    

By default, cmake looks for OpenSSL in /usr. If located elsewhere, the -DOPENSSL_ROOT_DIR=<dir> option can be passed to cmake, where <dir> specifies the directory in which cmake will look for OpenSSL.

All subsequent instructions assume we are in build.

  1. The main build result is lib/liboqse.so, the OpenSSL ENGINE shared library.

  2. Additionally, the oqse_test program is built in the tests directory. It can serve both for testing purposes and as a reference for using the ENGINE, and can be run either by:

  • invoking ninja run_tests

  • directly invocation of the program after setting the OPENSSL_ENGINES environment variable to point to build/lib directory so that the ENGINE can be found. i.e.:

      env OPENSSL_ENGINES = $(pwd)/lib ./tests/oqse_test
    

More information can be found in the Wiki.

Team

The Open Quantum Safe project is led by Douglas Stebila and Michele Mosca at the University of Waterloo.

Contributors to this ENGINE include:

  • John F Weston (Senetas Corporation)
  • Goutam Tamvada (University of Waterloo)

Acknowledgements

This engine was very much inspired by libsoula.

Financial support for the development of Open Quantum Safe has been provided by Amazon Web Services and the Tutte Institute for Mathematics and Computing. We'd like to make a special acknowledgement to the companies who have dedicated programmer time to contribute source code to OQS, including Amazon Web Services, Cisco Systems, evolutionQ, Microsoft Research, and Senetas Corporation.

Research projects which developed specific components of OQS have been supported by various research grants, including funding from the Natural Sciences and Engineering Research Council of Canada (NSERC); see here and here for funding acknowledgments.

oqs-engine's People

Contributors

dstebila avatar xvzcf avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.