From 941491832622d41cdecbab90c8c15176773d1ca0 Mon Sep 17 00:00:00 2001 From: Akivili Collindort <67788155+AreroKetahi@users.noreply.github.com> Date: Fri, 25 Aug 2023 13:02:36 +0800 Subject: [PATCH] Update README.md --- README.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/README.md b/README.md index c6199e7..ed24482 100644 --- a/README.md +++ b/README.md @@ -70,3 +70,62 @@ let raw = RSARawValue(text) let signed = try raw.sign(privateKey: privateKey) let verifyResult = try signed.verify(message: raw, publicKey: publicKey) // true for success, otherwise false ``` + +## AES + +### Generate random Key & IV + +```swift +let randomKey = AES.generateRandomKey() +let randomIV = AES.generateRandomIV() +``` + +### Set your own Key & IV + +```swift +let key = AESKey("password") +let iv = try AESIV(fromHexString: "12345678901234567890123456789012") +``` + +### Encrypt & Decrypt + +```swift +let text = "Hello, world!" +let raw = AESRawValue(text) +let encrypted = try raw.encrypt(key: key, iv: iv) +let decrypted = try encrypted.decrypt(key: key, iv: iv) +``` + +### Encrypt with random generation + +```swift +// generate both key and iv +let raw = AESRawValue("Hello, world!") +let key = AESKey() +let iv = AESIV() +let encrypted = try raw.encrypt(randomKey: &key, randomIV: &iv) +``` + +```swift +// generate key +let raw = AESRawValue("Hello, world!") +let key = AESKey() +let iv = try AESIV(fromHexString: "12345678901234567890123456789012") +let encrypted = try raw.encrypt(randomKey: &key, iv: iv) +``` + +```swift +// generate iv +let raw = AESRawValue("Hello, world!") +let key = AESKey("password") +let iv = AESIV() +let encrypted = try raw.encrypt(key: key, randomIV: &iv) +``` + +### Check whether the key or IV is empty + +```swift +// true for empty, otherwise false +key.isEmpty +iv.isEmpty +```