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

[refactor]: Remove ursa dependency #3422

Closed
appetrosyan opened this issue Apr 25, 2023 · 0 comments
Closed

[refactor]: Remove ursa dependency #3422

appetrosyan opened this issue Apr 25, 2023 · 0 comments
Assignees
Labels
api-changes Changes in the API for client libraries crypto Dead code iroha2-dev The re-implementation of a BFT hyperledger in RUST Security This issue asks for improved security

Comments

@appetrosyan
Copy link
Contributor

appetrosyan commented Apr 25, 2023

Hyperledger Ursa is rightfully considered EOL. We have no incentive to use ursa over any library given that at this point we're also the only people maintaining it and also the only people using it.

Under these circumstances it is advised to remove the direct dependency on ursa and instead extract the code paths which are used in iroha_crypto. Ursa-specific implementations of cryptographic primitives should be added to iroha_crypto directly.

@appetrosyan appetrosyan added the iroha2-dev The re-implementation of a BFT hyperledger in RUST label Apr 25, 2023
@appetrosyan appetrosyan self-assigned this Apr 25, 2023
@appetrosyan appetrosyan added api-changes Changes in the API for client libraries Dead code Security This issue asks for improved security labels Apr 25, 2023
@mversic mversic assigned DCNick3 and unassigned appetrosyan Oct 19, 2023
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 9, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 9, 2023
…iroha_crypto types

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 9, 2023
…om ursa

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 9, 2023
…1305 code from ursa, migrate iroha_p2p to use it

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 9, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 9, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 9, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 9, 2023
This also removes bls signature aggregation and rogue key mitigation, as iroha does not and probably will not use aggregated signatures

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 9, 2023
This makes all the dependency tree of iroha_crypto wasm-compatible (except `getrandom`, which either requires a "js" feature enabled when used from web, or a custom getrandom implementation in other cases)

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 9, 2023
Clean up the API a bit:
- hide the implementation details of signatures (they are only used through the PublicKey, PrivateKey and Signature types)
- remove even more unused API functions
- add missing documentation items

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 10, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 10, 2023
…iroha_crypto types

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 10, 2023
…om ursa

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 10, 2023
…1305 code from ursa, migrate iroha_p2p to use it

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 10, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 10, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 10, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 10, 2023
This also removes bls signature aggregation and rogue key mitigation, as iroha does not and probably will not use aggregated signatures

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 10, 2023
This makes all the dependency tree of iroha_crypto wasm-compatible (except `getrandom`, which either requires a "js" feature enabled when used from web, or a custom getrandom implementation in other cases)

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
mversic pushed a commit to DCNick3/iroha that referenced this issue Nov 20, 2023
…nt result.is_ok() checks

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
mversic pushed a commit to DCNick3/iroha that referenced this issue Nov 20, 2023
…dency from `iroha_crypto` and introduce configurable tls backends to `iroha_client`

openssl-sys was previously added to `iroh_crypto` to allow static builds of openssl with musl libc.

This was somewhat a kludge though, as `iroha_crypto` does not depend on `openssl` (or at least it stopped depending on it after removing `ursa` dependency).

It was used, however, in the client to allow connecting to iroha nodes via HTTPS.

This commit gives the user more freedom in choosing their TLS implementation by providing four features: `tls-native`, `tls-native-vendored`, `tls-rustls-native-roots` and `tls-rustls-webpki-roots`, which mirror corresponding features of `attohttpc` and `tokio-tungstenite`.

Unlike previously, none of the TLS implementations are enabled by default, which is a breaking change

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit that referenced this issue Nov 20, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit that referenced this issue Nov 20, 2023
…o types

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit that referenced this issue Nov 20, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit that referenced this issue Nov 20, 2023
…rom ursa, migrate iroha_p2p to use it

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit that referenced this issue Nov 20, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit that referenced this issue Nov 20, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit that referenced this issue Nov 20, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit that referenced this issue Nov 20, 2023
This also removes bls signature aggregation and rogue key mitigation, as iroha does not and probably will not use aggregated signatures

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit that referenced this issue Nov 20, 2023
This makes all the dependency tree of iroha_crypto wasm-compatible (except `getrandom`, which either requires a "js" feature enabled when used from web, or a custom getrandom implementation in other cases)

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit that referenced this issue Nov 20, 2023
Clean up the API a bit:
- hide the implementation details of signatures (they are only used through the PublicKey, PrivateKey and Signature types)
- remove even more unused API functions
- add missing documentation items

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit that referenced this issue Nov 20, 2023
…moving dep of iroha_p2p on aead. Also remove buffer-based API from iroha_crypto, it's not used anyways.

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit that referenced this issue Nov 20, 2023
…s_ok() checks

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit that referenced this issue Nov 20, 2023
…`iroha_crypto` and introduce configurable tls backends to `iroha_client`

openssl-sys was previously added to `iroh_crypto` to allow static builds of openssl with musl libc.

This was somewhat a kludge though, as `iroha_crypto` does not depend on `openssl` (or at least it stopped depending on it after removing `ursa` dependency).

It was used, however, in the client to allow connecting to iroha nodes via HTTPS.

This commit gives the user more freedom in choosing their TLS implementation by providing four features: `tls-native`, `tls-native-vendored`, `tls-rustls-native-roots` and `tls-rustls-webpki-roots`, which mirror corresponding features of `attohttpc` and `tokio-tungstenite`.

Unlike previously, none of the TLS implementations are enabled by default, which is a breaking change

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 22, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 22, 2023
…iroha_crypto types

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 22, 2023
…om ursa

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 22, 2023
…1305 code from ursa, migrate iroha_p2p to use it

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 22, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 22, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 22, 2023
Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 22, 2023
This also removes bls signature aggregation and rogue key mitigation, as iroha does not and probably will not use aggregated signatures

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 22, 2023
This makes all the dependency tree of iroha_crypto wasm-compatible (except `getrandom`, which either requires a "js" feature enabled when used from web, or a custom getrandom implementation in other cases)

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 22, 2023
Clean up the API a bit:
- hide the implementation details of signatures (they are only used through the PublicKey, PrivateKey and Signature types)
- remove even more unused API functions
- add missing documentation items

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 22, 2023
…, allows removing dep of iroha_p2p on aead. Also remove buffer-based API from iroha_crypto, it's not used anyways.

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 22, 2023
…nt result.is_ok() checks

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
DCNick3 added a commit to DCNick3/iroha that referenced this issue Nov 22, 2023
…dency from `iroha_crypto` and introduce configurable tls backends to `iroha_client`

openssl-sys was previously added to `iroh_crypto` to allow static builds of openssl with musl libc.

This was somewhat a kludge though, as `iroha_crypto` does not depend on `openssl` (or at least it stopped depending on it after removing `ursa` dependency).

It was used, however, in the client to allow connecting to iroha nodes via HTTPS.

This commit gives the user more freedom in choosing their TLS implementation by providing four features: `tls-native`, `tls-native-vendored`, `tls-rustls-native-roots` and `tls-rustls-webpki-roots`, which mirror corresponding features of `attohttpc` and `tokio-tungstenite`.

Unlike previously, none of the TLS implementations are enabled by default, which is a breaking change

Signed-off-by: Nikita Strygin <dcnick3@users.noreply.github.com>
@DCNick3 DCNick3 added the crypto label Jan 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api-changes Changes in the API for client libraries crypto Dead code iroha2-dev The re-implementation of a BFT hyperledger in RUST Security This issue asks for improved security
Projects
None yet
Development

No branches or pull requests

3 participants