C++ und secp256k1

Ich arbeite an einer winzigen C++-Bitcoin-Anwendung für ein Universitätsprojekt. Ich verwende die Blockcypher-API , um Transaktionen zu erstellen, aber ich hatte ein Problem mit dem Signieren des Hashs der Transaktion, der eine der Methoden zurückgibt. Gibt es einfache C++-Bibliotheken, mit denen ich diesen Hash mit secp256k1 ECDSA signieren kann? Außerdem muss die Bibliothek für die Android NDK-Entwicklung funktionieren.

Vielleicht habe ich einen gefunden , aber ich habe ein Problem mit der Installation und weiß nicht genau, ob ich ihn mit Android NDK verwenden kann.

Danke für alle Antworten!

Dieser Link ist ein älterer Fork von libsecp256k1 mit hinzugefügter MSVC-Unterstützung (siehe Antwort von Jannes).

Antworten (2)

Vielleicht libsecp256k1 , was Bitcoin Core selbst verwendet. Ich bin mir nicht sicher über die Benutzerfreundlichkeit von Android, aber es lässt sich auf vielen Architekturen kompilieren.

Libsecp256k1 ist reines C89, mit optionalen Assembly-Optimierungen (einschließlich ARM, seit kurzem). Es kann einige Anpassungen erfordern, um auf Android NDK zu funktionieren, sollte aber ansonsten gut funktionieren. Fühlen Sie sich frei, alle diesbezüglichen Probleme im Issue Tracker zu melden: github.com/bitcoin-core/secp256k1

Vielleicht möchten Sie Spongy Castle ausprobieren , die Android-spezifische Portierung von Bouncy Castle . Ich habe Bouncy Castle in C# für secpk2561-Funktionen verwendet, also nehme ich an, dass Spongy Castle alles hat, was Sie brauchen, obwohl es Java und nicht C++ sein wird.

Sehen Sie sich auch diese Frage auf SO an: https://stackoverflow.com/questions/29778852/how-to-create-ecdsa-keypair-256bit-for-bitcoin-curve-secp256k1-using-spongy