Enter Atomun - the Java Bitcoin utility library collection.
This library implements deterministic / random key generation algorithms to address Bitcoin private/public key requirements.
This library will follow the guidelines set forth in Semantic Versioning 2.0
Public APIs not marked with @Beta are considered under the purview of the versioning rules.
@Beta items follow the attached documentation to the annotation, shortly put:
Do not rely on this to exist in the future as it is not "API-frozen". It may change functionality or be removed in any future release.
Public APIs inside the us.eharning.atomun.keygen.internal namespace are not considered 'public' per the versioning rules.
This library is covered under the Apache 2.0 license as indicated in the LICENSE file.
The repository is managed using the Gitflow workflow. Note that any published feature/* branches are subject to history modification, so beware working off of those.
Non-annotated tags will be added in the form vMAJOR.MINOR.MICRO-dev to denote the start of a new feature. This will guide the next release to be versioned as vMAJOR.MINOR.MICRO. Without this, the next expected version would be a MICRO-change.
Signed and annotated tags will be added in the form vMAJOR.MINOR.MICRO to denote releases.
Maven Group ID: us.eharning.atomun Name: atomun-keygen
Signed SNAPSHOT artifacts are pushed per-commit by Travis-CI to the Maven Central SNAPSHOT archive.
Signed release artifacts will be pushed directly to Maven Central.
Releases will be signed by the following privately held GPG key. It doesn't get published to Travis-CI.
pub 2048R/F8908096 2014-10-29 Key fingerprint = B6CC 560D F1C0 991E 08AA 555A ED63 F369 F890 8096 uid Thomas Harning Jr (CODE SIGNING KEY) <email@example.com>
See also http://www.eharning.us/gpg/
Snapshots will be signed by a key held by Travis-CI in their encrypted data stores. I figured it would be better to sign the snapshots than not have them signed at all, even if the specific key is less protected.
pub 2048R/EF39E8D8 2015-03-10 Key fingerprint = FCA2 D4CC 9294 38B7 5B91 8D9E 6BF2 A2D1 EF39 E8D8 uid Thomas Harning Jr (AUTOMATED CI CODESIGNER) <firstname.lastname@example.org>
Tags will be signed by the following privately held hardware-based GPG key.
pub 3072R/B1DBAD54 2011-04-19 Key fingerprint = 2F0A FF2E A8A0 1485 C95B 8650 F0A4 C0F7 B1DB AD54 uid Thomas Harning Jr <email@example.com>
This library implements the "Legacy Electrum" algorithm from Electrum, prior to the newer algorithm in use. It uses an addition-based key derivation algorithm.
- Guava 19.0
- Spock Framework
- org.ajoberstar gradle defaults
- many included things, such as license plugin
Thanks to the Electrum team for preparing the original implementation that I used the algorithm for deterministic keys from.