diff --git a/Cargo.lock b/Cargo.lock
index 6486e776de813e78d0d0ec0c948ebf4d272008b3..8757784c6ae9fffe4e6162245ad0875b17cc8426 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -238,7 +238,7 @@ dependencies = [
  "duniter-message 0.1.0-a0.1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dup-crypto 0.3.0-b3",
  "durs-network-documents 0.1.0-a0.1",
  "durs-wot 0.8.0-a0.9",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -258,7 +258,7 @@ dependencies = [
  "dirs 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "duniter-documents 0.9.0-b1",
  "duniter-module 0.1.0-a0.1",
- "dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dup-crypto 0.3.0-b3",
  "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -275,7 +275,7 @@ dependencies = [
  "duniter-message 0.1.0-a0.1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dup-crypto 0.3.0-b3",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "log-panics 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -293,7 +293,7 @@ dependencies = [
  "duniter-documents 0.9.0-b1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dup-crypto 0.3.0-b3",
  "durs-wot 0.8.0-a0.9",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -310,7 +310,7 @@ dependencies = [
  "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "base64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dup-crypto 0.3.0-b3",
  "pest 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "pest_derive 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -326,7 +326,7 @@ dependencies = [
  "duniter-documents 0.9.0-b1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dup-crypto 0.3.0-b3",
  "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_json 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -337,7 +337,7 @@ name = "duniter-module"
 version = "0.1.0-a0.1"
 dependencies = [
  "duniter-documents 0.9.0-b1",
- "dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dup-crypto 0.3.0-b3",
  "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_json 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -350,7 +350,7 @@ version = "0.1.0-a0.1"
 dependencies = [
  "duniter-documents 0.9.0-b1",
  "duniter-module 0.1.0-a0.1",
- "dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dup-crypto 0.3.0-b3",
  "durs-network-documents 0.1.0-a0.1",
  "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -367,7 +367,7 @@ dependencies = [
  "duniter-message 0.1.0-a0.1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dup-crypto 0.3.0-b3",
  "durs-network-documents 0.1.0-a0.1",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -379,7 +379,7 @@ dependencies = [
 
 [[package]]
 name = "dup-crypto"
-version = "0.3.0-b2"
+version = "0.3.0-b3"
 dependencies = [
  "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -390,20 +390,6 @@ dependencies = [
  "serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
-[[package]]
-name = "dup-crypto"
-version = "0.3.0-b2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.66 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
 [[package]]
 name = "durs"
 version = "0.1.0-a0.1"
@@ -422,7 +408,7 @@ dependencies = [
  "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "duniter-documents 0.9.0-b1",
- "dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dup-crypto 0.3.0-b3",
  "pest 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "pest_derive 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -450,7 +436,7 @@ dependencies = [
  "duniter-message 0.1.0-a0.1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dup-crypto 0.3.0-b3",
  "durs-network-documents 0.1.0-a0.1",
  "durs-ws2p-messages 0.1.0-a0.1",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -466,7 +452,7 @@ dependencies = [
  "bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
  "duniter-documents 0.9.0-b1",
- "dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dup-crypto 0.3.0-b3",
  "durs-network-documents 0.1.0-a0.1",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -487,7 +473,7 @@ dependencies = [
  "duniter-message 0.1.0-a0.1",
  "duniter-module 0.1.0-a0.1",
  "duniter-network 0.1.0-a0.1",
- "dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dup-crypto 0.3.0-b3",
  "durs-network-documents 0.1.0-a0.1",
  "durs-wot 0.8.0-a0.9",
  "log 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1323,7 +1309,6 @@ dependencies = [
 "checksum digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90"
 "checksum dirs 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "37a76dd8b997af7107d0bb69d43903cf37153a18266f8b3fdb9911f28efb5444"
 "checksum dtoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab"
-"checksum dup-crypto 0.3.0-b2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2c99de4ca024e4c3339674708b40e053dce53d86be68c5ec7bcc3a25804a4b1"
 "checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0"
 "checksum failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "934799b6c1de475a012a02dab0ace1ace43789ee4b99bcfbf1a2e3e8ced5de82"
 "checksum failure_derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c7cdda555bb90c9bb67a3b670a0f42de8e73f5981524123ad8578aafec8ddb8b"
diff --git a/blockchain/Cargo.toml b/blockchain/Cargo.toml
index 9bd0eca33ac4ab1166f92da7d30acb66b3979573..218ff6b2665bc19edc73a2ff9c98bcb8c136f601 100644
--- a/blockchain/Cargo.toml
+++ b/blockchain/Cargo.toml
@@ -11,7 +11,7 @@ path = "lib.rs"
 [dependencies]
 dirs = "1.0.2"
 duniter-conf = { path = "../conf" }
-dup-crypto = "0.3.0-b2"
+dup-crypto = { path = "../crypto" }
 duniter-dal = { path = "../dal" }
 duniter-documents = { path = "../documents" }
 durs-network-documents = { path = "../network-documents" }
diff --git a/conf/Cargo.toml b/conf/Cargo.toml
index c01cfd5c8b3b5ce31197282f7355e00a5b24a9fe..24a426c9bba8b0afcc282a0da20c665b3f33ed72 100644
--- a/conf/Cargo.toml
+++ b/conf/Cargo.toml
@@ -14,7 +14,7 @@ serde = "1.0.*"
 serde_derive = "1.0.*"
 serde_json = "1.0.*"
 dirs = "1.0.2"
-dup-crypto = "0.3.0-b2"
+dup-crypto = { path = "../crypto" }
 duniter-documents = { path = "../documents" }
 duniter-module = { path = "../module" }
 
diff --git a/core/Cargo.toml b/core/Cargo.toml
index c595c83a22c36b8c3e8e7d507d2e1359203bb9e8..fe81eec107eab6d1e93c58fece27862c20642a4b 100644
--- a/core/Cargo.toml
+++ b/core/Cargo.toml
@@ -12,7 +12,7 @@ path = "lib.rs"
 dirs = "1.0.2"
 duniter-blockchain = { path = "../blockchain" }
 duniter-conf = { path = "../conf" }
-dup-crypto = "0.3.0-b2"
+dup-crypto = { path = "../crypto" }
 duniter-message =  { path = "../message" }
 duniter-module = { path = "../module" }
 duniter-network = { path = "../network" }
diff --git a/crypto/Cargo.toml b/crypto/Cargo.toml
index 35767cc77afe7b85ba86ce8cdf6a03d31a0c5f5d..def563d3cbe91ae1b8fb04b4f59e19b0df294d15 100644
--- a/crypto/Cargo.toml
+++ b/crypto/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "dup-crypto"
-version = "0.3.0-b2"
+version = "0.3.0-b3"
 authors = ["nanocryk <nanocryk@duniter.org>", "elois <elois@duniter.org>"]
 description = "Manage cryptographic operations for the DUP (DUniter Protocol)."
 repository = "https://git.duniter.org/nodes/rust/duniter-rs"
diff --git a/dal/Cargo.toml b/dal/Cargo.toml
index ac0d5d019fd5de7ebd2217e1990e3fd322557e5f..dd16c4e68660cdc2f131ee8101145657bc4a0912 100644
--- a/dal/Cargo.toml
+++ b/dal/Cargo.toml
@@ -9,7 +9,7 @@ license = "AGPL-3.0"
 path = "lib.rs"
 
 [dependencies]
-dup-crypto = "0.3.0-b2"
+dup-crypto = { path = "../crypto" }
 duniter-documents = { path = "../documents" }
 duniter-module = { path = "../module" }
 duniter-network = { path = "../network" }
diff --git a/documents/Cargo.toml b/documents/Cargo.toml
index 58e2ab7c1e7145689b71e74ae1f039aa647a9bae..8b887f77d5e098b0b485df066480aeee63315120 100644
--- a/documents/Cargo.toml
+++ b/documents/Cargo.toml
@@ -15,7 +15,7 @@ path = "src/lib.rs"
 base58 = "0.1.*"
 base64 = "0.9.*"
 byteorder = "1.2.3"
-dup-crypto = "0.3.0-b2"
+dup-crypto = { path = "../crypto" }
 pest = "2.0"
 pest_derive = "2.0"
 rust-crypto = "0.2.*"
diff --git a/message/Cargo.toml b/message/Cargo.toml
index 53452745860863f3419dbb242115f4c58030b71c..c6ec17a1bec33c514a1806ed3486c34924e9b00e 100644
--- a/message/Cargo.toml
+++ b/message/Cargo.toml
@@ -9,7 +9,7 @@ license = "AGPL-3.0"
 path = "lib.rs"
 
 [dependencies]
-dup-crypto = "0.3.0-b2"
+dup-crypto = { path = "../crypto" }
 duniter-dal = { path = "../dal" }
 duniter-documents = { path = "../documents" }
 duniter-module = { path = "../module" }
diff --git a/module/Cargo.toml b/module/Cargo.toml
index 16978872199e507aed8ad06ad80995175e9fb83e..97a06dd068e5afcb41f5b081be086f7d35efc519 100644
--- a/module/Cargo.toml
+++ b/module/Cargo.toml
@@ -9,7 +9,7 @@ license = "AGPL-3.0"
 path = "lib.rs"
 
 [dependencies]
-dup-crypto = "0.3.0-b2"
+dup-crypto = { path = "../crypto" }
 duniter-documents = { path = "../documents" }
 serde = "1.0.*"
 serde_derive = "1.0.*"
diff --git a/network-documents/Cargo.toml b/network-documents/Cargo.toml
index 145a566a7d6aaa2e04ee1c9d23d5ea871ff45e30..be4f452368f614bfe47734ded628fd8ac2476cd3 100644
--- a/network-documents/Cargo.toml
+++ b/network-documents/Cargo.toml
@@ -10,7 +10,7 @@ path = "src/lib.rs"
 
 [dependencies]
 base58 = "0.1.*"
-dup-crypto = "0.3.0-b2"
+dup-crypto = { path = "../crypto" }
 duniter-documents = { path = "../documents" }
 pest = "2.0"
 pest_derive = "2.0"
diff --git a/network/Cargo.toml b/network/Cargo.toml
index 03be0a2bb3c74a8296762e5b4f8354844188ff14..42358ae4db29fd3519ee47ab07b4f9d9b3cf8277 100644
--- a/network/Cargo.toml
+++ b/network/Cargo.toml
@@ -9,7 +9,7 @@ license = "AGPL-3.0"
 path = "lib.rs"
 
 [dependencies]
-dup-crypto = "0.3.0-b2"
+dup-crypto = { path = "../crypto" }
 duniter-documents = { path = "../documents" }
 duniter-module = { path = "../module" }
 durs-network-documents = { path = "../network-documents" }
diff --git a/tui/Cargo.toml b/tui/Cargo.toml
index a228fd3656c1abd9a235c39fd06e317d9092f2ae..f069ff32b2689e5a9c95e7e35e6bdde1b4ab93c8 100644
--- a/tui/Cargo.toml
+++ b/tui/Cargo.toml
@@ -10,7 +10,7 @@ path = "lib.rs"
 
 [dependencies]
 duniter-conf = { path = "../conf" }
-dup-crypto = "0.3.0-b2"
+dup-crypto = { path = "../crypto" }
 duniter-dal = { path = "../dal" }
 duniter-documents = { path = "../documents" }
 duniter-message =  { path = "../message" }
diff --git a/ws2p-messages/Cargo.toml b/ws2p-messages/Cargo.toml
index 8356a18c0b979981f755d2fea908e0889703e68a..fa0e7d6a3b23e82603a94eecd5ca620991670047 100644
--- a/ws2p-messages/Cargo.toml
+++ b/ws2p-messages/Cargo.toml
@@ -11,7 +11,7 @@ path = "lib.rs"
 [dependencies]
 bincode = "1.0.*"
 byteorder = "1.2.3"
-dup-crypto = "0.3.0-b2"
+dup-crypto = { path = "../crypto" }
 duniter-documents = { path = "../documents" }
 durs-network-documents = { path = "../network-documents" }
 log = "0.4.*"
diff --git a/ws2p-v1-legacy/Cargo.toml b/ws2p-v1-legacy/Cargo.toml
index 5b3221b7b035de289f6f33a27e6ea8d22d0ffada..0350c5e73c4327cabd96d92c743535f2e86e18ac 100644
--- a/ws2p-v1-legacy/Cargo.toml
+++ b/ws2p-v1-legacy/Cargo.toml
@@ -11,7 +11,7 @@ path = "lib.rs"
 [dependencies]
 byteorder = "1.2.3"
 duniter-conf = { path = "../conf" }
-dup-crypto = "0.3.0-b2"
+dup-crypto = { path = "../crypto" }
 duniter-dal = { path = "../dal" }
 duniter-documents = { path = "../documents" }
 durs-network-documents = { path = "../network-documents" }
diff --git a/ws2p/Cargo.toml b/ws2p/Cargo.toml
index d2d83af9f86297aeaa73c1ff36bb0661437d34c2..e707d3496367eb427f54cd07ca1c08a9976171de 100644
--- a/ws2p/Cargo.toml
+++ b/ws2p/Cargo.toml
@@ -10,7 +10,7 @@ path = "lib.rs"
 
 [dependencies]
 duniter-conf= { path = "../conf" }
-dup-crypto = "0.3.0-b2"
+dup-crypto = { path = "../crypto" }
 durs-network-documents = { path = "../network-documents" }
 durs-ws2p-messages = { path = "../ws2p-messages" }
 duniter-message= { path = "../message" }