Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add message signing #40

Merged
merged 4 commits into from
Nov 22, 2019
Merged

feat: add message signing #40

merged 4 commits into from
Nov 22, 2019

Conversation

sleepdefic1t
Copy link
Contributor

Summary

This PR adds Message Signing features.

Max Message length is 255 Bytes.
Large messages split across multiple display steps.
Multiple display steps prepended/appended by ellipses.

INS flag is 0x08.

#define INS_GET_PUBLIC_KEY          0x02
#define INS_SIGN                    0x04
#define INS_SIGN_MESSAGE            0x08

This PR also does the following:

  • moves StreamStatus to ./operations dir.
  • adds message examples script.
  • adds message signing feature to example Py script.
  • updates message-related documentation.
  • updates the changelog.

Checklist

  • Documentation (if necessary)
  • Ready to be merged

This PR adds Message Signing features.

Max Message length is 255 Bytes.
Large messages split across multiple display steps.
Multiple display steps prepended/appended by ellipses.

`INS` flag is `0x08`.
```
#define INS_GET_PUBLIC_KEY          0x02
#define INS_SIGN                    0x04
#define INS_SIGN_MESSAGE            0x08
```

This PR also does the following:
- adds message signing operations.
- moves `StreamStatus` to `./operations` dir.
- adds message examples script.
- adds message signing feature to example Py script.
- updates message-related documentation.
- updates the changelog.
@ghost ghost added Complexity: High More than 256 lines changed. Type: Feature The issue is a request for new functionality. labels Nov 1, 2019
@sleepdefic1t sleepdefic1t requested review from vasild and fix November 1, 2019 16:14
- loop vs reuse.
- adds more comments.
- updates `message.sh` example script text.
@sleepdefic1t sleepdefic1t requested a review from vasild November 4, 2019 17:58
@sleepdefic1t sleepdefic1t requested a review from vasild November 5, 2019 17:27
@sleepdefic1t sleepdefic1t merged commit 28f3b7d into ArkEcosystem:develop Nov 22, 2019
@sleepdefic1t sleepdefic1t deleted the feat/message-signing branch December 17, 2019 16:36
sleepdefic1t added a commit that referenced this pull request Feb 5, 2020

While there are no breaking changes from a users perspective, this release includes a massive rewrite of the project.


Backwards compatibility is maintained in this release.



Specific objectives accomplished within this release:

- Support ARK Core v2 Transactions.

- Support Message Signing.

- Merge changes from `LedgerHQ/ledger-app-ark`.

- Update the ARK Ledger App to use Ledger Nano FW v.1.6.0.

- Improve overall project layout.

- Add files to support development environment setup using Vagrant.

- Update documentation.



Significant changes can also be found in the CHANGELOG, as well as the following pull requests:

-   added message signing features [#40](#40)
-   implement v2 Transactions [#27](#27)
-   added VendorField display support [#29](#29)
-   added build options and documentation [#32](#32)
-   merged updates from LedgerHQ/ledger-app-ark [#23](#23)
-   cleaned up warnings and refactored implementation [#25](#25)
-   upgraded `nanos-secure-sdk` version `1553` -> `160` [#46](#46)
-   refactor transactions classes to decouple Ledger SDK code [#51](#51)
-   unify Ledger NanoS and NanoX ux display flow [#53](#53)
-   implement support for large text fields [#55](#55)
sleepdefic1t added a commit that referenced this pull request Feb 8, 2020
## Summary


While there are no breaking changes from a users perspective, this release includes a massive rewrite of the project.


Specific objectives accomplished within this release:

- Support ARK Core v2 Transactions.
- Support Message Signing.
- Merge changes from `LedgerHQ/ledger-app-ark`.
- Update the ARK Ledger App to use Ledger Nano FW v.1.6.0.
- Implement optimized Base58 from Ledger BTC App.
- Improve overall project layout.

- Add files to support development environment setup using Vagrant.
- Update documentation.



Significant changes can be found in the CHANGELOG, as well as the following pull requests:

-   added message signing features [#40](#40)
-   implement v2 Transactions [#27](#27)
-   added VendorField display support [#29](#29)
-   added build options and documentation [#32](#32)
-   merged updates from LedgerHQ/ledger-app-ark [#23](#23)
-   cleaned up warnings and refactored implementation [#25](#25)
-   upgraded `nanos-secure-sdk` version `1553` -> `160` [#46](#46)
-   refactor transactions classes to decouple Ledger SDK code [#51](#51)
-   unify Ledger NanoS and NanoX ux display flow [#53](#53)
-   implement support for large text fields [#55](#55)
-   use optimized Base58 implementation from Ledger BTC app [#66](#66)

## Supported in v.2.0.0

### Transaction Versions:

- v0
- v1 (_added_)
- v2 (_added_)

### Signing Algorithms:

- Ecdsa

### Operation Types:

- Get PublicKey
- Get App Configuration
- Sign Message (_added_)
- Sign Transaction

### Transaction Types:

- v0
  - Transfer
  - Vote
- v1 (_added_)
  - Transfer
  - Vote
- v2 (_added_)
  - Transfer
  - Second Signature Registration
  - Vote
  - IPFS
  - Htlc Lock
  - Htlc Claim
  - Htlc Refund

## Checklist

- [x] Documentation _(if necessary)_
- [x] Ready to be merged
sleepdefic1t added a commit that referenced this pull request Feb 8, 2020
## Summary


While there are no breaking changes from a users perspective, this release includes a massive rewrite of the project.


Specific objectives accomplished within this release:

- Support ARK Core v2 Transactions.
- Support Message Signing.
- Merge changes from `LedgerHQ/ledger-app-ark`.
- Update the ARK Ledger App to use Ledger Nano FW v.1.6.0.
- Implement optimized Base58 from Ledger BTC App.
- Improve overall project layout.

- Add files to support development environment setup using Vagrant.
- Update documentation.



Significant changes can be found in the CHANGELOG, as well as the following pull requests:

-   added message signing features [#40](#40)
-   implement v2 Transactions [#27](#27)
-   added VendorField display support [#29](#29)
-   added build options and documentation [#32](#32)
-   merged updates from LedgerHQ/ledger-app-ark [#23](#23)
-   cleaned up warnings and refactored implementation [#25](#25)
-   upgraded `nanos-secure-sdk` version `1553` -> `160` [#46](#46)
-   refactor transactions classes to decouple Ledger SDK code [#51](#51)
-   unify Ledger NanoS and NanoX ux display flow [#53](#53)
-   implement support for large text fields [#55](#55)
-   use optimized Base58 implementation from Ledger BTC app [#66](#66)

## Supported in v.2.0.0

### Transaction Versions:

- v0
- v1 (_added_)
- v2 (_added_)

### Signing Algorithms:

- Ecdsa

### Operation Types:

- Get PublicKey
- Get App Configuration
- Sign Message (_added_)
- Sign Transaction

### Transaction Types:

- v0
  - Transfer
  - Vote
- v1 (_added_)
  - Transfer
  - Vote
- v2 (_added_)
  - Transfer
  - Second Signature Registration
  - Vote
  - IPFS
  - Htlc Lock
  - Htlc Claim
  - Htlc Refund

## Checklist

- [x] Documentation _(if necessary)_
- [x] Ready to be merged
sleepdefic1t added a commit that referenced this pull request Feb 8, 2020
## Summary


While there are no breaking changes from a users perspective, this release includes a massive rewrite of the project.


Specific objectives accomplished within this release:

- Support ARK Core v2 Transactions.
- Support Message Signing.
- Merge changes from `LedgerHQ/ledger-app-ark`.
- Update the ARK Ledger App to use Ledger Nano FW v.1.6.0.
- Implement optimized Base58 from Ledger BTC App.
- Improve overall project layout.

- Add files to support development environment setup using Vagrant.
- Update documentation.



Significant changes can be found in the CHANGELOG, as well as the following pull requests:

-   added message signing features [#40](#40)
-   implement v2 Transactions [#27](#27)
-   added VendorField display support [#29](#29)
-   added build options and documentation [#32](#32)
-   merged updates from LedgerHQ/ledger-app-ark [#23](#23)
-   cleaned up warnings and refactored implementation [#25](#25)
-   upgraded `nanos-secure-sdk` version `1553` -> `160` [#46](#46)
-   refactor transactions classes to decouple Ledger SDK code [#51](#51)
-   unify Ledger NanoS and NanoX ux display flow [#53](#53)
-   implement support for large text fields [#55](#55)
-   use optimized Base58 implementation from Ledger BTC app [#66](#66)

## Supported in v.2.0.0

### Transaction Versions:

- v0
- v1 (_added_)
- v2 (_added_)

### Signing Algorithms:

- Ecdsa

### Operation Types:

- Get PublicKey
- Get App Configuration
- Sign Message (_added_)
- Sign Transaction

### Transaction Types:

- v0
  - Transfer
  - Vote
- v1 (_added_)
  - Transfer
  - Vote
- v2 (_added_)
  - Transfer
  - Second Signature Registration
  - Vote
  - IPFS
  - Htlc Lock
  - Htlc Claim
  - Htlc Refund

## Checklist

- [x] Documentation _(if necessary)_
- [x] Ready to be merged

## Additional Discussion

This patch release adds #66 to #65
@sleepdefic1t sleepdefic1t mentioned this pull request Feb 8, 2020
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Complexity: High More than 256 lines changed. Type: Feature The issue is a request for new functionality.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants