All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlinx.jupyter.protocol.HMAC.kt Maven / Gradle / Ivy

Go to download

Implementation of REPL compiler and preprocessor for Jupyter dialect of Kotlin (IDE-compatible)

The newest version!
package org.jetbrains.kotlinx.jupyter.protocol

import javax.crypto.Mac
import javax.crypto.spec.SecretKeySpec

class HMAC(algorithm: String, key: String) {
    private val mac: Mac =
        Mac.getInstance(algorithm).apply {
            init(SecretKeySpec(key.toByteArray(), algorithm))
        }

    @Synchronized
    operator fun invoke(data: Iterable): String {
        data.forEach { mac.update(it) }
        return mac.doFinal().toHexString()
    }

    operator fun invoke(vararg data: ByteArray): String = invoke(data.asIterable())
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy