GithubHelp home page GithubHelp logo

22388o / crypto3 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nilfoundation/crypto3

1.0 0.0 0.0 712 KB

C++ Modern Cryptography Suite

Home Page: https://crypto3.nil.foundation/projects/crypto3

License: MIT License

CMake 100.00%

crypto3's Introduction

=nil; Foundation's Cryptography Suite (libcrypto3)

Build all Test zk and algebra

Modern cryptography suite built in C++ with concept-based architecture.

Development repository is https://github.com/nilfoundation/crypto3.

Rationale, detailed tutorials and references are available at https://crypto3.nil.foundation/projects/crypto3.

Developed by =nil; Crypto3 and supported by =nil; Foundation.

All the communication is being processed via several methods.

This repository is a master-repository for the whole suite. Particular-purposed libraries repositories (e.g. block or hash) are not supposed to be used outside the suite or properly constructed CMake project and should be handled with great care.

Repository Structure

This repository structure varies depending on particular usage purpose:

Generic cryptography suite usage.

Useful for submoduling with projects with CMake build system or for usual build and install routine.

This case gets covered with submodule-based header-only superproject including all the stable libraries available. Every library is emplaced in libs/%library_name% as submodule. Depends on Boost (https://boost.org).

Handled by branches master, develop and #issue-name branches (uses git-flow) along with semantic versioning-tagged master branch commits (e.g. 1.2.34).

Uses CMake build system.

Custom libraries set usage.

Suite is designed in a way for the every particular user could include and exclude particular libraries and features depending on a usecase.

This could be useful for keeping a codebase small and tiny along with keeping submodules tree height <= 1. This could be covered by several ways:

  1. Taking a look at dependency graph of each library (included in every library repository description) and embedding the particular set of libraries in the user's project.

Fine example of such embedding is =nil; Foundation's Actor Library (https://github.com/nilfoundation/actor). It uses only hashes so the dependency graph requires for the project to submodule block ciphers library and optional codec library for testing purposes. So, the root Actor repository has only related libraries submoduled: block, codec and hash.

Repository Contents

This particular repository contains all of the modules available within the suite as submodules emplaced in libs directory. This is called "Modularized Version".

Modularized Version

Modularized version contains all of the modules available emplaced in libs directory:

Contributing

Issues

Preferred way to submit an issue is to submit that to the particular module you think the trouble is in. In case you are not sure, submit an issue to this (master) repository, so the development team could review the contents and create a necessary issues set in modules related.

Pull Requests

Pull request submission is something more complicated because of the suite is highly modular and particular changes are required to be pulled in convenient repository.

Depending on what you want to change, proceed your pull request to following repositories:

In case you are not sure which repository to proceed to, create an issue in this repository and ask.

Contacts

This cryptography suite is authored by =nil; Crypto3 team, so you can contact it several ways:

  • E-Mail. Just drop a line to [email protected].
  • Telegram Group. Join our Telegram group @nilcrypto3 and ask any question in there.
  • Issue. Issue which does not belong to any particular module (or you just don't know where to put it) can be created in this repository. The team will answer that.
  • Discussion Topic (proposal, tutorial request, suggestion, etc). Would be happy to discuss that in the repository's GitHub Discussions: https://github.com/NilFoundation/crypto3/discussions

crypto3's People

Contributors

jasoncoombs avatar nemothenoone avatar nkaskov avatar zerg1996 avatar

Stargazers

 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.