summary | Encryption using AES | jar | kiit.common.jar |
namespace | kiit.common.encrypt |
artifact | dev.kiit:kiit-common |
sources | src/common/common/src/main/kotlin/kiit/common/crypto |
example | src/lib/kotlin/slate-examples/src/main/kotlin/slatekit/examples/Example_Encryptor.kt |
dependency | kiit-results |
Use the following settings in gradle for installing this component.
buildscript {
// Kotlin version currently being used
ext.kotlin_version = '1.8.22'
// Reference version
ext.kiit_version = '3.1.0'
// ...
}
repositories {
// Currently stored in Git Hub Packages.
maven {
url "https://maven.pkg.github.com/slatekit/kiit"
credentials {
username = System.getenv('GIT_PACKAGES_INSTALL_ACTOR')
password = System.getenv('GIT_PACKAGES_INSTALL_TOKEN')
}
}
// ...
}
dependencies {
// Other dependencies ...
implementation "dev.kiit:kiit-common:$kiit_version"
}
// required
import kiit.common.encrypt.Encryptor
import kiit.common.utils.B64Java8
// optional
import kiit.results.Try
import kiit.results.Success
// SETUP 1: Create your singleton encryptor that can encrypt/decrypt using your custom key/secret.
// and use it as a singleton.
object TestEncryptor : Encryptor("wejklhviuxywehjk", "3214maslkdf03292", B64Java8)
// SETUP 2: Create an instance encryptor
val encryptor = Encryptor("wejklhviuxywehjk", "3214maslkdf03292", B64Java8)
// CASE 1: Encrypt using AES ( text is base64 encoded without newlines )
val input = "basMoAKSKDFJrd789"
val encrypted = TestEncryptor.encrypt(input)
println(encrypted)
// CASE 2: Decrypt using AES
val decrypted = TestEncryptor.decrypt(encrypted)
println(decrypted)
// CASE 3: Ensure decrypted matches original
println(input == decrypted)
// CASE 4: Use the EncryptSupportIn trait to have built in encrypt/decrypt methods
// NOTE: You just have to have an _enc member field
println( encryptor.encrypt(input))
println( encryptor.decrypt(encrypted) )