Version bump to 0.4.0 (#644)

diff --git a/attestation/Cargo.toml b/attestation/Cargo.toml
index 1bae61c..35bc104 100644
--- a/attestation/Cargo.toml
+++ b/attestation/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_attestation"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Provides TLS-based remote attestation mechanism in Teaclave."
 license = "Apache-2.0"
diff --git a/binder/Cargo.toml b/binder/Cargo.toml
index 9b03c23..a427e2f 100644
--- a/binder/Cargo.toml
+++ b/binder/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_binder"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Abstract communication interfaces between TEE untrusted/trusted worlds."
 license = "Apache-2.0"
diff --git a/binder/attribute/Cargo.toml b/binder/attribute/Cargo.toml
index 538af15..a4162de 100644
--- a/binder/attribute/Cargo.toml
+++ b/binder/attribute/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_binder_attribute"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Macros for binder"
 license = "Apache-2.0"
diff --git a/cli/Cargo.toml b/cli/Cargo.toml
index aa0bcf6..ff36216 100644
--- a/cli/Cargo.toml
+++ b/cli/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_cli"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave command line tool"
 license = "Apache-2.0"
diff --git a/common/protected_fs_rs/Cargo.lock b/common/protected_fs_rs/Cargo.lock
index b0601a3..84dab3f 100644
--- a/common/protected_fs_rs/Cargo.lock
+++ b/common/protected_fs_rs/Cargo.lock
@@ -25,7 +25,7 @@
 
 [[package]]
 name = "protected_fs_rs"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "cfg-if",
  "libc",
diff --git a/common/protected_fs_rs/Cargo.toml b/common/protected_fs_rs/Cargo.toml
index ab877b8..8370ae4 100644
--- a/common/protected_fs_rs/Cargo.toml
+++ b/common/protected_fs_rs/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "protected_fs_rs"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Ported sgx_protected_fs (Intel SGX SDK) running out side sgx with Rust bindings."
 license-file = "Apache-2.0"
diff --git a/config/Cargo.toml b/config/Cargo.toml
index 6b7693a..b4b29dc 100644
--- a/config/Cargo.toml
+++ b/config/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_config"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Build and runtime configurations."
 license = "Apache-2.0"
diff --git a/config/config_gen/Cargo.lock b/config/config_gen/Cargo.lock
index 0e22458..23b17a0 100644
--- a/config/config_gen/Cargo.lock
+++ b/config/config_gen/Cargo.lock
@@ -329,7 +329,7 @@
 
 [[package]]
 name = "teaclave_config_gen"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "askama",
  "pem",
diff --git a/config/config_gen/Cargo.toml b/config/config_gen/Cargo.toml
index 5835865..31e203c 100644
--- a/config/config_gen/Cargo.toml
+++ b/config/config_gen/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_config_gen"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Generating build config."
 license = "Apache-2.0"
diff --git a/crypto/Cargo.toml b/crypto/Cargo.toml
index dd507f9..f1f1224 100644
--- a/crypto/Cargo.toml
+++ b/crypto/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_crypto"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave crypto"
 license = "Apache-2.0"
diff --git a/dcap/Cargo.toml b/dcap/Cargo.toml
index 4affa2e..8b3012c 100644
--- a/dcap/Cargo.toml
+++ b/dcap/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_dcap_ref_as"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave DCAP Attestation Service (Reference Implementation)"
 license = "Apache-2.0"
diff --git a/examples/python/wasm_rust_psi_payload/Cargo.lock b/examples/python/wasm_rust_psi_payload/Cargo.lock
index d367651..2819d2d 100644
--- a/examples/python/wasm_rust_psi_payload/Cargo.lock
+++ b/examples/python/wasm_rust_psi_payload/Cargo.lock
@@ -2,7 +2,7 @@
 # It is not intended for manual editing.
 [[package]]
 name = "teaclave_context"
-version = "0.2.0"
+version = "0.4.0"
 
 [[package]]
 name = "wasm_rust_psi_payload"
diff --git a/examples/python/wasm_tvm_mnist_payload/Cargo.lock b/examples/python/wasm_tvm_mnist_payload/Cargo.lock
index 5d2ad33..8af6ccb 100644
--- a/examples/python/wasm_tvm_mnist_payload/Cargo.lock
+++ b/examples/python/wasm_tvm_mnist_payload/Cargo.lock
@@ -1632,7 +1632,7 @@
 
 [[package]]
 name = "teaclave_context"
-version = "0.2.0"
+version = "0.4.0"
 
 [[package]]
 name = "tempfile"
diff --git a/examples/rust/builtin_echo/Cargo.lock b/examples/rust/builtin_echo/Cargo.lock
index c3634a3..34be5b6 100644
--- a/examples/rust/builtin_echo/Cargo.lock
+++ b/examples/rust/builtin_echo/Cargo.lock
@@ -50,7 +50,7 @@
 
 [[package]]
 name = "builtin_echo"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "pem",
@@ -359,7 +359,7 @@
 
 [[package]]
 name = "protected_fs_rs"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "cfg-if 0.1.10",
  "libc",
@@ -553,7 +553,7 @@
 
 [[package]]
 name = "teaclave_attestation"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "base64 0.13.0",
@@ -581,7 +581,7 @@
 
 [[package]]
 name = "teaclave_client_sdk"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "libc",
@@ -597,7 +597,7 @@
 
 [[package]]
 name = "teaclave_config"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "log",
@@ -608,7 +608,7 @@
 
 [[package]]
 name = "teaclave_crypto"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "hex",
@@ -621,7 +621,7 @@
 
 [[package]]
 name = "teaclave_proto"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "base64 0.13.0",
@@ -640,7 +640,7 @@
 
 [[package]]
 name = "teaclave_rpc"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "cfg-if 0.1.10",
@@ -659,7 +659,7 @@
 
 [[package]]
 name = "teaclave_rpc_proc_macro"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -668,7 +668,7 @@
 
 [[package]]
 name = "teaclave_types"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "hex",
diff --git a/examples/rust/builtin_echo/Cargo.toml b/examples/rust/builtin_echo/Cargo.toml
index 95203f0..3f46b0e 100644
--- a/examples/rust/builtin_echo/Cargo.toml
+++ b/examples/rust/builtin_echo/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "builtin_echo"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "builtin_echo function example using Teaclave client SDK."
 license = "Apache-2.0"
diff --git a/examples/rust/builtin_ordered_set_intersect/Cargo.lock b/examples/rust/builtin_ordered_set_intersect/Cargo.lock
index 4e3bf21..972321b 100644
--- a/examples/rust/builtin_ordered_set_intersect/Cargo.lock
+++ b/examples/rust/builtin_ordered_set_intersect/Cargo.lock
@@ -50,7 +50,7 @@
 
 [[package]]
 name = "builtin_ordered_set_intersect"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "pem",
@@ -359,7 +359,7 @@
 
 [[package]]
 name = "protected_fs_rs"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "cfg-if 0.1.10",
  "libc",
@@ -553,7 +553,7 @@
 
 [[package]]
 name = "teaclave_attestation"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "base64 0.13.0",
@@ -581,7 +581,7 @@
 
 [[package]]
 name = "teaclave_client_sdk"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "libc",
@@ -597,7 +597,7 @@
 
 [[package]]
 name = "teaclave_config"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "log",
@@ -608,7 +608,7 @@
 
 [[package]]
 name = "teaclave_crypto"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "hex",
@@ -621,7 +621,7 @@
 
 [[package]]
 name = "teaclave_proto"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "base64 0.13.0",
@@ -640,7 +640,7 @@
 
 [[package]]
 name = "teaclave_rpc"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "cfg-if 0.1.10",
@@ -659,7 +659,7 @@
 
 [[package]]
 name = "teaclave_rpc_proc_macro"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -668,7 +668,7 @@
 
 [[package]]
 name = "teaclave_types"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "hex",
diff --git a/examples/rust/builtin_ordered_set_intersect/Cargo.toml b/examples/rust/builtin_ordered_set_intersect/Cargo.toml
index b4ca1e7..f297aa7 100644
--- a/examples/rust/builtin_ordered_set_intersect/Cargo.toml
+++ b/examples/rust/builtin_ordered_set_intersect/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "builtin_ordered_set_intersect"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "builtin_ordered_set_intersect function example using Teaclave client SDK."
 license = "Apache-2.0"
diff --git a/executor/Cargo.toml b/executor/Cargo.toml
index 2a99482..6f3832b 100644
--- a/executor/Cargo.toml
+++ b/executor/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_executor"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave executor"
 license = "Apache-2.0"
diff --git a/executor/context/Cargo.toml b/executor/context/Cargo.toml
index 05760d1..662fa40 100644
--- a/executor/context/Cargo.toml
+++ b/executor/context/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_executor_context"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave executor"
 license = "Apache-2.0"
diff --git a/file_agent/Cargo.lock b/file_agent/Cargo.lock
index fdfbc6c..2d01445 100644
--- a/file_agent/Cargo.lock
+++ b/file_agent/Cargo.lock
@@ -715,7 +715,7 @@
 
 [[package]]
 name = "protected_fs_rs"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "cfg-if 0.1.10",
  "libc",
@@ -1026,7 +1026,7 @@
 
 [[package]]
 name = "teaclave_crypto"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "hex",
@@ -1039,7 +1039,7 @@
 
 [[package]]
 name = "teaclave_file_agent"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "base64",
@@ -1061,7 +1061,7 @@
 
 [[package]]
 name = "teaclave_test_utils"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "inventory",
  "teaclave_test_utils_proc_macro",
@@ -1078,7 +1078,7 @@
 
 [[package]]
 name = "teaclave_types"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "hex",
diff --git a/file_agent/Cargo.toml b/file_agent/Cargo.toml
index 61c1580..6878669 100644
--- a/file_agent/Cargo.toml
+++ b/file_agent/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_file_agent"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave file agent for worker"
 license = "Apache-2.0"
diff --git a/function/Cargo.toml b/function/Cargo.toml
index 8079eb1..2c94ca4 100644
--- a/function/Cargo.toml
+++ b/function/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_function"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave built-in functions."
 license = "Apache-2.0"
diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml
index 061a7e3..f35f2fd 100644
--- a/rpc/Cargo.toml
+++ b/rpc/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_rpc"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave RPC"
 license = "Apache-2.0"
diff --git a/rpc/proc_macro/Cargo.toml b/rpc/proc_macro/Cargo.toml
index 55764d7..08bf734 100644
--- a/rpc/proc_macro/Cargo.toml
+++ b/rpc/proc_macro/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_rpc_proc_macro"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 license = "Apache-2.0"
 edition = "2018"
diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml
index 4b38e62..30a1814 100644
--- a/runtime/Cargo.toml
+++ b/runtime/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_runtime"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave runtime"
 license = "Apache-2.0"
diff --git a/sdk/payload/wasm/teaclave_context/Cargo.toml b/sdk/payload/wasm/teaclave_context/Cargo.toml
index 3b43659..454e754 100644
--- a/sdk/payload/wasm/teaclave_context/Cargo.toml
+++ b/sdk/payload/wasm/teaclave_context/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_context"
-version = "0.2.0"
+version = "0.4.0"
 edition = "2018"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Contex File interfaces for WASM payloads"
diff --git a/sdk/rust/Cargo.lock b/sdk/rust/Cargo.lock
index 32b011b..6078717 100644
--- a/sdk/rust/Cargo.lock
+++ b/sdk/rust/Cargo.lock
@@ -350,7 +350,7 @@
 
 [[package]]
 name = "protected_fs_rs"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "cfg-if 0.1.10",
  "libc",
@@ -544,7 +544,7 @@
 
 [[package]]
 name = "teaclave_attestation"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "base64 0.13.0",
@@ -572,7 +572,7 @@
 
 [[package]]
 name = "teaclave_client_sdk"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "libc",
@@ -588,7 +588,7 @@
 
 [[package]]
 name = "teaclave_config"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "log",
@@ -599,7 +599,7 @@
 
 [[package]]
 name = "teaclave_crypto"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "hex",
@@ -612,7 +612,7 @@
 
 [[package]]
 name = "teaclave_proto"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "base64 0.13.0",
@@ -631,7 +631,7 @@
 
 [[package]]
 name = "teaclave_rpc"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "cfg-if 0.1.10",
@@ -650,7 +650,7 @@
 
 [[package]]
 name = "teaclave_rpc_proc_macro"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -659,7 +659,7 @@
 
 [[package]]
 name = "teaclave_types"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "hex",
diff --git a/sdk/rust/Cargo.toml b/sdk/rust/Cargo.toml
index 92799a6..1f97f89 100644
--- a/sdk/rust/Cargo.toml
+++ b/sdk/rust/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_client_sdk"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Rust Client SDK"
 license = "Apache-2.0"
diff --git a/sdk/swift/TeaclaveClientSDK/TeaclaveClientSDK.podspec b/sdk/swift/TeaclaveClientSDK/TeaclaveClientSDK.podspec
index b4f7740..e6c5194 100644
--- a/sdk/swift/TeaclaveClientSDK/TeaclaveClientSDK.podspec
+++ b/sdk/swift/TeaclaveClientSDK/TeaclaveClientSDK.podspec
@@ -17,13 +17,13 @@
 
 Pod::Spec.new do |s|
   s.name = "TeaclaveClientSDK"
-  s.version = "0.2.0"
+  s.version = "0.4.0"
   s.summary = "Teaclave Client SDK."
   s.homepage = "https://teaclave.apache.org"
   s.license = "Apache-2.0"
   s.author = { "Teaclave Contributors" => "dev@teaclave.apache.org" }
   s.ios.deployment_target = '13.0'
-  s.source = { :git => "https://github.com/apache/incubator-teaclave.git", :tag => "v0.2.0" }
+  s.source = { :git => "https://github.com/apache/incubator-teaclave.git", :tag => "v0.4.0" }
   s.source_files  = "TeaclaveClietnSDK", "TeaclaveClientSDK/**/*.{h,swift}", "External"
   s.module_map = 'TeaclaveClientSDK/TeaclaveClientSDK.modulemap'
   s.vendored_libraries= 'External/libteaclave_client_sdk.a'
diff --git a/sdk/swift/TeaclaveClientSDK/TeaclaveClientSDK.xcodeproj/project.pbxproj b/sdk/swift/TeaclaveClientSDK/TeaclaveClientSDK.xcodeproj/project.pbxproj
index cedafe4..b61144c 100644
--- a/sdk/swift/TeaclaveClientSDK/TeaclaveClientSDK.xcodeproj/project.pbxproj
+++ b/sdk/swift/TeaclaveClientSDK/TeaclaveClientSDK.xcodeproj/project.pbxproj
@@ -394,7 +394,7 @@
 					"$(PROJECT_DIR)",
 					"$(PROJECT_DIR)/../../rust/target/universal/debug",
 				);
-				MARKETING_VERSION = 0.2.0;
+				MARKETING_VERSION = 0.4.0;
 				MODULEMAP_FILE = "$(SRCROOT)/TeaclaveClientSDK/TeaclaveClientSDK.modulemap";
 				PRODUCT_BUNDLE_IDENTIFIER = org.apache.teaclave.TeaclaveClientSDK;
 				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
@@ -433,7 +433,7 @@
 					"$(PROJECT_DIR)",
 					"$(PROJECT_DIR)/../../rust/target/universal/debug",
 				);
-				MARKETING_VERSION = 0.2.0;
+				MARKETING_VERSION = 0.4.0;
 				MODULEMAP_FILE = "$(SRCROOT)/TeaclaveClientSDK/TeaclaveClientSDK.modulemap";
 				PRODUCT_BUNDLE_IDENTIFIER = org.apache.teaclave.TeaclaveClientSDK;
 				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
diff --git a/services/access_control/app/Cargo.toml b/services/access_control/app/Cargo.toml
index 9d44118..63c4c7e 100644
--- a/services/access_control/app/Cargo.toml
+++ b/services/access_control/app/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_access_control_service"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Access Control Service"
 license = "Apache-2.0"
diff --git a/services/access_control/enclave/Cargo.toml b/services/access_control/enclave/Cargo.toml
index 99dc8e8..fc8d5dd 100644
--- a/services/access_control/enclave/Cargo.toml
+++ b/services/access_control/enclave/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_access_control_service_enclave"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Access Control Service enclave"
 license = "Apache-2.0"
diff --git a/services/authentication/app/Cargo.toml b/services/authentication/app/Cargo.toml
index 9a41ab0..01f42d2 100644
--- a/services/authentication/app/Cargo.toml
+++ b/services/authentication/app/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_authentication_service"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Authentication Service"
 license = "Apache-2.0"
diff --git a/services/authentication/enclave/Cargo.toml b/services/authentication/enclave/Cargo.toml
index d744c8a..5708e4e 100644
--- a/services/authentication/enclave/Cargo.toml
+++ b/services/authentication/enclave/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_authentication_service_enclave"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Authentication Service enclave"
 license = "Apache-2.0"
diff --git a/services/execution/app/Cargo.toml b/services/execution/app/Cargo.toml
index 22e001d..360d6dc 100644
--- a/services/execution/app/Cargo.toml
+++ b/services/execution/app/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_execution_service"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave worker."
 license = "Apache-2.0"
diff --git a/services/execution/enclave/Cargo.toml b/services/execution/enclave/Cargo.toml
index 2d30b7b..b763666 100644
--- a/services/execution/enclave/Cargo.toml
+++ b/services/execution/enclave/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_execution_service_enclave"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Execution Service"
 license = "Apache-2.0"
diff --git a/services/frontend/app/Cargo.toml b/services/frontend/app/Cargo.toml
index 517bca0..3b84e6b 100644
--- a/services/frontend/app/Cargo.toml
+++ b/services/frontend/app/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_frontend_service"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Frontend Service"
 license = "Apache-2.0"
diff --git a/services/frontend/enclave/Cargo.toml b/services/frontend/enclave/Cargo.toml
index c9b6bc0..116852a 100644
--- a/services/frontend/enclave/Cargo.toml
+++ b/services/frontend/enclave/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_frontend_service_enclave"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Frontend Service enclave"
 license = "Apache-2.0"
diff --git a/services/management/app/Cargo.toml b/services/management/app/Cargo.toml
index 15524cc..6484f79 100644
--- a/services/management/app/Cargo.toml
+++ b/services/management/app/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_management_service"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Management Service"
 license = "Apache-2.0"
diff --git a/services/management/enclave/Cargo.toml b/services/management/enclave/Cargo.toml
index 70ced15..a4bb4ea 100644
--- a/services/management/enclave/Cargo.toml
+++ b/services/management/enclave/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_management_service_enclave"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Management Service enclave"
 license = "Apache-2.0"
diff --git a/services/proto/Cargo.toml b/services/proto/Cargo.toml
index ed2dcd7..525f0f1 100644
--- a/services/proto/Cargo.toml
+++ b/services/proto/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_proto"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "RPC protocol of Teaclave services."
 license = "Apache-2.0"
diff --git a/services/proto/proto_gen/Cargo.lock b/services/proto/proto_gen/Cargo.lock
index c84bfe1..42835a9 100644
--- a/services/proto/proto_gen/Cargo.lock
+++ b/services/proto/proto_gen/Cargo.lock
@@ -489,7 +489,7 @@
 
 [[package]]
 name = "teaclave_proto_gen"
-version = "0.2.0"
+version = "0.4.0"
 dependencies = [
  "askama",
  "prost",
diff --git a/services/proto/proto_gen/Cargo.toml b/services/proto/proto_gen/Cargo.toml
index 0772215..026ae8e 100644
--- a/services/proto/proto_gen/Cargo.toml
+++ b/services/proto/proto_gen/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_proto_gen"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Generating Rust protocols from protobuf."
 license = "Apache-2.0"
diff --git a/services/scheduler/app/Cargo.toml b/services/scheduler/app/Cargo.toml
index a12d9b5..556aa25 100644
--- a/services/scheduler/app/Cargo.toml
+++ b/services/scheduler/app/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_scheduler_service"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave worker."
 license = "Apache-2.0"
diff --git a/services/scheduler/enclave/Cargo.toml b/services/scheduler/enclave/Cargo.toml
index f9ebce8..e991a27 100644
--- a/services/scheduler/enclave/Cargo.toml
+++ b/services/scheduler/enclave/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_scheduler_service_enclave"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Scheduler Service"
 license = "Apache-2.0"
diff --git a/services/storage/app/Cargo.toml b/services/storage/app/Cargo.toml
index 1cde92c..385a8f8 100644
--- a/services/storage/app/Cargo.toml
+++ b/services/storage/app/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_storage_service"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Storage Service"
 license = "Apache-2.0"
diff --git a/services/storage/enclave/Cargo.toml b/services/storage/enclave/Cargo.toml
index 10cd5d5..98c6c9d 100644
--- a/services/storage/enclave/Cargo.toml
+++ b/services/storage/enclave/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_storage_service_enclave"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave Storage Service enclave"
 license = "Apache-2.0"
diff --git a/services/utils/service_app_utils/Cargo.toml b/services/utils/service_app_utils/Cargo.toml
index dcd422e..4f16c8e 100644
--- a/services/utils/service_app_utils/Cargo.toml
+++ b/services/utils/service_app_utils/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_service_app_utils"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave service app utils"
 license = "Apache-2.0"
diff --git a/services/utils/service_enclave_utils/Cargo.toml b/services/utils/service_enclave_utils/Cargo.toml
index 26b9ca5..4a3bb77 100644
--- a/services/utils/service_enclave_utils/Cargo.toml
+++ b/services/utils/service_enclave_utils/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_service_enclave_utils"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave enclave utils"
 license = "Apache-2.0"
diff --git a/services/utils/service_enclave_utils/proc_macro/Cargo.toml b/services/utils/service_enclave_utils/proc_macro/Cargo.toml
index 57d4a51..9624fa9 100644
--- a/services/utils/service_enclave_utils/proc_macro/Cargo.toml
+++ b/services/utils/service_enclave_utils/proc_macro/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_service_enclave_utils_proc_macro"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Procedure macro for service enclave utilities"
 license = "Apache-2.0"
diff --git a/tests/functional/app/Cargo.toml b/tests/functional/app/Cargo.toml
index 51cd3df..5184716 100644
--- a/tests/functional/app/Cargo.toml
+++ b/tests/functional/app/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_functional_tests"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Enclave test driver"
 license = "Apache-2.0"
diff --git a/tests/functional/enclave/Cargo.toml b/tests/functional/enclave/Cargo.toml
index eb23e32..e45af59 100644
--- a/tests/functional/enclave/Cargo.toml
+++ b/tests/functional/enclave/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_functional_tests_enclave"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Service Functional Test"
 license = "Apache-2.0"
diff --git a/tests/integration/app/Cargo.toml b/tests/integration/app/Cargo.toml
index 8999c51..b7f858d 100644
--- a/tests/integration/app/Cargo.toml
+++ b/tests/integration/app/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_integration_tests"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Integration tests"
 license = "Apache-2.0"
diff --git a/tests/integration/enclave/Cargo.toml b/tests/integration/enclave/Cargo.toml
index 4444598..8218e51 100644
--- a/tests/integration/enclave/Cargo.toml
+++ b/tests/integration/enclave/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_integration_tests_enclave"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Integration Test"
 license = "Apache-2.0"
diff --git a/tests/unit/app/Cargo.toml b/tests/unit/app/Cargo.toml
index d18e0c8..836295e 100644
--- a/tests/unit/app/Cargo.toml
+++ b/tests/unit/app/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_unit_tests"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Enclave test driver"
 license = "Apache-2.0"
diff --git a/tests/unit/enclave/Cargo.toml b/tests/unit/enclave/Cargo.toml
index 80f971d..57c750a 100644
--- a/tests/unit/enclave/Cargo.toml
+++ b/tests/unit/enclave/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_unit_tests_enclave"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Enclave Unit Test"
 license = "Apache-2.0"
diff --git a/tests/utils/Cargo.toml b/tests/utils/Cargo.toml
index 9995c31..f9d25c7 100644
--- a/tests/utils/Cargo.toml
+++ b/tests/utils/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_test_utils"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave test utility"
 license = "Apache-2.0"
diff --git a/tool/app/Cargo.toml b/tool/app/Cargo.toml
index 70f9f66..83cad53 100644
--- a/tool/app/Cargo.toml
+++ b/tool/app/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_sgx_tool"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave SGX Tool"
 license = "Apache-2.0"
diff --git a/tool/enclave/Cargo.toml b/tool/enclave/Cargo.toml
index 37920b6..b04ef7d 100644
--- a/tool/enclave/Cargo.toml
+++ b/tool/enclave/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_sgx_tool_enclave"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave SGX Tool"
 license = "Apache-2.0"
diff --git a/types/Cargo.toml b/types/Cargo.toml
index b54e1d7..293cc29 100644
--- a/types/Cargo.toml
+++ b/types/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_types"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave types"
 license = "Apache-2.0"
diff --git a/worker/Cargo.toml b/worker/Cargo.toml
index de88807..edae189 100644
--- a/worker/Cargo.toml
+++ b/worker/Cargo.toml
@@ -17,7 +17,7 @@
 
 [package]
 name = "teaclave_worker"
-version = "0.2.0"
+version = "0.4.0"
 authors = ["Teaclave Contributors <dev@teaclave.apache.org>"]
 description = "Teaclave worker"
 license = "Apache-2.0"