All Projects → jmcardon → Tsec

jmcardon / Tsec

Licence: mit
Type-safe general-cryptography library - https://jmcardon.github.io/tsec/

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Tsec

Stegcloak
Hide secrets with invisible characters in plain text securely using passwords 🧙🏻‍♂️⭐
Stars: ✭ 2,379 (+603.85%)
Mutual labels:  cryptography, functional-programming
Blog Src
Personal blog source.
Stars: ✭ 7 (-97.93%)
Mutual labels:  cryptography, functional-programming
Ctf Challenges By Me
Pwnable|Web Security|Cryptography CTF-style challenges
Stars: ✭ 305 (-9.76%)
Mutual labels:  cryptography
Drand
🎲 A Distributed Randomness Beacon Daemon - Go implementation
Stars: ✭ 328 (-2.96%)
Mutual labels:  cryptography
Vertx Zero
Zero Framework:http://www.vertxup.cn
Stars: ✭ 320 (-5.33%)
Mutual labels:  functional-programming
Encryptpad
Minimalist secure text editor and binary encryptor that implements RFC 4880 Open PGP format: symmetrically encrypted, compressed and integrity protected. The editor can protect files with passwords, key files or both.
Stars: ✭ 305 (-9.76%)
Mutual labels:  cryptography
Here Be Dragons
An Intellij/Android Studio plugin to help visualise side effects in your code.
Stars: ✭ 325 (-3.85%)
Mutual labels:  functional-programming
Shapeless
Generic programming for Scala
Stars: ✭ 3,207 (+848.82%)
Mutual labels:  functional-programming
Testnet3 Challenges
This repo is dedicated to Concordium Incentivized Testnet3.
Stars: ✭ 337 (-0.3%)
Mutual labels:  cryptography
Monio
Async-capable IO monad for JS
Stars: ✭ 311 (-7.99%)
Mutual labels:  functional-programming
Underscore Java
java port of Underscore.js
Stars: ✭ 327 (-3.25%)
Mutual labels:  functional-programming
Lambda Talk
A Flock of Functions: Combinators, Lambda Calculus, & Church Encodings in JS
Stars: ✭ 315 (-6.8%)
Mutual labels:  functional-programming
Quack
🐤 A multi-paradigm programming language with gradual and duck typing that targets PHP and JS
Stars: ✭ 309 (-8.58%)
Mutual labels:  functional-programming
Magic In Ten Mins
十分钟魔法练习
Stars: ✭ 327 (-3.25%)
Mutual labels:  functional-programming
Sapient
Secure API Toolkit
Stars: ✭ 308 (-8.88%)
Mutual labels:  cryptography
Gubrak
⚙️ Golang functional utility library with syntactic sugar. It's like lodash, but for Go
Stars: ✭ 329 (-2.66%)
Mutual labels:  functional-programming
Webfs
A Filesystem Built On Top of the Web.
Stars: ✭ 307 (-9.17%)
Mutual labels:  cryptography
Prelude Ts
Functional programming, immutable collections and FP constructs for typescript and javascript
Stars: ✭ 315 (-6.8%)
Mutual labels:  functional-programming
Effect
effect isolation in Python, to facilitate more purely functional code
Stars: ✭ 324 (-4.14%)
Mutual labels:  functional-programming
Rxswift
RxSwift를 스터디하는 공간
Stars: ✭ 335 (-0.89%)
Mutual labels:  functional-programming
________________________________________  
\__    ___/   _____/\_   _____/\_   ___ \ 
  |    |  \_____  \  |    __)_ /    \  \/ 
  |    |  /        \ |        \\     \____
  |____| /_______  //_______  / \______  /
                 \/         \/         \/ 

TSEC: A type-safe, functional, general purpose security and cryptography library.

Join the chat at https://gitter.im/tsecc/Lobby Build Status Latest Version

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)

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].