...
Page properties | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Alexander Matson, Alex Matson, City College of New York, alex@alexmatson.com
Project Plan
...
Deliverables
...
Modify ursa
to utilize modified ed25519 library configured with SHA-3.
...
Add FFI bindings to expose functions for ed25519
operations from libursa
's C API.
...
Integrate libursa
into the Iroha cmake build system, as a configure-time option.
...
Implement a C++ CryptoProvider class that wraps Ursa.
...
Set DefaultCryptoAlgorithmType
in shared_model/cryptography/crypto_provider/crypto_defaults.hpp
depending on the cmake configure options.
...
Write and polish tests and documentation for all contributed code.
- Integrate Ursa with the Iroha build system
- Interface with Ursa's ed25519 signing functions
- Edit docs for Ursa FFI and memory bug fix
- Wrap Ursa calls in an Iroha crypto provider (expose same interface)
- Integrate Multihash library
- Automatically switch crypto providers depending on public key value
Milestones
- First Quarter: June 3rd, 2019
- Begin researching integration plans
- Test Ursa's C interface over FFI
- Update docs for Ursa's C interface, remedying memory leak bugs
- Add Ursa as a cmake module within Iroha's cmake system, with build commands
- Second Quarter: July 15th, 2019
- Add a CryptoProvider for Ursa
- Set value of
DefaultCryptoAlgorithmType
according to the build flag during compilation - Update crypto-related test cases to point to
DefaultCryptoAlgorithmType
- Update Ursa C interface with a memory-safe string destructor
- Research approaches for multihash integration
- Third Quarter: August 26th, 2019
- Select and integrate a multihash library, plus dependencies
- Attempt one of integrating multihash with Iroha/Ursa keys – didn't work out
- Attempt two of integrating multihash with Iroha/Ursa keys – simplified implementation
- Change the CryptoVerifier to select between CryptoProviders depending on the public key's multihash encoding
- Fourth Quarter: October 7th, 2019
- Check the loaded keypair is in the ledger
- First pass at making block signing configurable: add a config file option
- Second pass simplified the code changes; instead of config file option, automatically sign with the multihash type of the public key
- Create slides for summary report presentation
...
Outcomes
- The ability for Iroha to re-use a common, well-maintained crypto library.
- Tighter integration in the Hyperledger ecosystem.
...