CHANGELOG¶
v0.9.4¶
- Project Changes
- Switched to
pycryptodome
frompycrypto
. - Started locking versions for
requirements.txt
. - Created a
sphinx
based documentation site. - Internal Changes
- Synced
LICENSE
file to use boilerplate notice. - Removed
nist_records
dependency onNistBeaconValue
- Removed
local_record_db
. Most records are stored injson
now.
v0.9.3¶
- Updated
LICENSE
to work with GitHub LICENSE features. - Updated
README
links for Codecov, - Fixed
CONTRIBUTING
link inREADME
. - Updated library to use additional signing key
- For more details, see:
v0.9.2¶
- Internal Changes
- LICENSE
- Updated for 2016.
NistBeacon
get_first_record
now defaults to downloading the first record.
NistBeaconCrypto
- Now computes the
struct
and other values for theSHA512Hash
.
- Now computes the
NistBeaconValue
- Pushed
struct
and signature hash building intoNistBeaconCrypto
.
- Pushed
- Project Changes
- Coverage Tool
- Switched from Coveralls to Codecov.
v0.9.1¶
- Internal Changes
NistBeacon
NIST_BASE_URL
renamed to_NIST_API_URL
, to clarify that the value should NOT be altered under normal circumstances.
NistBeaconCrypto
- New helper class for signature checking of
NistBeaconValue
objects. This is NOT a class designed for general use!
- New helper class for signature checking of
NistBeaconValue
- Added a helper class
NistBeaconCrypto
to handle SHA512 generation and signature checking. This means thatNistBeaconCrypto
needs to be the only reference for key import and signature checking. All otherNistBeaconValue
do not have to generate the full RSA objects. - Started using the now existing
xmlns
property directly from NIST.
- Added a helper class
v0.9.0¶
- Features
NistBeaconValue
- Added a
pseudo_random
property. Returns arandom.Random
object that has been seeded with theoutput_value
for a givenNistBeaconValue
.
- Added a
v0.8.3¶
- Internal Changes
NistBeaconValue
- Creating a beacon value will store the JSON, XML representations
once.
These values do not have to be computed on each
json
orxml
property access now as before.
- Creating a beacon value will store the JSON, XML representations
once.
These values do not have to be computed on each
- Project Changes (for Developers)
pylint
has been added to the project and build process.
v0.8.2¶
- Bug Fixes:
NistBeaconValue
- Reported issue where a
xmlns
value onrecord
ended up breaking XML loading. Reported on GitHub. Since this is just a bug fix release. Thisxmlns
value will not show up if one was to use thexml
value from theNistBeaconValue
object.
- Reported issue where a
v0.8.1¶
- Minor documentation changes
v0.8.0¶
- Features
NistBeaconValue
- Added
json
andxml
as properties (replacesto_json()
andto_xml()
)
- Added
v0.7.0¶
- Name changes
- Changed from
py_nist_beacon
tonistbeacon
- Changed from
NistRandomnessBeacon
toNistBeacon
- Changed from
NistRandomnessBeaconValue
toNistBeaconValue
v0.6.0¶
- Features
NistRandomnessBeacon
- Added a
get_first_record
method. An optional boolean flag nameddownload
allows the caller to either use the local first record object, or to download the first record directly from the NIST beacon.
- Added a
v0.5.2¶
- Added a section on installation.
- Updated
CONTRIBUTING
- Re-do
PHONY
targets inMakefile
- Update
travis
build steps to include3.5-dev
andnightly
v0.5.1¶
- Badges made to point to their release branches
v0.5.0¶
- General
- Lots of documentation added through
docstrings
! 📝 NistRandomnessBeacon
- The beacon now understands how to check the chain. Using the
chain_check
method on the beacon with a giventimestamp
value the NIST Randomness Beacon chain can be verified for integrity purposes. 🔗
@classmethod
def chain_check(cls, timestamp: int) -> bool:
"""
Given a record timestamp, verify the chain integrity.
:param timestamp: UNIX time / POSIX time / Epoch time
:return: 'True' if the timestamp fits the chain. 'False' otherwise.
"""
NistRandomnessBeaconValue
- ⚠️ All properties of the beacon have been placed behind
@property
decorators to minimize possible manipulation - ⚠️
verify_signature
has been removed from beacon values. Replaced with ``valid_signature`` - Introduced
valid_signature
as abool
property. Replaces ``verify_signature``
v0.4.0¶
- Added a
verify_signature
toNistRandomnessBeaconValue
objects. This method returns aTrue
orFalse
after verifying the provided record. The record is verified using two steps: - First, using a combination of input data of the record, a simple
message
is packed to create a message. That message is then used in
combination with
the record’s reported
signature_value
and the known NIST Beacon X.509 certificate. This certificate is available for download, but is baked into the application as follows:- Original CER file as a string:
nist_beacon_constants.py - NIST_CER_FILE
- Original Public Key as a string:
nist_beacon_constants.py - NIST_RSA_KEY
- Hard copy of
beacon.cer
is provided at the root of the project
- Original CER file as a string:
- Second, the
signature_value
is ran through asha512
hash to confirm theoutput_value
is correct on the record. - If either of the steps are found to be invalid,
verify_signature
will return aFalse
result.
v0.3.0¶
- Added
to_xml
,to_json
, andfrom_json
methods on beacon values
v0.2.0¶
- Initial PyPI release package