Skip to content

Easy to use Java cryptography library with ECC and RSA support; X.509 certificates and CSRs

Notifications You must be signed in to change notification settings

alukin/EasyCrypt

Repository files navigation

EasyCrypt, Cryptography Made Easy

EasyCrypto is Java library and utilites in Java that implements military grade Elliptic Curvers Cryptography (ECC) and related algorytms with extremelly simple interace. Support of RSA based cryptography also is present for compatibility reasons.

Goals of EasyCrypt design are:

  1. Provide strong cryptography swiss knife with proper parameters of all algorythms
  2. Easy of use. You do not need to know how different algorithms work inside of how to combine algorytnms in the crypto system. You choose appropriate preset an just use it.

It is written in Java and uses BouncyCastle library. It can be used as is in any JVM language. Java code of the library is mature and production-ready.

Components

Previous "incarnation" of this library, called fb-crypto has antother 2 compatible libraries with very similar interface written in C++ and JavaScript/TypeSec All 3 libraries have common compatibility test suite to encure full interoperability. This work was one of my open source projects at FirstBridge company.

This library contains Java code only to be able to make quick development and may be used as upstream for former libraries.

Copyright

EasyCrypt is free software and licensed under GPL v.2.

Releases

Current release is 1.0.0 amd contains Java code only.

How do I get set up?

  • Java requirements: JDK 11 or up to 16 for pure Java usage. GraalVM 20.0.3 or later for C++ and JavaScript wrappers.
  • Maven 3.6.0 or later
  • BouncyCastle crypto library ( loaded authmatically as Maven dependency)
  • JavaScript: NodeJS v.14 or later
  • C/C++: gcc v.10 or LLVM CLang v.10 or later, CMake 3.8.0 or later

Experimantal stuff

There is no stable tool set yet, except GraalVM. Please follow links above and try latest versions of tools. If you know some other tools that can produce WebAssembly code from Java bytecode, please send me a note.

GIT branches

  • master: latest stable version
  • develop: latest development version
  • feature/FETURE_NAME - new feature development to be merged with develop branch when complete anches contain code supposed to be merget to develop branch

Contribution guidelines

  • If you find a bug, please write issue with reproduce steps or example
  • If you have patch, echancenemet or new feature, please fork this project and make cross-fork pull request to develop branch

Credits

Thanks to may friends and colleagues

Andrii Zinchenko for great help with making the library interfaсе simple and clear.

Serhii Lymar for ElGamal code and big impact on libaray improvement.

Who do I talk to?

Oleksiy Lukin alukin@gmail.com

About

Easy to use Java cryptography library with ECC and RSA support; X.509 certificates and CSRs

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •