Cargo Features

libsignal-protocol = { version = "0.1.0", default-features = false, features = ["crypto-native", "crypto-openssl"] }
default = crypto-native

The crypto-native feature is set by default whenever libsignal-protocol is added without default-features = false somewhere in the dependency tree.

crypto-native default = aes, aes-ctr, block-modes, hmac, sha2
crypto-openssl = openssl, rental

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features.

openssl crypto-openssl?

rental crypto-openssl?

With default (std)

sha2 crypto-native

Enables default (std) of sha2 ^0.8.0

hmac crypto-native

Enables hmac ^0.7.0

aes crypto-native
block-modes crypto-native

Enables default (std) of block-modes ^0.3.3

aes-ctr crypto-native

Enables aes-ctr ^0.3.0