KO
|
EN
gitlite — search
Search
#python
#golang
#nodejs
#javascript
#java
#machine-learning
#tensorflow
#swift
#hacktoberfest
#android
#neural-network
#django
milo
★ 78
Open GitHub ↗
Cryptography library for modern C++.
Download README (.md)
Explore Similar Repositories
goji
:
Commitizen-like Emoji Commit Tool written in Go and AI commit message generator (think cz-emoji and other commitizen adapters but in go) 🚀
react-canvas-editor
:
React version of canvas editor
YyFlight.ToDoList
:
✍【.NET8 MongoDB 待办清单系统】.NET8 MongoDB从入门到实战基础教程,该项目后端使用的是.NET8、前端页面使用Blazor、使用MongoDB存储数据,更多相关内容大家可以看目录中的MongoDB从入门到实战的相关教程。该系列教程可作为.NET Core入门项目进行学习,感兴趣的小伙伴可以关注博主和我一起学习共同进步。
langchainjs-quickstart-demo
:
Build a generative AI application using LangChain.js, from local to Azure
resilience4j-spring-boot3-demo
:
A Spring Boot 3 demo which shows how to use the Resilience4j Spring Boot 3 Starter
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
milo
?
Download (.md)
## Description Cryptography library for modern C++. Features: - Constexpr. - Oneliners. - Assembly optimized. - Backend dispatching based on CPU capabilities. - Throwing and non-throwing overloads. - Allocation and allocation-free interfaces. - Support for the majority of container types as inputs and outputs. - Support for user defined container types. - Overloads that remove playing with pointers. - Pointer type casting free api, casting from `char*` to `unsigned char*` is not necessary. - Returns a value of the type the user needs, specified by template parameter. - Swapping algorithm by swapping the type. - Zeroing all sensitive data. Requirements: - C++ 20 Compiler - C++ 20 Standard library Optional: - Netwide Assembler Tested with: - `x86-64-linux` - `clang version 14.0.6` - `gcc version 12.2.0` - `nasm version 2.16.01` - `x86-64-windows-11` - `msvc version 14.00.24245` - `nasm version 2.16.01` ## Motivation The library aims to provide modern and user-friendly interfaces: ```c++ auto digest = milo::primitive::hash::digest<milo::primitive::hash::sha_2_256<>>("message"sv); ``` ```c++ try { using namespace milo::literal; using aead = milo::primitive::aead::chacha_20_poly_1305<>; auto key = "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"_base_16; auto iv = "000102030405060708090a0b"_base_16; auto [ciphertext, mac] = milo::primitive::aead::encrypt<aead, std::string>(key, iv, "aad"_cv, "message"_cv); auto plaintext = milo::primitive::aead::decrypt<aead, std::string>(key, iv, "aad"_cv, ciphertext, mac); } catch (const milo::error& error) { } ``` More algorithms and interfaces are available, including stateful streaming interfaces. Information on how to use them can be found in the [reference](doc/reference.md). ## Roadmap Roadmap is [here](doc/roadmap.md). ## Integration Integration guide is [here](doc/integration.md). ## Reference Reference guide is [here](doc/reference.md). ## Algorithms Algorithms index is [here](doc/algorithms.md). ## Benchmarking Benchmarking guide is [here](doc/benchmarking.md). ## Contact Can reach me via email address available on my [GitHub profile](https://github.com/milosob). Need to be logged in to see it.