diff --git a/ci/get_features.py b/ci/get_features.py
new file mode 100755
index 0000000..3220dc3
--- /dev/null
+++ b/ci/get_features.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python3
+
+# Copyright 2020 JUUL Labs
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import argparse
+import os.path
+import toml
+
+parser = argparse.ArgumentParser(description='Print features from a Cargo.toml.')
+parser.add_argument('infile', help='Input file to parse')
+
+args = parser.parse_args()
+if not os.path.isfile(args.infile):
+    print("File not found")
+    exit(1)
+
+try:
+    cargo_toml = open(args.infile).read()
+except Exception:
+    print("Error reading \"{}\"".format(args.infile))
+    exit(1)
+
+config = toml.loads(cargo_toml)
+if 'features' not in config:
+    print("Missing \"[features]\" section")
+    exit(1)
+
+print(" ".join([k for k in config['features'] if k != 'default']))
diff --git a/ci/requirements.txt b/ci/requirements.txt
new file mode 100644
index 0000000..bd79a65
--- /dev/null
+++ b/ci/requirements.txt
@@ -0,0 +1 @@
+toml
diff --git a/ci/sim_install.sh b/ci/sim_install.sh
index b9a4cae..8ec96cf 100755
--- a/ci/sim_install.sh
+++ b/ci/sim_install.sh
@@ -12,6 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+pip3 install --user -r ci/requirements.txt
+
 pushd sim && cargo fetch
 [[ $? -ne 0 ]] && exit 1
 popd
diff --git a/ci/sim_run.sh b/ci/sim_run.sh
index 3a9b0df..6c0e3f2 100755
--- a/ci/sim_run.sh
+++ b/ci/sim_run.sh
@@ -12,13 +12,17 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+GET_FEATURES="$(pwd)/ci/get_features.py"
+CARGO_TOML="$(pwd)/sim/Cargo.toml"
+
 pushd sim
 
+all_features="$(${GET_FEATURES} ${CARGO_TOML})"
+[ $? -ne 0 ] && exit 1
+
 EXIT_CODE=0
 
 if [[ ! -z $SINGLE_FEATURES ]]; then
-  all_features="sig-rsa sig-ecdsa overwrite-only validate-primary-slot enc-rsa enc-kw bootstrap"
-
   if [[ $SINGLE_FEATURES =~ "none" ]]; then
     echo "Running cargo with no features"
     cargo test
