Skip to content
/ arkana Public

High-speed C++ header-only Camellia cipher (ecb, ctr), CRC32 (0xEDB88320), SHA2(SHA256,SHA512) implementations (with Intel AVX2)

License

Notifications You must be signed in to change notification settings

ttsuki/arkana

Repository files navigation

𝒂𝒓𝒌a𝒏𝒂

Something of an fs infra library (Intel AVX2 accelerated) for C++17


arkana::ark

arkana::ark: A useful infra library collection (header-only library)

  • intrinsics.h: Type conversion, Bit-manipulation, Multi-precision arithmetic helper
  • cpuid.h: CPU feature flag loader
  • uint128.h: Unsigned 128 bit integer and bitwise-, arithmetic-, and comparing- operators
  • xmm.h: Typed SSE/AVX integer vector operation wraper library (vu32x4, vu16x16, etc)
  • lutgen.h: Compile-time LUT generation helper
  • hexilit.h: Compile-time hexadecimal-integer parser
  • base64.h: Compile-time base64 decoder

arkana.lib

arkana::camellia: Camellia Encryption Algorithm (ECB-mode: RFC 3713 / CTR-mode: RFC 5528)

arkana::crc32: CRC-32 (ISO 3309)

arkana::sha2: SHA-1, SHA-2(SHA-256,SHA-224,SHA-512,SHA-384,SHA-512/224,SHA-512/256) (NIST FIPS PUB 180-4)


arkana-test

  • Tests for arkana.lib (using googletest)

Getting started

Visual Studio

  1. Include arkana.lib.vcxproj into your solution.
  2. Reference it from your project.

CMake

Do cmake.


MIT License Copyright (c) 2020-2022 ttsuki

About

High-speed C++ header-only Camellia cipher (ecb, ctr), CRC32 (0xEDB88320), SHA2(SHA256,SHA512) implementations (with Intel AVX2)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages