Skip to content

whyoleg/cryptography-kotlin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

925 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cryptography-kotlin

A cryptography library for Kotlin Multiplatform, which wraps well-known future-proof platform-native solutions like OpenSSL, CryptoKit, WebCrypto or JCA with a type-safe uniform API, aligned defaults as well as tested for cross-compatibility between platforms.

Quick start

Add dependencies:

kotlin {
    sourceSets {
        commonMain.dependencies {
            implementation("dev.whyoleg.cryptography:cryptography-core:0.6.0")
            implementation("dev.whyoleg.cryptography:cryptography-provider-optimal:0.6.0")
        }
    }
}

Use the library:

// get a hasher
val sha = CryptographyProvider.Default.get(SHA512).hasher()
// hash a message
sha.hash("Kotlin is Awesome".encodeToByteArray())

For more, see the Getting Started guide and API Reference.

Supported algorithms

Operation Algorithms
Hashing SHA224, SHA256, SHA384, SHA512, SHA3, SHA1, MD5, RIPEMD160
MAC AES-CMAC, HMAC
Digital Signatures RSA-PSS, RSA-PKCS1, ECDSA, EdDSA, DSA
AEAD AES-GCM, AES-CCM, ChaCha20-Poly1305
Symmetric Encryption AES-CBC, AES-CTR, AES-ECB, AES-OFB, AES-CFB, AES-CFB8
Public-Key Encryption RSA-OAEP, RSA-PKCS1, RSA-RAW
Key Agreement ECDH, XDH, DH
Key Derivation PBKDF2, HKDF

Detailed documentation is available on the project website, including the full provider support matrix.