Hi all,

Andreas Schildbach and I are working on a new Open Source Java library for ECC on the secp256k1 curve: secp256k1-jdk [1].

Tuesday Nov 4th, Dan Boneh will be hosting and I will be presenting and demonstrating the secp256k1-jdk API at Stanford. The event is San Francisco BitDevs Socratic Seminar 64 [2]. More info and RSVP is here:

https://www.meetup.com/sf-bitcoin-devs/events/311604247/

One of the goals of the talk is to evangelize modern Java (especially FFM) -- so it would be great if some other Java folks could attend.

secp256k1-jdk defines an opinionated Java API based upon the libsecp256k1 'C' library and two implementations using the Java ServiceLoader mechanism. The API provides both Ecdsa and Schnorr signing/verification, ECDH, and other cryptography primitives. The first implementation uses Java FFM ("Panama") to wrap the well-regarded libsecp256k1 [3] library and includes Schnorr Signature signing and verification. The second implementation uses the pure-Java Bouncy Castle [4] library and implements the other functions but not Schnorr (yet.) The API currently requires Java 9 but the libsecp256k1/FFM implementation requires Java 25.

A Java Cryptography Architecture provider is not on the current roadmap, but could happen someday if there is interest and contribution.

We plan on doing a round of integration testing with Sparrow Wallet (JavaFX) [5] and bitcoinj [6] (which is used in the Android app "Bitcoin Wallet") in the next few months.

I welcome any and all feedback: please email me or open an issue or PR on GitHub.

Regards,

Sean Gilligan


[1] secp256k1-jdk: https://github.com/bitcoinj/secp256k1-jdk

[2] SF BitDevs Socratic Seminar 64: https://sfbitcoindevs.org/socratic-64

[3] libsecp256k1: https://github.com/bitcoin-core/secp256k1

[4] Bouncy Castle: https://www.bouncycastle.org

[5] Sparrow Wallet: https://github.com/sparrowwallet/sparrow

[6] bitcoinj: https://github.com/bitcoinj/bitcoinj






Reply via email to