UNPKG

@datkt/crypto

Version:

Various cryptographic function for datkt

89 lines (57 loc) 1.53 kB
crypto ====== Various cryptographic function for datk. ## Installation The `datkt.crypto` package an be installed with NPM. ```sh $ npm install @datkt/crypto ``` ## Prerequisites * [Kotlin/Native](https://github.com/JetBrains/kotlin-native) and the `konanc` command line program. ## Usage ```sh ## Compile a program in 'main.kt' and link crypto.klib found in `node_modules/` $ konanc -r node_modules/@datkt -l crypto/crypto main.kt ``` where `main.kt` might be ```kotlin import datkt.crypto.* fun main(args: Array<String>) { val kp = keyPair() // @TODO } ``` ## API ### `data class KeyPair(val publicKey: ByteArray, val secretKey: ByteArray)` A simple data class container for a public and secret key pair ### `keyPair(seed: ByteArray? = null): KeyPair` Generates a ed25519 key pair suitable for creating signatures. ```kotlin val kp = keyPair("some random seed value".toUtf8()) ``` or ```kotlin val kp = keyPair() ``` ### `sign(message: ByteArray, secretKey: ByteArray): ByteArray` Generates a signature for a given message and secret key. ```kotlin val ( publicKey, secretKey ) = keyPair() val message = "hello".toUtf8() // convert to ByteArray val signature = sign(message, secretKey) ``` ## Tests To run the tests, make sure the `crypto.klib` Kotlin library is built by running the following command. ```sh $ npm run build ``` When the library is built, run the following command to run the tests. ```sh $ npm test ``` ## See Also * https://github.com/mafintosh/hypercore-crypto ## License MIT