From d67c501c9457350952b26af1400a17ef56a2101a Mon Sep 17 00:00:00 2001 From: Muzzammil Shahid Date: Wed, 20 Mar 2024 15:05:01 +0500 Subject: [PATCH] update README.md (#24) --- README.md | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 84 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 28523bd..fce35bc 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,84 @@ -# cryptology-java -libsodium compatible SealedBox and SecretBox implementation in Java +# CryptologyJava + +libsodium compatible CryptoSign, SealedBox and SecretBox implementation in Java. + +## Download + +Include in your project using Maven: + +```xml + + io.xconn + cryptology + 0.1.0 + +``` + +Or with Gradle: + +```groovy +implementation 'io.xconn:cryptology:0.1.0' +``` + +## Usage + +### CryptoSign + +Generate ED25519 KeyPair + +```java +KeyPair keyPair = CryptoSign.generateKeyPair(); +``` + +Get PublicKey from PrivateKey + +```java +byte[] privateKey = // ED25519 private key bytes +byte[] publicKey = CryptoSign.getPublicKey(privateKey); +``` + +Sign Message + +```java +byte[] privateKey = // ED25519 private key bytes +byte[] message = "Hello, world!".getBytes(); +byte[] signature = CryptoSign.sign(privateKey, message); +``` + +### SealedBox + +Seal Message + +```java +byte[] recipientPublicKey = // X25519 recipient's public key bytes +byte[] message = "Secret message".getBytes(); +byte[] encryptedMessage = SealedBox.seal(message, recipientPublicKey); +``` + +Open Sealed Message + +```java +byte[] privateKey = // X25519 recipient's private key bytes +byte[] sealedMessage = // Sealed message bytes +byte[] decryptedMessage = SealedBox.sealOpen(sealedMessage, privateKey); +``` + +### SecretBox + +Encrypt Message + +```java +byte[] nonce = SecretBox.generateNonce(); +byte[] secretKey = SecretBox.generateSecret(); +byte[] message = "Secret message".getBytes(); +byte[] encryptedMessage = SecretBox.box(nonce, message, secretKey); +``` + +Decrypt Message + +```java +byte[] nonce = // Nonce bytes +byte[] secretKey = // Secret key bytes +byte[] sealedMessage = // Sealed message bytes +byte[] decryptedMessage = SecretBox.boxOpen(sealedMessage, nonce, secretKey); +``` \ No newline at end of file