This gem follows Semantic Versioning 2.0.0. All classes and public methods are part of the public API, unless explicitly noted otherwise in their documentation.
Release on 2014-09-18
This release maintains API compatibility with version 0.3.0, except for the two constants that were removed.
Signatures produced with prior versions may be incompatible with signatures from this version.
- Change the
Hasher#hash_string
method so that it can handle ECDSA groups that have a much smaller order than the number of bits they have (such as Curve25519). Hasher
now validates that its group's byte-length is equal to its hash algorithm's byte-length.- Remove support for ECDSA groups that have an order larger than the number of bits they have. Secp160k1 and Secp160r1 fall into this category because their order is larger than 2^160.
- Remove the
Secp160k1_Ripemd160
andSecp160r1_Ripemd160
constants, since their groups are no longer supported.
Released on 2014-09-15
This release breaks API compatibility with version 0.2.0.
- Change
PrivateKey
,PublicKey
, andSignature
constructors such that they accept a requiredHasher
argument rather than an optionalECDSA::Group
andhash_algorithm
. TheHasher
encapsulates these properties. - Change
Hasher
constructor so thatgroup
andhash_algorithm
attributes are passed in as explicit arguments rather than options. - Remove
RingSig.default_group
andRingSig.defaut_hash_algorithm
attributes. There are now no default algorithms. - Update gem dependency for
ecdsa
gem to 1.2.
This will hopefully be the last major API change for a while, but it still may change until 1.0 is released.
Released on 2014-09-12
This release breaks API compatibility with version 0.1.0.
- Add support for ruby 1.9, including jruby-19mode.
- Add
RingSig.default_group
andRingSig.defaut_hash_algorithm
attributes. - Change
Hasher
constructor so thatgroup
andhash_algorithm
attributes are passed in as options rather than explicit arguments.
Released on 2014-09-11
This release breaks API compatibility with version 0.0.1.
- Split the
Key
class intoPrivateKey
andPublicKey
, which better encapsulate the functionality of each. - The
sign
andkey_image
methods are placed in thePrivateKey
class. - Remove the
drop_private_key
method fromKey
. Instead, a new method simply calledpublic_key
is included in bothPrivateKey
andPublicKey
. - Add methods
to_hex
,to_octet
,from_hex
, andfrom_octet
to bothPrivateKey
andPublicKey
classes. - Add
==
methods toPrivateKey
andPublicKey
- Add
point
attribute toPublicKey
which stores the actual public key. - Add
point
method toPrivateKey
which references the public key's point. - Add
value
attribute toPrivateKey
which stores the actual private key.
Released on 2014-09-09
All core functionality is implemented:
Key
classsign
methodkey_image
methoddrop_private_key
methodpublic_key
andprivate_key
attributesgroup
andhash_algorithm
attributes
Signature
classverify
methodcomponents
methodto_hex
,to_der
,from_hex
, andfrom_der
methodskey_image
,c_array
, andr_array
attributesgroup
andhash_algorithm
attributes
Hasher
classhash_string
methodhash_array
methodhash_point
methodshuffle
methodgroup
andalgorithm
attributes