Skip to content

clovellytech/tsec

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

This fork just holds some changes that I needed for my deployments for now, you should go to the root project.

Latest Release: 0.2.0.3

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, or the CHANGELOG for this fork

Versions:

Our Notation for versions is:

X.X.X.X
      ^__Fork appendage (includes all features of major/minor from upstream)
^ ^ ^____Minor
| |______Major
|________Complete redesign   

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.

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.2.0.1"
libraryDependencies ++= Seq(
    "tsec-common",
    "tsec-password",
    "tsec-cipher-jca",
    "tsec-cipher-bouncy",
    "tsec-mac",
    "tsec-signatures",
    "tsec-hash-jca",
    "tsec-hash-bouncy",
    "tsec-libsodium",
    "tsec-jwt-mac",
    "tsec-jwt-sig",
    "tsec-http4,
).map("com.clovellytech % _ % 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)

Packages

No packages published

Languages

  • Scala 83.2%
  • Java 8.6%
  • SWIG 8.0%
  • Shell 0.2%