diff --git a/crypto/src/main/kotlin/org/openrs2/crypto/Sha1.kt b/crypto/src/main/kotlin/org/openrs2/crypto/Sha1.kt new file mode 100644 index 00000000..1c6b6e0a --- /dev/null +++ b/crypto/src/main/kotlin/org/openrs2/crypto/Sha1.kt @@ -0,0 +1,19 @@ +package org.openrs2.crypto + +import io.netty.buffer.ByteBuf +import io.netty.buffer.ByteBufUtil +import java.security.MessageDigest + +public fun ByteBuf.sha1(): ByteArray { + return sha1(readerIndex(), readableBytes()) +} + +public fun ByteBuf.sha1(index: Int, len: Int): ByteArray { + val digest = MessageDigest.getInstance("SHA-1") + if (hasArray()) { + digest.update(array(), arrayOffset() + index, len) + } else { + digest.update(ByteBufUtil.getBytes(this, index, len, false)) + } + return digest.digest() +}