Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Page properties


TitleHyperledger Ursa integration into Hyperledger Iroha
Status

Status
colourBlueGreen
titleproject in progressCOMPLETED

Difficulty

Status
colourYellow
titleMedium
  


...

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

  1. The ability for Iroha to re-use a common, well-maintained crypto library.
  2. Tighter integration in the Hyperledger ecosystem.

...