Tsec
Type-safe general-cryptography library - https://jmcardon.github.io/tsec/
Install / Use
/learn @jmcardon/TsecREADME
________________________________________
\__ ___/ _____/\_ _____/\_ ___ \
| | \_____ \ | __)_ / \ \/
| | / \ | \\ \____
|____| /_______ //_______ / \______ /
\/ \/ \/
TSEC: A type-safe, functional, general purpose security and cryptography library.
Latest Release: 0.0.1-M11
For the current progress, please refer to the RoadMap
For version changes and additions, including breaking changes, see either release notes or the Version Changes page.
Note about using Windows™® with tsec
Windows™® is not supported.
Feel free to fork the project and add your own windows support.
Note on milestones:
Our Notation for versions is:
X.X.X
^ ^ ^____Minor
| |______Major
|________Complete redesign (i.e scalaz 7 vs 8)
All x.x.x-Mx releases are milestone releases. Thus, we do not guarantee binary compatibility or no api-breakage until
a concrete version(i.e 0.0.1). We aim to keep userland-apis relatively stable, but
internals shift as we find better/more performant abstractions.
We will guarantee compatibility between minor versions (i.e 0.0.1 => 0.0.2) but not major versions (0.0.1 => 0.1.0)
0.0.1-M11 is here for scala 2.12+ and Cats 1.0.1!
To get started, if you are on sbt 0.13.16+, add
| Name | Description | Examples | | ----- | ---------- | -------- | | tsec-common | Common crypto utilities | | | tsec-password | Password hashers: BCrypt and Scrypt | here| | tsec-cipher-jca | Symmetric encryption utilities | here| | tsec-cipher-bouncy | Symmetric encryption utilities | here| | tsec-mac | Message Authentication | here| | tsec-signatures | Digital signatures | here| | tsec-hash-jca | Message Digests (Hashing) | here| | tsec-hash-bouncy | Message Digests (Hashing) | here| | tsec-libsodium | Nicely-typed Libsodium JNI bridge | here| | tsec-jwt-mac | JWT implementation for Message Authentication signatures | here| | tsec-jwt-sig | JWT implementation for Digital signatures | here| | tsec-http4s | Http4s Request Authentication and Authorization | here|
To include any of these packages in your project use:
val tsecV = "0.0.1-M11"
libraryDependencies ++= Seq(
"io.github.jmcardon" %% "tsec-common" % tsecV,
"io.github.jmcardon" %% "tsec-password" % tsecV,
"io.github.jmcardon" %% "tsec-cipher-jca" % tsecV,
"io.github.jmcardon" %% "tsec-cipher-bouncy" % tsecV,
"io.github.jmcardon" %% "tsec-mac" % tsecV,
"io.github.jmcardon" %% "tsec-signatures" % tsecV,
"io.github.jmcardon" %% "tsec-hash-jca" % tsecV,
"io.github.jmcardon" %% "tsec-hash-bouncy" % tsecV,
"io.github.jmcardon" %% "tsec-libsodium" % tsecV,
"io.github.jmcardon" %% "tsec-jwt-mac" % tsecV,
"io.github.jmcardon" %% "tsec-jwt-sig" % tsecV,
"io.github.jmcardon" %% "tsec-http4s" % tsecV
)
Note on contributing
See CONTRIBUTING.md
A note on logging
We use log4s which is a logging facade over SLF4J. This implies you need to add a
binding to your classpath. Check https://www.slf4j.org/codes.html#StaticLoggerBinder
Big Thank you to our contributors (direct or indirect):
Robert Soeldner (Contributor/Maintainer)
Christopher Davenport(Contributor/Maintainer)
Harrison Houghton(Contributor/Maintainer)
Bjørn Madsen (Contributor)
André Rouél(Contributor)
Edmund Noble (For the dank tagless)
Fabio Labella (For the great FP help)
Will Sargent (Security Discussions)
Related Skills
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
96.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
