All Projects → carterharrison → ecdsa-kotlin

carterharrison / ecdsa-kotlin

Licence: MIT license
A simple, yet lightweight, fast elliptical curve cryptography library in kotlin.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to ecdsa-kotlin

ECDSA secp256k1 JordonMatrix nodejs
javascript ecdsa generator, specifically secp256k1 properties, using jordon form matrices
Stars: ✭ 15 (-37.5%)
Mutual labels:  ecdsa, secp256k1
noble-secp256k1
Fastest JS implementation of secp256k1. Independently audited, high-security, 0-dependency ECDSA & Schnorr signatures.
Stars: ✭ 313 (+1204.17%)
Mutual labels:  ecdsa, secp256k1
dtls
Datagram Transport Layer Security (DTLS) client.
Stars: ✭ 72 (+200%)
Mutual labels:  ecdsa, sha256
secp256k1.cr
a native library implementing secp256k1 purely for the crystal language.
Stars: ✭ 34 (+41.67%)
Mutual labels:  ecdsa, secp256k1
EllipticCurve
An elliptic curve library written in Swift 4
Stars: ✭ 18 (-25%)
Mutual labels:  ecdsa, secp256k1
CryptoKnight
CryptoKnight is a general purpose cryptography desktop app
Stars: ✭ 18 (-25%)
Mutual labels:  sha256
carrot-pool
Mining Pools Made Easy. ⛏ 📦 🏆
Stars: ✭ 53 (+120.83%)
Mutual labels:  sha256
SHA256Hasher
SHA-256 IP core for ZedBoard (Zynq SoC)
Stars: ✭ 25 (+4.17%)
Mutual labels:  sha256
crypto.js
base on crypto module
Stars: ✭ 13 (-45.83%)
Mutual labels:  sha256
SHA256
A C++ SHA256 implementation.
Stars: ✭ 79 (+229.17%)
Mutual labels:  sha256
sha256 plsql
SHA256 PL/SQL Implementation for Oracle 10g,11g.
Stars: ✭ 52 (+116.67%)
Mutual labels:  sha256
leptin
🔗 Leptin is a PoW blockchain completely built in Nodejs.
Stars: ✭ 57 (+137.5%)
Mutual labels:  secp256k1
optiga-trust-m
OPTIGA™ Trust M Software Framework
Stars: ✭ 86 (+258.33%)
Mutual labels:  ecdsa
rhonabwy
Javascript Object Signing and Encryption (JOSE) library - JWK, JWKS, JWS, JWE and JWT
Stars: ✭ 33 (+37.5%)
Mutual labels:  ecdsa
oxo-chat-client
基于websocket、json、blockchain的公告、聊天(客户端到客户端加密)客户端。账号无需注册,本地生成!
Stars: ✭ 52 (+116.67%)
Mutual labels:  secp256k1
go
Elliptic Curve Integrated Encryption Scheme for secp256k1 in Golang
Stars: ✭ 56 (+133.33%)
Mutual labels:  secp256k1
pbkdf2-hmac-sha256
sha256, hmac with sha256 and pbkdf2 with hmac-sha256 in one header file
Stars: ✭ 19 (-20.83%)
Mutual labels:  sha256
ECTester
Tests support and behavior of elliptic curve cryptography implementations on JavaCards (TYPE_EC_FP and TYPE_EC_F2M) and in selected software libraries.
Stars: ✭ 51 (+112.5%)
Mutual labels:  ecdsa
ethereum-checksum-address
Convert Ethereum address to a checksummed address
Stars: ✭ 20 (-16.67%)
Mutual labels:  secp256k1
BruteForce
A simple brute forcer written in GO for SHA1, SHA256, SHA512, MD5 and bcrypt
Stars: ✭ 49 (+104.17%)
Mutual labels:  sha256
               _           
              | |          
   ___  ___ __| |___  __ _ 
  / _ \/ __/ _` / __|/ _` |
 |  __/ (_| (_| \__ \ (_| |
  \___|\___\__,_|___/\__,_|              
                           

ecdsa-kotlin

CircleCI

A simple, yet lightweight, fast elliptical curve cryptography library in kotlin. Please note that this library must undergo further testing before using in production.

Supported Curves

This library comes with a plethora of curves, but do not worry! You can create your own curve to fit your cryptographic needs. Below are listed the curves that come out of the box.

  • Secp256k1

Hashing

This library comes with some hashing algorithms to create signatures, you can implement your own if your favorite hashing algorithm is not included. Below are listed the hashing algorithms that come out of the box.

  • SHA256

Creating a Key Pair

Creating a key pair is very simple, you may generate a random key pair, or generate one from a private key. The private key is simply a very large number.

// generates a random key pair on the secp256k1 curve
val randomKeys = EcKeyGenerator.newInstance(Secp256k1) 

// generates a random key pair on the secp256k1 curve with a private key
val privateKey = BigInteger(...)
val fromPrivateKey = EcKeyGenerator.newInstance(privateKey, Secp256k1) 

Signing

Signing is just as easy as creating a key pair. You may sign whatever data you please.

// signs data [0x13, 0x37]
val data = byteArrayOf(0x13, 0x37)
val keyPair = EcKeyGenerator.newInstance(Secp256k1) 
val signature = EcSign.signData(keyPair, data, EcSha256)

Verifying

After creating a signature, you can verify that the public key signed the data.

// verifies that the public key signed the data
val publicKey = EcPoint(...)
val signature = EcSignature(...)
val data = byteArrayOf(0x13, 0x37)
val isValid = EcSign.verifySignature(publicKey, data, EcSha256, signature)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].