Skip to content

igit-cn/AtomicCrypto

 
 

Repository files navigation

AtomicCrypto

Java Library To Provide Cryptographic Functions

Build Status

Algorithms

AtomicCrypto uses NSA Suite B Cryptography. This means it uses AES-256-GCM to encrypt data and for asymmetric cryptography it uses ECDH with curve P-256 as default key agreement.

Requirements

You need to Install Bouncy Castle as a JCE provider.
You need the Java Crypto Unlimited Strength Policy files.

How To Use AtomicCrypto In Project

Maven

<dependency>
  <groupId>com.aayushatharva</groupId>
  <artifactId>AtomicCrypto</artifactId>
  <version>1.1.0.1</version>
</dependency>

Gradle Groovy DSL

implementation 'com.aayushatharva:AtomicCrypto:1.1.0.1'

Usage

Asymmetric Cryptography

KeyPair SenderKeyPair = KeyPair.generate();
KeyPair ReceiverKeyPair = KeyPair.generate();

AsymmetricHub SenderBox = new AsymmetricHub(SenderKeyPair.getPrivateKey(), ReceiverKeyPair.getPublicKey());
AsymmetricHub ReceiverBox = new AsymmetricHub(ReceiverKeyPair.getPrivateKey(), SenderKeyPair.getPublicKey());

byte[] Encrypted = SenderBox.encrypt("Hey!".getBytes("UTF-8"));
byte[] PlainText = ReceiverBox.decrypt(Encrypted);

Symmetric Cryptography

SecretKey key = SecretKey.generate();
SymmetricHub box = new SymmetricHub(key);
         
byte[] Encrypted = box.encrypt("Hey!".getBytes("UTF-8"));
byte[] PlainText = box.decrypt(Encrypted);	

About

Java Library To Provide Cryptographic Functions

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%