All Projects → NilFoundation → crypto3

NilFoundation / crypto3

Licence: MIT license
Modern Cryptography Suite in C++17

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to crypto3

textTinyR
Text Processing for Small or Big Data Files in R
Stars: ✭ 32 (+52.38%)
Mutual labels:  boost
Boost-for-Android-Prebuilt
boost for android
Stars: ✭ 58 (+176.19%)
Mutual labels:  boost
node-movehub
Node.js interface for the Lego Boost Move Hub 🤖 🐱 🎸 🚚
Stars: ✭ 57 (+171.43%)
Mutual labels:  boost
lexical cast
General literal text conversions, such as an int represented as a string, or vice versa
Stars: ✭ 23 (+9.52%)
Mutual labels:  boost
boost-wintls
Native Windows TLS stream wrapper for use with boost::asio
Stars: ✭ 24 (+14.29%)
Mutual labels:  boost
axmldec
Stand-alone binary AndroidManifest.xml decoder
Stars: ✭ 151 (+619.05%)
Mutual labels:  boost
SierraChartZorroPlugin
A Zorro broker API plugin for Sierra Chart, written in Win32 C++.
Stars: ✭ 22 (+4.76%)
Mutual labels:  boost
XPS9570-8570H-macos
9570 mac完善&&超频指南
Stars: ✭ 21 (+0%)
Mutual labels:  boost
evm-mina-verification
In-EVM Mina State Verification
Stars: ✭ 58 (+176.19%)
Mutual labels:  crypto3
ufw
A minimalist framework for rapid server side applications prototyping in C++ with dependency injection support.
Stars: ✭ 19 (-9.52%)
Mutual labels:  boost
type index
Runtime/Compile time copyable type info.
Stars: ✭ 20 (-4.76%)
Mutual labels:  boost
ZeroMQ
🚀 Client/Server & Pub/Sub Examples with ZeroMQ & Boost
Stars: ✭ 33 (+57.14%)
Mutual labels:  boost
Boost-Python-Examples
Implementation of C++ Boost Python Examples, With python3.5+ support
Stars: ✭ 34 (+61.9%)
Mutual labels:  boost
Boost.toml
header-only C++(98|11|14|17) TOML v0.5.0 parser/encoder depending on Boost
Stars: ✭ 26 (+23.81%)
Mutual labels:  boost
SpecIde
Let's try something with SFML.
Stars: ✭ 27 (+28.57%)
Mutual labels:  boost
cpp-code-snippets
Some useful C++ code snippets
Stars: ✭ 35 (+66.67%)
Mutual labels:  boost
build-scripts
Utility scripts for building of 3rd-party libraries
Stars: ✭ 33 (+57.14%)
Mutual labels:  boost
Open-Infra-Platform
This is the official repository of the open-source Open Infra Platform software (as of April 2020).
Stars: ✭ 26 (+23.81%)
Mutual labels:  boost
texugo
🦡 Fast, flexible, multiplatform, lightweight and, dependency-free message gateway
Stars: ✭ 18 (-14.29%)
Mutual labels:  boost
libhttpserver
A simple, easy to use C++ 11 based HTTP web server
Stars: ✭ 19 (-9.52%)
Mutual labels:  boost

=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 an umbrella-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.

Contents

  1. Repository Structure
  2. Repository Contents
  3. Building
  4. Contributing
  5. Community

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:

Building

Dependencies

Clang (>= 11.0)/GCC (>= 10.0)/MSVC (>= 14.20)

CMake (>= 3.6)

Boost (>= 1.76)

Clone & Build

git clone --recurse-submodules https://github.com/nilfoundation/crypto3.git 
cd crypto3 && mkdir build && cd build
cmake ..
make tests

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.

Community

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].