From cdb91eb5b3bdf052a70692fca2d0c80935cc9cad Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Fri, 22 Jan 2021 10:01:12 +0100 Subject: [PATCH 01/81] Many improvements, SGX and native modules support (#1) --- .gitignore | 3 + README.md | 94 ++++ add_new_architectures.md | 180 ++++++++ example/example.json | 33 -- example/info.txt | 6 - example/result.json | 46 -- example/sm1.c | 40 -- example/sm2.c | 28 -- examples/README.md | 3 + examples/example_hybrid/input.json | 70 +++ examples/example_hybrid/sm1/Cargo.toml | 9 + examples/example_hybrid/sm1/src/lib.rs | 11 + examples/example_hybrid/sm2/Cargo.toml | 9 + examples/example_hybrid/sm2/src/lib.rs | 20 + examples/example_hybrid/sm3.c | 28 ++ examples/example_hybrid/sm4.c | 16 + examples/example_native/input.json | 37 ++ examples/example_native/sm1/Cargo.toml | 9 + examples/example_native/sm1/src/lib.rs | 31 ++ examples/example_native/sm2/Cargo.toml | 9 + examples/example_native/sm2/src/lib.rs | 17 + examples/example_sancus/input.json | 43 ++ examples/example_sancus/sm1.c | 49 +++ examples/example_sancus/sm2.c | 27 ++ examples/example_sgx/input.json | 41 ++ examples/example_sgx/sm1/Cargo.toml | 9 + examples/example_sgx/sm1/src/lib.rs | 31 ++ examples/example_sgx/sm2/Cargo.toml | 9 + examples/example_sgx/sm2/src/lib.rs | 17 + reactivetools/cli.py | 145 ++++++- reactivetools/config.py | 401 ++++++++++++++++-- reactivetools/connection.py | 109 ++++- reactivetools/crypto.py | 106 +++++ reactivetools/glob.py | 18 + reactivetools/modules/__init__.py | 4 + reactivetools/modules/base.py | 57 +++ reactivetools/modules/native.py | 241 +++++++++++ .../{modules.py => modules/sancus.py} | 187 +++++--- reactivetools/modules/sgx.py | 357 ++++++++++++++++ reactivetools/nodes.py | 220 ---------- reactivetools/nodes/__init__.py | 3 + reactivetools/nodes/base.py | 205 +++++++++ reactivetools/nodes/native.py | 28 ++ reactivetools/nodes/sancus.py | 141 ++++++ reactivetools/nodes/sgx.py | 94 ++++ reactivetools/periodic_event.py | 12 + reactivetools/tools.py | 125 +++++- settings_template.json | 15 + setup.py | 3 +- sgx.md | 55 +++ 50 files changed, 2958 insertions(+), 493 deletions(-) create mode 100644 README.md create mode 100644 add_new_architectures.md delete mode 100644 example/example.json delete mode 100644 example/info.txt delete mode 100644 example/result.json delete mode 100644 example/sm1.c delete mode 100644 example/sm2.c create mode 100644 examples/README.md create mode 100644 examples/example_hybrid/input.json create mode 100644 examples/example_hybrid/sm1/Cargo.toml create mode 100644 examples/example_hybrid/sm1/src/lib.rs create mode 100644 examples/example_hybrid/sm2/Cargo.toml create mode 100644 examples/example_hybrid/sm2/src/lib.rs create mode 100644 examples/example_hybrid/sm3.c create mode 100644 examples/example_hybrid/sm4.c create mode 100644 examples/example_native/input.json create mode 100644 examples/example_native/sm1/Cargo.toml create mode 100644 examples/example_native/sm1/src/lib.rs create mode 100644 examples/example_native/sm2/Cargo.toml create mode 100644 examples/example_native/sm2/src/lib.rs create mode 100644 examples/example_sancus/input.json create mode 100644 examples/example_sancus/sm1.c create mode 100644 examples/example_sancus/sm2.c create mode 100644 examples/example_sgx/input.json create mode 100644 examples/example_sgx/sm1/Cargo.toml create mode 100644 examples/example_sgx/sm1/src/lib.rs create mode 100644 examples/example_sgx/sm2/Cargo.toml create mode 100644 examples/example_sgx/sm2/src/lib.rs create mode 100644 reactivetools/crypto.py create mode 100644 reactivetools/glob.py create mode 100644 reactivetools/modules/__init__.py create mode 100644 reactivetools/modules/base.py create mode 100644 reactivetools/modules/native.py rename reactivetools/{modules.py => modules/sancus.py} (62%) create mode 100644 reactivetools/modules/sgx.py delete mode 100644 reactivetools/nodes.py create mode 100644 reactivetools/nodes/__init__.py create mode 100644 reactivetools/nodes/base.py create mode 100644 reactivetools/nodes/native.py create mode 100644 reactivetools/nodes/sancus.py create mode 100644 reactivetools/nodes/sgx.py create mode 100644 reactivetools/periodic_event.py create mode 100644 settings_template.json create mode 100644 sgx.md diff --git a/.gitignore b/.gitignore index 11733b3..d2b2ac6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ __pycache__/ *.egg-info/ *.swp + +build +dist diff --git a/README.md b/README.md new file mode 100644 index 0000000..f1445d7 --- /dev/null +++ b/README.md @@ -0,0 +1,94 @@ +# reactive-tools + +Tools for Authentic Execution work. [Website](https://people.cs.kuleuven.be/~jantobias.muehlberg/stm17/) + +## Support + +Currently, the following architectures are supported: + +- Sancus +- Intel SGX +- Normal computers ("No-SGX", for testing purposes) + +### Extending support for new architectures + +See [here](add_new_architectures.md) + +## Requirements + +### Target devices + +**Sancus** + +- [Reactive application](https://github.com/fritzalder/sancus-riot/tree/reactive-app/sancus-testbed/reactive) + - Event Manager & Module Loader running on top of RIOT OS port for Sancus + +**Intel SGX** + +- [Rust](https://www.rust-lang.org/tools/install) - to run the event manager +- [Fortanix EDP](https://edp.fortanix.com/docs/installation/guide/) - to run SGX enclaves +- [Event Manager](https://github.com/gianlu33/rust-sgx-apps) + +**Native** + +- [Rust](https://www.rust-lang.org/tools/install) - to run the event manager +- [Event Manager](https://github.com/gianlu33/rust-sgx-apps) + +### Deployer + +**Note**: you only need to install the dependencies of the architectures you are interested in. + +- e.g. if your system only works with Sancus devices, you don't need Fortanix EDP + +**Sancus** + +- [Sancus compiler](https://distrinet.cs.kuleuven.be/software/sancus/install.php) + - You also need to add to add the python library to `PYTHONPATH` + - `export PYTHONPATH=$PYTHONPATH:/usr/local/share/sancus-compiler/python/lib/` + +**Intel SGX/Native** + +- Rust & Fortanix EDP +- [`rust-sgx-gen`](https://github.com/gianlu33/rust-sgx-gen/) - code generation tool + +- [Utility apps](https://github.com/gianlu33/rust-sgx-apps) - `aes_encryptor`, `ra_client` and `ra_sp` + - needed for connection key encryption and remote attestation + - Simply run the `install_deployer.sh` script in the `apps` folder +- See [here](sgx.md) for more details + +## Run + +Install `reactive-tools` by running `pip install .` from the root folder. + +### Deploy an Authentic Execution network + +**Inputs** + +- Code for each module +- JSON file describing the configuration of the system +- see [examples](examples) + +**Command** + +Run `reactive-tools deploy -h` for more information + +**Output** + +- If everything goes well, your modules will be automatically loaded inside the nodes you specified, and connections will be established! +- If you specified an output file (`--result `), the final configuration will be saved in a JSON format (which includes all information you may need such as keys, binaries, etc) + +### Call an entrypoint + +**Inputs** + +- Result JSON of the `deploy` command +- Module and entry name +- Optional argument (hex byte array) + +**Command** + +Run `reactive-tools call -h` for more information + +**Output** + +- If everything goes well, the entrypoint is correctly called diff --git a/add_new_architectures.md b/add_new_architectures.md new file mode 100644 index 0000000..3174db4 --- /dev/null +++ b/add_new_architectures.md @@ -0,0 +1,180 @@ +# Add support for a new architecture + +It is quite easy to extend the scripts to support new architectures. + +This file provides an example of what it is necessary to do in this case. We'll suppose to add support for ARM TrustZone. + +## Note before starting + +The scripts use massively `asyncio` framework, which is a powerful tool to perform asynchronous operations (like opening a file, connecting to a remote host, executing a subprocess..). + +All the common methods that you need to implement are asynchronous (defined with the `async` keyword), but it is not mandatory to actually use asynchronous operations (so, you can implement those methods as normal ones). + +However, it is _highly recommended_ to use as much concurrency as possible, to speed up significantly the deployment process. + +## Implement Module class + +Add a python file called `trustzone.py` in `modules` folder, defining a new class called `TrustZoneModule`, which extends the base class `Module` (defined in `base.py`). Also, import the module in the `__init__.py`, so that the Module will be in the scope of `modules` . + + + +The following abstract methods need to be implemented: + +- `deploy(self)` + + - This method should eventually call the `deploy` method of its node + +- `call(self, entry, arg=None)` + + - This method should eventually call the `call` method of its node + - `entry`: entrypoint name + - `arg`: optional argument, which must be a byte array + +- `get_id(self)` + + - returns the ID of the module + +- `get_input_id(self, input)` + + - returns the input ID + +- `get_output_id(self, output)` + + - returns the output ID + +- `get_entry_id(self, entry)` + + - returns the entrypoint ID + +- `get_key(self)` + + - returns the module's Master Key + +- `get_supported_encryption()` - _static method_ + + - should return a list of `connection.Encryption` elements, describing which encryption algorithms are supported by the module + +- `get_supported_node_type()` - _static method_ + + - should return the node class supported by the module + + + +All modules have also some common attributes, which are: + +- `name`: module name. Specified in the input JSON file +- `node`: node the module belongs to. It is a `Node` object. Node's name is specified in the input JSON file. + + + +For all the other methods/attributes, the developer can choose his own implementation. + +## Implement Node class + +Add a python file called `trustzone.py` in `nodes` folder, defining a new class called `TrustZoneNode`, which extends the base class `Node` (defined in `base.py`). Also, import the module in the `__init__.py`, so that the Module will be in the scope of `node` . + + + +The following abstract methods need to be implemented: + +- `deploy(self, module)` + - Ideally, in this method we send the binary of `module` to the node +- `connect(self, from_module, from_output, to_module, to_input)` + - Send to the Event Manager of the node a new connection between modules + - `from_module` and `to_module` are objects of the `Module` class + - `from_output` and `to_input` are strings (not ids) +- `set_key(self, module, io_name, encryption, key, conn_io)` + - Set the key for a connection. A message to `module` has to be sent through the Event Manager + - `io_name`: name of the input/output + - `encryption`: encryption algorithm ID (see below) + - `key`: connection key + - `conn_io`: specifies if `io_name` is an output or an input. See `connection.ConnectionIO` + +- `call(self, module, entry, arg=None)` + - `module`: `Module` object + - `entry`: entrypoint name + - `arg`: optional argument, which is a byte array + + + +All nodes have also some common attributes, which are: + +- `name`: node name. Specified in the input JSON file +- `ip_address`: address of the node, which is either a `IPv4Address` or a `IPv6Address` (see [ipaddress](https://docs.python.org/3/library/ipaddress.html) library). Specified in the input JSON file +- `reactive_port`: port the Event Manager listens to events from. Specified in the input JSON file +- `deploy_port`: port the Module Loader listens from. Specified in the input JSON file + + + +For all the other methods/attributes, the developer can choose his own implementation. + +## Add new encryption types + +In `connection.py` we can add new encryption algorithms in the `Encryption` enum class. If you need to add a new algorithm, modify this class accordingly. + +Note that two modules can be connected using a specific encryption **only** if both of them support it. If, for example, you want to connect a SGX module with a TrustZone module using an encryption algorithm X, you have to: + +- Implement that encryption algorithm in the modules code + - For SGX/Native modules, just update the [`reactive_crypto`](https://github.com/gianlu33/rust-sgx-libs/tree/master/reactive_crypto) library +- Update the method `get_supported_encryption` of `SGXModule` and `TrustZoneModule`. + +## Update config.py + +Last thing we have to do is update `config.py` to correctly read/write a module or node from/to a JSON file. + +### Import Node and Module classes + +Simple as that. + +### Load node and module from the input JSON file + +You have to update `_node_load_funcs` and `_module_load_funcs` dicts + +- The key is the name of the architecture (as it appears on the input JSON) +- The value is an handler, which will be called to load a Node / Module + +Example: + +```python +_module_load_funcs = { + # other architectures.. + 'trustzone': _load_trustzone_module +} + +def _load_trustzone_module(mod_dict, config): + name = mod_dict['name'] + node = config.get_node(mod_dict['node']) + # other attributes.. + + return TrustZoneModule(name, node, ...) +``` + +### Dump to output JSON file + +You need a dumper for your Node and Module classes. Example: + +```python +@_dump.register(TrustZoneModule) +def _(module): + return { + "type": "trustzone", + "name": module.name, + # other attributes.. + } + +@_dump.register(TrustZoneNode) +def _(node): + return { + "type": "trustzone", + "name": node.name, + # other attributes.. + } +``` + +## Import external Python modules + +If you need to import an external python module you are completely allowed to do it, but for specific modules (e.g. a TrustZone code generator) it is recommended to import the module **only** _inside_ the functions that use it. + +In this way, if we don't use a specific architecture we are not forced to install its modules, and the scripts will work without it as well. + +E.g. If i don't use Sancus modules in my system, i don't need to install Sancus compiler and its python library to run the scripts. diff --git a/example/example.json b/example/example.json deleted file mode 100644 index d1e7619..0000000 --- a/example/example.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "nodes": [ - { - "type": "sancus", - "name": "node1", - "ip_address": "192.168.0.2", - "vendor_id": 4660, - "vendor_key": "4078d505d82099ba" - } - ], - "modules" : [ - { - "type": "sancus", - "name": "sm1", - "files": ["sm1.c"], - "node": "node1" - }, - { - "type": "sancus", - "name": "sm2", - "files": ["sm2.c"], - "node": "node1" - } - ], - "connections": [ - { - "from_module": "sm1", - "from_output": "output", - "to_module": "sm2", - "to_input": "input" - } - ] -} diff --git a/example/info.txt b/example/info.txt deleted file mode 100644 index 4ef8ab4..0000000 --- a/example/info.txt +++ /dev/null @@ -1,6 +0,0 @@ -reactive-tools deploy example.json --result result.json -sancus-crypto --key --mac buttons_driver -reactive-tools call --config result.json --module sm1 --entry init --arg -sancus-crypto --key --mac lcd_driver -reactive-tools call --config result.json --module sm2 --entry init --arg - \ No newline at end of file diff --git a/example/result.json b/example/result.json deleted file mode 100644 index 84d32ec..0000000 --- a/example/result.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "connections": [ - { - "from_output": "output", - "from_module": "sm1", - "key": "9d458b1b871a1f6c", - "to_input": "input", - "to_module": "sm2" - } - ], - "modules": [ - { - "id": 5, - "symtab": "/tmp/tmp3g2bhsva.ld", - "files": [ - "/home/job/test/sancus/reactive/sm1.c" - ], - "node": "node1", - "key": "245355d57e6ae413", - "name": "sm1", - "binary": "/tmp/tmpw5u59raa.elf", - "type": "sancus" - }, - { - "id": 6, - "symtab": "/tmp/tmpycjlxdj5.ld", - "files": [ - "/home/job/test/sancus/reactive/sm2.c" - ], - "node": "node1", - "key": "4064dc064c4906bd", - "name": "sm2", - "binary": "/tmp/tmpgj1yp6ox.elf", - "type": "sancus" - } - ], - "nodes": [ - { - "ip_address": "192.168.0.2", - "name": "node1", - "vendor_id": 4660, - "type": "sancus", - "vendor_key": "4078d505d82099ba" - } - ] -} \ No newline at end of file diff --git a/example/sm1.c b/example/sm1.c deleted file mode 100644 index 561dbe1..0000000 --- a/example/sm1.c +++ /dev/null @@ -1,40 +0,0 @@ -#include - -#include - -#include "/home/job/phd/sancus/contiki-support/examples/sm-server/buttons_driver.h" - -SM_OUTPUT(sm1, output); - -SM_ENTRY(sm1) void on_button_event(int pressed) -{ - if (sancus_get_caller_id() != *SM_GET_VERIFY_ID(sm1, buttons_driver)) - { - //puts("Illegal caller"); - return; - } - - output(&pressed, sizeof(pressed)); -} - -SM_ENTRY(sm1) void init(uint8_t* input_data, size_t len) -{ -// puts("SM1 init"); - - sm_id driver_id = sancus_verify_address(input_data, - SM_GET_ENTRY(buttons_driver)); - - if (driver_id == 0) - { - //puts("Driver verification failed"); - return; - } - - *SM_GET_VERIFY_ID(sm1, buttons_driver) = driver_id; - - //puts("Registering callback"); - buttons_driver_register_callback(Button1, - SM_GET_ENTRY(sm1), - SM_GET_ENTRY_IDX(sm1, on_button_event)); - //puts("Done"); -} diff --git a/example/sm2.c b/example/sm2.c deleted file mode 100644 index df37460..0000000 --- a/example/sm2.c +++ /dev/null @@ -1,28 +0,0 @@ -#include - -#include - -#include "/home/job/phd/sancus/contiki-support/examples/sm-server/lcd_driver.h" - -SM_INPUT(sm2, input, data, len) -{ - int pressed = *(int*)data; - lcd_driver_write(pressed ? "P" : "R"); -} - -SM_ENTRY(sm2) void init(uint8_t* input_data, size_t len) -{ -// puts("SM2 init"); - - sm_id driver_id = sancus_verify_address(input_data, - SM_GET_ENTRY(lcd_driver)); - - if (driver_id == 0) - { -// puts("Driver verification failed"); - return; - } - - *SM_GET_VERIFY_ID(sm2, lcd_driver) = driver_id; - lcd_driver_acquire(); -} diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..54ee843 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,3 @@ +# Run the examples + +TODO diff --git a/examples/example_hybrid/input.json b/examples/example_hybrid/input.json new file mode 100644 index 0000000..ad0cc99 --- /dev/null +++ b/examples/example_hybrid/input.json @@ -0,0 +1,70 @@ +{ + "nodes": [ + { + "type": "native", + "name": "node1", + "ip_address": "127.0.0.1", + "reactive_port": 5000 + }, + { + "type": "sancus", + "name": "node2", + "ip_address": "127.0.0.1", + "vendor_id": 4660, + "vendor_key": "0b7bf3ae40880a8be430d0da34fb76f0", + "reactive_port": 6000 + } + ], + "modules" : [ + { + "type": "native", + "name": "sm1", + "node": "node1", + }, + { + "type": "native", + "name": "sm2", + "node": "node1", + }, + { + "type": "sancus", + "name": "sm3", + "files": ["sm3.c"], + "node": "node2" + }, + { + "type": "sancus", + "name": "sm4", + "files": ["sm4.c"], + "node": "node2" + } + ], + "connections": [ + { + "from_module": "sm1", + "from_output": "output1", + "to_module": "sm3", + "to_input": "input3", + "encryption": "spongent" + }, + { + "from_module": "sm4", + "from_output": "output4", + "to_module": "sm2", + "to_input": "input2", + "encryption": "spongent" + }, + { + "direct": true, + "to_module": "sm3", + "to_input": "input3", + "encryption": "spongent" + }, + { + "direct": true, + "to_module": "sm2", + "to_input": "input2", + "encryption": "aes" + } + ] +} diff --git a/examples/example_hybrid/sm1/Cargo.toml b/examples/example_hybrid/sm1/Cargo.toml new file mode 100644 index 0000000..2e4cf56 --- /dev/null +++ b/examples/example_hybrid/sm1/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "sm1" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/examples/example_hybrid/sm1/src/lib.rs b/examples/example_hybrid/sm1/src/lib.rs new file mode 100644 index 0000000..6a37996 --- /dev/null +++ b/examples/example_hybrid/sm1/src/lib.rs @@ -0,0 +1,11 @@ +//@ sm_output(output1) + + +//@ sm_entry +pub fn entry(data : &[u8]) -> ResultMessage { + info!("entry"); + + output1(&33u16.to_le_bytes()); + + success(None) +} diff --git a/examples/example_hybrid/sm2/Cargo.toml b/examples/example_hybrid/sm2/Cargo.toml new file mode 100644 index 0000000..f63a259 --- /dev/null +++ b/examples/example_hybrid/sm2/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "sm2" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/examples/example_hybrid/sm2/src/lib.rs b/examples/example_hybrid/sm2/src/lib.rs new file mode 100644 index 0000000..6e832a2 --- /dev/null +++ b/examples/example_hybrid/sm2/src/lib.rs @@ -0,0 +1,20 @@ +//@ sm_input +pub fn input2(data : &[u8]) { + info!("input"); + + if data.len() < 2 { + error!("Wrong data received"); + return; + } + + let val = u16::from_le_bytes([data[0], data[1]]); + + info!(&format!("Val: {}", val)); +} + +//@ sm_entry +pub fn entry(data : &[u8]) -> ResultMessage { + info!("entry"); + + success(None) +} diff --git a/examples/example_hybrid/sm3.c b/examples/example_hybrid/sm3.c new file mode 100644 index 0000000..74d4030 --- /dev/null +++ b/examples/example_hybrid/sm3.c @@ -0,0 +1,28 @@ +#include + +#include + +SM_INPUT(sm3, input3, data, len) +{ + if(len < 2) { + puts("SM3 input3: Wrong data"); + return; + } + + unsigned int val = *(unsigned int*) data; + + if(val == 33) { + puts("SM3 input3: Correct!"); + } + else { + puts("SM3 input3: Wrong"); + } +} + +SM_ENTRY(sm3) void init(uint8_t* input_data, size_t len) + +{ + (void) input_data; + (void) len; + puts("hello from sm3"); +} diff --git a/examples/example_hybrid/sm4.c b/examples/example_hybrid/sm4.c new file mode 100644 index 0000000..1c79ebf --- /dev/null +++ b/examples/example_hybrid/sm4.c @@ -0,0 +1,16 @@ +#include + +#include +#include + +SM_OUTPUT(sm4, output4); + + +SM_ENTRY(sm4) void init(uint8_t* input_data, size_t len) +{ + puts("SM4 init"); + + unsigned int val = 33; + + output4((unsigned char*) &val, sizeof(unsigned int)); +} diff --git a/examples/example_native/input.json b/examples/example_native/input.json new file mode 100644 index 0000000..7657c9e --- /dev/null +++ b/examples/example_native/input.json @@ -0,0 +1,37 @@ +{ + "nodes": [ + { + "type": "native", + "name": "node1", + "ip_address": "127.0.0.1", + "reactive_port": 5000 + } + ], + "modules" : [ + { + "type": "native", + "name": "sm1", + "node": "node1" + }, + { + "type": "native", + "name": "sm2", + "node": "node1" + } + ], + "connections" : [ + { + "from_module": "sm1", + "from_output": "output", + "to_module": "sm2", + "to_input": "input", + "encryption": "aes" + }, + { + "direct": true, + "to_module": "sm2", + "to_input": "input", + "encryption": "aes" + } + ] +} diff --git a/examples/example_native/sm1/Cargo.toml b/examples/example_native/sm1/Cargo.toml new file mode 100644 index 0000000..2e4cf56 --- /dev/null +++ b/examples/example_native/sm1/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "sm1" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/examples/example_native/sm1/src/lib.rs b/examples/example_native/sm1/src/lib.rs new file mode 100644 index 0000000..4adda42 --- /dev/null +++ b/examples/example_native/sm1/src/lib.rs @@ -0,0 +1,31 @@ +//@ sm_output(output) +//@ sm_output(output2) + + +//@ sm_entry +pub fn entry(data : &[u8]) -> ResultMessage { + info!("entry"); + + output(data); + + success(None) +} + +//@ sm_entry +pub fn entry2(data : &[u8]) -> ResultMessage { + info!("entry2"); + + output2(data); + + success(None) +} + +//@ sm_entry +pub fn entry3(data : &[u8]) -> ResultMessage { + info!("entry3"); + + output(data); + output2(data); + + success(None) +} diff --git a/examples/example_native/sm2/Cargo.toml b/examples/example_native/sm2/Cargo.toml new file mode 100644 index 0000000..f63a259 --- /dev/null +++ b/examples/example_native/sm2/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "sm2" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/examples/example_native/sm2/src/lib.rs b/examples/example_native/sm2/src/lib.rs new file mode 100644 index 0000000..e27aa55 --- /dev/null +++ b/examples/example_native/sm2/src/lib.rs @@ -0,0 +1,17 @@ + +//@ sm_input +pub fn input(_data : &[u8]) { + info!("input"); +} + +//@ sm_input +pub fn input2(_data : &[u8]) { + info!("input2"); +} + +//@ sm_entry +pub fn entry(data : &[u8]) -> ResultMessage { + info!("entry"); + + success(None) +} diff --git a/examples/example_sancus/input.json b/examples/example_sancus/input.json new file mode 100644 index 0000000..1324289 --- /dev/null +++ b/examples/example_sancus/input.json @@ -0,0 +1,43 @@ +{ + "nodes": [ + { + "type": "sancus", + "name": "node1", + "ip_address": "127.0.0.1", + "vendor_id": 4660, + "vendor_key": "0b7bf3ae40880a8be430d0da34fb76f0", + "reactive_port": 5000 + } + ], + "modules" : [ + { + "type": "sancus", + "name": "sm1", + "files": ["sm1.c"], + "node": "node1" + }, + { + "type": "sancus", + "name": "sm2", + "files": ["sm2.c"], + "node": "node1" + } + ], + "connections": [ + { + "from_module": "sm2", + "from_output": "output", + "to_module": "sm1", + "to_input": "input", + "encryption": "spongent" + }, + { + "direct": true, + "to_module": "sm1", + "to_input": "input", + "encryption": "spongent" + } + ], + "periodic-events": [ + ] +} diff --git a/examples/example_sancus/sm1.c b/examples/example_sancus/sm1.c new file mode 100644 index 0000000..00aacd8 --- /dev/null +++ b/examples/example_sancus/sm1.c @@ -0,0 +1,49 @@ +#include + +#include + +SM_INPUT(sm1, input, data, len) +{ + puts("SM1 input!"); + + if(len != sizeof(unsigned int)) { + puts("Wrong data received!"); + return; + } + + unsigned int val = *(unsigned int*) data; + + if(val == 33) { + puts("SM1 input Correct!"); + } + else { + puts("SM1 input Wrong"); + } +} + +SM_INPUT(sm1, input2, data, len) +{ + puts("SM1 input2!"); + + if(len != sizeof(unsigned int)) { + puts("Wrong data received!"); + return; + } + + unsigned int val = *(unsigned int*) data; + + if(val == 33) { + puts("SM1 input2 Correct!"); + } + else { + puts("SM1 input2 Wrong"); + } +} + +SM_ENTRY(sm1) void init(uint8_t* input_data, size_t len) + +{ + (void) input_data; + (void) len; + puts("hello from sm1"); +} diff --git a/examples/example_sancus/sm2.c b/examples/example_sancus/sm2.c new file mode 100644 index 0000000..d00a827 --- /dev/null +++ b/examples/example_sancus/sm2.c @@ -0,0 +1,27 @@ +#include + +#include +#include + +SM_OUTPUT(sm2, output); +SM_OUTPUT(sm2, output2); + + +SM_ENTRY(sm2) void init(uint8_t* input_data, size_t len) +{ + puts("SM2 init\n"); + + unsigned int val = 33; + + output((unsigned char*) &val, sizeof(unsigned int)); +} + +SM_ENTRY(sm2) void init2(uint8_t* input_data, size_t len) +{ + puts("SM2 init2\n"); + + unsigned int val = 33; + + output((unsigned char*) &val, sizeof(unsigned int)); + output2((unsigned char*) &val, sizeof(unsigned int)); +} diff --git a/examples/example_sgx/input.json b/examples/example_sgx/input.json new file mode 100644 index 0000000..af6916a --- /dev/null +++ b/examples/example_sgx/input.json @@ -0,0 +1,41 @@ +{ + "nodes": [ + { + "type": "sgx", + "name": "node1", + "ip_address": "127.0.0.1", + "reactive_port": 5000 + } + ], + "modules" : [ + { + "type": "sgx", + "name": "sm1", + "node": "node1", + "vendor_key": "", + "ra_settings": "" + }, + { + "type": "sgx", + "name": "sm2", + "node": "node1", + "vendor_key": "", + "ra_settings": "" + } + ], + "connections" : [ + { + "from_module": "sm1", + "from_output": "output", + "to_module": "sm2", + "to_input": "input", + "encryption": "aes" + }, + { + "direct": true, + "to_module": "sm2", + "to_input": "input", + "encryption": "aes" + } + ] +} diff --git a/examples/example_sgx/sm1/Cargo.toml b/examples/example_sgx/sm1/Cargo.toml new file mode 100644 index 0000000..2e4cf56 --- /dev/null +++ b/examples/example_sgx/sm1/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "sm1" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/examples/example_sgx/sm1/src/lib.rs b/examples/example_sgx/sm1/src/lib.rs new file mode 100644 index 0000000..4adda42 --- /dev/null +++ b/examples/example_sgx/sm1/src/lib.rs @@ -0,0 +1,31 @@ +//@ sm_output(output) +//@ sm_output(output2) + + +//@ sm_entry +pub fn entry(data : &[u8]) -> ResultMessage { + info!("entry"); + + output(data); + + success(None) +} + +//@ sm_entry +pub fn entry2(data : &[u8]) -> ResultMessage { + info!("entry2"); + + output2(data); + + success(None) +} + +//@ sm_entry +pub fn entry3(data : &[u8]) -> ResultMessage { + info!("entry3"); + + output(data); + output2(data); + + success(None) +} diff --git a/examples/example_sgx/sm2/Cargo.toml b/examples/example_sgx/sm2/Cargo.toml new file mode 100644 index 0000000..f63a259 --- /dev/null +++ b/examples/example_sgx/sm2/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "sm2" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/examples/example_sgx/sm2/src/lib.rs b/examples/example_sgx/sm2/src/lib.rs new file mode 100644 index 0000000..e27aa55 --- /dev/null +++ b/examples/example_sgx/sm2/src/lib.rs @@ -0,0 +1,17 @@ + +//@ sm_input +pub fn input(_data : &[u8]) { + info!("input"); +} + +//@ sm_input +pub fn input2(_data : &[u8]) { + info!("input2"); +} + +//@ sm_entry +pub fn entry(data : &[u8]) -> ResultMessage { + info!("entry"); + + success(None) +} diff --git a/reactivetools/cli.py b/reactivetools/cli.py index 27d69ac..c835e60 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -4,8 +4,14 @@ import pdb import sys import binascii +import os from . import config +from . import tools + + +class Error(Exception): + pass def _setup_logging(args): @@ -56,13 +62,18 @@ def _parse_args(args): # Workaround a Python bug. See http://bugs.python.org/issue9253#msg186387 subparsers.required = True + # deploy deploy_parser = subparsers.add_parser( 'deploy', help='Deploy a reactive network') deploy_parser.set_defaults(command_handler=_handle_deploy) deploy_parser.add_argument( 'config', - help='Configuration file describing the network') + help='Name of the configuration file describing the network') + deploy_parser.add_argument( + '--workspace', + help='Root directory containing all the modules and the configuration file', + default=".") deploy_parser.add_argument( '--result', help='File to write the resulting configuration to') @@ -70,7 +81,25 @@ def _parse_args(args): '--deploy-in-order', help='Deploy modules in the order they are found in the config file', action='store_true') + deploy_parser.add_argument( + '--sancus-security', + help='Override default Sancus key length, in bits (for spongent connections)', + type=int) + + # build + build_parser = subparsers.add_parser( + 'build', + help='Build the executables of the SMs as declared in the input configuration file (for debugging)') + build_parser.set_defaults(command_handler=_handle_build) + build_parser.add_argument( + 'config', + help='Name of the configuration file describing the network') + build_parser.add_argument( + '--workspace', + help='Root directory containing all the modules and the configuration file', + default=".") + # call call_parser = subparsers.add_parser( 'call', help='Call a deployed module') @@ -94,12 +123,53 @@ def _parse_args(args): type=binascii.unhexlify, default=None) + # output + output_parser = subparsers.add_parser( + 'output', + help='Trigger the output of a \"direct\" connection (between deployer and SM)') + output_parser.set_defaults(command_handler=_handle_output) + output_parser.add_argument( + '--config', + help='Specify configuration file to use ' + '(the result of a previous "deploy" run)', + required=True) + output_parser.add_argument( + '--connection', + help='Connection ID or name of the connection', + required=True) + output_parser.add_argument( + '--arg', + help='Argument to pass to the output (hex byte array)', + type=binascii.unhexlify, + default=None) + + # request + request_parser = subparsers.add_parser( + 'request', + help='Trigger the request of a \"direct\" connection (between deployer and SM)') + request_parser.set_defaults(command_handler=_handle_request) + request_parser.add_argument( + '--config', + help='Specify configuration file to use ' + '(the result of a previous "deploy" run)', + required=True) + request_parser.add_argument( + '--connection', + help='Connection ID or name of the connection', + required=True) + request_parser.add_argument( + '--arg', + help='Argument to pass to the request (hex byte array)', + type=binascii.unhexlify, + default=None) + return parser.parse_args(args) def _handle_deploy(args): logging.info('Deploying %s', args.config) + os.chdir(args.workspace) conf = config.load(args.config) if args.deploy_in_order: @@ -111,16 +181,81 @@ def _handle_deploy(args): logging.info('Writing post-deployment configuration to %s', args.result) config.dump(conf, args.result) + conf.cleanup() + + +def _handle_build(args): + logging.info('Building %s', args.config) + + os.chdir(args.workspace) + conf = config.load(args.config) + conf.build() + conf.cleanup() + def _handle_call(args): logging.info('Calling %s:%s', args.module, args.entry) - conf = config.load(args.config) + conf = config.load(args.config, False) module = conf.get_module(args.module) asyncio.get_event_loop().run_until_complete( module.call(args.entry, args.arg)) + conf.cleanup() + + +def _handle_output(args): + logging.info('Triggering output of connection %s', args.connection) + + conf = config.load(args.config, False) + + if args.connection.isnumeric(): + conn = conf.get_connection_by_id(int(args.connection)) + else: + conn = conf.get_connection_by_name(args.connection) + + + if not conn.direct: + raise Error("Connection is not direct.") + + if not conn.to_input: + raise Error("Not a output-input connection") + + asyncio.get_event_loop().run_until_complete( + conn.to_module.node.output(conn, args.arg)) + + conn.nonce += 1 + config.dump(conf, args.config) + + conf.cleanup() + + +def _handle_request(args): + logging.info('Triggering request of connection %s', args.connection) + + conf = config.load(args.config, False) + + if args.connection.isnumeric(): + conn = conf.get_connection_by_id(int(args.connection)) + else: + conn = conf.get_connection_by_name(args.connection) + + + if not conn.direct: + raise Error("Connection is not direct.") + + if not conn.to_handler: + raise Error("Not a request-handler connection") + + asyncio.get_event_loop().run_until_complete( + conn.to_module.node.request(conn, args.arg)) + + conn.nonce += 2 + config.dump(conf, args.config) + + conf.cleanup() + def main(raw_args=None): args = _parse_args(raw_args) @@ -128,6 +263,11 @@ def main(raw_args=None): _setup_logging(args) _setup_pdb(args) + try: + tools.set_sancus_key_size(args.sancus_security) + except: + pass + try: args.command_handler(args) except BaseException as e: @@ -141,4 +281,3 @@ def main(raw_args=None): # exception being thrown from its destructor. Not sure why but closing # it here prevents annoying noise. asyncio.get_event_loop().close() - diff --git a/reactivetools/config.py b/reactivetools/config.py index 8e2659e..9ecd58d 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -5,14 +5,15 @@ import os import asyncio import functools -import binascii import types +import logging -import sancus.config - -from .nodes import SancusNode -from .modules import SancusModule +from .nodes import SancusNode, SGXNode, NativeNode +from .modules import SancusModule, SGXModule, NativeModule, Module from .connection import Connection +from .crypto import Encryption +from .periodic_event import PeriodicEvent +from . import tools class Error(Exception): @@ -43,32 +44,98 @@ def get_module(self, name): raise Error('No module with name {}'.format(name)) + + def get_connection_by_id(self, id): + for c in self.connections: + if c.id == id: + return c + + raise Error('No connection with ID {}'.format(id)) + + + def get_connection_by_name(self, name): + for c in self.connections: + if c.name == name: + return c + + raise Error('No connection with name {}'.format(name)) + + async def install_async(self): + await self.deploy_priority_modules() + futures = map(Connection.establish, self.connections) await asyncio.gather(*futures) + # this is needed if we don't have any connections, to ensure that + # the modules are actually deployed + await self.deploy_modules_ordered_async() + + futures = map(PeriodicEvent.register, self.periodic_events) + await asyncio.gather(*futures) + def install(self): asyncio.get_event_loop().run_until_complete(self.install_async()) async def deploy_modules_ordered_async(self): for module in self.modules: await module.deploy() + await module.get_key() # trigger remote attestation for some modules (e.g. SGX) def deploy_modules_ordered(self): asyncio.get_event_loop().run_until_complete( self.deploy_modules_ordered_async()) -def load(file_name): + async def build_async(self): + futures = [module.build() for module in self.modules] + await asyncio.gather(*futures) + + + def build(self): + asyncio.get_event_loop().run_until_complete(self.build_async()) + + + async def cleanup_async(self): + await SGXModule.kill_ra_sp() + # Add other instructions here if needed + + + def cleanup(self): + asyncio.get_event_loop().run_until_complete(self.cleanup_async()) + + + async def deploy_priority_modules(self): + priority_modules = [sm for sm in self.modules if sm.priority is not None] + priority_modules.sort(key=lambda sm : sm.priority) + + logging.debug("Priority modules: {}".format([sm.name for sm in priority_modules])) + for module in priority_modules: + await module.deploy() + + +def load(file_name, deploy=True): with open(file_name, 'r') as f: contents = json.load(f) config = Config(file_name) + config.nodes = _load_list(contents['nodes'], _load_node) config.modules = _load_list(contents['modules'], lambda m: _load_module(m, config)) - config.connections = _load_list(contents['connections'], - lambda c: _load_connection(c, config)) + + if 'connections' in contents: + config.connections = _load_list(contents['connections'], + lambda c: _load_connection(c, config, deploy)) + else: + config.connections = [] + + if 'periodic-events' in contents: + config.periodic_events = _load_list(contents['periodic-events'], + lambda e: _load_periodic_event(e, config)) + else: + config.periodic_events = [] + return config @@ -86,12 +153,31 @@ def _load_node(node_dict): def _load_sancus_node(node_dict): name = node_dict['name'] vendor_id = _parse_vendor_id(node_dict['vendor_id']) - vendor_key = _parse_vendor_key(node_dict['vendor_key']) + vendor_key = _parse_sancus_key(node_dict['vendor_key']) ip_address = ipaddress.ip_address(node_dict['ip_address']) - deploy_port = node_dict.get('deploy_port', 2000) - reactive_port = node_dict.get('reactive_port', 2001) + reactive_port = node_dict['reactive_port'] + deploy_port = node_dict.get('deploy_port', reactive_port) + return SancusNode(name, vendor_id, vendor_key, - ip_address, deploy_port, reactive_port) + ip_address, reactive_port, deploy_port) + + +def _load_sgx_node(node_dict): + name = node_dict['name'] + ip_address = ipaddress.ip_address(node_dict['ip_address']) + reactive_port = node_dict['reactive_port'] + deploy_port = node_dict.get('deploy_port', reactive_port) + + return SGXNode(name, ip_address, reactive_port, deploy_port) + + +def _load_native_node(node_dict): + name = node_dict['name'] + ip_address = ipaddress.ip_address(node_dict['ip_address']) + reactive_port = node_dict['reactive_port'] + deploy_port = node_dict.get('deploy_port', reactive_port) + + return NativeNode(name, ip_address, reactive_port, deploy_port) def _load_module(mod_dict, config): @@ -100,33 +186,102 @@ def _load_module(mod_dict, config): def _load_sancus_module(mod_dict, config): name = mod_dict['name'] + node = config.get_node(mod_dict['node']) + priority = mod_dict.get('priority') + deployed = mod_dict.get('deployed') files = _load_list(mod_dict['files'], lambda f: _load_module_file(f, config)) cflags = _load_list(mod_dict.get('cflags')) - ldflags = _load_list(mod_dict.get('ldlags')) - node = config.get_node(mod_dict['node']) + ldflags = _load_list(mod_dict.get('ldflags')) binary = mod_dict.get('binary') id = mod_dict.get('id') symtab = mod_dict.get('symtab') - key = mod_dict.get('key') - return SancusModule(name, files, cflags, ldflags, node, + key = _parse_sancus_key(mod_dict.get('key')) + return SancusModule(name, node, priority, deployed, files, cflags, ldflags, binary, id, symtab, key) -def _load_connection(conn_dict, config): - from_module = config.get_module(conn_dict['from_module']) - from_output = conn_dict['from_output'] +def _load_sgx_module(mod_dict, config): + name = mod_dict['name'] + node = config.get_node(mod_dict['node']) + priority = mod_dict.get('priority') + deployed = mod_dict.get('deployed') + vendor_key = mod_dict['vendor_key'] + settings = mod_dict['ra_settings'] + features = mod_dict.get('features') + id = mod_dict.get('id') + binary = mod_dict.get('binary') + key = _parse_key(mod_dict.get('key')) + sgxs = mod_dict.get('sgxs') + signature = mod_dict.get('signature') + data = mod_dict.get('data') + + return SGXModule(name, node, priority, deployed, vendor_key, settings, + features, id, binary, key, sgxs, signature, data) + + +def _load_native_module(mod_dict, config): + name = mod_dict['name'] + node = config.get_node(mod_dict['node']) + priority = mod_dict.get('priority') + deployed = mod_dict.get('deployed') + features = mod_dict.get('features') + id = mod_dict.get('id') + binary = mod_dict.get('binary') + key = _parse_key(mod_dict.get('key')) + data = mod_dict.get('data') + + return NativeModule(name, node, priority, deployed, features, id, binary, key, + data) + + +def _load_connection(conn_dict, config, deploy): + evaluate_rules(connection_rules(conn_dict, deploy)) + + direct = conn_dict.get('direct') + from_module = config.get_module(conn_dict['from_module']) if is_present(conn_dict, 'from_module') else None + from_output = conn_dict.get('from_output') + from_request = conn_dict.get('from_request') to_module = config.get_module(conn_dict['to_module']) - to_input = conn_dict['to_input'] + to_input = conn_dict.get('to_input') + to_handler = conn_dict.get('to_handler') + encryption = Encryption.from_str(conn_dict['encryption']) + key = _parse_key(conn_dict.get('key')) + nonce = conn_dict.get('nonce') + id = conn_dict.get('id') + name = conn_dict.get('name') - # Don't use dict.get() here because we don't want to call os.urandom() when - # not strictly necessary. - if 'key' in conn_dict: - key = conn_dict['key'] - else: - key = os.urandom(sancus.config.SECURITY // 8) + if deploy: + id = Connection.get_connection_id() # incremental ID + key = _generate_key(from_module, to_module, encryption) # auto-generated key + nonce = 0 # only used for direct connections + + if from_module is not None: + from_module.connections += 1 + to_module.connections += 1 + + if name is None: + name = "conn{}".format(id) + + return Connection(name, from_module, from_output, from_request, to_module, + to_input, to_handler, encryption, key, id, nonce, direct) + + +def _load_periodic_event(events_dict, config): + module = config.get_module(events_dict['module']) + entry = events_dict['entry'] + frequency = _parse_frequency(events_dict['frequency']) + + return PeriodicEvent(module, entry, frequency) + + +def _generate_key(module1, module2, encryption): + if (module1 is not None and encryption not in module1.get_supported_encryption()) \ + or encryption not in module2.get_supported_encryption(): + raise Error('Encryption {} not supported between {} and {}'.format( + str(encryption), module1.name, module2.name)) - return Connection(from_module, from_output, to_module, to_input, key) + return tools.generate_key(encryption.get_key_size()) def _parse_vendor_id(id): @@ -136,27 +291,50 @@ def _parse_vendor_id(id): return id -def _parse_vendor_key(key_str): +def _parse_sancus_key(key_str): + if key_str is None: + return None + key = binascii.unhexlify(key_str) - if len(key) != sancus.config.SECURITY // 8: - raise Error('Keys should be {} bit'.format(sancus.config.SECURITY)) + keysize = tools.get_sancus_key_size() + + if len(key) != keysize: + raise Error('Keys should be {} bytes'.format(keysize)) return key +def _parse_key(key_str): + if key_str is None: + return None + + return binascii.unhexlify(key_str) + + +def _parse_frequency(freq): + if not 1 <= freq <= 2**32 - 1: + raise Error('Frequency out of range') + + return freq + + def _load_module_file(file_name, config): path = Path(file_name) return path if path.is_absolute() else config.get_dir() / path _node_load_funcs = { - 'sancus': _load_sancus_node + 'sancus': _load_sancus_node, + 'sgx': _load_sgx_node, + 'native': _load_native_node } _module_load_funcs = { - 'sancus': _load_sancus_module + 'sancus': _load_sancus_module, + 'sgx': _load_sgx_module, + 'native': _load_native_module } @@ -175,7 +353,8 @@ def _(config): return { 'nodes': _dump(config.nodes), 'modules': _dump(config.modules), - 'connections': _dump(config.connections) + 'connections': _dump(config.connections), + 'periodic-events' : _dump(config.periodic_events) } @@ -191,7 +370,9 @@ def _(node): "name": node.name, "ip_address": str(node.ip_address), "vendor_id": node.vendor_id, - "vendor_key": _dump(node.vendor_key) + "vendor_key": _dump(node.vendor_key), + "reactive_port": node.reactive_port, + "deploy_port": node.deploy_port } @@ -209,14 +390,86 @@ def _(module): } +@_dump.register(SGXNode) +def _(node): + return { + "type": "sgx", + "name": node.name, + "ip_address": str(node.ip_address), + "reactive_port": node.reactive_port, + "deploy_port": node.deploy_port + } + + +@_dump.register(SGXModule) +def _(module): + return { + "type": "sgx", + "name": module.name, + "node": module.node.name, + "vendor_key": module.vendor_key, + "ra_settings": module.ra_settings, + "features": module.features, + "id": module.id, + "binary": _dump(module.binary), + "sgxs": _dump(module.sgxs), + "signature": _dump(module.sig), + "key": _dump(module.key), + "data": _dump(module.data) + } + + +@_dump.register(NativeNode) +def _(node): + return { + "type": "native", + "name": node.name, + "ip_address": str(node.ip_address), + "reactive_port": node.reactive_port, + "deploy_port": node.deploy_port + } + + +@_dump.register(NativeModule) +def _(module): + return { + "type": "native", + "name": module.name, + "node": module.node.name, + "features": module.features, + "id": module.id, + "binary": _dump(module.binary), + "key": _dump(module.key), + "data": _dump(module.data) + } + + @_dump.register(Connection) def _(conn): + from_module = None if conn.direct else conn.from_module.name + return { - "from_module": conn.from_module.name, + "name": conn.name, + "from_module": from_module, "from_output": conn.from_output, + "from_request": conn.from_request, "to_module": conn.to_module.name, "to_input": conn.to_input, - "key": _dump(conn.key) + "to_handler": conn.to_handler, + "encryption": conn.encryption.to_str(), + "key": _dump(conn.key), + "id": conn.id, + "direct": conn.direct, + "nonce": conn.nonce + } + + +@_dump.register(PeriodicEvent) +def _(event): + return { + "module": event.module.name, + "entry": event.entry, + "frequency": event.frequency } @@ -237,7 +490,83 @@ def _(path): return str(path) +@_dump.register(tuple) +def _(t): + return { t[1] : t[0] } + + @_dump.register(types.CoroutineType) def _(coro): return _dump(asyncio.get_event_loop().run_until_complete(coro)) + +@_dump.register(dict) +def _(dict): + return dict + + +# Rules +def evaluate_rules(rules): + bad_rules = [r for r in rules if not rules[r]] + + for rule in bad_rules: + logging.error("Broken rule: {}".format(rule)) + + if bad_rules: + raise Error("Bad JSON configuration") + + +def is_present(dict, key): + return key in dict and dict[key] is not None + +def has_value(dict, key, value): + return is_present(dict, key) and dict[key] == value + +def authorized_keys(dict, keys): + for key in dict: + if key not in keys: + return False + + return True + +def connection_rules(dict, deploy): + return { + "to_module not present": + is_present(dict, "to_module"), + "encryption not present": + is_present(dict, "encryption"), + + "either direct=True or from_module + from_{output, request}": + has_value(dict, "direct", True) != (is_present(dict, "from_module") \ + and (is_present(dict, "from_output") != is_present(dict, "from_request"))), + + "either one between to_input and to_handler": + is_present(dict, "to_input") != is_present(dict, "to_handler"), + + "direct or from_output->to_input or from_request->to_handler": + has_value(dict, "direct", True) or (is_present(dict, "from_output") and is_present(dict, "to_input")) \ + or (is_present(dict, "from_request") and is_present(dict, "to_handler")), + + "key present ONLY after deployment": + (deploy and not is_present(dict, "key")) or (not deploy and is_present(dict, "key")), + + "nonce present ONLY after deployment": + (deploy and not is_present(dict, "nonce")) or (not deploy and is_present(dict, "nonce")), + + "id present ONLY after deployment": + (deploy and not is_present(dict, "id")) or (not deploy and is_present(dict, "id")), + + "name mandatory after deployment": + deploy or (not deploy and is_present(dict, "name")), + + "direct mandatory after deployment": + deploy or (not deploy and is_present(dict, "direct")), + + "from_module and to_module must be different": + dict.get("from_module") != dict["to_module"], + + "only authorized keys": + authorized_keys(dict, ["name", "from_module", "from_output", + "from_request", "to_module", "to_input", "to_handler", + "encryption", "key", "id", "direct", "nonce"]) + } diff --git a/reactivetools/connection.py b/reactivetools/connection.py index a796545..a0b9a3e 100644 --- a/reactivetools/connection.py +++ b/reactivetools/connection.py @@ -1,23 +1,108 @@ -from collections import namedtuple import asyncio import logging +from enum import IntEnum +from .crypto import Encryption + +class Error(Exception): + pass + +class ConnectionIO(IntEnum): + OUTPUT = 0x0 + INPUT = 0x1 + REQUEST = 0x2 + HANDLER = 0x3 + +class ConnectionIndex(): + def __init__(self, type, name): + self.type = type + self.name = name + self.index = None + + + async def set_index(self, module): + if self.type == ConnectionIO.OUTPUT: + self.index = await module.get_output_id(self.name) + elif self.type == ConnectionIO.INPUT: + self.index = await module.get_input_id(self.name) + elif self.type == ConnectionIO.REQUEST: + self.index = await module.get_request_id(self.name) + elif self.type == ConnectionIO.HANDLER: + self.index = await module.get_handler_id(self.name) + + + async def get_index(self, module): + if self.index: + return self.index + + await self.set_index(module) + return self.index + +class Connection: + cnt = 0 + + def __init__(self, name, from_module, from_output, from_request, to_module, + to_input, to_handler, encryption, key, id, nonce, direct): + self.name = name + self.from_module = from_module + self.from_output = from_output + self.from_request = from_request + self.to_module = to_module + self.to_input = to_input + self.to_handler = to_handler + self.encryption = encryption + self.key = key + self.id = id + self.nonce = nonce + + if direct: + self.direct = True + self.from_index = None + else: + self.direct = False # to avoid assigning None + self.from_index = ConnectionIndex(ConnectionIO.OUTPUT, from_output) if from_output is not None \ + else ConnectionIndex(ConnectionIO.REQUEST, from_request) + + self.to_index = ConnectionIndex(ConnectionIO.INPUT, to_input) if to_input is not None \ + else ConnectionIndex(ConnectionIO.HANDLER, to_handler) -class Connection(namedtuple('Connection', ['from_module', 'from_output', - 'to_module', 'to_input', - 'key'])): async def establish(self): + if self.direct: + await self.__establish_direct() + else: + await self.__establish_normal() + + + async def __establish_normal(self): from_node, to_node = self.from_module.node, self.to_module.node - connect = from_node.connect(self.from_module, self.from_output, - self.to_module, self.to_input) - set_key_from = from_node.set_key(self.from_module, self.from_output, - self.key) - set_key_to = to_node.set_key(self.to_module, self.to_input, self.key) + # TODO check if the module is the same: if so, abort! + + connect = from_node.connect(self.to_module, self.id) + set_key_from = from_node.set_key(self.from_module, self.id, self.from_index, + self.encryption, self.key) + set_key_to = to_node.set_key(self.to_module, self.id, self.to_index, + self.encryption, self.key) await asyncio.gather(connect, set_key_from, set_key_to) - logging.info('Connection from %s:%s on %s to %s:%s on %s established', - self.from_module.name, self.from_output, from_node.name, - self.to_module.name, self.to_input, to_node.name) + logging.info('Connection %d:%s from %s:%s on %s to %s:%s on %s established', + self.id, self.name, self.from_module.name, self.from_index.name, from_node.name, + self.to_module.name, self.to_index.name, to_node.name) + + + async def __establish_direct(self): + to_node = self.to_module.node + + await to_node.set_key(self.to_module, self.id, self.to_index, + self.encryption, self.key) + + logging.info('Direct connection %d:%s to %s:%s on %s established', + self.id, self.name, self.to_module.name, self.to_index.name, to_node.name) + + @staticmethod + def get_connection_id(): + id = Connection.cnt + Connection.cnt += 1 + return id diff --git a/reactivetools/crypto.py b/reactivetools/crypto.py new file mode 100644 index 0000000..c482304 --- /dev/null +++ b/reactivetools/crypto.py @@ -0,0 +1,106 @@ +import base64 +import asyncio +from enum import IntEnum + +from . import tools +from . import glob + +class Error(Exception): + pass + +class Encryption(IntEnum): + AES = 0x0 + SPONGENT = 0x1 + + @staticmethod + def from_str(str): + lower_str = str.lower() + + if lower_str == "aes": + return Encryption.AES + if lower_str == "spongent": + return Encryption.SPONGENT + + raise Error("No matching encryption type for {}".format(str)) + + def to_str(self): + if self == Encryption.AES: + return "aes" + if self == Encryption.SPONGENT: + return "spongent" + + def get_key_size(self): + if self == Encryption.AES: + return 16 + if self == Encryption.SPONGENT: + return tools.get_sancus_key_size() + + async def encrypt(self, key, ad, data): + if self == Encryption.AES: + return await encrypt_aes(key, ad, data) + if self == Encryption.SPONGENT: + return await encrypt_spongent(key, ad, data) + + async def decrypt(self, key, ad, data): + if self == Encryption.AES: + return await decrypt_aes(key, ad, data) + if self == Encryption.SPONGENT: + return await decrypt_spongent(key, ad, data) + + async def mac(self, key, ad): + if self == Encryption.AES: + return await encrypt_aes(key, ad) + if self == Encryption.SPONGENT: + return await encrypt_spongent(key, ad) + + +async def encrypt_aes(key, ad, data=[]): + args = [base64.b64encode(ad).decode(), + base64.b64encode(data).decode(), + base64.b64encode(key).decode()] + + out = await tools.run_async_output(glob.ENCRYPTOR, *args) + return base64.b64decode(out) + + +async def decrypt_aes(key, ad, data=[]): + args = [base64.b64encode(ad).decode(), + base64.b64encode(data).decode(), + base64.b64encode(key).decode(), + "-d"] + + try: + out = await tools.run_async_output(glob.ENCRYPTOR, *args) + return base64.b64decode(out) + except: + raise Error("Decryption failed") + + +async def encrypt_spongent(key, ad, data=[]): + try: + import sancus.crypto + except: + raise Error("Cannot import sancus.crypto! Maybe the Sancus toolchain is not installed, or python modules are not in PYTHONPATH") + + cipher, tag = sancus.crypto.wrap(key, ad, data) + return cipher + tag + + +async def decrypt_spongent(key, ad, data=[]): + try: + import sancus.crypto + import sancus.config + except: + raise Error("Cannot import sancus.crypto! Maybe the Sancus toolchain is not installed, or python modules are not in PYTHONPATH") + + # data should be formed like this: [cipher, tag] + tag_size = tools.get_sancus_key_size() + cipher = data[:-tag_size] + tag = data[-tag_size:] + + plain = sancus.crypto.unwrap(key, ad, cipher, tag) + + if plain is None: + raise Error("Decryption failed") + + return plain diff --git a/reactivetools/glob.py b/reactivetools/glob.py new file mode 100644 index 0000000..881e132 --- /dev/null +++ b/reactivetools/glob.py @@ -0,0 +1,18 @@ +# build mode +BUILD_MODE = "debug" + +# Apps +ENCRYPTOR = "aes_encryptor" +RA_SP = "ra_sp" +RA_CLIENT = "ra_client" + +# SGX build/sign +SGX_TARGET = "x86_64-fortanix-unknown-sgx" + +RELEASE_FLAG = "{}".format("" if BUILD_MODE == "debug" else "--release") +DEBUG_FLAG = "{}".format("--debug" if BUILD_MODE == "debug" else "") + +BUILD_APP = "cargo build {} {{}} --manifest-path={{}}/Cargo.toml".format(RELEASE_FLAG) +BUILD_SGX_APP = "{} --target={}".format(BUILD_APP, SGX_TARGET) +CONVERT_SGX = "ftxsgx-elf2sgxs {{}} --heap-size 0x20000 --stack-size 0x20000 --threads 4 {}".format(DEBUG_FLAG) +SIGN_SGX = "sgxs-sign --key {{}} {{}} {{}} {} --xfrm 7/0 --isvprodid 0 --isvsvn 0".format(DEBUG_FLAG) diff --git a/reactivetools/modules/__init__.py b/reactivetools/modules/__init__.py new file mode 100644 index 0000000..b8ee51d --- /dev/null +++ b/reactivetools/modules/__init__.py @@ -0,0 +1,4 @@ +from .sancus import SancusModule +from .native import NativeModule +from .sgx import SGXModule +from .base import Module diff --git a/reactivetools/modules/base.py b/reactivetools/modules/base.py new file mode 100644 index 0000000..405f01b --- /dev/null +++ b/reactivetools/modules/base.py @@ -0,0 +1,57 @@ +from abc import ABC, abstractmethod + +class Module(ABC): + def __init__(self, name, node, priority, deployed): + self.name = name + self.node = node + self.priority = priority + self.deployed = deployed + self.connections = 0 + + @abstractmethod + async def build(self): + pass + + @abstractmethod + async def deploy(self): + pass + + @abstractmethod + async def call(self, entry, arg=None): + pass + + @abstractmethod + async def get_id(self): + pass + + @abstractmethod + async def get_input_id(self, input): + pass + + @abstractmethod + async def get_output_id(self, output): + pass + + @abstractmethod + async def get_entry_id(self, entry): + pass + + @abstractmethod + async def get_request_id(self, request): + pass + + @abstractmethod + async def get_handler_id(self, handler): + pass + + @abstractmethod + async def get_key(self): + pass + + @abstractmethod + def get_supported_node_type(): + pass + + @abstractmethod + def get_supported_encryption(): + pass diff --git a/reactivetools/modules/native.py b/reactivetools/modules/native.py new file mode 100644 index 0000000..77e3bbb --- /dev/null +++ b/reactivetools/modules/native.py @@ -0,0 +1,241 @@ +import asyncio +import logging +import os + +from .base import Module + +from ..nodes import NativeNode +from .. import tools +from .. import glob +from ..crypto import Encryption + +class Object(): + pass + +class Error(Exception): + pass + + +class NativeModule(Module): + def __init__(self, name, node, priority, deployed, features, id=None, binary=None, + key=None, data=None): + super().__init__(name, node, priority, deployed) + + self.__check_init_args(node, id, binary, key, data) + + self.__deploy_fut = tools.init_future(id) # not completely true + self.__generate_fut = tools.init_future(data, key) + self.__build_fut = tools.init_future(binary) + + self.features = [] if features is None else features + self.id = id if id is not None else node.get_module_id() + self.port = self.node.reactive_port + self.id + self.output = "build/{}".format(name) + + # --- Properties --- # + + @property + async def data(self): + data, _key = await self.generate_code() + return data + + @property + async def inputs(self): + data = await self.data + return data["inputs"] + + + @property + async def outputs(self): + data = await self.data + return data["outputs"] + + + @property + async def entrypoints(self): + data = await self.data + return data["entrypoints"] + + + @property + async def handlers(self): + data = await self.data + return data["handlers"] + + + @property + async def requests(self): + data = await self.data + return data["requests"] + + @property + async def key(self): + _data, key = await self.generate_code() + return key + + + @property + async def binary(self): + return await self.build() + + + # --- Implement abstract methods --- # + + async def build(self): + if self.__build_fut is None: + self.__build_fut = asyncio.ensure_future(self.__build()) + + return await self.__build_fut + + + async def deploy(self): + if self.__deploy_fut is None: + self.__deploy_fut = asyncio.ensure_future(self.node.deploy(self)) + + await self.__deploy_fut + + + async def call(self, entry, arg=None): + return await self.node.call(self, entry, arg) + + + async def get_id(self): + return self.id + + + async def get_input_id(self, input): + if isinstance(input, int): + return input + + inputs = await self.inputs + + if input not in inputs: + raise Error("Input not present in inputs") + + return inputs[input] + + + async def get_output_id(self, output): + if isinstance(output, int): + return output + + outputs = await self.outputs + + if output not in outputs: + raise Error("Output not present in outputs") + + return outputs[output] + + + async def get_entry_id(self, entry): + try: + return int(entry) + except: + entrypoints = await self.entrypoints + + if entry not in entrypoints: + raise Error("Entry not present in entrypoints") + + return entrypoints[entry] + + + async def get_request_id(self, request): + if isinstance(request, int): + return request + + requests = await self.requests + + if request not in requests: + raise Error("Request not present in requests") + + return requests[request] + + + async def get_handler_id(self, handler): + if isinstance(handler, int): + return handler + + handlers = await self.handlers + + if handler not in handlers: + raise Error("Handler not present in handlers") + + return handlers[handler] + + + async def get_key(self): + return await self.key + + + @staticmethod + def get_supported_node_type(): + return NativeNode + + + @staticmethod + def get_supported_encryption(): + return [Encryption.AES, Encryption.SPONGENT] + + + # --- Static methods --- # + + # --- Others --- # + + def __check_init_args(self, node, id, binary, key, data): + if not isinstance(node, self.get_supported_node_type()): + clsname = lambda o: type(o).__name__ + raise Error('A {} cannot run on a {}' + .format(clsname(self), clsname(node))) + + # For now, either all optionals should be given or none. This might be + # relaxed later if necessary. + optionals = (id, binary, key, data) + + if None in optionals and any(map(lambda x: x is not None, optionals)): + raise Error('Either all of the optional node parameters ' + 'should be given or none') + + + async def generate_code(self): + if self.__generate_fut is None: + self.__generate_fut = asyncio.ensure_future(self.__generate_code()) + + return await self.__generate_fut + + + async def __generate_code(self): + try: + import rustsgxgen + except: + raise Error("rust-sgx-gen not installed! Check README.md") + + args = Object() + + args.input = self.name + args.output = self.output + args.moduleid = self.id + args.emport = self.node.deploy_port + args.runner = rustsgxgen.Runner.NATIVE + args.spkey = None + args.print = None + + data, key = rustsgxgen.generate(args) + logging.info("Generated code for module {}".format(self.name)) + + return data, key + + + async def __build(self): + await self.generate_code() + + features = "" + if self.features: + features = "--features " + " ".join(self.features) + + cmd = glob.BUILD_APP.format(features, self.output).split() + await tools.run_async(*cmd) + + binary = "{}/target/{}/{}".format(self.output, glob.BUILD_MODE, self.name) + + logging.info("Built module {}".format(self.name)) + return binary diff --git a/reactivetools/modules.py b/reactivetools/modules/sancus.py similarity index 62% rename from reactivetools/modules.py rename to reactivetools/modules/sancus.py index 671cfd4..edbf531 100644 --- a/reactivetools/modules.py +++ b/reactivetools/modules/sancus.py @@ -6,38 +6,37 @@ from elftools.elf import elffile -import sancus.crypto - -from .nodes import SancusNode -from . import tools +from .base import Module +from ..nodes import SancusNode +from .. import tools +from ..crypto import Encryption class Error(Exception): pass -class Module: - def __init__(self, name, files, cflags, ldflags, node, +class SancusModule(Module): + def __init__(self, name, node, priority, deployed, files, cflags, ldflags, binary=None, id=None, symtab=None, key=None): + super().__init__(name, node, priority, deployed) self.__check_init_args(node, binary, id, symtab, key) - self.name = name self.files = files self.cflags = cflags self.ldflags = ldflags - self.node = node - self.__build_fut = self.__init_future(binary) - self.__deploy_fut = self.__init_future(id, symtab) - self.__key_fut = self.__init_future(key) + self.__build_fut = tools.init_future(binary) + self.__deploy_fut = tools.init_future(id, symtab) + self.__key_fut = tools.init_future(key) + + + # --- Properties --- # @property async def binary(self): - if self.__build_fut is None: - self.__build_fut = asyncio.ensure_future(self.__build()) - - return await self.__build_fut + return await self.build() @property async def id(self): @@ -56,15 +55,97 @@ async def key(self): return await self.__key_fut - async def get_io_id(self, io_name): - return await self._get_io_id(io_name) - async def get_entry_id(self, entry_name): - return await self._get_entry_id(entry_name) + # --- Implement abstract methods --- # + + async def build(self): + if self.__build_fut is None: + self.__build_fut = asyncio.ensure_future(self.__build()) + + return await self.__build_fut + + + async def deploy(self): + if self.__deploy_fut is None: + self.__deploy_fut = asyncio.ensure_future(self.node.deploy(self)) + + return await self.__deploy_fut + async def call(self, entry, arg=None): return await self.node.call(self, entry, arg) + + async def get_id(self): + return await self.id + + + async def get_input_id(self, input): + return await self.get_io_id(input) + + + async def get_output_id(self, output): + return await self.get_io_id(output) + + + async def get_entry_id(self, entry): + # If it is a number, that is the ID (given by the deployer) + if entry.isnumeric(): + return int(entry) + + return await self._get_entry_id(entry) + + + async def get_request_id(self, request): + raise Error("Requests not supported in Sancus") + + + async def get_handler_id(self, handler): + raise Error("Handlers not supported in Sancus") + + + async def get_key(self): + return await self.key + + + @staticmethod + def get_supported_node_type(): + return SancusNode + + + @staticmethod + def get_supported_encryption(): + return [Encryption.SPONGENT] + + + # --- Static methods --- # + + @staticmethod + def _get_build_config(verbosity): + if verbosity == tools.Verbosity.Debug: + flags = ['--debug'] + # elif verbosity == tools.Verbosity.Verbose: + # flags = ['--verbose'] + else: + flags = [] + + cflags = flags + ldflags = flags + ['--inline-arithmetic'] + + return _BuildConfig(cc='sancus-cc', cflags=cflags, + ld='sancus-ld', ldflags=ldflags ) + + + # --- Others --- # + + async def get_io_id(self, io): + # If io is a number, that is the ID (given by the deployer) + if isinstance(io, int): + return io + + return await self._get_io_id(io) + + def __check_init_args(self, node, binary, id, symtab, key): if not isinstance(node, self.get_supported_node_type()): clsname = lambda o: type(o).__name__ @@ -79,21 +160,12 @@ def __check_init_args(self, node, binary, id, symtab, key): raise Error('Either all of the optional node parameters ' 'should be given or none') - @staticmethod - def __init_future(*results): - if all(map(lambda x: x is None, results)): - return None - - fut = asyncio.Future() - result = results[0] if len(results) == 1 else results - fut.set_result(result) - return fut async def __build(self): logging.info('Building module %s from %s', self.name, ', '.join(map(str, self.files))) - config = self._get_build_config(_get_verbosity()) + config = self._get_build_config(tools.get_verbosity()) objects = {str(p): tools.create_tmp(suffix='.o') for p in self.files} cflags = config.cflags + self.cflags @@ -104,19 +176,23 @@ async def __build(self): binary = tools.create_tmp(suffix='.elf') ldflags = config.ldflags + self.ldflags + + # setting connections (if not specified in JSON file) + if not any("--num-connections" in flag for flag in ldflags): + ldflags.append("--num-connections {}".format(self.connections)) + await tools.run_async(config.ld, *ldflags, '-o', binary, *objects.values()) return binary - async def deploy(self): - if self.__deploy_fut is None: - self.__deploy_fut = asyncio.ensure_future(self.node.deploy(self)) - - return await self.__deploy_fut -class SancusModule(Module): async def _calculate_key(self): + try: + import sancus.crypto + except: + raise Error("Cannot import sancus.crypto! Maybe the Sancus toolchain is not installed, or python modules are not in PYTHONPATH") + linked_binary = await self.__link() with open(linked_binary, 'rb') as f: @@ -125,12 +201,18 @@ async def _calculate_key(self): self.name, binascii.hexlify(key).decode('ascii')) return key + async def __link(self): linked_binary = tools.create_tmp(suffix='.elf') + + # NOTE: we use '--noinhibit-exec' flag because the linker complains + # if the addresses of .bss section are not aligned to 2 bytes + # using this flag instead, the output file is still generated await tools.run_async('msp430-ld', '-T', await self.symtab, - '-o', linked_binary, await self.binary) + '-o', linked_binary, '--noinhibit-exec', await self.binary) return linked_binary + async def _get_io_id(self, io_name): sym_name = '__sm_{}_io_{}_idx'.format(self.name, io_name) symbol = await self.__get_symbol(sym_name) @@ -141,6 +223,7 @@ async def _get_io_id(self, io_name): return symbol + async def _get_entry_id(self, entry_name): sym_name = '__sm_{}_entry_{}_idx'.format(self.name, entry_name) symbol = await self.__get_symbol(sym_name) @@ -151,26 +234,13 @@ async def _get_entry_id(self, entry_name): return symbol - @staticmethod - def get_supported_node_type(): - return SancusNode - - @staticmethod - def _get_build_config(verbosity): - if verbosity == _Verbosity.Debug: - flags = ['--debug'] - # elif verbosity == _Verbosity.Verbose: - # flags = ['--verbose'] - else: - flags = [] - - return _BuildConfig(cc='sancus-cc', cflags=flags, - ld='sancus-ld', ldflags=flags) async def __get_symbol(self, name): + if not await self.binary: + raise Error("ELF file not present for {}, cannot extract symbol ID of {}".format(self.name, name)) + with open(await self.binary, 'rb') as f: elf = elffile.ELFFile(f) - name = name.encode('ascii') for section in elf.iter_sections(): if isinstance(section, elffile.SymbolTableSection): for symbol in section.iter_symbols(): @@ -180,16 +250,3 @@ async def __get_symbol(self, name): _BuildConfig = namedtuple('_BuildConfig', ['cc', 'cflags', 'ld', 'ldflags']) -_Verbosity = Enum('_Verbosity', ['Normal', 'Verbose', 'Debug']) - - -def _get_verbosity(): - log_at = logging.getLogger().isEnabledFor - - if log_at(logging.DEBUG): - return _Verbosity.Debug - elif log_at(logging.INFO): - return _Verbosity.Verbose - else: - return _Verbosity.Normal - diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py new file mode 100644 index 0000000..cebc45f --- /dev/null +++ b/reactivetools/modules/sgx.py @@ -0,0 +1,357 @@ +import asyncio +import logging +import os +import aiofile + +from .base import Module + +from ..nodes import SGXNode +from .. import tools +from .. import glob +from ..crypto import Encryption + +class Object(): + pass + +class Error(Exception): + pass + + +async def _generate_sp_keys(): + dir = tools.create_tmp_dir() + + priv = "{}/private_key.pem".format(dir) + pub = "{}/public_key.pem".format(dir) + + cmd = "ssh-keygen" + args_private = "-t rsa -f {} -b 2048 -N ''".format(priv).split() + args_public = "-f {}.pub -e -m pem".format(priv).split() + + await tools.run_async_shell(cmd, *args_private) + await tools.run_async(cmd, *args_public, output_file=pub) + + return pub, priv + + +async def _run_ra_sp(): + # kill old ra_sp (if running) + try: + await tools.run_async("pkill", "-f", glob.RA_SP) + except: + pass + + arg = await SGXModule._get_ra_sp_priv_key() + + return await tools.run_async_background(glob.RA_SP, arg) + + +class SGXModule(Module): + _sp_keys_fut = asyncio.ensure_future(_generate_sp_keys()) + _ra_sp_fut = asyncio.ensure_future(_run_ra_sp()) + + def __init__(self, name, node, priority, deployed, vendor_key, ra_settings, + features, id=None, binary=None, key=None, sgxs=None, + signature=None, data=None): + super().__init__(name, node, priority, deployed) + + self.__check_init_args(node, id, binary, key, sgxs, signature, data) + + self.__deploy_fut = tools.init_future(id) # not completely true + self.__generate_fut = tools.init_future(data) + self.__build_fut = tools.init_future(binary) + self.__convert_sign_fut = tools.init_future(sgxs, signature) + self.__ra_fut = tools.init_future(key) + + self.vendor_key = vendor_key + self.ra_settings = ra_settings + self.features = [] if features is None else features + self.id = id if id is not None else node.get_module_id() + self.port = self.node.reactive_port + self.id + self.output = "build/{}".format(name) + + + # --- Properties --- # + + @property + async def data(self): + data = await self.generate_code() + return data + + @property + async def inputs(self): + data = await self.data + return data["inputs"] + + + @property + async def outputs(self): + data = await self.data + return data["outputs"] + + + @property + async def entrypoints(self): + data = await self.data + return data["entrypoints"] + + + @property + async def handlers(self): + data = await self.data + return data["handlers"] + + + @property + async def requests(self): + data = await self.data + return data["requests"] + + @property + async def key(self): + if self.__ra_fut is None: + self.__ra_fut = asyncio.ensure_future(self.__remote_attestation()) + + return await self.__ra_fut + + + @property + async def binary(self): + return await self.build() + + + @property + async def sgxs(self): + if self.__convert_sign_fut is None: + self.__convert_sign_fut = asyncio.ensure_future(self.__convert_sign()) + + sgxs, _ = await self.__convert_sign_fut + + return sgxs + + + @property + async def sig(self): + if self.__convert_sign_fut is None: + self.__convert_sign_fut = asyncio.ensure_future(self.__convert_sign()) + + _, sig = await self.__convert_sign_fut + + return sig + + + # --- Implement abstract methods --- # + + async def build(self): + if self.__build_fut is None: + self.__build_fut = asyncio.ensure_future(self.__build()) + + return await self.__build_fut + + + async def call(self, entry, arg=None): + return await self.node.call(self, entry, arg) + + + async def deploy(self): + if self.__deploy_fut is None: + self.__deploy_fut = asyncio.ensure_future(self.node.deploy(self)) + + await self.__deploy_fut + + + async def get_id(self): + return self.id + + + async def get_input_id(self, input): + if isinstance(input, int): + return input + + inputs = await self.inputs + + if input not in inputs: + raise Error("Input not present in inputs") + + return inputs[input] + + + async def get_output_id(self, output): + if isinstance(output, int): + return output + + outputs = await self.outputs + + if output not in outputs: + raise Error("Output not present in outputs") + + return outputs[output] + + + async def get_entry_id(self, entry): + if entry.isnumeric(): + return int(entry) + + entrypoints = await self.entrypoints + + if entry not in entrypoints: + raise Error("Entry not present in entrypoints") + + return entrypoints[entry] + + + async def get_request_id(self, request): + if isinstance(request, int): + return request + + requests = await self.requests + + if request not in requests: + raise Error("Request not present in requests") + + return requests[request] + + + async def get_handler_id(self, handler): + if isinstance(handler, int): + return handler + + handlers = await self.handlers + + if handler not in handlers: + raise Error("Handler not present in handlers") + + return handlers[handler] + + + async def get_key(self): + return await self.key + + + @staticmethod + def get_supported_node_type(): + return SGXNode + + + @staticmethod + def get_supported_encryption(): + return [Encryption.AES, Encryption.SPONGENT] + + + # --- Static methods --- # + + @staticmethod + async def _get_ra_sp_pub_key(): + pub, _ = await SGXModule._sp_keys_fut + + return pub + + + @staticmethod + async def _get_ra_sp_priv_key(): + _, priv = await SGXModule._sp_keys_fut + + return priv + + + @staticmethod + async def kill_ra_sp(): + try: + process = await SGXModule._ra_sp_fut + process.kill() + await asyncio.sleep(0.1) # to avoid weird error messages + except: + pass + + + # --- Others --- # + + def __check_init_args(self, node, id, binary, key, sgxs, signature, data): + if not isinstance(node, self.get_supported_node_type()): + clsname = lambda o: type(o).__name__ + raise Error('A {} cannot run on a {}' + .format(clsname(self), clsname(node))) + + # For now, either all optionals should be given or none. This might be + # relaxed later if necessary. + optionals = (id, binary, key, sgxs, signature, data) + + if None in optionals and any(map(lambda x: x is not None, optionals)): + raise Error('Either all of the optional node parameters ' + 'should be given or none') + + + async def generate_code(self): + if self.__generate_fut is None: + self.__generate_fut = asyncio.ensure_future(self.__generate_code()) + + return await self.__generate_fut + + + async def __generate_code(self): + try: + import rustsgxgen + except: + raise Error("rust-sgx-gen not installed! Check README.md") + + args = Object() + + args.input = self.name + args.output = self.output + args.moduleid = self.id + args.emport = self.node.deploy_port + args.runner = rustsgxgen.Runner.SGX + args.spkey = await self._get_ra_sp_pub_key() + args.print = None + + data, _ = rustsgxgen.generate(args) + logging.info("Generated code for module {}".format(self.name)) + + return data + + + async def __build(self): + await self.generate_code() + + features = "" + if self.features: + features = "--features " + " ".join(self.features) + + cmd = glob.BUILD_SGX_APP.format(features, self.output).split() + await tools.run_async(*cmd) + + binary = "{}/target/{}/{}/{}".format(self.output, glob.SGX_TARGET, glob.BUILD_MODE, self.name) + + logging.info("Built module {}".format(self.name)) + + return binary + + + async def __convert_sign(self): + binary = await self.binary + + sgxs = "{}.sgxs".format(binary) + sig = "{}.sig".format(binary) + + cmd_convert = glob.CONVERT_SGX.format(binary).split() + cmd_sign = glob.SIGN_SGX.format(self.vendor_key, sgxs, sig).split() + + await tools.run_async(*cmd_convert) + await tools.run_async(*cmd_sign) + + logging.info("Converted & signed module {}".format(self.name)) + + return sgxs, sig + + + async def __remote_attestation(self): + await self.deploy() + await self._ra_sp_fut + + settings_abs = os.path.abspath(self.ra_settings) + + args = [str(self.node.ip_address), str(self.port), settings_abs, await self.sig] + key = await tools.run_async_output(glob.RA_CLIENT, *args) + + logging.info("Done Remote Attestation of {}".format(self.name)) + + return key diff --git a/reactivetools/nodes.py b/reactivetools/nodes.py deleted file mode 100644 index 090dd71..0000000 --- a/reactivetools/nodes.py +++ /dev/null @@ -1,220 +0,0 @@ -import asyncio -import struct -import contextlib -import collections -import logging -import binascii -from enum import IntEnum - -import sancus.crypto - -from . import tools - - -class Error(Exception): - pass - - -class Node: - def __init__(self, name, ip_address, deploy_port=2000, reactive_port=2001): - self.name = name - self.ip_address = ip_address - self.deploy_port = deploy_port - self.reactive_port = reactive_port - self.__nonces = collections.Counter() - - # Our Contiki implementation does not support *any* concurrent - # connections. Not on the same port, not on different ports. Therefore, - # we use a single lock to make sure all connections made to the node are - # serialized. - self.__lock = asyncio.Lock() - - async def deploy(self, module): - packet = await self.__create_install_packet(module) - - async with self.__lock: - logging.info('Deploying %s on %s', module.name, self.name) - - reader, writer = await asyncio.open_connection(str(self.ip_address), - self.deploy_port) - - # TODO is the connection properly closed by closing the writer? - with contextlib.closing(writer): - writer.write(packet) - sm_id = self.__unpack_int(await reader.read(2)) - - if sm_id == 0: - raise Error('Deploying {} on {} failed' - .format(module.name, self.name)) - - symtab = await reader.read() - - symtab_file = tools.create_tmp(suffix='.ld') - - with open(symtab_file, 'wb') as f: - f.write(symtab[:-1]) # Drop last 0 byte - - return sm_id, symtab_file - - async def connect(self, from_module, from_output, to_module, to_input): - assert from_module.node is self - - results = await asyncio.gather(from_module.id, - from_module.get_io_id(from_output), - to_module.id, - to_module.get_io_id(to_input)) - from_module_id, from_output_id, to_module_id, to_input_id = results - - payload = self.__pack_int(from_module_id) + \ - self.__pack_int(from_output_id) + \ - self.__pack_int(to_module_id) + \ - to_module.node.ip_address.packed + \ - self.__pack_int(to_input_id) - - await self.__send_reactive_command( - _ReactiveCommand.Connect, payload, - log=('Connecting %s:%s to %s:%s on %s', - from_module.name, from_output, - to_module.name, to_input, - self.name)) - - async def set_key(self, module, io_name, key): - module_id, module_key, io_id = await asyncio.gather( - module.id, module.key, module.get_io_id(io_name)) - - nonce = self.__pack_int(self.__get_nonce(module)) - io_id = self.__pack_int(io_id) - ad = nonce + io_id - cipher, tag = sancus.crypto.wrap(module_key, ad, key) - - # The payload format is [sm_id, 16 bit nonce, index, wrapped(key), tag] - # where the tag includes the nonce and the index. - payload = self.__pack_int(module_id) + ad + cipher + tag - - # The result format is [16 bit result code, tag] where the tag includes - # the nonce and the result code. - result_len = 2 + sancus.config.SECURITY // 8 - - result = await self.__send_reactive_command( - _ReactiveCommand.SetKey, payload, result_len, - log=('Setting key of %s:%s on %s to %s', - module.name, io_name, self.name, - binascii.hexlify(key).decode('ascii'))) - - set_key_code_packed = result.payload[0:2] - set_key_code = self.__unpack_int(set_key_code_packed) - set_key_tag = result.payload[2:] - set_key_ad = nonce + set_key_code_packed - expected_tag = sancus.crypto.mac(module_key, set_key_ad) - - if set_key_tag != expected_tag: - raise Error('Module response has wrong tag') - - if set_key_code != _ReactiveSetKeyResultCode.Ok: - raise Error('Got error code from module: {}'.format(set_key_code)) - - async def call(self, module, entry, arg=None): - module_id, entry_id = \ - await asyncio.gather(module.id, module.get_entry_id(entry)) - payload = self.__pack_int(module_id) + \ - self.__pack_int(entry_id) + \ - (b'' if arg is None else arg) - - await self.__send_reactive_command( - _ReactiveCommand.Call, payload, - log=('Sending call command to %s:%s (%s:%s) on %s', - module.name, entry, module_id, entry_id, self.name)) - - def __get_nonce(self, module): - nonce = self.__nonces[module] - self.__nonces[module] += 1 - return nonce - - async def __send_reactive_command(self, command, payload, result_len=0, - *, log=None): - packet = self.__create_reactive_packet(command, payload) - - # The Contiki implementation only supports 1 concurrent connection to - # the reactive server - async with self.__lock: - if log is not None: - logging.info(*log) - - reader, writer = await asyncio.open_connection(str(self.ip_address), - self.reactive_port) - - with contextlib.closing(writer): - writer.write(packet) - raw_result = await reader.readexactly(result_len + 1) - code = _ReactiveResultCode(raw_result[0]) - - if code != _ReactiveResultCode.Ok: - raise Error('Reactive command {} failed with code {}' - .format(command, code)) - - return _ReactiveResult(code, raw_result[1:]) - - - def __create_reactive_packet(self, command, payload): - return self.__pack_int(command) + \ - self.__pack_int(len(payload)) + \ - payload; - - async def __create_install_packet(self, module): - # The packet format is [LEN NAME \0 VID ELF_FILE] - # LEN is the length of the packet without LEN itself - - # Unfortunately, there is no asyncio support for file operations - with open(await module.binary, 'rb') as f: - file_data = f.read() - - # +3 is the NULL terminator of the name + 2 bytes of the VID - length = len(file_data) + len(module.name) + 3 - - return self.__pack_int(length) + \ - module.name.encode('ascii') + b'\0' + \ - self.__pack_int(self.vendor_id) + \ - file_data - - @staticmethod - def __pack_int(i): - return struct.pack('!H', i) - - @staticmethod - def __unpack_int(i): - return struct.unpack('!H', i)[0] - - - -class SancusNode(Node): - def __init__(self, name, vendor_id, vendor_key, - ip_address, deploy_port=2000, reactive_port=2001): - super().__init__(name, ip_address, deploy_port, reactive_port) - self.vendor_id = vendor_id - self.vendor_key = vendor_key - - -class _ReactiveCommand(IntEnum): - Connect = 0x0 - SetKey = 0x1 - PostEvent = 0x2 - Call = 0x3 - - -class _ReactiveResultCode(IntEnum): - Ok = 0x0 - ErrIllegalCommand = 0x1 - ErrPayloadFormat = 0x2 - ErrInternal = 0x3 - - -class _ReactiveResult: - def __init__(self, code, payload=bytearray()): - self.code = code - self.payload = payload - - -class _ReactiveSetKeyResultCode(IntEnum): - Ok = 0x0, - ErrIllegalConnection = 0x1, - ErrWrongTag = 0x2 diff --git a/reactivetools/nodes/__init__.py b/reactivetools/nodes/__init__.py new file mode 100644 index 0000000..2ec0873 --- /dev/null +++ b/reactivetools/nodes/__init__.py @@ -0,0 +1,3 @@ +from .sancus import SancusNode +from .native import NativeNode +from .sgx import SGXNode diff --git a/reactivetools/nodes/base.py b/reactivetools/nodes/base.py new file mode 100644 index 0000000..c38e558 --- /dev/null +++ b/reactivetools/nodes/base.py @@ -0,0 +1,205 @@ +import asyncio +import collections +import logging +import binascii + +from abc import ABC, abstractmethod +from enum import IntEnum + +from reactivenet import * + +from .. import tools + +class Error(Exception): + pass + +class Node(ABC): + def __init__(self, name, ip_address, reactive_port, deploy_port, need_lock=False): + self.name = name + self.ip_address = ip_address + self.reactive_port = reactive_port + self.deploy_port = deploy_port + + self.__nonces = collections.Counter() + + if need_lock: + self.__lock = asyncio.Lock() + else: + self.__lock = None + + @abstractmethod + async def deploy(self, module): + pass + + @abstractmethod + async def set_key(self, module, conn_id, io_name, encryption, key, conn_io): + pass + + + # Default implementation of the following functions. If a specific architecture + # needs a different implementation, do it in the subclass (e.g., SancusNode) + + async def connect(self, to_module, conn_id): + module_id = await to_module.get_id() + + payload = tools.pack_int16(conn_id) + \ + tools.pack_int16(module_id) + \ + tools.pack_int16(to_module.node.reactive_port) + \ + to_module.node.ip_address.packed + + command = CommandMessage(ReactiveCommand.Connect, + Message(payload), + self.ip_address, + self.reactive_port) + + await self._send_reactive_command( + command, + log='Connecting id {} to {}'.format(conn_id, to_module.name)) + + + async def call(self, module, entry, arg=None): + assert module.node is self + module_id, entry_id = \ + await asyncio.gather(module.get_id(), module.get_entry_id(entry)) + + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(entry_id) + \ + (b'' if arg is None else arg) + + command = CommandMessage(ReactiveCommand.Call, + Message(payload), + self.ip_address, + self.reactive_port) + + response = await self._send_reactive_command( + command, + log='Sending call command to {}:{} ({}:{}) on {}'.format( + module.name, entry, module_id, entry_id, self.name) + ) + + if not response.ok(): + logging.error("Received error code {}".format(str(response.code))) + else: + logging.info("Response: \"{}\"".format( + binascii.hexlify(response.message.payload).decode('ascii'))) + + + async def output(self, connection, arg=None): + assert connection.to_module.node is self + + module_id = await connection.to_module.get_id() + + if arg is None: + data = b'' + else: + data = arg + + cipher = await connection.encryption.encrypt(connection.key, + tools.pack_int16(connection.nonce), data) + + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(connection.id) + \ + cipher + + command = CommandMessage(ReactiveCommand.RemoteOutput, + Message(payload), + self.ip_address, + self.reactive_port) + + await self._send_reactive_command( + command, + log='Sending handle_output command of connection {}:{} to {} on {}'.format( + connection.id, connection.name, connection.to_module.name, self.name) + ) + + + async def request(self, connection, arg=None): + assert connection.to_module.node is self + + module_id = await connection.to_module.get_id() + + if arg is None: + data = b'' + else: + data = arg + + cipher = await connection.encryption.encrypt(connection.key, + tools.pack_int16(connection.nonce), data) + + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(connection.id) + \ + cipher + + command = CommandMessage(ReactiveCommand.RemoteRequest, + Message(payload), + self.ip_address, + self.reactive_port) + + response = await self._send_reactive_command( + command, + log='Sending handle_request command of connection {}:{} to {} on {}'.format( + connection.id, connection.name, connection.to_module.name, self.name) + ) + + if not response.ok(): + logging.error("Received error code {}".format(str(response.code))) + return + + resp_encrypted = response.message.payload + plaintext = await connection.encryption.decrypt(connection.key, + tools.pack_int16(connection.nonce + 1), resp_encrypted) + + logging.info("Response: \"{}\"".format( + binascii.hexlify(plaintext).decode('ascii'))) + + + async def register_entrypoint(self, module, entry, frequency): + assert module.node is self + module_id, entry_id = \ + await asyncio.gather(module.get_id(), module.get_entry_id(entry)) + + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(entry_id) + \ + tools.pack_int32(frequency) + + command = CommandMessage(ReactiveCommand.RegisterEntrypoint, + Message(payload), + self.ip_address, + self.reactive_port) + + await self._send_reactive_command( + command, + log='Sending RegisterEntrypoint command of {}:{} ({}:{}) on {}'.format( + module.name, entry, module_id, entry_id, self.name) + ) + + + async def _send_reactive_command(self, command, log=None): + if self.__lock is not None: + async with self.__lock: + return await self.__send_reactive_command(command, log) + else: + return await self.__send_reactive_command(command, log) + + + @staticmethod + async def __send_reactive_command(command, log): + if log is not None: + logging.info(log) + + if command.has_response(): + response = await command.send_wait() + if not response.ok(): + raise Error('Reactive command {} failed with code {}' + .format(str(command.code), str(response.code))) + return response + + else: + await command.send() + return None + + + def _get_nonce(self, module): + nonce = self.__nonces[module] + self.__nonces[module] += 1 + return nonce diff --git a/reactivetools/nodes/native.py b/reactivetools/nodes/native.py new file mode 100644 index 0000000..29747f6 --- /dev/null +++ b/reactivetools/nodes/native.py @@ -0,0 +1,28 @@ +import asyncio +import aiofile + +from reactivenet import CommandMessageLoad + +from .sgx import SGXBase +from .. import tools + + +class NativeNode(SGXBase): + async def deploy(self, module): + if module.deployed is not None: + return + + async with aiofile.AIOFile(await module.binary, "rb") as f: + binary = await f.read() + + payload = tools.pack_int32(len(binary)) + \ + binary + + command = CommandMessageLoad(payload, + self.ip_address, + self.deploy_port) + + await self._send_reactive_command( + command, + log='Deploying {} on {}'.format(module.name, self.name) + ) diff --git a/reactivetools/nodes/sancus.py b/reactivetools/nodes/sancus.py new file mode 100644 index 0000000..91d6435 --- /dev/null +++ b/reactivetools/nodes/sancus.py @@ -0,0 +1,141 @@ +import asyncio +import logging +import binascii +import aiofile +from enum import IntEnum + +from reactivenet import * + +from .base import Node +from .. import tools + + +class Error(Exception): + pass + + +class SetKeyResultCode(IntEnum): + Ok = 0x0 + IllegalConnection = 0x1 + MalformedPayload = 0x2 + InternalError = 0x3 + + +class SancusNode(Node): + def __init__(self, name, vendor_id, vendor_key, + ip_address, reactive_port, deploy_port): + super().__init__(name, ip_address, reactive_port, deploy_port, need_lock=True) + + self.vendor_id = vendor_id + self.vendor_key = vendor_key + + + async def deploy(self, module): + assert module.node is self + + if module.deployed is not None: + return + + async with aiofile.AIOFile(await module.binary, "rb") as f: + file_data = await f.read() + + # The packet format is [NAME \0 VID ELF_FILE] + payload = module.name.encode('ascii') + b'\0' + \ + tools.pack_int16(self.vendor_id) + \ + file_data + + command = CommandMessage(ReactiveCommand.Load, + Message(payload), + self.ip_address, + self.deploy_port) + + res = await self._send_reactive_command( + command, + log='Deploying {} on {}'.format(module.name, self.name) + ) + + + sm_id = tools.unpack_int16(res.message.payload[:2]) + if sm_id == 0: + raise Error('Deploying {} on {} failed' + .format(module.name, self.name)) + + symtab = res.message.payload[2:] + symtab_file = tools.create_tmp(suffix='.ld') + + # aiofile for write operations is bugged (version 3.3.3) + # I get a "bad file descriptor" error after writes. + with open(symtab_file, "wb") as f: + f.write(symtab[:-1]) # Drop last 0 byte + + return sm_id, symtab_file + + + async def set_key(self, module, conn_id, conn_io, encryption, key): + assert module.node is self + assert encryption in module.get_supported_encryption() + + module_id, module_key, io_id = await asyncio.gather( + module.id, module.key, conn_io.get_index(module)) + + nonce = tools.pack_int16(self._get_nonce(module)) + io_id = tools.pack_int16(io_id) + conn_id_packed = tools.pack_int16(conn_id) + ad = conn_id_packed + io_id + nonce + + cipher = await encryption.SPONGENT.encrypt(module_key, ad, key) + + # The payload format is [sm_id, entry_id, 16 bit nonce, index, wrapped(key), tag] + # where the tag includes the nonce and the index. + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(ReactiveEntrypoint.SetKey) + \ + ad + \ + cipher + + command = CommandMessage(ReactiveCommand.Call, + Message(payload), + self.ip_address, + self.reactive_port) + + res = await self._send_reactive_command( + command, + log='Setting key of {}:{} on {} to {}'.format( + module.name, conn_io.name, self.name, + binascii.hexlify(key).decode('ascii')) + ) + + # The result format is [tag] where the tag includes the nonce and result code + res_code = res.message.payload[:2] + res_code_enum = SetKeyResultCode(tools.unpack_int16(res_code)) + if res_code_enum != SetKeyResultCode.Ok: + raise Error("Received result code {}".format(str(res_code_enum))) + + set_key_tag = res.message.payload[2:] + expected_tag = await encryption.SPONGENT.mac(module_key, nonce + res_code) + + if set_key_tag != expected_tag: + raise Error('Module response has wrong tag') + + + async def connect(self, to_module, conn_id): + module_id = await to_module.get_id() + + # HACK for sancus event manager: + # if ip address is 0.0.0.0 it handles the connection as local + ip_address = b'\x00' * 4 if \ + to_module.node is self else \ + to_module.node.ip_address.packed + + payload = tools.pack_int16(conn_id) + \ + tools.pack_int16(module_id) + \ + tools.pack_int16(to_module.node.reactive_port) + \ + ip_address + + command = CommandMessage(ReactiveCommand.Connect, + Message(payload), + self.ip_address, + self.reactive_port) + + await self._send_reactive_command( + command, + log='Connecting id {} to {}'.format(conn_id, to_module.name)) diff --git a/reactivetools/nodes/sgx.py b/reactivetools/nodes/sgx.py new file mode 100644 index 0000000..b42e8a6 --- /dev/null +++ b/reactivetools/nodes/sgx.py @@ -0,0 +1,94 @@ +import asyncio +import aiofile +import logging +from abc import ABC, abstractmethod +import binascii + +from reactivenet import * + +from .base import Node +from ..connection import ConnectionIO +from .. import glob +from .. import tools +from ..crypto import Encryption + +class Error(Exception): + pass + +class SGXBase(Node): + def __init__(self, name, ip_address, reactive_port, deploy_port): + super().__init__(name, ip_address, reactive_port, deploy_port) + + self.__moduleid = 1 + + + @abstractmethod + async def deploy(self, module): + pass + + + async def set_key(self, module, conn_id, conn_io, encryption, key): + assert module.node is self + assert encryption in module.get_supported_encryption() + await module.deploy() + + io_id = await conn_io.get_index(module) + nonce = self._get_nonce(module) + + ad = tools.pack_int8(encryption) + \ + tools.pack_int16(conn_id) + \ + tools.pack_int16(io_id) + \ + tools.pack_int16(nonce) + + cipher = await Encryption.AES.encrypt(await module.key, ad, key) + + payload = tools.pack_int16(module.id) + \ + tools.pack_int16(ReactiveEntrypoint.SetKey) + \ + ad + \ + cipher + + command = CommandMessage(ReactiveCommand.Call, + Message(payload), + self.ip_address, + self.reactive_port) + + await self._send_reactive_command( + command, + log='Setting key of connection {} ({}:{}) on {} to {}'.format( + conn_id, module.name, conn_io.name, self.name, + binascii.hexlify(key).decode('ascii')) + ) + + + def get_module_id(self): + id = self.__moduleid + self.__moduleid += 1 + + return id + + +class SGXNode(SGXBase): + async def deploy(self, module): + if module.deployed is not None: + return + + async with aiofile.AIOFile(await module.sgxs, "rb") as f: + sgxs = await f.read() + + async with aiofile.AIOFile(await module.sig, "rb") as f: + sig = await f.read() + + + payload = tools.pack_int32(len(sgxs)) + \ + sgxs + \ + tools.pack_int32(len(sig)) + \ + sig + + command = CommandMessageLoad(payload, + self.ip_address, + self.deploy_port) + + await self._send_reactive_command( + command, + log='Deploying {} on {}'.format(module.name, self.name) + ) diff --git a/reactivetools/periodic_event.py b/reactivetools/periodic_event.py new file mode 100644 index 0000000..b28dca4 --- /dev/null +++ b/reactivetools/periodic_event.py @@ -0,0 +1,12 @@ +from collections import namedtuple +import asyncio +import logging + +class PeriodicEvent(namedtuple('PeriodicEvent', ['module', 'entry', 'frequency'])): + async def register(self): + node = self.module.node + + await node.register_entrypoint(self.module, self.entry, self.frequency) + + logging.info('Registered %s:%s on %s every %d ms', + self.module.name, self.entry, node.name, self.frequency) diff --git a/reactivetools/tools.py b/reactivetools/tools.py index 5550905..4263c3c 100644 --- a/reactivetools/tools.py +++ b/reactivetools/tools.py @@ -2,7 +2,11 @@ import tempfile import os import asyncio +import base64 +import struct +from enum import Enum +sancus_key_size = None class ProcessRunError(Exception): def __init__(self, args, result): @@ -14,9 +18,82 @@ def __str__(self): .format(' '.join(self.args), self.result) -async def run_async(*args): +class Error(Exception): + pass + + +Verbosity = Enum('Verbosity', ['Normal', 'Verbose', 'Debug']) + + +def get_verbosity(): + log_at = logging.getLogger().isEnabledFor + + if log_at(logging.DEBUG): + return Verbosity.Debug + elif log_at(logging.INFO): + return Verbosity.Verbose + else: + return Verbosity.Normal + + +def get_stderr(): + if get_verbosity() == Verbosity.Debug: + return None + else: + return open(os.devnull, "wb") + + +def init_future(*results): + if all(map(lambda x: x is None, results)): + return None + + fut = asyncio.Future() + result = results[0] if len(results) == 1 else results + fut.set_result(result) + return fut + + +async def run_async(*args, output_file=os.devnull): logging.debug(' '.join(args)) - process = await asyncio.create_subprocess_exec(*args) + + process = await asyncio.create_subprocess_exec(*args, + stdout=open(output_file, 'wb'), + stderr=get_stderr()) + result = await process.wait() + + if result != 0: + raise ProcessRunError(args, result) + + +async def run_async_background(*args): + logging.debug(' '.join(args)) + process = await asyncio.create_subprocess_exec(*args, + stdout=open(os.devnull, 'wb'), + stderr=get_stderr()) + + return process + + +async def run_async_output(*args): + cmd = ' '.join(args) + logging.debug(cmd) + process = await asyncio.create_subprocess_exec(*args, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE) + out, err = await process.communicate() + + if err: + raise Error('cmd "{}" error: {}'.format(cmd, err)) + + return out + + +async def run_async_shell(*args): + cmd = ' '.join(args) + logging.debug(cmd) + process = await asyncio.create_subprocess_shell(cmd, + stdout=open(os.devnull, 'wb'), + stderr=get_stderr()) result = await process.wait() if result != 0: @@ -28,3 +105,47 @@ def create_tmp(suffix=''): os.close(fd) return path + +def create_tmp_dir(): + return tempfile.mkdtemp() + + +def generate_key(length): + return os.urandom(length) + + +def set_sancus_key_size(size): + global sancus_key_size + + sancus_key_size = size + + +def get_sancus_key_size(): + if sancus_key_size is not None: + return sancus_key_size // 8 + + try: + import sancus.config + except: + raise Error("Sancus python lib not installed! Check README.md") + + return sancus.config.SECURITY // 8 + + +def pack_int8(i): + return struct.pack('!B', i) + +def unpack_int8(i): + return struct.unpack('!B', i)[0] + +def pack_int16(i): + return struct.pack('!H', i) + +def unpack_int16(i): + return struct.unpack('!H', i)[0] + +def pack_int32(i): + return struct.pack('!I', i) + +def unpack_int32(i): + return struct.unpack('!I', i)[0] diff --git a/settings_template.json b/settings_template.json new file mode 100644 index 0000000..812ca3e --- /dev/null +++ b/settings_template.json @@ -0,0 +1,15 @@ +{ + "linkable": true, + "random_nonce": false, + "use_platform_service": false, + "spid": "INSERT_SPID_HERE", + "primary_subscription_key": "INSERT_PRIMARY_KEY_HERE", + "secondary_subscription_key": "INSERT_SECONDARY_KEY_HERE", + "quote_trust_options": [ + "GROUP_OUT_OF_DATE", + "CONFIGURATION_NEEDED" + ], + "sp_private_key_pem_path": "", + "ias_root_cert_pem_path": "INSERT_ROOT_CA_PATH_HERE", + "sigstruct_path": "" +} diff --git a/setup.py b/setup.py index f0c971a..1c9eee2 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ name='reactivetools', version='0.1', packages=find_packages(), - install_requires=['pyelftools'], + install_requires=['pyelftools==0.27', 'aiofile==3.3.3'], entry_points={ 'console_scripts': ['reactive-tools = reactivetools.cli:main'] }, @@ -12,4 +12,3 @@ author='Job Noorman', author_email='job.noorman@cs.kuleuven.be' ) - diff --git a/sgx.md b/sgx.md new file mode 100644 index 0000000..e1783a3 --- /dev/null +++ b/sgx.md @@ -0,0 +1,55 @@ +# Reactive tools for SGX + +## Modules + +See [`rust-sgx-gen`](https://github.com/gianlu33/rust-sgx-gen/tree/master) documentation and our [examples](examples) to learn how to create a SGX (or No-SGX) module. + +## Nodes + +An [Event Manager](https://github.com/gianlu33/rust-sgx-apps/tree/master) must be running on each node. + +- We can have multiple event managers (and nodes) on the same machine, but pay attention to the specified ports! + - The modules will use a port based on the one assigned to the Event Manager + - E.g. if the EM listens to port 5000, SM1 will listen to port 5001, SM2 to 5002, etc.. + - As a consequence, you need to assign ports to Event Managers on the same machine with a certain interval (e.g. 5000, 6000, etc.) + +## Limitations + +At the moment, SGX modules can be only deployed in `debug` mode. + +## Remote Attestation + +Remote Attestation (RA) is the process where the deployer can verify that a remote module is correctly loaded inside a node and not tampered with. During the process, data can also be exchanged, such as a symmetric key for future communication. + +**Links** + +- [Intel official website](https://software.intel.com/content/www/us/en/develop/topics/software-guard-extensions/attestation-services.html) +- [Intel sample code](https://software.intel.com/content/www/us/en/develop/articles/code-sample-intel-software-guard-extensions-remote-attestation-end-to-end-example.html) + +- [The Rust framework we used](https://github.com/ndokmai/rust-sgx-remote-attestation) + +### Reactive-tools + +The RA process is automatically handled by the framework. + +The deployer just needs to specify, for each module in the JSON input file, the following information: + +**`vendor_key`** + +- Path (**absolute!**) to the vendor's private key. It is used to sign the SGX module +- The private key can be generated using `openssl` + - e.g. `openssl genrsa -3 3072 > my_key.pem` +- See https://edp.fortanix.com/docs/tasks/deployment/ for more information + +**`ra_settings`** + +- A configuration JSON file used by `ra_sp` in order to retrieve the configuration about [SGX EPID](https://api.portal.trustedservices.intel.com/EPID-attestation). + - See [here](https://github.com/ndokmai/rust-sgx-remote-attestation#how-to-build-and-run) for more information +- Just update the [template](settings_template.json) provided in this repository by changing the following fields: + - `spid` + - `primary_subscription_key` + - `secondary_subscription_key` + - these fields are retrieved in your Intel's account after you subscribe for a _Product DEV Intel® Software Guard Extensions Attestation Service (Linkable) subscription_ + - `ias_root_cert_pem_path` + - Path (**absolute!**) to Intel's Root Certificate + - it can be downloaded from [this link](https://certificates.trustedservices.intel.com/Intel_SGX_Attestation_RootCA.pem). \ No newline at end of file From 43a1506a6bb06b2b27f9d622cf82cba5251ac28e Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Fri, 22 Jan 2021 18:33:02 +0100 Subject: [PATCH 02/81] Add Makefile for running the Docker images --- Makefile | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..fbc5c1b --- /dev/null +++ b/Makefile @@ -0,0 +1,17 @@ +REPO = gianlu33/reactive-tools +TAG_LATEST = latest +TAG_NATIVE = native +TAG_SGX = sgx +TAG_SANCUS = sancus + +TAG ?= latest + +run: check_workspace + docker run --rm -it --network=host -v $(WORKSPACE):/usr/src/app/ -v /var/run/aesmd/:/var/run/aesmd $(REPO):$(TAG) bash + +clean: + docker rm $(shell docker ps -a -q) 2> /dev/null || true + docker image prune -f + +check_workspace: + @test $(WORKSPACE) || (echo "WORKSPACE variable not defined. Run make WORKSPACE=" && return 1) From 8ca762176028374353d257f5a2408883c85f6046 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Fri, 22 Jan 2021 18:46:37 +0100 Subject: [PATCH 03/81] update Makefile --- Makefile | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index fbc5c1b..f9e361f 100644 --- a/Makefile +++ b/Makefile @@ -5,13 +5,11 @@ TAG_SGX = sgx TAG_SANCUS = sancus TAG ?= latest +VOLUME ?= $(shell pwd) -run: check_workspace - docker run --rm -it --network=host -v $(WORKSPACE):/usr/src/app/ -v /var/run/aesmd/:/var/run/aesmd $(REPO):$(TAG) bash +run: + docker run --rm -it --network=host -v $(VOLUME):/usr/src/app/ -v /var/run/aesmd/:/var/run/aesmd $(REPO):$(TAG) bash clean: docker rm $(shell docker ps -a -q) 2> /dev/null || true docker image prune -f - -check_workspace: - @test $(WORKSPACE) || (echo "WORKSPACE variable not defined. Run make WORKSPACE=" && return 1) From 5f6833652a14996ef614a72b76c4d5abaddfa76a Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Fri, 22 Jan 2021 19:35:46 +0100 Subject: [PATCH 04/81] Update documentation --- README.md | 144 ++++++++++++++++++++------------------- add_new_architectures.md | 76 +++++++++++++-------- settings_template.json | 15 ---- sgx.md | 55 --------------- 4 files changed, 120 insertions(+), 170 deletions(-) delete mode 100644 settings_template.json delete mode 100644 sgx.md diff --git a/README.md b/README.md index f1445d7..18c18b8 100644 --- a/README.md +++ b/README.md @@ -1,94 +1,96 @@ # reactive-tools -Tools for Authentic Execution work. [Website](https://people.cs.kuleuven.be/~jantobias.muehlberg/stm17/) +Deployment tools for the [Authentic Execution framework](https://github.com/gianlu33/authentic-execution) ## Support Currently, the following architectures are supported: - Sancus -- Intel SGX -- Normal computers ("No-SGX", for testing purposes) +- SGX +- Native (no TEE support, run natively) -### Extending support for new architectures +[Extending support for new architectures](add_new_architectures.md) -See [here](add_new_architectures.md) +[Tutorial: develop an Authentic Execution application](https://github.com/gianlu33/authentic-execution/blob/master/docs/tutorial-develop-apps.md) -## Requirements +### Limitations -### Target devices +- Currently, SGX modules can only be deployed in debug mode -**Sancus** +## Dependencies & installation -- [Reactive application](https://github.com/fritzalder/sancus-riot/tree/reactive-app/sancus-testbed/reactive) - - Event Manager & Module Loader running on top of RIOT OS port for Sancus +- [Full list of dependencies](https://github.com/gianlu33/authentic-execution/blob/master/docs/install-from-sources.md) -**Intel SGX** +```bash +# Install reactive-tools - you must be at the root of this repository +pip install . +``` -- [Rust](https://www.rust-lang.org/tools/install) - to run the event manager -- [Fortanix EDP](https://edp.fortanix.com/docs/installation/guide/) - to run SGX enclaves -- [Event Manager](https://github.com/gianlu33/rust-sgx-apps) +## Run reactive-tools with Docker -**Native** +The [gianlu33/reactive-tools](https://hub.docker.com/repository/docker/gianlu33/reactive-tools) Docker images provide a simple and fast way to run reactive-tools from any Linux OS. We provide different tags, according to the developer needs: -- [Rust](https://www.rust-lang.org/tools/install) - to run the event manager -- [Event Manager](https://github.com/gianlu33/rust-sgx-apps) +- `latest` contains all the dependencies for all the architectures supported +- `sgx` contains the dependencies to deploy only SGX and native modules +- `native` contains dependencies to deploy only native modules +- `sancus` contains dependencies to deploy only Sancus modules -### Deployer +When running the Docker image, ideally you should mount a volume that includes the workspace of the application to be deployed, containing all the source files and the deployment descriptor. -**Note**: you only need to install the dependencies of the architectures you are interested in. - -- e.g. if your system only works with Sancus devices, you don't need Fortanix EDP - -**Sancus** - -- [Sancus compiler](https://distrinet.cs.kuleuven.be/software/sancus/install.php) - - You also need to add to add the python library to `PYTHONPATH` - - `export PYTHONPATH=$PYTHONPATH:/usr/local/share/sancus-compiler/python/lib/` - -**Intel SGX/Native** - -- Rust & Fortanix EDP -- [`rust-sgx-gen`](https://github.com/gianlu33/rust-sgx-gen/) - code generation tool - -- [Utility apps](https://github.com/gianlu33/rust-sgx-apps) - `aes_encryptor`, `ra_client` and `ra_sp` - - needed for connection key encryption and remote attestation - - Simply run the `install_deployer.sh` script in the `apps` folder -- See [here](sgx.md) for more details +```bash +# run reactive-tools image +### : volume we want to mount (ideally, contains the workspace of our app) +### : tag of the image we want to run between {latest,sgx,sancus,native} +make run VOLUME= TAG= +``` ## Run -Install `reactive-tools` by running `pip install .` from the root folder. - -### Deploy an Authentic Execution network - -**Inputs** - -- Code for each module -- JSON file describing the configuration of the system -- see [examples](examples) - -**Command** - -Run `reactive-tools deploy -h` for more information - -**Output** - -- If everything goes well, your modules will be automatically loaded inside the nodes you specified, and connections will be established! -- If you specified an output file (`--result `), the final configuration will be saved in a JSON format (which includes all information you may need such as keys, binaries, etc) - -### Call an entrypoint - -**Inputs** - -- Result JSON of the `deploy` command -- Module and entry name -- Optional argument (hex byte array) - -**Command** - -Run `reactive-tools call -h` for more information - -**Output** - -- If everything goes well, the entrypoint is correctly called +All of the following commands can be run with either the `--verbose` or `--debug` flags, for debugging purposes. For a full description of the arguments, run `reactive-tools -h`. + +### Build + +```bash +# Build the application. Might be useful to check that all the modules compile before the actual deployment +### : root directory of the application to deploy. Default: "." +### : name of the input deployment descriptor, should be inside +reactive-tools build --workspace +``` + +### Deploy +```bash +# Deploy the application +### : root directory of the application to deploy. Default: "." +### : name of the deployment descriptor, should be inside +### : path to the output deployment descriptor that will be generated (optional) +reactive-tools deploy --workspace --result +``` + +### Call +```bash +# Call a specific entry point of a deployed application +### : deployment descriptor. MUST be the output of a previous deploy command +### : name of the module we want to call +### : either the name or the ID of th entry point we want to call +### : byte array in hexadecimal format, e.g., "deadbeef" (OPTIONAL) +reactive-tools call --config --module --entry --arg +``` + +### Output +```bash +# Trigger the output of a _direct_ connection +### : deployment descriptor. MUST be the output of a previous deploy command +### : either the name or the ID of the connection +### : byte array in hexadecimal format, e.g., "deadbeef" (OPTIONAL) +reactive-tools output --config --connection --arg +``` + +### Request +```bash +# Trigger the request of a _direct_ connection +### : deployment descriptor. MUST be the output of a previous deploy command +### : either the name or the ID of the connection +### : byte array in hexadecimal format, e.g., "deadbeef" (OPTIONAL) +reactive-tools request --config --connection --arg +``` diff --git a/add_new_architectures.md b/add_new_architectures.md index 3174db4..518bc45 100644 --- a/add_new_architectures.md +++ b/add_new_architectures.md @@ -8,7 +8,7 @@ This file provides an example of what it is necessary to do in this case. We'll The scripts use massively `asyncio` framework, which is a powerful tool to perform asynchronous operations (like opening a file, connecting to a remote host, executing a subprocess..). -All the common methods that you need to implement are asynchronous (defined with the `async` keyword), but it is not mandatory to actually use asynchronous operations (so, you can implement those methods as normal ones). +**All** the common methods that you need to implement are asynchronous (defined with the `async` keyword), but it is not mandatory to actually use asynchronous operations (so, you can implement those methods as normal ones). However, it is _highly recommended_ to use as much concurrency as possible, to speed up significantly the deployment process. @@ -16,56 +16,51 @@ However, it is _highly recommended_ to use as much concurrency as possible, to s Add a python file called `trustzone.py` in `modules` folder, defining a new class called `TrustZoneModule`, which extends the base class `Module` (defined in `base.py`). Also, import the module in the `__init__.py`, so that the Module will be in the scope of `modules` . - +**Abstract methods** The following abstract methods need to be implemented: - `deploy(self)` - This method should eventually call the `deploy` method of its node - - `call(self, entry, arg=None)` - This method should eventually call the `call` method of its node - `entry`: entrypoint name - `arg`: optional argument, which must be a byte array - - `get_id(self)` - - - returns the ID of the module - +- returns the ID of the module - `get_input_id(self, input)` - returns the input ID - - `get_output_id(self, output)` - returns the output ID - - `get_entry_id(self, entry)` - - - returns the entrypoint ID - +- returns the entrypoint ID +- `get_request_id(self, request)` + - returns the request ID, or raise an exception if the architecture does not support _request-handler_ connections +- `get_handler_id(self, handler)` + - returns the handler ID, or raise an exception if the architecture does not support _request-handler_ connections - `get_key(self)` - returns the module's Master Key - - `get_supported_encryption()` - _static method_ - should return a list of `connection.Encryption` elements, describing which encryption algorithms are supported by the module - - `get_supported_node_type()` - _static method_ - should return the node class supported by the module - +**Common attributes** All modules have also some common attributes, which are: - `name`: module name. Specified in the input JSON file - `node`: node the module belongs to. It is a `Node` object. Node's name is specified in the input JSON file. - - +- `priority`: a priority can be defined in the deployment descriptor for deploying modules in a specific order. This is automatically managed elsewhere +- `deployed`: we can as well have declared in the deployment descriptor modules that have already been deployed previously. This is particularly useful for the Sancus Secure I/O functionality. Apart from that, managing already deployed modules still has to be implemented properly, therefore for the moment it is not really used +- `connections`: number of connections of the module, as declared in the deployment descriptor. This value is assigned elsewhere. Particularly useful for Sancus, probably useless for other architectures. For all the other methods/attributes, the developer can choose his own implementation. @@ -73,16 +68,39 @@ For all the other methods/attributes, the developer can choose his own implement Add a python file called `trustzone.py` in `nodes` folder, defining a new class called `TrustZoneNode`, which extends the base class `Node` (defined in `base.py`). Also, import the module in the `__init__.py`, so that the Module will be in the scope of `node` . +**Methods already implemented** +The base class already provides a default implementation for some methods. However, if needed, this implementation can be overridden in the derived class: -The following abstract methods need to be implemented: - -- `deploy(self, module)` - - Ideally, in this method we send the binary of `module` to the node - `connect(self, from_module, from_output, to_module, to_input)` - Send to the Event Manager of the node a new connection between modules - `from_module` and `to_module` are objects of the `Module` class - `from_output` and `to_input` are strings (not ids) +- `call(self, module, entry, arg=None)` + - `module`: `Module` object + - `entry`: entrypoint name + - `arg`: optional argument, which is a byte array +- `output(self, connection, arg=None)` + - `connection`: Connection object + - `arg`: optional argument, which is a byte array +- `request(self, connection, arg=None)` + - `connection`: Connection object + - `arg`: optional argument, which is a byte array +- `register_entrypoint(self, module, entry, frequency)` + - `module`: Module object + - `entry`: name of the entry point + - `frequency`: frequency (int) +- `_send_reactive_command(self, command, log=None)` + - You should use this function to send any commands to the Event Manager + - `command`: Command object + - `log`: optional string that is printed to stdout for information + +**Abstract methods** + +The following abstract methods need to be implemented: + +- `deploy(self, module)` + - Ideally, in this method we send the binary of `module` to the node - `set_key(self, module, io_name, encryption, key, conn_io)` - Set the key for a connection. A message to `module` has to be sent through the Event Manager - `io_name`: name of the input/output @@ -90,12 +108,8 @@ The following abstract methods need to be implemented: - `key`: connection key - `conn_io`: specifies if `io_name` is an output or an input. See `connection.ConnectionIO` -- `call(self, module, entry, arg=None)` - - `module`: `Module` object - - `entry`: entrypoint name - - `arg`: optional argument, which is a byte array - +**Common attributes** All nodes have also some common attributes, which are: @@ -104,16 +118,20 @@ All nodes have also some common attributes, which are: - `reactive_port`: port the Event Manager listens to events from. Specified in the input JSON file - `deploy_port`: port the Module Loader listens from. Specified in the input JSON file - +- `__nonces`: a map of nonces for every module of the same node. +- `need_lock`: a boolean that says if a node needs to perform requests one at a time. Used for Sancus. For all the other methods/attributes, the developer can choose his own implementation. ## Add new encryption types -In `connection.py` we can add new encryption algorithms in the `Encryption` enum class. If you need to add a new algorithm, modify this class accordingly. +In `crypto.py` we can add new encryption algorithms in the `Encryption` enum class. If you need to add a new algorithm, modify this class accordingly. Note that two modules can be connected using a specific encryption **only** if both of them support it. If, for example, you want to connect a SGX module with a TrustZone module using an encryption algorithm X, you have to: +- Implement the crypto functions in `crypto.py` for encryption, decryption, MAC +- Update the methods of the `Encryption` class to include support for this new encryption type (just look at the existing code, and modify it accordingly) + - Implement that encryption algorithm in the modules code - For SGX/Native modules, just update the [`reactive_crypto`](https://github.com/gianlu33/rust-sgx-libs/tree/master/reactive_crypto) library - Update the method `get_supported_encryption` of `SGXModule` and `TrustZoneModule`. @@ -177,4 +195,4 @@ If you need to import an external python module you are completely allowed to do In this way, if we don't use a specific architecture we are not forced to install its modules, and the scripts will work without it as well. -E.g. If i don't use Sancus modules in my system, i don't need to install Sancus compiler and its python library to run the scripts. +E.g. If I don't use Sancus modules in my system, I don't need to install Sancus compiler and its python library to run the scripts. diff --git a/settings_template.json b/settings_template.json deleted file mode 100644 index 812ca3e..0000000 --- a/settings_template.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "linkable": true, - "random_nonce": false, - "use_platform_service": false, - "spid": "INSERT_SPID_HERE", - "primary_subscription_key": "INSERT_PRIMARY_KEY_HERE", - "secondary_subscription_key": "INSERT_SECONDARY_KEY_HERE", - "quote_trust_options": [ - "GROUP_OUT_OF_DATE", - "CONFIGURATION_NEEDED" - ], - "sp_private_key_pem_path": "", - "ias_root_cert_pem_path": "INSERT_ROOT_CA_PATH_HERE", - "sigstruct_path": "" -} diff --git a/sgx.md b/sgx.md deleted file mode 100644 index e1783a3..0000000 --- a/sgx.md +++ /dev/null @@ -1,55 +0,0 @@ -# Reactive tools for SGX - -## Modules - -See [`rust-sgx-gen`](https://github.com/gianlu33/rust-sgx-gen/tree/master) documentation and our [examples](examples) to learn how to create a SGX (or No-SGX) module. - -## Nodes - -An [Event Manager](https://github.com/gianlu33/rust-sgx-apps/tree/master) must be running on each node. - -- We can have multiple event managers (and nodes) on the same machine, but pay attention to the specified ports! - - The modules will use a port based on the one assigned to the Event Manager - - E.g. if the EM listens to port 5000, SM1 will listen to port 5001, SM2 to 5002, etc.. - - As a consequence, you need to assign ports to Event Managers on the same machine with a certain interval (e.g. 5000, 6000, etc.) - -## Limitations - -At the moment, SGX modules can be only deployed in `debug` mode. - -## Remote Attestation - -Remote Attestation (RA) is the process where the deployer can verify that a remote module is correctly loaded inside a node and not tampered with. During the process, data can also be exchanged, such as a symmetric key for future communication. - -**Links** - -- [Intel official website](https://software.intel.com/content/www/us/en/develop/topics/software-guard-extensions/attestation-services.html) -- [Intel sample code](https://software.intel.com/content/www/us/en/develop/articles/code-sample-intel-software-guard-extensions-remote-attestation-end-to-end-example.html) - -- [The Rust framework we used](https://github.com/ndokmai/rust-sgx-remote-attestation) - -### Reactive-tools - -The RA process is automatically handled by the framework. - -The deployer just needs to specify, for each module in the JSON input file, the following information: - -**`vendor_key`** - -- Path (**absolute!**) to the vendor's private key. It is used to sign the SGX module -- The private key can be generated using `openssl` - - e.g. `openssl genrsa -3 3072 > my_key.pem` -- See https://edp.fortanix.com/docs/tasks/deployment/ for more information - -**`ra_settings`** - -- A configuration JSON file used by `ra_sp` in order to retrieve the configuration about [SGX EPID](https://api.portal.trustedservices.intel.com/EPID-attestation). - - See [here](https://github.com/ndokmai/rust-sgx-remote-attestation#how-to-build-and-run) for more information -- Just update the [template](settings_template.json) provided in this repository by changing the following fields: - - `spid` - - `primary_subscription_key` - - `secondary_subscription_key` - - these fields are retrieved in your Intel's account after you subscribe for a _Product DEV Intel® Software Guard Extensions Attestation Service (Linkable) subscription_ - - `ias_root_cert_pem_path` - - Path (**absolute!**) to Intel's Root Certificate - - it can be downloaded from [this link](https://certificates.trustedservices.intel.com/Intel_SGX_Attestation_RootCA.pem). \ No newline at end of file From 1d1f334720f58f5322a09af8de8e0fc5a6ddeb52 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Mon, 25 Jan 2021 09:46:55 +0100 Subject: [PATCH 05/81] Create LICENSE --- LICENSE | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 674 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. From 4547ddcaf36cc6f2e3430cc0e607489e341468ef Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Mon, 15 Feb 2021 18:33:52 +0100 Subject: [PATCH 06/81] use python AES lib instead of aes_encryptor (#2) --- reactivetools/crypto.py | 24 ++++++++++++------------ reactivetools/glob.py | 1 - setup.py | 2 +- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/reactivetools/crypto.py b/reactivetools/crypto.py index c482304..63ea15a 100644 --- a/reactivetools/crypto.py +++ b/reactivetools/crypto.py @@ -1,6 +1,7 @@ import base64 import asyncio from enum import IntEnum +from Crypto.Cipher import AES from . import tools from . import glob @@ -55,23 +56,22 @@ async def mac(self, key, ad): async def encrypt_aes(key, ad, data=[]): - args = [base64.b64encode(ad).decode(), - base64.b64encode(data).decode(), - base64.b64encode(key).decode()] + # Note: we set nonce to zero because our nonce is part of the associated data + aes_gcm = AES.new(key, AES.MODE_GCM, nonce=b'\x00'*12) + aes_gcm.update(ad) - out = await tools.run_async_output(glob.ENCRYPTOR, *args) - return base64.b64decode(out) + cipher, tag = aes_gcm.encrypt_and_digest(data) + return cipher + tag async def decrypt_aes(key, ad, data=[]): - args = [base64.b64encode(ad).decode(), - base64.b64encode(data).decode(), - base64.b64encode(key).decode(), - "-d"] - try: - out = await tools.run_async_output(glob.ENCRYPTOR, *args) - return base64.b64decode(out) + aes_gcm = AES.new(key, AES.MODE_GCM, nonce=b'\x00'*12) + aes_gcm.update(ad) + + cipher = data[:-16] + tag = data[-16:] + return aes_gcm.decrypt_and_verify(cipher, tag) except: raise Error("Decryption failed") diff --git a/reactivetools/glob.py b/reactivetools/glob.py index 881e132..a3eb11c 100644 --- a/reactivetools/glob.py +++ b/reactivetools/glob.py @@ -2,7 +2,6 @@ BUILD_MODE = "debug" # Apps -ENCRYPTOR = "aes_encryptor" RA_SP = "ra_sp" RA_CLIENT = "ra_client" diff --git a/setup.py b/setup.py index 1c9eee2..7d163d2 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ name='reactivetools', version='0.1', packages=find_packages(), - install_requires=['pyelftools==0.27', 'aiofile==3.3.3'], + install_requires=['pyelftools==0.27', 'aiofile==3.3.3', 'pycryptodome==3.10.1'], entry_points={ 'console_scripts': ['reactive-tools = reactivetools.cli:main'] }, From acbf7806498057d96239ac91b96f03714e3a7596 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Tue, 16 Feb 2021 14:41:26 +0100 Subject: [PATCH 07/81] update setup.py and Makefile, add AUTHORS (#3) --- AUTHORS | 5 +++++ Makefile | 13 ++++++++++++- setup.py | 31 ++++++++++++++++++++----------- 3 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 AUTHORS diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..e7bf1c0 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,5 @@ +List of authors of this repository + +Job Noorman +Jan Tobias Mühlberg +Gianluca Scopelliti diff --git a/Makefile b/Makefile index f9e361f..a5ddcb0 100644 --- a/Makefile +++ b/Makefile @@ -4,8 +4,19 @@ TAG_NATIVE = native TAG_SGX = sgx TAG_SANCUS = sancus +PWD = $(shell pwd) + TAG ?= latest -VOLUME ?= $(shell pwd) +VOLUME ?= $(PWD) + +PYPI_REPO ?= gianlu33/pypi +PYPI_USERNAME ?= __token__ + +create_pkg: + docker run --rm -it -v $(PWD):/usr/src/app $(PYPI_REPO) python setup.py sdist bdist_wheel + +upload: create_pkg + docker run --rm -it -v $(PWD):/usr/src/app $(PYPI_REPO) twine upload --repository pypi dist/* -u $(PYPI_USERNAME) run: docker run --rm -it --network=host -v $(VOLUME):/usr/src/app/ -v /var/run/aesmd/:/var/run/aesmd $(REPO):$(TAG) bash diff --git a/setup.py b/setup.py index 7d163d2..2c2528c 100644 --- a/setup.py +++ b/setup.py @@ -1,14 +1,23 @@ -from setuptools import setup, find_packages +import setuptools -setup( - name='reactivetools', - version='0.1', - packages=find_packages(), - install_requires=['pyelftools==0.27', 'aiofile==3.3.3', 'pycryptodome==3.10.1'], - entry_points={ - 'console_scripts': ['reactive-tools = reactivetools.cli:main'] - }, +with open("README.md", "r", encoding="utf-8") as fh: + long_description = fh.read() - author='Job Noorman', - author_email='job.noorman@cs.kuleuven.be' +setuptools.setup( + name="reactive-tools", + version="0.1", + author="Gianluca Scopelliti", + author_email="gianlu.1033@gmail.com", + description="Deployment tools for the Authentic Execution framework", + long_description=long_description, + long_description_content_type="text/markdown", + url="https://github.com/gianlu33/reactive-tools", + packages=setuptools.find_packages(), + install_requires=['pyelftools==0.27', 'aiofile==3.3.3', 'pycryptodome==3.10.1', 'reactive-net==0.1', 'rust-sgx-gen==0.1'], + classifiers=[ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", + "Operating System :: OS Independent", + ], + python_requires='>=3.6', ) From 0be04d0e865559727b4a0ab7cd61811dda417122 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Thu, 18 Feb 2021 17:36:49 +0100 Subject: [PATCH 08/81] Restructuring code, add more flexibility (#4) * load and dump functions are now in corresponding Module/Node classes * absolute paths * loader functions checks * absolute paths sgx/native * glob.py now has only general stuff for any type. build mode as cli arg * sancus key length is fixed * refactor "build-mode" cli arg to "mode" * structured rule evaluation * rules are now stored in yaml files * fixes and implement rules for "default" folder * fixes, check if node supports module * fix build mode * minor stuff * update tutorial to add new archs * documented base.py files and minor fixes * established attribute in connections and periodicevents plus minor stuff * add module_id in SGX and Native nodes to deployment descriptor * store current connection id, 'folder' attribute for SGX and native * now can accept and dump both JSON and YAML * add a couple of rules * fixess * sancus nonce fix --- MANIFEST.in | 1 + add_new_architectures.md | 246 ++++----- reactivetools/cli.py | 80 ++- reactivetools/config.py | 503 +++--------------- reactivetools/connection.py | 78 ++- reactivetools/crypto.py | 12 +- reactivetools/descriptor.py | 59 ++ reactivetools/dumpers.py | 40 ++ reactivetools/glob.py | 46 +- reactivetools/loaders.py | 28 + reactivetools/modules/__init__.py | 20 +- reactivetools/modules/base.py | 252 ++++++++- reactivetools/modules/native.py | 84 +-- reactivetools/modules/sancus.py | 82 +-- reactivetools/modules/sgx.py | 123 +++-- reactivetools/nodes/__init__.py | 19 + reactivetools/nodes/base.py | 208 +++++++- reactivetools/nodes/native.py | 22 +- reactivetools/nodes/sancus.py | 36 +- reactivetools/nodes/sgx.py | 39 +- reactivetools/periodic_event.py | 34 +- reactivetools/rules/__init__.py | 1 + reactivetools/rules/default/connection.yaml | 52 ++ reactivetools/rules/default/module.yaml | 39 ++ reactivetools/rules/default/node.yaml | 28 + .../rules/default/periodic_event.yaml | 26 + reactivetools/rules/evaluators.py | 44 ++ reactivetools/rules/modules/native.yaml | 1 + reactivetools/rules/modules/sancus.yaml | 1 + reactivetools/rules/modules/sgx.yaml | 1 + reactivetools/rules/nodes/native.yaml | 1 + reactivetools/rules/nodes/sancus.yaml | 1 + reactivetools/rules/nodes/sgx.yaml | 1 + reactivetools/tools.py | 20 - setup.py | 10 +- 35 files changed, 1430 insertions(+), 808 deletions(-) create mode 100644 MANIFEST.in create mode 100644 reactivetools/descriptor.py create mode 100644 reactivetools/dumpers.py create mode 100644 reactivetools/loaders.py create mode 100644 reactivetools/rules/__init__.py create mode 100644 reactivetools/rules/default/connection.yaml create mode 100644 reactivetools/rules/default/module.yaml create mode 100644 reactivetools/rules/default/node.yaml create mode 100644 reactivetools/rules/default/periodic_event.yaml create mode 100644 reactivetools/rules/evaluators.py create mode 100644 reactivetools/rules/modules/native.yaml create mode 100644 reactivetools/rules/modules/sancus.yaml create mode 100644 reactivetools/rules/modules/sgx.yaml create mode 100644 reactivetools/rules/nodes/native.yaml create mode 100644 reactivetools/rules/nodes/sancus.yaml create mode 100644 reactivetools/rules/nodes/sgx.yaml diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..2f0da91 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1 @@ +recursive-include reactivetools/rules * diff --git a/add_new_architectures.md b/add_new_architectures.md index 518bc45..ccef1d4 100644 --- a/add_new_architectures.md +++ b/add_new_architectures.md @@ -1,198 +1,140 @@ # Add support for a new architecture -It is quite easy to extend the scripts to support new architectures. +In this tutorial, we will describe all the steps to do to add support for a new architecture. -This file provides an example of what it is necessary to do in this case. We'll suppose to add support for ARM TrustZone. +## Preliminary notes -## Note before starting +- **You MUST NOT modify** any existing files except for `modules/__init__.py` and `nodes/__init__.py` + - Your new architecture will be managed automatically + +- If you need to install some python libraries through `pip`, add the name in the `install_requires` list in `setup.py` (line 16) + - Please declare a specific version! This way we don't risk that future updates break the app + +- If you have some other external python libraries (e.g., the sancus python library), you need to add the path in your PYTHONPATH environment variable in order to use them + - Example: ` PYTHONPATH=$PYTHONPATH:/usr/local/share/sancus-compiler/python/lib/` + - If this is the case, **DO NOT** import a module at the beginning of your files, otherwise people that do not have such module would not be able to run the application. Instead, import the module inside the functions where you use it + - Example: `modules/sancus.py` at line 207 -The scripts use massively `asyncio` framework, which is a powerful tool to perform asynchronous operations (like opening a file, connecting to a remote host, executing a subprocess..). +## High-level view of the steps to do -**All** the common methods that you need to implement are asynchronous (defined with the `async` keyword), but it is not mandatory to actually use asynchronous operations (so, you can implement those methods as normal ones). +- Fork this repository in your account +- [optional] create a new branch, where you will implement your code +- Implement & test code +- Open a Pull Request (PR) from your branch to the `main` branch of **this** repository (not the one you forked!) +- Wait for a review and, optionally, improve code +- Update your code according to the review received +- End: your code is merged to the main repo! -However, it is _highly recommended_ to use as much concurrency as possible, to speed up significantly the deployment process. +## Implementation -## Implement Module class +In this tutorial we will describe how to add support for the `TrustZone` architecture. -Add a python file called `trustzone.py` in `modules` folder, defining a new class called `TrustZoneModule`, which extends the base class `Module` (defined in `base.py`). Also, import the module in the `__init__.py`, so that the Module will be in the scope of `modules` . +### Add rules -**Abstract methods** +A rule file is a YAML file which contains some logical constraints about the definition of the deployment descriptor (nodes, modules, connections). Essentially, the purpose of these rules is to ensure that the deployment descriptor is structured as expected, and to give a meaningful error if something is wrong. -The following abstract methods need to be implemented: +- All the rule files are stored in the `rules` folder. -- `deploy(self)` +- Examples of rules: + - *each item in the `nodes` section of the deployment descriptor must provide a type, a name, an IP address and a port.* + - *a port must be a positive 16-bit integer* +- In `rules/default`, pre-defined rules are stored. For modules and nodes, we wrote some generic rules that all the types of nodes/modules should follow (e.g., for nodes, like in the example above) +- In `rules/modules` and `rules/nodes` specific rules for specific architectures are stored (e.g., Sancus, SGX, etc..) - - This method should eventually call the `deploy` method of its node -- `call(self, entry, arg=None)` +**Your task** - - This method should eventually call the `call` method of its node - - `entry`: entrypoint name - - `arg`: optional argument, which must be a byte array -- `get_id(self)` -- returns the ID of the module -- `get_input_id(self, input)` +- **[required]** Create an empty `trustzone.yaml` file both in `rules/modules` and `rules/nodes` +- [optional] Fill the files with your rules. These will be evaluated automatically at runtime. + - It's optional, but **recommended** + - Each rule is a key-value pair where the key is a string message that will be printed if the rule is not satisfied, and the value is your logical expression in **python code** + - To satisfy the rule, the expression must be evaluated to `True` + - Some helper functions are provided in `rules/evaluators.py`, which can be used + - Check the other rule files to get an idea of how to declare these rules - - returns the input ID -- `get_output_id(self, output)` +### Add Node and Module classes - - returns the output ID -- `get_entry_id(self, entry)` -- returns the entrypoint ID -- `get_request_id(self, request)` - - returns the request ID, or raise an exception if the architecture does not support _request-handler_ connections -- `get_handler_id(self, handler)` - - returns the handler ID, or raise an exception if the architecture does not support _request-handler_ connections -- `get_key(self)` +- **[required]** add a file called `trustzone.py` in the folder `nodes` + - This file has to declare a new class called `TrustZoneNode`, which extends the base class `Node` +- **[required]** add a file called `trustzone.py` in the folder `modules` + - This file has to declare a new class called `TrustZoneModule`, which extends the base class `Module` - - returns the module's Master Key -- `get_supported_encryption()` - _static method_ +These classes have to implement **at least** the abstract methods of the corresponding base classes, according to the description provided in the `base.py` files +- For some methods, a default implementation is provided. If needed, you can override these methods in the subclasses +- In the `__init__` function of your classes, **you must** call `super().__init__(args)` , where args are the parameters of the `__init__` function in the base class (again, look at the `base.py`) - - should return a list of `connection.Encryption` elements, describing which encryption algorithms are supported by the module -- `get_supported_node_type()` - _static method_ +### Update `__init__.py` files in `nodes/` and `modules/` - - should return the node class supported by the module +To have your classes used by the application, you should modify these two files: -**Common attributes** +- `nodes/__init__.py` +- `modules/__init__.py` -All modules have also some common attributes, which are: +For both the files, the procedure is the same and very intuitive. -- `name`: module name. Specified in the input JSON file -- `node`: node the module belongs to. It is a `Node` object. Node's name is specified in the input JSON file. -- `priority`: a priority can be defined in the deployment descriptor for deploying modules in a specific order. This is automatically managed elsewhere -- `deployed`: we can as well have declared in the deployment descriptor modules that have already been deployed previously. This is particularly useful for the Sancus Secure I/O functionality. Apart from that, managing already deployed modules still has to be implemented properly, therefore for the moment it is not really used -- `connections`: number of connections of the module, as declared in the deployment descriptor. This value is assigned elsewhere. Particularly useful for Sancus, probably useless for other architectures. +- The examples below show how to update `modules/__init__.py`. For the same file under `nodes`, the procedure is analogous (just replace`module` with `node`) -For all the other methods/attributes, the developer can choose his own implementation. +**[required] Import your classes** -## Implement Node class - -Add a python file called `trustzone.py` in `nodes` folder, defining a new class called `TrustZoneNode`, which extends the base class `Node` (defined in `base.py`). Also, import the module in the `__init__.py`, so that the Module will be in the scope of `node` . - -**Methods already implemented** - -The base class already provides a default implementation for some methods. However, if needed, this implementation can be overridden in the derived class: - -- `connect(self, from_module, from_output, to_module, to_input)` - - Send to the Event Manager of the node a new connection between modules - - `from_module` and `to_module` are objects of the `Module` class - - `from_output` and `to_input` are strings (not ids) -- `call(self, module, entry, arg=None)` - - `module`: `Module` object - - `entry`: entrypoint name - - `arg`: optional argument, which is a byte array -- `output(self, connection, arg=None)` - - `connection`: Connection object - - `arg`: optional argument, which is a byte array -- `request(self, connection, arg=None)` - - `connection`: Connection object - - `arg`: optional argument, which is a byte array -- `register_entrypoint(self, module, entry, frequency)` - - `module`: Module object - - `entry`: name of the entry point - - `frequency`: frequency (int) -- `_send_reactive_command(self, command, log=None)` - - You should use this function to send any commands to the Event Manager - - `command`: Command object - - `log`: optional string that is printed to stdout for information - -**Abstract methods** - -The following abstract methods need to be implemented: - -- `deploy(self, module)` - - Ideally, in this method we send the binary of `module` to the node -- `set_key(self, module, io_name, encryption, key, conn_io)` - - Set the key for a connection. A message to `module` has to be sent through the Event Manager - - `io_name`: name of the input/output - - `encryption`: encryption algorithm ID (see below) - - `key`: connection key - - `conn_io`: specifies if `io_name` is an output or an input. See `connection.ConnectionIO` - - -**Common attributes** - -All nodes have also some common attributes, which are: - -- `name`: node name. Specified in the input JSON file -- `ip_address`: address of the node, which is either a `IPv4Address` or a `IPv6Address` (see [ipaddress](https://docs.python.org/3/library/ipaddress.html) library). Specified in the input JSON file -- `reactive_port`: port the Event Manager listens to events from. Specified in the input JSON file -- `deploy_port`: port the Module Loader listens from. Specified in the input JSON file - -- `__nonces`: a map of nonces for every module of the same node. -- `need_lock`: a boolean that says if a node needs to perform requests one at a time. Used for Sancus. - -For all the other methods/attributes, the developer can choose his own implementation. - -## Add new encryption types - -In `crypto.py` we can add new encryption algorithms in the `Encryption` enum class. If you need to add a new algorithm, modify this class accordingly. - -Note that two modules can be connected using a specific encryption **only** if both of them support it. If, for example, you want to connect a SGX module with a TrustZone module using an encryption algorithm X, you have to: +```python +from .trustzone import TrustZoneModule +``` -- Implement the crypto functions in `crypto.py` for encryption, decryption, MAC -- Update the methods of the `Encryption` class to include support for this new encryption type (just look at the existing code, and modify it accordingly) +**[required] Declare your rules files** -- Implement that encryption algorithm in the modules code - - For SGX/Native modules, just update the [`reactive_crypto`](https://github.com/gianlu33/rust-sgx-libs/tree/master/reactive_crypto) library -- Update the method `get_supported_encryption` of `SGXModule` and `TrustZoneModule`. +You should update the `module_rules` and `node_rules` dicts as described below -## Update config.py +- **NOTE:** the key `"trustzone"` is the type of your node/module as written in the deployment descriptor -Last thing we have to do is update `config.py` to correctly read/write a module or node from/to a JSON file. +```python +module_rules = { + # ... + + # THIS is what you have to add: + "trustzone" : "trustzone.yaml" +} +``` -### Import Node and Module classes +The application will automatically fetch the `trustzone.yaml` file inside the `rules/nodes` or `rules/modules` folders. -Simple as that. +**[required] Declare your load function** -### Load node and module from the input JSON file +The `load` function, declared as an abstract static method in the base class, takes as input the definition of the node/module as written in the deployment descriptor and creates the `TrustZoneNode` or `TrustZoneModule` object. -You have to update `_node_load_funcs` and `_module_load_funcs` dicts +- The `dump` function, instead, does the opposite work -- The key is the name of the architecture (as it appears on the input JSON) -- The value is an handler, which will be called to load a Node / Module +You should update the `module_funcs` and `node_funcs` as described below -Example: +- **NOTE:** the key `"trustzone"` is the type of your node/module as written in the deployment descriptor ```python -_module_load_funcs = { - # other architectures.. - 'trustzone': _load_trustzone_module +module_funcs = { + # ... + + # THIS is what you have to add: + "trustzone" : TrustZoneModule.load } - -def _load_trustzone_module(mod_dict, config): - name = mod_dict['name'] - node = config.get_node(mod_dict['node']) - # other attributes.. - - return TrustZoneModule(name, node, ...) ``` -### Dump to output JSON file +**[optional] cleanup coroutines** + +If your `Node` or `Module` classes need to perform certain operations before the application ends (e.g., kill some background process), you can add an entry in the `module_cleanup_coros` and `node_cleanup_coros` lists. -You need a dumper for your Node and Module classes. Example: +- This is not required, but it is **recommended** to update these lists even if you do not have any task to do. +- The `cleanup` method of your classes has a default implementation in the base class, therefore you do not have to implement new methods by yourself if you don't need to do any cleanup operations. ```python -@_dump.register(TrustZoneModule) -def _(module): - return { - "type": "trustzone", - "name": module.name, - # other attributes.. - } - -@_dump.register(TrustZoneNode) -def _(node): - return { - "type": "trustzone", - "name": node.name, - # other attributes.. - } +module_cleanup_coros = [ + # ... + + # THIS is what you have to add: + TrustZoneModule.cleanup +] ``` -## Import external Python modules - -If you need to import an external python module you are completely allowed to do it, but for specific modules (e.g. a TrustZone code generator) it is recommended to import the module **only** _inside_ the functions that use it. +### Implement methods -In this way, if we don't use a specific architecture we are not forced to install its modules, and the scripts will work without it as well. +Now, you just have to implement all the abstract methods in your classes inherited from the base classes `Node` and `Module`. -E.g. If I don't use Sancus modules in my system, I don't need to install Sancus compiler and its python library to run the scripts. +- Check the `base.py` file for a description of the methods you have to override +- Check other implementations (e.g., `sancus.py`) for some additional hints +- You can of course implement new methods if needed, as well as override default implementation of methods in the base class \ No newline at end of file diff --git a/reactivetools/cli.py b/reactivetools/cli.py index c835e60..402cc90 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -1,13 +1,14 @@ import argparse import logging import asyncio -import pdb import sys import binascii import os +import contextlib from . import config from . import tools +from . import glob class Error(Exception): @@ -22,28 +23,7 @@ def _setup_logging(args): else: level = logging.WARNING - err_handler = logging.StreamHandler(sys.stderr) - err_handler.setFormatter(logging.Formatter('%(levelname)s: %(message)s')) - err_handler.setLevel(logging.WARNING) - logging.root.addHandler(err_handler) - - class InfoFilter(logging.Filter): - def filter(self, record): - return record.levelno < logging.WARNING - - info_handler = logging.StreamHandler(sys.stdout) - info_handler.setFormatter(logging.Formatter('%(message)s')) - info_handler.setLevel(logging.INFO) - info_handler.addFilter(InfoFilter()) - logging.root.addHandler(info_handler) - - logging.root.setLevel(level) - - -def _setup_pdb(args): - if args.debug: - sys.excepthook = \ - lambda type, value, traceback: pdb.post_mortem(traceback) + logging.basicConfig(format='%(levelname)s: %(message)s', level=level) def _parse_args(args): @@ -55,7 +35,7 @@ def _parse_args(args): action='store_true') parser.add_argument( '--debug', - help='Debug output and open PDB on uncaught exceptions', + help='Debug output', action='store_true') subparsers = parser.add_subparsers(dest='command') @@ -67,6 +47,11 @@ def _parse_args(args): 'deploy', help='Deploy a reactive network') deploy_parser.set_defaults(command_handler=_handle_deploy) + deploy_parser.add_argument( + '--mode', + help='build mode of modules. between "debug" and "release"', + default='debug' + ) deploy_parser.add_argument( 'config', help='Name of the configuration file describing the network') @@ -82,15 +67,20 @@ def _parse_args(args): help='Deploy modules in the order they are found in the config file', action='store_true') deploy_parser.add_argument( - '--sancus-security', - help='Override default Sancus key length, in bits (for spongent connections)', - type=int) + '--output', + help='Output file type, between JSON and YAML', + default=None) # build build_parser = subparsers.add_parser( 'build', help='Build the executables of the SMs as declared in the input configuration file (for debugging)') build_parser.set_defaults(command_handler=_handle_build) + build_parser.add_argument( + '--mode', + help='build mode of modules. between "debug" and "release"', + default='debug' + ) build_parser.add_argument( 'config', help='Name of the configuration file describing the network') @@ -169,8 +159,10 @@ def _parse_args(args): def _handle_deploy(args): logging.info('Deploying %s', args.config) + glob.set_build_mode(args.mode) + os.chdir(args.workspace) - conf = config.load(args.config) + conf = config.load(args.config, args.output) if args.deploy_in_order: conf.deploy_modules_ordered() @@ -179,7 +171,7 @@ def _handle_deploy(args): if args.result is not None: logging.info('Writing post-deployment configuration to %s', args.result) - config.dump(conf, args.result) + config.dump_config(conf, args.result) conf.cleanup() @@ -187,8 +179,11 @@ def _handle_deploy(args): def _handle_build(args): logging.info('Building %s', args.config) + glob.set_build_mode(args.mode) + os.chdir(args.workspace) conf = config.load(args.config) + conf.build() conf.cleanup() @@ -196,7 +191,7 @@ def _handle_build(args): def _handle_call(args): logging.info('Calling %s:%s', args.module, args.entry) - conf = config.load(args.config, False) + conf = config.load(args.config) module = conf.get_module(args.module) asyncio.get_event_loop().run_until_complete( @@ -208,7 +203,7 @@ def _handle_call(args): def _handle_output(args): logging.info('Triggering output of connection %s', args.connection) - conf = config.load(args.config, False) + conf = config.load(args.config) if args.connection.isnumeric(): conn = conf.get_connection_by_id(int(args.connection)) @@ -226,7 +221,7 @@ def _handle_output(args): conn.to_module.node.output(conn, args.arg)) conn.nonce += 1 - config.dump(conf, args.config) + config.dump_config(conf, args.config) conf.cleanup() @@ -234,7 +229,7 @@ def _handle_output(args): def _handle_request(args): logging.info('Triggering request of connection %s', args.connection) - conf = config.load(args.config, False) + conf = config.load(args.config) if args.connection.isnumeric(): conn = conf.get_connection_by_id(int(args.connection)) @@ -252,25 +247,25 @@ def _handle_request(args): conn.to_module.node.request(conn, args.arg)) conn.nonce += 2 - config.dump(conf, args.config) + config.dump_config(conf, args.config) conf.cleanup() +async def close(): + for task in asyncio.Task.all_tasks(): + task.cancel() + with contextlib.suppress(asyncio.CancelledError): + await task + + def main(raw_args=None): args = _parse_args(raw_args) - _setup_logging(args) - _setup_pdb(args) - - try: - tools.set_sancus_key_size(args.sancus_security) - except: - pass try: args.command_handler(args) - except BaseException as e: + except Exception as e: if args.debug: raise @@ -280,4 +275,5 @@ def main(raw_args=None): # If we don't close the event loop explicitly, there is an unhandled # exception being thrown from its destructor. Not sure why but closing # it here prevents annoying noise. + asyncio.get_event_loop().run_until_complete(close()) asyncio.get_event_loop().close() diff --git a/reactivetools/config.py b/reactivetools/config.py index 9ecd58d..602cfbd 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -1,19 +1,22 @@ -import json import binascii import ipaddress -from pathlib import Path import os import asyncio -import functools -import types import logging -from .nodes import SancusNode, SGXNode, NativeNode -from .modules import SancusModule, SGXModule, NativeModule, Module +from .modules import Module +from .nodes import Node from .connection import Connection from .crypto import Encryption from .periodic_event import PeriodicEvent from . import tools +from .dumpers import * +from .loaders import * +from .rules.evaluators import * +from .descriptor import DescriptorType + +from .nodes import node_rules, node_funcs, node_cleanup_coros +from .modules import module_rules, module_funcs, module_cleanup_coros class Error(Exception): @@ -21,14 +24,12 @@ class Error(Exception): class Config: - def __init__(self, file_name): - self.path = Path(file_name).resolve() + def __init__(self): self.nodes = [] self.modules = [] self.connections = [] - - def get_dir(self): - return self.path.parent + self.connections_id = 0 + self.output_type = None def get_node(self, name): for n in self.nodes: @@ -97,8 +98,8 @@ def build(self): async def cleanup_async(self): - await SGXModule.kill_ra_sp() - # Add other instructions here if needed + coros = list(map(lambda c: c(), node_cleanup_coros + module_cleanup_coros)) + await asyncio.gather(*coros) def cleanup(self): @@ -114,24 +115,32 @@ async def deploy_priority_modules(self): await module.deploy() -def load(file_name, deploy=True): - with open(file_name, 'r') as f: - contents = json.load(f) +def load(file_name, output_type=None): + config = Config() + desc_type = DescriptorType.from_str(output_type) + + contents, input_type = DescriptorType.load_any(file_name) - config = Config(file_name) + # Output file format is: + # - desc_type if has been provided as input, or + # - the same type of the input file otherwise + config.output_type = desc_type or input_type - config.nodes = _load_list(contents['nodes'], _load_node) - config.modules = _load_list(contents['modules'], + config.nodes = load_list(contents['nodes'], + lambda n: _load_node(n, config)) + config.modules = load_list(contents['modules'], lambda m: _load_module(m, config)) + config.connections_current_id = contents.get('connections_current_id') or 0 + if 'connections' in contents: - config.connections = _load_list(contents['connections'], - lambda c: _load_connection(c, config, deploy)) + config.connections = load_list(contents['connections'], + lambda c: _load_connection(c, config)) else: config.connections = [] if 'periodic-events' in contents: - config.periodic_events = _load_list(contents['periodic-events'], + config.periodic_events = load_list(contents['periodic-events'], lambda e: _load_periodic_event(e, config)) else: config.periodic_events = [] @@ -139,434 +148,92 @@ def load(file_name, deploy=True): return config -def _load_list(l, load_func=lambda e: e): - if l is None: - return [] - else: - return [load_func(e) for e in l] - - -def _load_node(node_dict): - return _node_load_funcs[node_dict['type']](node_dict) - - -def _load_sancus_node(node_dict): - name = node_dict['name'] - vendor_id = _parse_vendor_id(node_dict['vendor_id']) - vendor_key = _parse_sancus_key(node_dict['vendor_key']) - ip_address = ipaddress.ip_address(node_dict['ip_address']) - reactive_port = node_dict['reactive_port'] - deploy_port = node_dict.get('deploy_port', reactive_port) - - return SancusNode(name, vendor_id, vendor_key, - ip_address, reactive_port, deploy_port) - +def _load_node(node_dict, config): + # Basic rules common to all nodes + evaluate_rules(os.path.join("default", "node.yaml"), node_dict) + # Specific rules for a specific node type + evaluate_rules(os.path.join("nodes", node_rules[node_dict['type']]), node_dict) -def _load_sgx_node(node_dict): - name = node_dict['name'] - ip_address = ipaddress.ip_address(node_dict['ip_address']) - reactive_port = node_dict['reactive_port'] - deploy_port = node_dict.get('deploy_port', reactive_port) - - return SGXNode(name, ip_address, reactive_port, deploy_port) - - -def _load_native_node(node_dict): - name = node_dict['name'] - ip_address = ipaddress.ip_address(node_dict['ip_address']) - reactive_port = node_dict['reactive_port'] - deploy_port = node_dict.get('deploy_port', reactive_port) - - return NativeNode(name, ip_address, reactive_port, deploy_port) + return node_funcs[node_dict['type']](node_dict) def _load_module(mod_dict, config): - return _module_load_funcs[mod_dict['type']](mod_dict, config) - + # Basic rules common to all nodes + evaluate_rules(os.path.join("default", "module.yaml"), mod_dict) + # Specific rules for a specific node type + evaluate_rules(os.path.join("modules", module_rules[mod_dict['type']]), mod_dict) -def _load_sancus_module(mod_dict, config): - name = mod_dict['name'] - node = config.get_node(mod_dict['node']) - priority = mod_dict.get('priority') - deployed = mod_dict.get('deployed') - files = _load_list(mod_dict['files'], - lambda f: _load_module_file(f, config)) - cflags = _load_list(mod_dict.get('cflags')) - ldflags = _load_list(mod_dict.get('ldflags')) - binary = mod_dict.get('binary') - id = mod_dict.get('id') - symtab = mod_dict.get('symtab') - key = _parse_sancus_key(mod_dict.get('key')) - return SancusModule(name, node, priority, deployed, files, cflags, ldflags, - binary, id, symtab, key) - - -def _load_sgx_module(mod_dict, config): - name = mod_dict['name'] node = config.get_node(mod_dict['node']) - priority = mod_dict.get('priority') - deployed = mod_dict.get('deployed') - vendor_key = mod_dict['vendor_key'] - settings = mod_dict['ra_settings'] - features = mod_dict.get('features') - id = mod_dict.get('id') - binary = mod_dict.get('binary') - key = _parse_key(mod_dict.get('key')) - sgxs = mod_dict.get('sgxs') - signature = mod_dict.get('signature') - data = mod_dict.get('data') - - return SGXModule(name, node, priority, deployed, vendor_key, settings, - features, id, binary, key, sgxs, signature, data) - - -def _load_native_module(mod_dict, config): - name = mod_dict['name'] - node = config.get_node(mod_dict['node']) - priority = mod_dict.get('priority') - deployed = mod_dict.get('deployed') - features = mod_dict.get('features') - id = mod_dict.get('id') - binary = mod_dict.get('binary') - key = _parse_key(mod_dict.get('key')) - data = mod_dict.get('data') - - return NativeModule(name, node, priority, deployed, features, id, binary, key, - data) - - -def _load_connection(conn_dict, config, deploy): - evaluate_rules(connection_rules(conn_dict, deploy)) - - direct = conn_dict.get('direct') - from_module = config.get_module(conn_dict['from_module']) if is_present(conn_dict, 'from_module') else None - from_output = conn_dict.get('from_output') - from_request = conn_dict.get('from_request') - to_module = config.get_module(conn_dict['to_module']) - to_input = conn_dict.get('to_input') - to_handler = conn_dict.get('to_handler') - encryption = Encryption.from_str(conn_dict['encryption']) - key = _parse_key(conn_dict.get('key')) - nonce = conn_dict.get('nonce') - id = conn_dict.get('id') - name = conn_dict.get('name') - - if deploy: - id = Connection.get_connection_id() # incremental ID - key = _generate_key(from_module, to_module, encryption) # auto-generated key - nonce = 0 # only used for direct connections - - if from_module is not None: - from_module.connections += 1 - to_module.connections += 1 - - if name is None: - name = "conn{}".format(id) - - return Connection(name, from_module, from_output, from_request, to_module, - to_input, to_handler, encryption, key, id, nonce, direct) - - -def _load_periodic_event(events_dict, config): - module = config.get_module(events_dict['module']) - entry = events_dict['entry'] - frequency = _parse_frequency(events_dict['frequency']) - - return PeriodicEvent(module, entry, frequency) + module = module_funcs[mod_dict['type']](mod_dict, node) + if node.__class__ not in module.get_supported_nodes(): + raise Error("Node {} ({}) does not support module {} ({})".format( + node.name, node.__class__.__name__, + module.name, module.__class__.__name__)) -def _generate_key(module1, module2, encryption): - if (module1 is not None and encryption not in module1.get_supported_encryption()) \ - or encryption not in module2.get_supported_encryption(): - raise Error('Encryption {} not supported between {} and {}'.format( - str(encryption), module1.name, module2.name)) + return module - return tools.generate_key(encryption.get_key_size()) +def _load_connection(conn_dict, config): + evaluate_rules(os.path.join("default", "connection.yaml"), conn_dict) + return Connection.load(conn_dict, config) -def _parse_vendor_id(id): - if not 1 <= id <= 2**16 - 1: - raise Error('Vendor ID out of range') - return id - - -def _parse_sancus_key(key_str): - if key_str is None: - return None - - key = binascii.unhexlify(key_str) - - keysize = tools.get_sancus_key_size() - - if len(key) != keysize: - raise Error('Keys should be {} bytes'.format(keysize)) - - return key - - -def _parse_key(key_str): - if key_str is None: - return None - - return binascii.unhexlify(key_str) - - -def _parse_frequency(freq): - if not 1 <= freq <= 2**32 - 1: - raise Error('Frequency out of range') - - return freq - - -def _load_module_file(file_name, config): - path = Path(file_name) - return path if path.is_absolute() else config.get_dir() / path +def _load_periodic_event(events_dict, config): + evaluate_rules(os.path.join("default", "periodic_event.yaml"), events_dict) + return PeriodicEvent.load(events_dict, config) -_node_load_funcs = { - 'sancus': _load_sancus_node, - 'sgx': _load_sgx_node, - 'native': _load_native_node -} +def evaluate_rules(rules_file, dict): + rules = load_rules(rules_file) + ok = True -_module_load_funcs = { - 'sancus': _load_sancus_module, - 'sgx': _load_sgx_module, - 'native': _load_native_module -} + for r in rules: + try: + result = eval(rules[r]) + except: + result = False + if not result: + logging.error("{} - Broken rule: {}".format(rules_file, r)) + ok = False -def dump(config, file_name): - with open(file_name, 'w') as f: - json.dump(_dump(config), f, indent=4) + if not ok: + raise Error("Bad deployment descriptor") -@functools.singledispatch -def _dump(obj): - assert False, 'No dumper for {}'.format(type(obj)) +def dump_config(config, file_name): + config.output_type.dump(file_name, dump(config)) -@_dump.register(Config) +@dump.register(Config) def _(config): + dump(config.nodes) return { - 'nodes': _dump(config.nodes), - 'modules': _dump(config.modules), - 'connections': _dump(config.connections), - 'periodic-events' : _dump(config.periodic_events) - } - - -@_dump.register(list) -def _(l): - return [_dump(e) for e in l] + 'nodes': dump(config.nodes), + 'modules': dump(config.modules), + 'connections_current_id': config.connections_current_id, + 'connections': dump(config.connections), + 'periodic-events' : dump(config.periodic_events) + } -@_dump.register(SancusNode) +@dump.register(Node) def _(node): - return { - "type": "sancus", - "name": node.name, - "ip_address": str(node.ip_address), - "vendor_id": node.vendor_id, - "vendor_key": _dump(node.vendor_key), - "reactive_port": node.reactive_port, - "deploy_port": node.deploy_port - } + return node.dump() -@_dump.register(SancusModule) +@dump.register(Module) def _(module): - return { - "type": "sancus", - "name": module.name, - "files": _dump(module.files), - "node": module.node.name, - "binary": _dump(module.binary), - "symtab": _dump(module.symtab), - "id": _dump(module.id), - "key": _dump(module.key) - } - - -@_dump.register(SGXNode) -def _(node): - return { - "type": "sgx", - "name": node.name, - "ip_address": str(node.ip_address), - "reactive_port": node.reactive_port, - "deploy_port": node.deploy_port - } + return module.dump() -@_dump.register(SGXModule) -def _(module): - return { - "type": "sgx", - "name": module.name, - "node": module.node.name, - "vendor_key": module.vendor_key, - "ra_settings": module.ra_settings, - "features": module.features, - "id": module.id, - "binary": _dump(module.binary), - "sgxs": _dump(module.sgxs), - "signature": _dump(module.sig), - "key": _dump(module.key), - "data": _dump(module.data) - } - - -@_dump.register(NativeNode) -def _(node): - return { - "type": "native", - "name": node.name, - "ip_address": str(node.ip_address), - "reactive_port": node.reactive_port, - "deploy_port": node.deploy_port - } - - -@_dump.register(NativeModule) -def _(module): - return { - "type": "native", - "name": module.name, - "node": module.node.name, - "features": module.features, - "id": module.id, - "binary": _dump(module.binary), - "key": _dump(module.key), - "data": _dump(module.data) - } - - -@_dump.register(Connection) +@dump.register(Connection) def _(conn): - from_module = None if conn.direct else conn.from_module.name - - return { - "name": conn.name, - "from_module": from_module, - "from_output": conn.from_output, - "from_request": conn.from_request, - "to_module": conn.to_module.name, - "to_input": conn.to_input, - "to_handler": conn.to_handler, - "encryption": conn.encryption.to_str(), - "key": _dump(conn.key), - "id": conn.id, - "direct": conn.direct, - "nonce": conn.nonce - } - - -@_dump.register(PeriodicEvent) -def _(event): - return { - "module": event.module.name, - "entry": event.entry, - "frequency": event.frequency - } - - -@_dump.register(bytes) -@_dump.register(bytearray) -def _(bs): - return binascii.hexlify(bs).decode('ascii') - - -@_dump.register(str) -@_dump.register(int) -def _(x): - return x - - -@_dump.register(Path) -def _(path): - return str(path) - - -@_dump.register(tuple) -def _(t): - return { t[1] : t[0] } - - -@_dump.register(types.CoroutineType) -def _(coro): - return _dump(asyncio.get_event_loop().run_until_complete(coro)) - + return conn.dump() -@_dump.register(dict) -def _(dict): - return dict - -# Rules -def evaluate_rules(rules): - bad_rules = [r for r in rules if not rules[r]] - - for rule in bad_rules: - logging.error("Broken rule: {}".format(rule)) - - if bad_rules: - raise Error("Bad JSON configuration") - - -def is_present(dict, key): - return key in dict and dict[key] is not None - -def has_value(dict, key, value): - return is_present(dict, key) and dict[key] == value - -def authorized_keys(dict, keys): - for key in dict: - if key not in keys: - return False - - return True - -def connection_rules(dict, deploy): - return { - "to_module not present": - is_present(dict, "to_module"), - "encryption not present": - is_present(dict, "encryption"), - - "either direct=True or from_module + from_{output, request}": - has_value(dict, "direct", True) != (is_present(dict, "from_module") \ - and (is_present(dict, "from_output") != is_present(dict, "from_request"))), - - "either one between to_input and to_handler": - is_present(dict, "to_input") != is_present(dict, "to_handler"), - - "direct or from_output->to_input or from_request->to_handler": - has_value(dict, "direct", True) or (is_present(dict, "from_output") and is_present(dict, "to_input")) \ - or (is_present(dict, "from_request") and is_present(dict, "to_handler")), - - "key present ONLY after deployment": - (deploy and not is_present(dict, "key")) or (not deploy and is_present(dict, "key")), - - "nonce present ONLY after deployment": - (deploy and not is_present(dict, "nonce")) or (not deploy and is_present(dict, "nonce")), - - "id present ONLY after deployment": - (deploy and not is_present(dict, "id")) or (not deploy and is_present(dict, "id")), - - "name mandatory after deployment": - deploy or (not deploy and is_present(dict, "name")), - - "direct mandatory after deployment": - deploy or (not deploy and is_present(dict, "direct")), - - "from_module and to_module must be different": - dict.get("from_module") != dict["to_module"], - - "only authorized keys": - authorized_keys(dict, ["name", "from_module", "from_output", - "from_request", "to_module", "to_input", "to_handler", - "encryption", "key", "id", "direct", "nonce"]) - } +@dump.register(PeriodicEvent) +def _(event): + return event.dump() diff --git a/reactivetools/connection.py b/reactivetools/connection.py index a0b9a3e..54dadf8 100644 --- a/reactivetools/connection.py +++ b/reactivetools/connection.py @@ -2,7 +2,12 @@ import logging from enum import IntEnum +from .dumpers import * +from .loaders import * +from .rules.evaluators import * + from .crypto import Encryption +from . import tools class Error(Exception): pass @@ -39,10 +44,8 @@ async def get_index(self, module): return self.index class Connection: - cnt = 0 - def __init__(self, name, from_module, from_output, from_request, to_module, - to_input, to_handler, encryption, key, id, nonce, direct): + to_input, to_handler, encryption, key, id, nonce, direct, established): self.name = name self.from_module = from_module self.from_output = from_output @@ -54,6 +57,7 @@ def __init__(self, name, from_module, from_output, from_request, to_module, self.key = key self.id = id self.nonce = nonce + self.established = established if direct: self.direct = True @@ -66,12 +70,69 @@ def __init__(self, name, from_module, from_output, from_request, to_module, self.to_index = ConnectionIndex(ConnectionIO.INPUT, to_input) if to_input is not None \ else ConnectionIndex(ConnectionIO.HANDLER, to_handler) + + @staticmethod + def load(conn_dict, config): + direct = conn_dict.get('direct') + from_module = config.get_module(conn_dict['from_module']) if is_present(conn_dict, 'from_module') else None + from_output = conn_dict.get('from_output') + from_request = conn_dict.get('from_request') + to_module = config.get_module(conn_dict['to_module']) + to_input = conn_dict.get('to_input') + to_handler = conn_dict.get('to_handler') + encryption = Encryption.from_str(conn_dict['encryption']) + key = parse_key(conn_dict.get('key')) + nonce = conn_dict.get('nonce') + id = conn_dict.get('id') + established = conn_dict.get('established') + + if not established: + id = config.connections_current_id # incremental ID + config.connections_current_id += 1 + key = Connection.generate_key(from_module, to_module, encryption) # auto-generated key + nonce = 0 # only used for direct connections + + name = conn_dict.get('name') or "conn{}".format(id) + + if from_module is not None: + from_module.connections += 1 + to_module.connections += 1 + + return Connection(name, from_module, from_output, from_request, to_module, + to_input, to_handler, encryption, key, id, nonce, direct, established) + + + def dump(self): + from_module = None if self.direct else self.from_module.name + + return { + "name": self.name, + "from_module": from_module, + "from_output": self.from_output, + "from_request": self.from_request, + "to_module": self.to_module.name, + "to_input": self.to_input, + "to_handler": self.to_handler, + "encryption": self.encryption.to_str(), + "key": dump(self.key), + "id": self.id, + "direct": self.direct, + "nonce": self.nonce, + "established": self.established + } + + async def establish(self): + if self.established: + return + if self.direct: await self.__establish_direct() else: await self.__establish_normal() + self.established = True + async def __establish_normal(self): from_node, to_node = self.from_module.node, self.to_module.node @@ -102,7 +163,10 @@ async def __establish_direct(self): @staticmethod - def get_connection_id(): - id = Connection.cnt - Connection.cnt += 1 - return id + def generate_key(module1, module2, encryption): + if (module1 is not None and encryption not in module1.get_supported_encryption()) \ + or encryption not in module2.get_supported_encryption(): + raise Error('Encryption {} not supported between {} and {}'.format( + str(encryption), module1.name, module2.name)) + + return tools.generate_key(encryption.get_key_size()) diff --git a/reactivetools/crypto.py b/reactivetools/crypto.py index 63ea15a..db29daa 100644 --- a/reactivetools/crypto.py +++ b/reactivetools/crypto.py @@ -10,8 +10,8 @@ class Error(Exception): pass class Encryption(IntEnum): - AES = 0x0 - SPONGENT = 0x1 + AES = 0x0 # aes-gcm-128 + SPONGENT = 0x1 # spongent-128 @staticmethod def from_str(str): @@ -34,7 +34,7 @@ def get_key_size(self): if self == Encryption.AES: return 16 if self == Encryption.SPONGENT: - return tools.get_sancus_key_size() + return 16 async def encrypt(self, key, ad, data): if self == Encryption.AES: @@ -80,7 +80,7 @@ async def encrypt_spongent(key, ad, data=[]): try: import sancus.crypto except: - raise Error("Cannot import sancus.crypto! Maybe the Sancus toolchain is not installed, or python modules are not in PYTHONPATH") + raise Error("Sancus python libraries not found in PYTHONPATH") cipher, tag = sancus.crypto.wrap(key, ad, data) return cipher + tag @@ -91,10 +91,10 @@ async def decrypt_spongent(key, ad, data=[]): import sancus.crypto import sancus.config except: - raise Error("Cannot import sancus.crypto! Maybe the Sancus toolchain is not installed, or python modules are not in PYTHONPATH") + raise Error("Sancus python libraries not found in PYTHONPATH") # data should be formed like this: [cipher, tag] - tag_size = tools.get_sancus_key_size() + tag_size = sancus.config.SECURITY // 8 cipher = data[:-tag_size] tag = data[-tag_size:] diff --git a/reactivetools/descriptor.py b/reactivetools/descriptor.py new file mode 100644 index 0000000..2f84d41 --- /dev/null +++ b/reactivetools/descriptor.py @@ -0,0 +1,59 @@ +import json +import yaml +import os +from enum import IntEnum + + +class Error(Exception): + pass + + +class DescriptorType(IntEnum): + JSON = 0 + YAML = 1 + + @staticmethod + def from_str(type): + if type is None: + return None + + type_lower = type.lower() + + if type_lower == "json": + return DescriptorType.JSON + if type_lower == "yaml": + return DescriptorType.YAML + + raise Error("Bad deployment descriptor type: {}".format(type)) + + + @staticmethod + def load_any(file): + if not os.path.exists(file): + raise Error("Input file does not exist") + + try: + return DescriptorType.JSON.load(file), DescriptorType.JSON + except: + try: + return DescriptorType.YAML.load(file), DescriptorType.YAML + except: + raise Error("Input file is not a JSON, nor a YAML") + + + def load(self, file): + with open(file, 'r') as f: + if self == DescriptorType.JSON: + return json.load(f) + + if self == DescriptorType.YAML: + return yaml.load(f, Loader=yaml.FullLoader) + + + def dump(self, file, data): + with open(file, 'w') as f: + if self == DescriptorType.JSON: + json.dump(data, f, indent=4) + + if self == DescriptorType.YAML: + yaml.dump(data, f) diff --git a/reactivetools/dumpers.py b/reactivetools/dumpers.py new file mode 100644 index 0000000..943e006 --- /dev/null +++ b/reactivetools/dumpers.py @@ -0,0 +1,40 @@ +import asyncio +import functools +import types +import binascii + +@functools.singledispatch +def dump(obj): + assert False, 'No dumper for {}'.format(type(obj)) + + +@dump.register(list) +def _(l): + return [dump(e) for e in l] + + +@dump.register(bytes) +@dump.register(bytearray) +def _(bs): + return binascii.hexlify(bs).decode('ascii') + + +@dump.register(str) +@dump.register(int) +def _(x): + return x + + +@dump.register(tuple) +def _(t): + return { t[1] : t[0] } + + +@dump.register(types.CoroutineType) +def _(coro): + return dump(asyncio.get_event_loop().run_until_complete(coro)) + + +@dump.register(dict) +def _(dict): + return dict diff --git a/reactivetools/glob.py b/reactivetools/glob.py index a3eb11c..885ef44 100644 --- a/reactivetools/glob.py +++ b/reactivetools/glob.py @@ -1,17 +1,37 @@ -# build mode -BUILD_MODE = "debug" +from enum import IntEnum -# Apps -RA_SP = "ra_sp" -RA_CLIENT = "ra_client" +class Error(Exception): + pass -# SGX build/sign -SGX_TARGET = "x86_64-fortanix-unknown-sgx" +class BuildMode(IntEnum): + DEBUG = 0 + RELEASE = 1 -RELEASE_FLAG = "{}".format("" if BUILD_MODE == "debug" else "--release") -DEBUG_FLAG = "{}".format("--debug" if BUILD_MODE == "debug" else "") + @staticmethod + def from_str(mode): + mode_lower = mode.lower() -BUILD_APP = "cargo build {} {{}} --manifest-path={{}}/Cargo.toml".format(RELEASE_FLAG) -BUILD_SGX_APP = "{} --target={}".format(BUILD_APP, SGX_TARGET) -CONVERT_SGX = "ftxsgx-elf2sgxs {{}} --heap-size 0x20000 --stack-size 0x20000 --threads 4 {}".format(DEBUG_FLAG) -SIGN_SGX = "sgxs-sign --key {{}} {{}} {{}} {} --xfrm 7/0 --isvprodid 0 --isvsvn 0".format(DEBUG_FLAG) + if mode_lower == "debug": + return BuildMode.DEBUG + if mode_lower == "release": + return BuildMode.RELEASE + + raise Error("Bad BuildMode: {}".format(mode)) + + def to_str(self): + if self == BuildMode.DEBUG: + return "debug" + if self == BuildMode.RELEASE: + return "release" + + raise Error("BuildMode::to_str failed: this should never happen") + + +__BUILD_MODE = BuildMode.DEBUG + +def set_build_mode(mode): + global __BUILD_MODE + __BUILD_MODE = BuildMode.from_str(mode) + +def get_build_mode(): + return __BUILD_MODE diff --git a/reactivetools/loaders.py b/reactivetools/loaders.py new file mode 100644 index 0000000..5907845 --- /dev/null +++ b/reactivetools/loaders.py @@ -0,0 +1,28 @@ +import binascii +import os + +from . import tools + +class Error(Exception): + pass + + +def load_list(l, load_func=lambda e: e): + if l is None: + return [] + else: + return [load_func(e) for e in l] + + +def parse_key(key_str): + if key_str is None: + return None + + return binascii.unhexlify(key_str) + + +def parse_file_name(file_name): + if file_name is None: + return None + + return os.path.abspath(file_name) diff --git a/reactivetools/modules/__init__.py b/reactivetools/modules/__init__.py index b8ee51d..9c71280 100644 --- a/reactivetools/modules/__init__.py +++ b/reactivetools/modules/__init__.py @@ -1,4 +1,22 @@ +from .base import Module from .sancus import SancusModule from .native import NativeModule from .sgx import SGXModule -from .base import Module + +module_rules = { + "sancus" : "sancus.yaml", + "sgx" : "sgx.yaml", + "native" : "native.yaml" +} + +module_funcs = { + "sancus" : SancusModule.load, + "sgx" : SGXModule.load, + "native" : NativeModule.load +} + +module_cleanup_coros = [ + SancusModule.cleanup, + SGXModule.cleanup, + NativeModule.cleanup +] diff --git a/reactivetools/modules/base.py b/reactivetools/modules/base.py index 405f01b..ece963a 100644 --- a/reactivetools/modules/base.py +++ b/reactivetools/modules/base.py @@ -1,57 +1,287 @@ from abc import ABC, abstractmethod +class Error(Exception): + pass + class Module(ABC): - def __init__(self, name, node, priority, deployed): + def __init__(self, name, node, priority, deployed, nonce): + """ + Generic attributes common to all Module subclasses + + Priority, deployed and nonce are used internally by the application + + ### Attributes ### + name (str): name of the module + node (XXXNode): *instance* of the Node class where the module belongs + priority (int): priority of the module. For ordered deployment (can be None) + deployed (bool): that indicates if the module has been deployed (can be None) + nonce (int): nonce used in set_key to ensure freshness (can be None) + """ self.name = name self.node = node self.priority = priority self.deployed = deployed + self.nonce = 0 if nonce is None else nonce + self.connections = 0 + """ + ### Description ### + Creates a XXXModule object from a dict + This should take all the information declared in the deployment descriptor + and store it into the class as attributes. + + ### Parameters ### + mod_dict (dict): dictionary containing the definition of the module + node_obj (XXXNode): object where the module belongs to + + ### Returns ### + An instance of the XXXModule class + """ + @staticmethod @abstractmethod - async def build(self): + def load(mod_dict, node_obj): pass + + """ + ### Description ### + Creates a dict from the XXXModule object (opposite procedure wrt. load) + This dict, saved in the output deployment descriptor, and serves two purposes: + 1) to provide the deployer some information (e.g., keys used) + 2) to give it as an input of subsequent runs of the application + Hence, ideally load() and dump() should involve the same attributes + + ### Parameters ### + self: Module object + + ### Returns ### + `dict`: description of the object + """ @abstractmethod - async def deploy(self): + def dump(self): pass + + """ + ### Description ### + Coroutine. Create the binary file from sources + + ### Parameters ### + self: Module object + + ### Returns ### + `str`: path of the created binary file + """ @abstractmethod - async def call(self, entry, arg=None): + async def build(self): + pass + + + """ + ### Description ### + Coroutine. Deploy a module to the corrisponding node + + Note: this coroutine should call the `deploy` coroutine in self.node, + making sure that it can happen only once (e.g., using a flag) + + ### Parameters ### + self: Module object + + ### Returns ### + """ + @abstractmethod + async def deploy(self): pass + + """ + ### Description ### + Coroutine. Get the ID of the module + + The ID can be assigned in different ways, depending on the architecture. + Should be unique on the node where the module is deployed. + + ### Parameters ### + self: Module object + + ### Returns ### + `int`: ID of the module + """ @abstractmethod async def get_id(self): pass + + """ + ### Description ### + Coroutine. Get the ID of the input passed as parameter + + This method should raise an error if the input does not exist + + ### Parameters ### + self: Module object + input (str): name of the input + + ### Returns ### + `int`: ID of the input + """ @abstractmethod async def get_input_id(self, input): pass + + """ + ### Description ### + Coroutine. Get the ID of the output passed as parameter + + This method should raise an error if the output does not exist + + ### Parameters ### + self: Module object + output (str): name of the output + + ### Returns ### + `int`: ID of the output + """ @abstractmethod async def get_output_id(self, output): pass + + """ + ### Description ### + Coroutine. Get the ID of the entry point passed as parameter + + This method should raise an error if the entry point does not exist + + ### Parameters ### + self: Module object + entry (str): name of the entry point + + ### Returns ### + `int`: ID of the entry point + """ @abstractmethod async def get_entry_id(self, entry): pass - @abstractmethod - async def get_request_id(self, request): - pass - @abstractmethod - async def get_handler_id(self, handler): - pass + """ + ### Description ### + Coroutine. Get the module's key + + ### Parameters ### + self: Module object + ### Returns ### + `bytes`: byte array of the key + """ @abstractmethod async def get_key(self): pass + + """ + ### Description ### + Static method. Get a list of node classes where the module can be deployed + + e.g., SancusModule -> [SancusNode] + + ### Parameters ### + + ### Returns ### + `list`: list of node classes that are supported by the XXXModule instance + """ + @staticmethod @abstractmethod - def get_supported_node_type(): + def get_supported_nodes(): pass + + """ + ### Description ### + Static method. Get a list of crypto libraries supported by the module + The Encryption enum is defined in crypto.py + + e.g., SGXModule -> [Encryption.SPONGENT, Encryption.AES] + + ### Parameters ### + + ### Returns ### + `list`: list of Encryption objects + """ + @staticmethod @abstractmethod def get_supported_encryption(): pass + + + """ + Default implementation of some functions. + Override them in the subclasses if you need a different implementation. + """ + + + """ + ### Description ### + Static coroutine. Cleanup operations to do before the application terminates + + ### Parameters ### + + ### Returns ### + """ + @staticmethod + async def cleanup(): + pass + + + """ + ### Description ### + Coroutine. Call an entrypoint of the module + + ### Parameters ### + self: Module object + entry (str): name of the entry point to call + arg (bytes): argument to pass as a byte array (can be None) + + ### Returns ### + """ + async def call(self, entry, arg=None): + await self.node.call(self, entry, arg) + + + """ + ### Description ### + Coroutine. Get the ID of the request passed as parameter + + This method should raise an error if the request does not exist + + ### Parameters ### + self: Module object + request (str): name of the request + + ### Returns ### + `int`: ID of the request + """ + async def get_request_id(self, request): + raise Error("Request/handler messages not supported for {}".format( + self.__class__.name)) + + + """ + ### Description ### + Coroutine. Get the ID of the handler passed as parameter + + This method should raise an error if the handler does not exist + + ### Parameters ### + self: Module object + handler (str): name of the handler + + ### Returns ### + `int`: ID of the handler + """ + async def get_handler_id(self, handler): + raise Error("Request/handler messages not supported for {}".format( + self.__class__.name)) diff --git a/reactivetools/modules/native.py b/reactivetools/modules/native.py index 77e3bbb..06f53bf 100644 --- a/reactivetools/modules/native.py +++ b/reactivetools/modules/native.py @@ -8,6 +8,10 @@ from .. import tools from .. import glob from ..crypto import Encryption +from ..dumpers import * +from ..loaders import * + +BUILD_APP = "cargo build {} {} --manifest-path={}/Cargo.toml" class Object(): pass @@ -17,11 +21,9 @@ class Error(Exception): class NativeModule(Module): - def __init__(self, name, node, priority, deployed, features, id=None, binary=None, - key=None, data=None): - super().__init__(name, node, priority, deployed) - - self.__check_init_args(node, id, binary, key, data) + def __init__(self, name, node, priority, deployed, nonce, features, + id, binary, key, data, folder): + super().__init__(name, node, priority, deployed, nonce) self.__deploy_fut = tools.init_future(id) # not completely true self.__generate_fut = tools.init_future(data, key) @@ -30,7 +32,42 @@ def __init__(self, name, node, priority, deployed, features, id=None, binary=Non self.features = [] if features is None else features self.id = id if id is not None else node.get_module_id() self.port = self.node.reactive_port + self.id - self.output = "build/{}".format(name) + self.output = os.path.join(os.getcwd(), "build", name) + self.folder = folder + + + @staticmethod + def load(mod_dict, node_obj): + name = mod_dict['name'] + node = node_obj + priority = mod_dict.get('priority') + deployed = mod_dict.get('deployed') + nonce = mod_dict.get('nonce') + features = mod_dict.get('features') + id = mod_dict.get('id') + binary = parse_file_name(mod_dict.get('binary')) + key = parse_key(mod_dict.get('key')) + data = mod_dict.get('data') + folder = mod_dict.get('folder') or name + + return NativeModule(name, node, priority, deployed, nonce, features, + id, binary, key, data, folder) + + def dump(self): + return { + "type": "native", + "name": self.name, + "node": self.node.name, + "priority": self.priority, + "deployed": self.deployed, + "nonce": self.nonce, + "features": self.features, + "id": self.id, + "binary": dump(self.binary), + "key": dump(self.key), + "data": dump(self.data), + "folder": self.folder + } # --- Properties --- # @@ -95,10 +132,6 @@ async def deploy(self): await self.__deploy_fut - async def call(self, entry, arg=None): - return await self.node.call(self, entry, arg) - - async def get_id(self): return self.id @@ -168,8 +201,8 @@ async def get_key(self): @staticmethod - def get_supported_node_type(): - return NativeNode + def get_supported_nodes(): + return [NativeNode] @staticmethod @@ -181,21 +214,6 @@ def get_supported_encryption(): # --- Others --- # - def __check_init_args(self, node, id, binary, key, data): - if not isinstance(node, self.get_supported_node_type()): - clsname = lambda o: type(o).__name__ - raise Error('A {} cannot run on a {}' - .format(clsname(self), clsname(node))) - - # For now, either all optionals should be given or none. This might be - # relaxed later if necessary. - optionals = (id, binary, key, data) - - if None in optionals and any(map(lambda x: x is not None, optionals)): - raise Error('Either all of the optional node parameters ' - 'should be given or none') - - async def generate_code(self): if self.__generate_fut is None: self.__generate_fut = asyncio.ensure_future(self.__generate_code()) @@ -211,7 +229,7 @@ async def __generate_code(self): args = Object() - args.input = self.name + args.input = self.folder args.output = self.output args.moduleid = self.id args.emport = self.node.deploy_port @@ -228,14 +246,14 @@ async def __generate_code(self): async def __build(self): await self.generate_code() - features = "" - if self.features: - features = "--features " + " ".join(self.features) + release = "--release" if glob.get_build_mode() == glob.BuildMode.RELEASE else "" + features = "--features " + " ".join(self.features) if self.features else "" - cmd = glob.BUILD_APP.format(features, self.output).split() + cmd = BUILD_APP.format(release, features, self.output).split() await tools.run_async(*cmd) - binary = "{}/target/{}/{}".format(self.output, glob.BUILD_MODE, self.name) + binary = os.path.join(self.output, + "target", glob.get_build_mode().to_str(), self.folder) logging.info("Built module {}".format(self.name)) return binary diff --git a/reactivetools/modules/sancus.py b/reactivetools/modules/sancus.py index edbf531..2fdebb3 100644 --- a/reactivetools/modules/sancus.py +++ b/reactivetools/modules/sancus.py @@ -10,18 +10,17 @@ from ..nodes import SancusNode from .. import tools from ..crypto import Encryption - +from ..dumpers import * +from ..loaders import * class Error(Exception): pass class SancusModule(Module): - def __init__(self, name, node, priority, deployed, files, cflags, ldflags, - binary=None, id=None, symtab=None, key=None): - super().__init__(name, node, priority, deployed) - - self.__check_init_args(node, binary, id, symtab, key) + def __init__(self, name, node, priority, deployed, nonce, files, cflags, + ldflags, binary, id, symtab, key): + super().__init__(name, node, priority, deployed, nonce) self.files = files self.cflags = cflags @@ -32,6 +31,44 @@ def __init__(self, name, node, priority, deployed, files, cflags, ldflags, self.__key_fut = tools.init_future(key) + @staticmethod + def load(mod_dict, node_obj): + name = mod_dict['name'] + node = node_obj + priority = mod_dict.get('priority') + deployed = mod_dict.get('deployed') + nonce = mod_dict.get('nonce') + files = load_list(mod_dict['files'], + lambda f: parse_file_name(f)) + cflags = load_list(mod_dict.get('cflags')) + ldflags = load_list(mod_dict.get('ldflags')) + binary = parse_file_name(mod_dict.get('binary')) + id = mod_dict.get('id') + symtab = parse_file_name(mod_dict.get('symtab')) + key = parse_key(mod_dict.get('key')) + + return SancusModule(name, node, priority, deployed, nonce, files, cflags, + ldflags, binary, id, symtab, key) + + + def dump(self): + return { + "type": "sancus", + "name": self.name, + "node": self.node.name, + "priority": self.priority, + "deployed": self.deployed, + "nonce": self.nonce, + "files": dump(self.files), + "cflags": dump(self.cflags), + "ldflags": dump(self.ldflags), + "binary": dump(self.binary), + "id": dump(self.id), + "symtab": dump(self.symtab), + "key": dump(self.key) + } + + # --- Properties --- # @property @@ -72,10 +109,6 @@ async def deploy(self): return await self.__deploy_fut - async def call(self, entry, arg=None): - return await self.node.call(self, entry, arg) - - async def get_id(self): return await self.id @@ -96,21 +129,13 @@ async def get_entry_id(self, entry): return await self._get_entry_id(entry) - async def get_request_id(self, request): - raise Error("Requests not supported in Sancus") - - - async def get_handler_id(self, handler): - raise Error("Handlers not supported in Sancus") - - async def get_key(self): return await self.key @staticmethod - def get_supported_node_type(): - return SancusNode + def get_supported_nodes(): + return [SancusNode] @staticmethod @@ -146,21 +171,6 @@ async def get_io_id(self, io): return await self._get_io_id(io) - def __check_init_args(self, node, binary, id, symtab, key): - if not isinstance(node, self.get_supported_node_type()): - clsname = lambda o: type(o).__name__ - raise Error('A {} cannot run on a {}' - .format(clsname(self), clsname(node))) - - # For now, either all optionals should be given or none. This might be - # relaxed later if necessary. - optionals = (binary, id, symtab, key) - - if None in optionals and any(map(lambda x: x is not None, optionals)): - raise Error('Either all of the optional node parameters ' - 'should be given or none') - - async def __build(self): logging.info('Building module %s from %s', self.name, ', '.join(map(str, self.files))) @@ -191,7 +201,7 @@ async def _calculate_key(self): try: import sancus.crypto except: - raise Error("Cannot import sancus.crypto! Maybe the Sancus toolchain is not installed, or python modules are not in PYTHONPATH") + raise Error("Sancus python libraries not found in PYTHONPATH") linked_binary = await self.__link() diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index cebc45f..8e2472e 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -9,6 +9,19 @@ from .. import tools from .. import glob from ..crypto import Encryption +from ..dumpers import * +from ..loaders import * + +# Apps +RA_SP = "ra_sp" +RA_CLIENT = "ra_client" + +# SGX build/sign +SGX_TARGET = "x86_64-fortanix-unknown-sgx" +BUILD_APP = "cargo build {{}} {{}} --target={} --manifest-path={{}}/Cargo.toml".format( SGX_TARGET) +CONVERT_SGX = "ftxsgx-elf2sgxs {} --heap-size 0x20000 --stack-size 0x20000 --threads 4 {}" +SIGN_SGX = "sgxs-sign --key {} {} {} {} --xfrm 7/0 --isvprodid 0 --isvsvn 0" + class Object(): pass @@ -20,8 +33,8 @@ class Error(Exception): async def _generate_sp_keys(): dir = tools.create_tmp_dir() - priv = "{}/private_key.pem".format(dir) - pub = "{}/public_key.pem".format(dir) + priv = os.path.join(dir, "private_key.pem") + pub = os.path.join(dir, "public_key.pem") cmd = "ssh-keygen" args_private = "-t rsa -f {} -b 2048 -N ''".format(priv).split() @@ -36,25 +49,23 @@ async def _generate_sp_keys(): async def _run_ra_sp(): # kill old ra_sp (if running) try: - await tools.run_async("pkill", "-f", glob.RA_SP) + await tools.run_async("pkill", "-f", RA_SP) except: pass arg = await SGXModule._get_ra_sp_priv_key() - return await tools.run_async_background(glob.RA_SP, arg) + return await tools.run_async_background(RA_SP, arg) class SGXModule(Module): _sp_keys_fut = asyncio.ensure_future(_generate_sp_keys()) _ra_sp_fut = asyncio.ensure_future(_run_ra_sp()) - def __init__(self, name, node, priority, deployed, vendor_key, ra_settings, - features, id=None, binary=None, key=None, sgxs=None, - signature=None, data=None): - super().__init__(name, node, priority, deployed) - - self.__check_init_args(node, id, binary, key, sgxs, signature, data) + def __init__(self, name, node, priority, deployed, nonce, vendor_key, + ra_settings, features, id, binary, key, sgxs, signature, data, + folder): + super().__init__(name, node, priority, deployed, nonce) self.__deploy_fut = tools.init_future(id) # not completely true self.__generate_fut = tools.init_future(data) @@ -67,9 +78,51 @@ def __init__(self, name, node, priority, deployed, vendor_key, ra_settings, self.features = [] if features is None else features self.id = id if id is not None else node.get_module_id() self.port = self.node.reactive_port + self.id - self.output = "build/{}".format(name) + self.output = os.path.join(os.getcwd(), "build", name) + self.folder = folder + @staticmethod + def load(mod_dict, node_obj): + name = mod_dict['name'] + node = node_obj + priority = mod_dict.get('priority') + deployed = mod_dict.get('deployed') + nonce = mod_dict.get('nonce') + vendor_key = parse_file_name(mod_dict['vendor_key']) + settings = parse_file_name(mod_dict['ra_settings']) + features = mod_dict.get('features') + id = mod_dict.get('id') + binary = parse_file_name(mod_dict.get('binary')) + key = parse_key(mod_dict.get('key')) + sgxs = parse_file_name(mod_dict.get('sgxs')) + signature = parse_file_name(mod_dict.get('signature')) + data = mod_dict.get('data') + folder = mod_dict.get('folder') or name + + return SGXModule(name, node, priority, deployed, nonce, vendor_key, + settings, features, id, binary, key, sgxs, signature, data, folder) + + def dump(self): + return { + "type": "sgx", + "name": self.name, + "node": self.node.name, + "priority": self.priority, + "deployed": self.deployed, + "nonce": self.nonce, + "vendor_key": self.vendor_key, + "ra_settings": self.ra_settings, + "features": self.features, + "id": self.id, + "binary": dump(self.binary), + "sgxs": dump(self.sgxs), + "signature": dump(self.sig), + "key": dump(self.key), + "data": dump(self.data), + "folder": self.folder + } + # --- Properties --- # @property @@ -148,10 +201,6 @@ async def build(self): return await self.__build_fut - async def call(self, entry, arg=None): - return await self.node.call(self, entry, arg) - - async def deploy(self): if self.__deploy_fut is None: self.__deploy_fut = asyncio.ensure_future(self.node.deploy(self)) @@ -228,8 +277,8 @@ async def get_key(self): @staticmethod - def get_supported_node_type(): - return SGXNode + def get_supported_nodes(): + return [SGXNode] @staticmethod @@ -254,7 +303,7 @@ async def _get_ra_sp_priv_key(): @staticmethod - async def kill_ra_sp(): + async def cleanup(): try: process = await SGXModule._ra_sp_fut process.kill() @@ -265,21 +314,6 @@ async def kill_ra_sp(): # --- Others --- # - def __check_init_args(self, node, id, binary, key, sgxs, signature, data): - if not isinstance(node, self.get_supported_node_type()): - clsname = lambda o: type(o).__name__ - raise Error('A {} cannot run on a {}' - .format(clsname(self), clsname(node))) - - # For now, either all optionals should be given or none. This might be - # relaxed later if necessary. - optionals = (id, binary, key, sgxs, signature, data) - - if None in optionals and any(map(lambda x: x is not None, optionals)): - raise Error('Either all of the optional node parameters ' - 'should be given or none') - - async def generate_code(self): if self.__generate_fut is None: self.__generate_fut = asyncio.ensure_future(self.__generate_code()) @@ -295,7 +329,7 @@ async def __generate_code(self): args = Object() - args.input = self.name + args.input = self.folder args.output = self.output args.moduleid = self.id args.emport = self.node.deploy_port @@ -312,14 +346,14 @@ async def __generate_code(self): async def __build(self): await self.generate_code() - features = "" - if self.features: - features = "--features " + " ".join(self.features) + release = "--release" if glob.get_build_mode() == glob.BuildMode.RELEASE else "" + features = "--features " + " ".join(self.features) if self.features else "" - cmd = glob.BUILD_SGX_APP.format(features, self.output).split() + cmd = BUILD_APP.format(release, features, self.output).split() await tools.run_async(*cmd) - binary = "{}/target/{}/{}/{}".format(self.output, glob.SGX_TARGET, glob.BUILD_MODE, self.name) + binary = os.path.join(self.output, "target", SGX_TARGET, + glob.get_build_mode().to_str(), self.folder) logging.info("Built module {}".format(self.name)) @@ -328,12 +362,13 @@ async def __build(self): async def __convert_sign(self): binary = await self.binary + debug = "--debug" if glob.get_build_mode() == glob.BuildMode.DEBUG else "" sgxs = "{}.sgxs".format(binary) sig = "{}.sig".format(binary) - cmd_convert = glob.CONVERT_SGX.format(binary).split() - cmd_sign = glob.SIGN_SGX.format(self.vendor_key, sgxs, sig).split() + cmd_convert = CONVERT_SGX.format(binary, debug).split() + cmd_sign = SIGN_SGX.format(self.vendor_key, sgxs, sig, debug).split() await tools.run_async(*cmd_convert) await tools.run_async(*cmd_sign) @@ -347,10 +382,8 @@ async def __remote_attestation(self): await self.deploy() await self._ra_sp_fut - settings_abs = os.path.abspath(self.ra_settings) - - args = [str(self.node.ip_address), str(self.port), settings_abs, await self.sig] - key = await tools.run_async_output(glob.RA_CLIENT, *args) + args = [str(self.node.ip_address), str(self.port), self.ra_settings, await self.sig] + key = await tools.run_async_output(RA_CLIENT, *args) logging.info("Done Remote Attestation of {}".format(self.name)) diff --git a/reactivetools/nodes/__init__.py b/reactivetools/nodes/__init__.py index 2ec0873..1c4d04d 100644 --- a/reactivetools/nodes/__init__.py +++ b/reactivetools/nodes/__init__.py @@ -1,3 +1,22 @@ +from .base import Node from .sancus import SancusNode from .native import NativeNode from .sgx import SGXNode + +node_rules = { + "sancus" : "sancus.yaml", + "sgx" : "sgx.yaml", + "native" : "native.yaml" +} + +node_funcs = { + "sancus" : SancusNode.load, + "sgx" : SGXNode.load, + "native" : NativeNode.load +} + +node_cleanup_coros = [ + SancusNode.cleanup, + SGXNode.cleanup, + NativeNode.cleanup +] diff --git a/reactivetools/nodes/base.py b/reactivetools/nodes/base.py index c38e558..3c31703 100644 --- a/reactivetools/nodes/base.py +++ b/reactivetools/nodes/base.py @@ -1,5 +1,4 @@ import asyncio -import collections import logging import binascii @@ -15,30 +14,148 @@ class Error(Exception): class Node(ABC): def __init__(self, name, ip_address, reactive_port, deploy_port, need_lock=False): + """ + Generic attributes common to all Node subclasses + + ### Attributes ### + name (str): name of the module + ip_address (ip_address): IP of the node + reactive_port (int): port where the event manager listens for events + deploy_port (int): port where the event manager listens for new modules + need_lock (bool): a bool indicating if the events need to be + delivered one at a time due to some limitations on the EM + """ + self.name = name self.ip_address = ip_address self.reactive_port = reactive_port self.deploy_port = deploy_port - self.__nonces = collections.Counter() - if need_lock: self.__lock = asyncio.Lock() else: self.__lock = None + + + """ + ### Description ### + Creates a XXXNode object from a dict + This should take all the information declared in the deployment descriptor + and store it into the class as attributes. + + ### Parameters ### + node_dict (dict): dictionary containing the definition of the node + + ### Returns ### + An instance of the XXXNode class + """ + @staticmethod + @abstractmethod + def load(node_dict): + pass + + + """ + ### Description ### + Creates a dict from the XXXNode object (opposite procedure wrt. load) + This dict, saved in the output deployment descriptor, and serves two purposes: + 1) to provide the deployer some information (e.g., keys used) + 2) to give it as an input of subsequent runs of the application + Hence, ideally load() and dump() should involve the same attributes + + ### Parameters ### + self: Node object + + ### Returns ### + `dict`: description of the object + """ + @abstractmethod + def dump(self): + pass + + + """ + ### Description ### + Coroutine. Deploy a module to the node + + How this is done depends on the architecture, in general the binary of the + module must be sent to the Event Manager with a special event on the deploy_port + + *NOTE*: this coroutine should check if module has already been deployed + (doing nothing if this is the case), and set module.deployed to True + after deployment + + ### Parameters ### + self: Node object + module (XXXModule): module object to deploy + + ### Returns ### + """ @abstractmethod async def deploy(self, module): pass + + """ + ### Description ### + Coroutine. Sets the key of a specific connection + + How this is done depends on the architecture, in general the key and other args + must be sent to the Event Manager with a special event on the reactive_port + + conn_io indicates which input/output/request/handler is involved in the connection + encryption indicates which crypto library is used in this connection + + *NOTE*: this coroutine should use module.nonce as part of associated data + and increment it if everything went well + + ### Parameters ### + self: Node object + module (XXXModule): module where the key is being set + conn_id (int): ID of the connection + conn_io (ConnectionIO): object of the ConnectionIO class (see connection.py) + encryption (Encryption): object of the Encryption class (see crypto.py) + key (bytes): connection key + + ### Returns ### + """ @abstractmethod - async def set_key(self, module, conn_id, io_name, encryption, key, conn_io): + async def set_key(self, module, conn_id, conn_io, encryption, key): pass - # Default implementation of the following functions. If a specific architecture - # needs a different implementation, do it in the subclass (e.g., SancusNode) + """ + Default implementation of some functions. + Override them in the subclasses if you need a different implementation. + """ + + """ + ### Description ### + Static coroutine. Cleanup operations to do before the application terminates + + ### Parameters ### + + ### Returns ### + """ + @staticmethod + async def cleanup(): + pass + + + """ + ### Description ### + Coroutine. Inform the EM of the source module that a new connection has + been established, so that events can be correctly forwared to the recipient + + ### Parameters ### + self: Node object + to_module (XXXModule): destination module + conn_id (int): ID of the connection + + ### Returns ### + """ async def connect(self, to_module, conn_id): module_id = await to_module.get_id() @@ -57,8 +174,22 @@ async def connect(self, to_module, conn_id): log='Connecting id {} to {}'.format(conn_id, to_module.name)) + + """ + ### Description ### + Coroutine. Call the entry point of a module + + ### Parameters ### + self: Node object + to_module (XXXModule): target module + entry (str): name of the entry point to call + arg (bytes): argument to pass as a byte array (can be None) + + ### Returns ### + """ async def call(self, module, entry, arg=None): assert module.node is self + module_id, entry_id = \ await asyncio.gather(module.get_id(), module.get_entry_id(entry)) @@ -84,6 +215,17 @@ async def call(self, module, entry, arg=None): binascii.hexlify(response.message.payload).decode('ascii'))) + """ + ### Description ### + Coroutine. Trigger the 'output' event of a direct connection + + ### Parameters ### + self: Node object + connection (Connection): connection object + arg (bytes): argument to pass as a byte array (can be None) + + ### Returns ### + """ async def output(self, connection, arg=None): assert connection.to_module.node is self @@ -113,6 +255,17 @@ async def output(self, connection, arg=None): ) + """ + ### Description ### + Coroutine. Trigger the 'request' event of a direct connection + + ### Parameters ### + self: Node object + connection (Connection): connection object + arg (bytes): argument to pass as a byte array (can be None) + + ### Returns ### + """ async def request(self, connection, arg=None): assert connection.to_module.node is self @@ -153,6 +306,19 @@ async def request(self, connection, arg=None): binascii.hexlify(plaintext).decode('ascii'))) + + """ + ### Description ### + Coroutine. Register an entry point for periodic tasks + + ### Parameters ### + self: Node object + module (XXXModule): target module + entry (str): entry point to call + frequency (int): desired frequency of which the entry point will be called + + ### Returns ### + """ async def register_entrypoint(self, module, entry, frequency): assert module.node is self module_id, entry_id = \ @@ -174,6 +340,17 @@ async def register_entrypoint(self, module, entry, frequency): ) + """ + ### Description ### + Coroutine. Wrapper to __send_reactive_command (see below) + + ### Parameters ### + self: Node object + command (ReactiveCommand): command to send to the node + log (str): optional text message printed to stdout (can be None) + + ### Returns ### + """ async def _send_reactive_command(self, command, log=None): if self.__lock is not None: async with self.__lock: @@ -182,6 +359,19 @@ async def _send_reactive_command(self, command, log=None): return await self.__send_reactive_command(command, log) + + """ + ### Description ### + Static coroutine. Helper function used to send a ReactiveCommand message to the node + + ReactiveCommand: defined in reactivenet: https://github.com/gianlu33/reactive-net + + ### Parameters ### + command (ReactiveCommand): command to send to the node + log (str): optional text message printed to stdout (can be None) + + ### Returns ### + """ @staticmethod async def __send_reactive_command(command, log): if log is not None: @@ -197,9 +387,3 @@ async def __send_reactive_command(command, log): else: await command.send() return None - - - def _get_nonce(self, module): - nonce = self.__nonces[module] - self.__nonces[module] += 1 - return nonce diff --git a/reactivetools/nodes/native.py b/reactivetools/nodes/native.py index 29747f6..77000b6 100644 --- a/reactivetools/nodes/native.py +++ b/reactivetools/nodes/native.py @@ -1,15 +1,31 @@ import asyncio import aiofile +import ipaddress from reactivenet import CommandMessageLoad from .sgx import SGXBase from .. import tools - +from ..dumpers import * +from ..loaders import * class NativeNode(SGXBase): + type = "native" + + @staticmethod + def load(node_dict): + name = node_dict['name'] + ip_address = ipaddress.ip_address(node_dict['ip_address']) + reactive_port = node_dict['reactive_port'] + deploy_port = node_dict.get('deploy_port', reactive_port) + module_id = node_dict.get('module_id') + + return NativeNode(name, ip_address, reactive_port, deploy_port, + module_id) + + async def deploy(self, module): - if module.deployed is not None: + if module.deployed: return async with aiofile.AIOFile(await module.binary, "rb") as f: @@ -26,3 +42,5 @@ async def deploy(self, module): command, log='Deploying {} on {}'.format(module.name, self.name) ) + + module.deployed = True diff --git a/reactivetools/nodes/sancus.py b/reactivetools/nodes/sancus.py index 91d6435..d64757d 100644 --- a/reactivetools/nodes/sancus.py +++ b/reactivetools/nodes/sancus.py @@ -2,13 +2,15 @@ import logging import binascii import aiofile +import ipaddress from enum import IntEnum from reactivenet import * from .base import Node from .. import tools - +from ..dumpers import * +from ..loaders import * class Error(Exception): pass @@ -30,10 +32,35 @@ def __init__(self, name, vendor_id, vendor_key, self.vendor_key = vendor_key + @staticmethod + def load(node_dict): + name = node_dict['name'] + vendor_id = node_dict['vendor_id'] + vendor_key = parse_key(node_dict['vendor_key']) + ip_address = ipaddress.ip_address(node_dict['ip_address']) + reactive_port = node_dict['reactive_port'] + deploy_port = node_dict.get('deploy_port', reactive_port) + + return SancusNode(name, vendor_id, vendor_key, + ip_address, reactive_port, deploy_port) + + + def dump(self): + return { + "type": "sancus", + "name": self.name, + "ip_address": str(self.ip_address), + "vendor_id": self.vendor_id, + "vendor_key": dump(self.vendor_key), + "reactive_port": self.reactive_port, + "deploy_port": self.deploy_port + } + + async def deploy(self, module): assert module.node is self - if module.deployed is not None: + if module.deployed: return async with aiofile.AIOFile(await module.binary, "rb") as f: @@ -68,6 +95,7 @@ async def deploy(self, module): with open(symtab_file, "wb") as f: f.write(symtab[:-1]) # Drop last 0 byte + module.deployed = True return sm_id, symtab_file @@ -78,11 +106,13 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): module_id, module_key, io_id = await asyncio.gather( module.id, module.key, conn_io.get_index(module)) - nonce = tools.pack_int16(self._get_nonce(module)) + nonce = tools.pack_int16(module.nonce) io_id = tools.pack_int16(io_id) conn_id_packed = tools.pack_int16(conn_id) ad = conn_id_packed + io_id + nonce + module.nonce += 1 + cipher = await encryption.SPONGENT.encrypt(module_key, ad, key) # The payload format is [sm_id, entry_id, 16 bit nonce, index, wrapped(key), tag] diff --git a/reactivetools/nodes/sgx.py b/reactivetools/nodes/sgx.py index b42e8a6..814ae44 100644 --- a/reactivetools/nodes/sgx.py +++ b/reactivetools/nodes/sgx.py @@ -3,6 +3,7 @@ import logging from abc import ABC, abstractmethod import binascii +import ipaddress from reactivenet import * @@ -11,15 +12,28 @@ from .. import glob from .. import tools from ..crypto import Encryption +from ..dumpers import * +from ..loaders import * class Error(Exception): pass class SGXBase(Node): - def __init__(self, name, ip_address, reactive_port, deploy_port): + def __init__(self, name, ip_address, reactive_port, deploy_port, module_id): super().__init__(name, ip_address, reactive_port, deploy_port) - self.__moduleid = 1 + self.__moduleid = module_id if module_id else 1 + + + def dump(self): + return { + "type": self.type, + "name": self.name, + "ip_address": str(self.ip_address), + "reactive_port": self.reactive_port, + "deploy_port": self.deploy_port, + "module_id": self.__moduleid + } @abstractmethod @@ -33,7 +47,8 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): await module.deploy() io_id = await conn_io.get_index(module) - nonce = self._get_nonce(module) + nonce = module.nonce + module.nonce += 1 ad = tools.pack_int8(encryption) + \ tools.pack_int16(conn_id) + \ @@ -68,8 +83,22 @@ def get_module_id(self): class SGXNode(SGXBase): + type = "sgx" + + @staticmethod + def load(node_dict): + name = node_dict['name'] + ip_address = ipaddress.ip_address(node_dict['ip_address']) + reactive_port = node_dict['reactive_port'] + deploy_port = node_dict.get('deploy_port', reactive_port) + module_id = node_dict.get('module_id') + + return SGXNode(name, ip_address, reactive_port, deploy_port, + module_id) + + async def deploy(self, module): - if module.deployed is not None: + if module.deployed: return async with aiofile.AIOFile(await module.sgxs, "rb") as f: @@ -92,3 +121,5 @@ async def deploy(self, module): command, log='Deploying {} on {}'.format(module.name, self.name) ) + + module.deployed = True diff --git a/reactivetools/periodic_event.py b/reactivetools/periodic_event.py index b28dca4..5407c13 100644 --- a/reactivetools/periodic_event.py +++ b/reactivetools/periodic_event.py @@ -1,12 +1,42 @@ -from collections import namedtuple import asyncio import logging -class PeriodicEvent(namedtuple('PeriodicEvent', ['module', 'entry', 'frequency'])): +class PeriodicEvent: + def __init__(self, module, entry, frequency, established): + self.module = module + self.entry = entry + self.frequency = frequency + self.established = established + + + @staticmethod + def load(events_dict, config): + module = config.get_module(events_dict['module']) + entry = events_dict['entry'] + frequency = events_dict['frequency'] + established = events_dict.get('established') + + return PeriodicEvent(module, entry, frequency, established) + + + def dump(self): + return { + "module": self.module.name, + "entry": self.entry, + "frequency": self.frequency, + "established": self.established + } + + async def register(self): + if self.established: + return + node = self.module.node await node.register_entrypoint(self.module, self.entry, self.frequency) logging.info('Registered %s:%s on %s every %d ms', self.module.name, self.entry, node.name, self.frequency) + + self.established = True diff --git a/reactivetools/rules/__init__.py b/reactivetools/rules/__init__.py new file mode 100644 index 0000000..064f399 --- /dev/null +++ b/reactivetools/rules/__init__.py @@ -0,0 +1 @@ +from . import evaluators diff --git a/reactivetools/rules/default/connection.yaml b/reactivetools/rules/default/connection.yaml new file mode 100644 index 0000000..3ad0642 --- /dev/null +++ b/reactivetools/rules/default/connection.yaml @@ -0,0 +1,52 @@ +# Connection rules + +to_module required: + is_present(dict, "to_module") + +encryption required: + is_present(dict, "encryption") + +established must be a bool, if exists: + not is_present(dict, "established") or + (is_present(dict, "established") and isinstance(dict["established"], bool)) + +either direct=True or from_module + from_{output, request}: + has_value(dict, "direct", True) != + (is_present(dict, "from_module") and + (is_present(dict, "from_output") != is_present(dict, "from_request"))) + +either one between to_input and to_handler: + is_present(dict, "to_input") != is_present(dict, "to_handler") + +direct or from_output->to_input or from_request->to_handler: + has_value(dict, "direct", True) or + (is_present(dict, "from_output") and is_present(dict, "to_input")) or + (is_present(dict, "from_request") and is_present(dict, "to_handler")) + +key present ONLY after deployment: + (not has_value(dict, "established", True) and not is_present(dict, "key")) or + (has_value(dict, "established", True) and is_present(dict, "key")) + +nonce present ONLY after deployment: + (not has_value(dict, "established", True) and not is_present(dict, "nonce")) or + (has_value(dict, "established", True) and is_present(dict, "nonce")) + +id present ONLY after deployment: + (not has_value(dict, "established", True) and not is_present(dict, "id")) or + (has_value(dict, "established", True) and is_present(dict, "id")) + +name mandatory after deployment: + not has_value(dict, "established", True) or + (has_value(dict, "established", True) and is_present(dict, "name")) + +direct mandatory after deployment: + not has_value(dict, "established", True) or + (has_value(dict, "established", True) and is_present(dict, "direct")) + +from_module and to_module must be different: + dict.get("from_module") != dict["to_module"] + +only authorized keys: + authorized_keys(dict, ["name", "from_module", "from_output", + "from_request", "to_module", "to_input", "to_handler", + "encryption", "key", "id", "direct", "nonce", "established"]) diff --git a/reactivetools/rules/default/module.yaml b/reactivetools/rules/default/module.yaml new file mode 100644 index 0000000..1673c47 --- /dev/null +++ b/reactivetools/rules/default/module.yaml @@ -0,0 +1,39 @@ +# Generic Module rules + +## required keys ## +type required: + is_present(dict, "type") + +name required: + is_present(dict, "type") + +node required: + is_present(dict, "node") + + +## type of the required values ## +type must be a str: + isinstance(dict["type"], str) + +name must be a str: + isinstance(dict["name"], str) + +node must be a str: + isinstance(dict["node"], str) + +priority must be an int: + not is_present(dict, "priority") or + (is_present(dict, "priority") and isinstance(dict["priority"], int)) + +nonce must be an int: + not is_present(dict, "nonce") or + (is_present(dict, "nonce") and isinstance(dict["nonce"], int)) + +deployed must be a bool: + not is_present(dict, "deployed") or + (is_present(dict, "deployed") and isinstance(dict["deployed"], bool)) + +## Other constraints ## +nonce required ONLY after deployment: + (not has_value(dict, "deployed", True) and not is_present(dict, "nonce")) or + (has_value(dict, "deployed", True) and is_present(dict, "nonce")) diff --git a/reactivetools/rules/default/node.yaml b/reactivetools/rules/default/node.yaml new file mode 100644 index 0000000..fde81af --- /dev/null +++ b/reactivetools/rules/default/node.yaml @@ -0,0 +1,28 @@ +# Generic Node rules + +## required keys ## +type required: + is_present(dict, "type") + +name required: + is_present(dict, "type") + +ip_address required: + is_present(dict, "ip_address") + +reactive_port required: + is_present(dict, "reactive_port") + + +## type of the required values ## +type must be a str: + isinstance(dict["type"], str) + +name must be a str: + isinstance(dict["name"], str) + +ip_address must be a str: + isinstance(dict["ip_address"], str) + +reactive_port must be a positive u16: + is_positive_number(dict["reactive_port"]) diff --git a/reactivetools/rules/default/periodic_event.yaml b/reactivetools/rules/default/periodic_event.yaml new file mode 100644 index 0000000..4843f33 --- /dev/null +++ b/reactivetools/rules/default/periodic_event.yaml @@ -0,0 +1,26 @@ +# PeriodicEvent rules + +## required keys ## +module required: + is_present(dict, "module") + +entry required: + is_present(dict, "entry") + +frequency required: + is_present(dict, "frequency") + + +## type of the required values ## +module must be a str: + isinstance(dict["module"], str) + +entry must be a str: + isinstance(dict["entry"], str) + +frequency must be a positive u32: + is_positive_number(dict["frequency"], bits=32) + +established must be a bool: + not is_present(dict, "established") or + (is_present(dict, "established") and isinstance(dict["established"], bool)) diff --git a/reactivetools/rules/evaluators.py b/reactivetools/rules/evaluators.py new file mode 100644 index 0000000..4bdae9c --- /dev/null +++ b/reactivetools/rules/evaluators.py @@ -0,0 +1,44 @@ +import yaml +import os +import logging + +from ..descriptor import DescriptorType + +def is_present(dict, key): + return key in dict and dict[key] is not None + + +def has_value(dict, key, value): + return is_present(dict, key) and dict[key] == value + + +def is_positive_number(val, bits=16): + if not isinstance(val, int): + return False + + if not 1 <= val <= 2**bits - 1: + return False + + return True + + +def authorized_keys(dict, keys): + for key in dict: + if key not in keys: + return False + + return True + + +# file: relative path of the file from the "rules" directory +# e.g., i want to load the rules of sancus.yaml under nodes folder: +# file == "nodes/sancus.yaml" +def load_rules(file): + try: + path = os.path.join(os.path.dirname(__file__), file) + data = DescriptorType.YAML.load(path) + return data if data is not None else {} + except Exception as e: + logging.warning("Something went wrong during load of {}".format(file)) + logging.debug(e) + return {} diff --git a/reactivetools/rules/modules/native.yaml b/reactivetools/rules/modules/native.yaml new file mode 100644 index 0000000..9a0484b --- /dev/null +++ b/reactivetools/rules/modules/native.yaml @@ -0,0 +1 @@ +# NativeModule rules diff --git a/reactivetools/rules/modules/sancus.yaml b/reactivetools/rules/modules/sancus.yaml new file mode 100644 index 0000000..a791761 --- /dev/null +++ b/reactivetools/rules/modules/sancus.yaml @@ -0,0 +1 @@ +# SancusModule rules diff --git a/reactivetools/rules/modules/sgx.yaml b/reactivetools/rules/modules/sgx.yaml new file mode 100644 index 0000000..8c462cf --- /dev/null +++ b/reactivetools/rules/modules/sgx.yaml @@ -0,0 +1 @@ +# SGXModule rules diff --git a/reactivetools/rules/nodes/native.yaml b/reactivetools/rules/nodes/native.yaml new file mode 100644 index 0000000..fb8c9e3 --- /dev/null +++ b/reactivetools/rules/nodes/native.yaml @@ -0,0 +1 @@ +# NativeNode rules diff --git a/reactivetools/rules/nodes/sancus.yaml b/reactivetools/rules/nodes/sancus.yaml new file mode 100644 index 0000000..6be83d2 --- /dev/null +++ b/reactivetools/rules/nodes/sancus.yaml @@ -0,0 +1 @@ +# SancusNode rules diff --git a/reactivetools/rules/nodes/sgx.yaml b/reactivetools/rules/nodes/sgx.yaml new file mode 100644 index 0000000..911c4ff --- /dev/null +++ b/reactivetools/rules/nodes/sgx.yaml @@ -0,0 +1 @@ +# SGXNode rules diff --git a/reactivetools/tools.py b/reactivetools/tools.py index 4263c3c..77e3bbc 100644 --- a/reactivetools/tools.py +++ b/reactivetools/tools.py @@ -6,8 +6,6 @@ import struct from enum import Enum -sancus_key_size = None - class ProcessRunError(Exception): def __init__(self, args, result): self.args = args @@ -114,24 +112,6 @@ def generate_key(length): return os.urandom(length) -def set_sancus_key_size(size): - global sancus_key_size - - sancus_key_size = size - - -def get_sancus_key_size(): - if sancus_key_size is not None: - return sancus_key_size // 8 - - try: - import sancus.config - except: - raise Error("Sancus python lib not installed! Check README.md") - - return sancus.config.SECURITY // 8 - - def pack_int8(i): return struct.pack('!B', i) diff --git a/setup.py b/setup.py index 2c2528c..8fc82c9 100644 --- a/setup.py +++ b/setup.py @@ -13,11 +13,19 @@ long_description_content_type="text/markdown", url="https://github.com/gianlu33/reactive-tools", packages=setuptools.find_packages(), - install_requires=['pyelftools==0.27', 'aiofile==3.3.3', 'pycryptodome==3.10.1', 'reactive-net==0.1', 'rust-sgx-gen==0.1'], + install_requires=[ + 'pyelftools==0.27', + 'aiofile==3.3.3', + 'pycryptodome==3.10.1', + 'reactive-net==0.1', + 'rust-sgx-gen==0.1', + 'PyYAML==5.4.1' + ], classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", ], python_requires='>=3.6', + include_package_data=True ) From dcb7971069e978afa71362134f8b6d82c5db7626 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Thu, 18 Feb 2021 17:42:28 +0100 Subject: [PATCH 09/81] increment version number --- Makefile | 3 +-- setup.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index a5ddcb0..7bbfea3 100644 --- a/Makefile +++ b/Makefile @@ -22,5 +22,4 @@ run: docker run --rm -it --network=host -v $(VOLUME):/usr/src/app/ -v /var/run/aesmd/:/var/run/aesmd $(REPO):$(TAG) bash clean: - docker rm $(shell docker ps -a -q) 2> /dev/null || true - docker image prune -f + sudo rm -rf dist/* diff --git a/setup.py b/setup.py index 8fc82c9..592cbbb 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="reactive-tools", - version="0.1", + version="0.2", author="Gianluca Scopelliti", author_email="gianlu.1033@gmail.com", description="Deployment tools for the Authentic Execution framework", From 75485f451e16f20db1066389f733a865561c6797 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Thu, 18 Feb 2021 18:11:13 +0100 Subject: [PATCH 10/81] fix setup.py missing entry_points --- setup.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 592cbbb..b7d1ab0 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="reactive-tools", - version="0.2", + version="0.2.1", author="Gianluca Scopelliti", author_email="gianlu.1033@gmail.com", description="Deployment tools for the Authentic Execution framework", @@ -27,5 +27,8 @@ "Operating System :: OS Independent", ], python_requires='>=3.6', - include_package_data=True + include_package_data=True, + entry_points={ + 'console_scripts': ['reactive-tools = reactivetools.cli:main'] + } ) From b11c8affd064991adddfcf9f1e53fccfaec4a6c8 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Mon, 19 Apr 2021 13:46:34 +0200 Subject: [PATCH 11/81] Fix bugs introduced in the last PR, update Remote Attestation for SGX (#5) * use attester to do SGX attestation * SGX: update key generation * update closing after exception * fix minor bug * update Makefile * add pull target * fix key conversion SGX * native,sgx: sleep after sending deploy command * aesm_port as SGXNode field * fix moduleid in SGXNode and NativeNode * improve deployment when there are no connections * sgx: sleep after remote_attestation to give time to change state --- .gitignore | 3 ++ Makefile | 21 +++++----- reactivetools/cli.py | 19 +++------ reactivetools/config.py | 4 +- reactivetools/modules/sgx.py | 72 +++++++++++++++++++---------------- reactivetools/nodes/native.py | 17 +++++++++ reactivetools/nodes/sgx.py | 43 +++++++++++++-------- reactivetools/tools.py | 27 +++++++------ 8 files changed, 123 insertions(+), 83 deletions(-) diff --git a/.gitignore b/.gitignore index d2b2ac6..686c64f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ __pycache__/ build dist + +vendor_key.pem +res.json diff --git a/Makefile b/Makefile index 7bbfea3..c4bbe16 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,7 @@ -REPO = gianlu33/reactive-tools -TAG_LATEST = latest -TAG_NATIVE = native -TAG_SGX = sgx -TAG_SANCUS = sancus +REPO ?= gianlu33/reactive-tools +TAG ?= latest PWD = $(shell pwd) - -TAG ?= latest VOLUME ?= $(PWD) PYPI_REPO ?= gianlu33/pypi @@ -18,8 +13,14 @@ create_pkg: upload: create_pkg docker run --rm -it -v $(PWD):/usr/src/app $(PYPI_REPO) twine upload --repository pypi dist/* -u $(PYPI_USERNAME) -run: - docker run --rm -it --network=host -v $(VOLUME):/usr/src/app/ -v /var/run/aesmd/:/var/run/aesmd $(REPO):$(TAG) bash - clean: sudo rm -rf dist/* + +generate_key: + openssl genrsa -3 3072 > examples/vendor_key.pem + +run: + docker run --rm -it --network=host -v $(VOLUME):/usr/src/app/ $(REPO):$(TAG) bash + +pull: + docker pull $(REPO):$(TAG) diff --git a/reactivetools/cli.py b/reactivetools/cli.py index 402cc90..d0f150d 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -252,13 +252,6 @@ def _handle_request(args): conf.cleanup() -async def close(): - for task in asyncio.Task.all_tasks(): - task.cancel() - with contextlib.suppress(asyncio.CancelledError): - await task - - def main(raw_args=None): args = _parse_args(raw_args) _setup_logging(args) @@ -270,10 +263,8 @@ def main(raw_args=None): raise logging.error(e) - return 1 - finally: - # If we don't close the event loop explicitly, there is an unhandled - # exception being thrown from its destructor. Not sure why but closing - # it here prevents annoying noise. - asyncio.get_event_loop().run_until_complete(close()) - asyncio.get_event_loop().close() + + for task in asyncio.Task.all_tasks(): + task.cancel() + + sys.exit(-1) diff --git a/reactivetools/config.py b/reactivetools/config.py index 602cfbd..5e3a237 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -70,7 +70,9 @@ async def install_async(self): # this is needed if we don't have any connections, to ensure that # the modules are actually deployed - await self.deploy_modules_ordered_async() + # TODO: check if you want to only deploy or also do remote attestation + futures = map(lambda x : x.get_key(), self.modules) + await asyncio.gather(*futures) futures = map(PeriodicEvent.register, self.periodic_events) await asyncio.gather(*futures) diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 8e2472e..0db08c6 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -13,8 +13,7 @@ from ..loaders import * # Apps -RA_SP = "ra_sp" -RA_CLIENT = "ra_client" +ATTESTER = "sgx-attester" # SGX build/sign SGX_TARGET = "x86_64-fortanix-unknown-sgx" @@ -35,32 +34,25 @@ async def _generate_sp_keys(): priv = os.path.join(dir, "private_key.pem") pub = os.path.join(dir, "public_key.pem") + ias_cert = os.path.join(dir, "ias_root_ca.pem") - cmd = "ssh-keygen" - args_private = "-t rsa -f {} -b 2048 -N ''".format(priv).split() - args_public = "-f {}.pub -e -m pem".format(priv).split() + cmd = "openssl" - await tools.run_async_shell(cmd, *args_private) - await tools.run_async(cmd, *args_public, output_file=pub) - - return pub, priv + args_private = "genrsa -f4 -out {} 2048".format(priv).split() + args_public = "rsa -in {} -outform PEM -pubout -out {}".format(priv, pub).split() + await tools.run_async_shell(cmd, *args_private) + await tools.run_async_shell(cmd, *args_public) -async def _run_ra_sp(): - # kill old ra_sp (if running) - try: - await tools.run_async("pkill", "-f", RA_SP) - except: - pass - - arg = await SGXModule._get_ra_sp_priv_key() + cmd = "curl" + url = "https://certificates.trustedservices.intel.com/Intel_SGX_Attestation_RootCA.pem".split() + await tools.run_async(cmd, *url, output_file=ias_cert) - return await tools.run_async_background(RA_SP, arg) + return pub, priv, ias_cert class SGXModule(Module): _sp_keys_fut = asyncio.ensure_future(_generate_sp_keys()) - _ra_sp_fut = asyncio.ensure_future(_run_ra_sp()) def __init__(self, name, node, priority, deployed, nonce, vendor_key, ra_settings, features, id, binary, key, sgxs, signature, data, @@ -290,26 +282,28 @@ def get_supported_encryption(): @staticmethod async def _get_ra_sp_pub_key(): - pub, _ = await SGXModule._sp_keys_fut + pub, _, _ = await SGXModule._sp_keys_fut return pub @staticmethod async def _get_ra_sp_priv_key(): - _, priv = await SGXModule._sp_keys_fut + _, priv, _ = await SGXModule._sp_keys_fut return priv + @staticmethod + async def _get_ias_root_certificate(): + _, _, cert = await SGXModule._sp_keys_fut + + return cert + + @staticmethod async def cleanup(): - try: - process = await SGXModule._ra_sp_fut - process.kill() - await asyncio.sleep(0.1) # to avoid weird error messages - except: - pass + pass # --- Others --- # @@ -380,11 +374,25 @@ async def __convert_sign(self): async def __remote_attestation(self): await self.deploy() - await self._ra_sp_fut - - args = [str(self.node.ip_address), str(self.port), self.ra_settings, await self.sig] - key = await tools.run_async_output(RA_CLIENT, *args) - logging.info("Done Remote Attestation of {}".format(self.name)) + env = {} + env["SP_PRIVKEY"] = await SGXModule._get_ra_sp_priv_key() + env["IAS_CERT"] = await SGXModule._get_ias_root_certificate() + env["ENCLAVE_SETTINGS"] = self.ra_settings + env["ENCLAVE_SIG"] = await self.sig + env["ENCLAVE_HOST"] = str(self.node.ip_address) + env["ENCLAVE_PORT"] = str(self.port) + env["AESM_PORT"] = str(self.node.aesm_port) + + out, _ = await tools.run_async_output(ATTESTER, env=env) + key_arr = eval(out) # from string to array + key = bytes(key_arr) # from array to bytes + + # fix: give the module the time to change state + # If the EM is multithreaded, it may happen that we send a set_key + # command before the module is actually listening for new connections + # TODO: find a better way to do this + await asyncio.sleep(2) + logging.info("Done Remote Attestation of {}. Key: {}".format(self.name, key_arr)) return key diff --git a/reactivetools/nodes/native.py b/reactivetools/nodes/native.py index 77000b6..cc4a191 100644 --- a/reactivetools/nodes/native.py +++ b/reactivetools/nodes/native.py @@ -24,6 +24,17 @@ def load(node_dict): module_id) + def dump(self): + return { + "type": self.type, + "name": self.name, + "ip_address": str(self.ip_address), + "reactive_port": self.reactive_port, + "deploy_port": self.deploy_port, + "module_id": self._moduleid + } + + async def deploy(self, module): if module.deployed: return @@ -43,4 +54,10 @@ async def deploy(self, module): log='Deploying {} on {}'.format(module.name, self.name) ) + # fix: give time to load module. + # If the EM is multithreaded, it may happen that we send a set_key + # command before the module is actually loaded. Here, we wait to ensure + # that the module is running before doing anything else + # TODO: find a better way to do this + await asyncio.sleep(2) module.deployed = True diff --git a/reactivetools/nodes/sgx.py b/reactivetools/nodes/sgx.py index 814ae44..1b534ae 100644 --- a/reactivetools/nodes/sgx.py +++ b/reactivetools/nodes/sgx.py @@ -22,18 +22,7 @@ class SGXBase(Node): def __init__(self, name, ip_address, reactive_port, deploy_port, module_id): super().__init__(name, ip_address, reactive_port, deploy_port) - self.__moduleid = module_id if module_id else 1 - - - def dump(self): - return { - "type": self.type, - "name": self.name, - "ip_address": str(self.ip_address), - "reactive_port": self.reactive_port, - "deploy_port": self.deploy_port, - "module_id": self.__moduleid - } + self._moduleid = module_id if module_id else 1 @abstractmethod @@ -76,8 +65,8 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): def get_module_id(self): - id = self.__moduleid - self.__moduleid += 1 + id = self._moduleid + self._moduleid += 1 return id @@ -85,6 +74,11 @@ def get_module_id(self): class SGXNode(SGXBase): type = "sgx" + def __init__(self, name, ip_address, reactive_port, deploy_port, module_id, aesm_port): + super().__init__(name, ip_address, reactive_port, deploy_port, module_id) + + self.aesm_port = aesm_port or 13741 + @staticmethod def load(node_dict): name = node_dict['name'] @@ -92,9 +86,22 @@ def load(node_dict): reactive_port = node_dict['reactive_port'] deploy_port = node_dict.get('deploy_port', reactive_port) module_id = node_dict.get('module_id') + aesm_port = node_dict.get('aesm_port') return SGXNode(name, ip_address, reactive_port, deploy_port, - module_id) + module_id, aesm_port) + + + def dump(self): + return { + "type": self.type, + "name": self.name, + "ip_address": str(self.ip_address), + "reactive_port": self.reactive_port, + "deploy_port": self.deploy_port, + "module_id": self._moduleid, + "aesm_port": self.aesm_port + } async def deploy(self, module): @@ -122,4 +129,10 @@ async def deploy(self, module): log='Deploying {} on {}'.format(module.name, self.name) ) + # fix: give time to load module. + # If the EM is multithreaded, it may happen that we send a set_key + # command before the module is actually loaded. Here, we wait to ensure + # that the module is running before doing anything else + # TODO: find a better way to do this + await asyncio.sleep(2) module.deployed = True diff --git a/reactivetools/tools.py b/reactivetools/tools.py index 77e3bbc..d4578bf 100644 --- a/reactivetools/tools.py +++ b/reactivetools/tools.py @@ -51,47 +51,52 @@ def init_future(*results): return fut -async def run_async(*args, output_file=os.devnull): +async def run_async(*args, output_file=os.devnull, env=None): logging.debug(' '.join(args)) process = await asyncio.create_subprocess_exec(*args, stdout=open(output_file, 'wb'), - stderr=get_stderr()) + stderr=get_stderr(), + env=env) result = await process.wait() if result != 0: raise ProcessRunError(args, result) -async def run_async_background(*args): +async def run_async_background(*args, env=None): logging.debug(' '.join(args)) process = await asyncio.create_subprocess_exec(*args, stdout=open(os.devnull, 'wb'), - stderr=get_stderr()) + stderr=get_stderr(), + env=env) return process -async def run_async_output(*args): +async def run_async_output(*args, env=None): cmd = ' '.join(args) logging.debug(cmd) process = await asyncio.create_subprocess_exec(*args, stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE) + stderr=asyncio.subprocess.PIPE, + env=env) out, err = await process.communicate() + result = await process.wait() - if err: - raise Error('cmd "{}" error: {}'.format(cmd, err)) + if result != 0: + raise ProcessRunError(args, result) - return out + return out, err -async def run_async_shell(*args): +async def run_async_shell(*args, env=None): cmd = ' '.join(args) logging.debug(cmd) process = await asyncio.create_subprocess_shell(cmd, stdout=open(os.devnull, 'wb'), - stderr=get_stderr()) + stderr=get_stderr(), + env=env) result = await process.wait() if result != 0: From e7fd3c2f68a905c2740069eb0f503e0c362b0226 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Tue, 20 Apr 2021 13:11:23 +0200 Subject: [PATCH 12/81] Separate commands: deploy(), attest(), connect(), register(). Add improvements (#6) * remove trigger remote attestation * attest & connect command, `port` and `attested` fields in modules * separate deploy,attest and connect to respective commands * fix attest_fut sgx * fix sgx minor bugs * add checks on attest() and connect() * fix deploy sgx/native, update rules, fix dump funcs * option to deploy/attest/connect only one module/connection * create all temp data in ./build * SGX: generate sp keys only if really needed * add register() command for periodic events --- reactivetools/cli.py | 162 +++++++++++++++++--- reactivetools/config.py | 132 ++++++++++++---- reactivetools/connection.py | 8 +- reactivetools/glob.py | 3 + reactivetools/modules/base.py | 30 +++- reactivetools/modules/native.py | 37 +++-- reactivetools/modules/sancus.py | 32 ++-- reactivetools/modules/sgx.py | 137 +++++++++-------- reactivetools/nodes/native.py | 2 +- reactivetools/nodes/sancus.py | 4 +- reactivetools/nodes/sgx.py | 3 +- reactivetools/periodic_event.py | 25 ++- reactivetools/rules/default/connection.yaml | 16 +- reactivetools/rules/default/module.yaml | 7 +- reactivetools/rules/default/node.yaml | 4 + reactivetools/tools.py | 9 +- 16 files changed, 431 insertions(+), 180 deletions(-) diff --git a/reactivetools/cli.py b/reactivetools/cli.py index d0f150d..f54eaa0 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -70,6 +70,10 @@ def _parse_args(args): '--output', help='Output file type, between JSON and YAML', default=None) + deploy_parser.add_argument( + '--module', + help='Module to deploy (if not specified, deploy all modules not yet deployed)', + default=None) # build build_parser = subparsers.add_parser( @@ -88,6 +92,70 @@ def _parse_args(args): '--workspace', help='Root directory containing all the modules and the configuration file', default=".") + build_parser.add_argument( + '--module', + help='Module to build (if not specified, build all modules)', + default=None) + + # attest + attest_parser = subparsers.add_parser( + 'attest', + help='Attest deployed modules') + attest_parser.set_defaults(command_handler=_handle_attest) + attest_parser.add_argument( + 'config', + help='Specify configuration file to use') + attest_parser.add_argument( + '--result', + help='File to write the resulting configuration to') + attest_parser.add_argument( + '--output', + help='Output file type, between JSON and YAML', + default=None) + attest_parser.add_argument( + '--module', + help='Module to attest (if not specified, attest all modules not yet attested)', + default=None) + + # connect + connect_parser = subparsers.add_parser( + 'connect', + help='Connect deployed and attested modules') + connect_parser.set_defaults(command_handler=_handle_connect) + connect_parser.add_argument( + 'config', + help='Specify configuration file to use') + connect_parser.add_argument( + '--result', + help='File to write the resulting configuration to') + connect_parser.add_argument( + '--output', + help='Output file type, between JSON and YAML', + default=None) + connect_parser.add_argument( + '--connection', + help='Connection to establish (if not specified, establish all connections not yet established)', + default=None) + + # register + register_parser = subparsers.add_parser( + 'register', + help='Register a periodic event') + register_parser.set_defaults(command_handler=_handle_register) + register_parser.add_argument( + 'config', + help='Specify configuration file to use') + register_parser.add_argument( + '--result', + help='File to write the resulting configuration to') + register_parser.add_argument( + '--output', + help='Output file type, between JSON and YAML', + default=None) + register_parser.add_argument( + '--event', + help='Event to register (if not specified, register all events not yet registered)', + default=None) # call call_parser = subparsers.add_parser( @@ -95,10 +163,8 @@ def _parse_args(args): help='Call a deployed module') call_parser.set_defaults(command_handler=_handle_call) call_parser.add_argument( - '--config', - help='Specify configuration file to use ' - '(the result of a previous "deploy" run)', - required=True) + 'config', + help='Specify configuration file to use') call_parser.add_argument( '--module', help='Name of the module to call', @@ -119,10 +185,8 @@ def _parse_args(args): help='Trigger the output of a \"direct\" connection (between deployer and SM)') output_parser.set_defaults(command_handler=_handle_output) output_parser.add_argument( - '--config', - help='Specify configuration file to use ' - '(the result of a previous "deploy" run)', - required=True) + 'config', + help='Specify configuration file to use') output_parser.add_argument( '--connection', help='Connection ID or name of the connection', @@ -132,6 +196,9 @@ def _parse_args(args): help='Argument to pass to the output (hex byte array)', type=binascii.unhexlify, default=None) + output_parser.add_argument( + '--result', + help='File to write the resulting configuration to') # request request_parser = subparsers.add_parser( @@ -139,10 +206,8 @@ def _parse_args(args): help='Trigger the request of a \"direct\" connection (between deployer and SM)') request_parser.set_defaults(command_handler=_handle_request) request_parser.add_argument( - '--config', - help='Specify configuration file to use ' - '(the result of a previous "deploy" run)', - required=True) + 'config', + help='Specify configuration file to use') request_parser.add_argument( '--connection', help='Connection ID or name of the connection', @@ -152,6 +217,9 @@ def _parse_args(args): help='Argument to pass to the request (hex byte array)', type=binascii.unhexlify, default=None) + request_parser.add_argument( + '--result', + help='File to write the resulting configuration to') return parser.parse_args(args) @@ -164,15 +232,11 @@ def _handle_deploy(args): os.chdir(args.workspace) conf = config.load(args.config, args.output) - if args.deploy_in_order: - conf.deploy_modules_ordered() - - conf.install() - - if args.result is not None: - logging.info('Writing post-deployment configuration to %s', args.result) - config.dump_config(conf, args.result) + conf.deploy(args.deploy_in_order, args.module) + out_file = args.result or args.config + logging.info('Writing post-deployment configuration to %s', out_file) + config.dump_config(conf, out_file) conf.cleanup() @@ -184,7 +248,46 @@ def _handle_build(args): os.chdir(args.workspace) conf = config.load(args.config) - conf.build() + conf.build(args.module) + conf.cleanup() + + +def _handle_attest(args): + logging.info('Attesting modules') + + conf = config.load(args.config, args.output) + + conf.attest(args.module) + + out_file = args.result or args.config + logging.info('Writing post-deployment configuration to %s', out_file) + config.dump_config(conf, out_file) + conf.cleanup() + + +def _handle_connect(args): + logging.info('Connecting modules') + + conf = config.load(args.config, args.output) + + conf.connect(args.connection) + + out_file = args.result or args.config + logging.info('Writing post-deployment configuration to %s', out_file) + config.dump_config(conf, out_file) + conf.cleanup() + + +def _handle_register(args): + logging.info('Registering periodic events') + + conf = config.load(args.config, args.output) + + conf.register_event(args.event) + + out_file = args.result or args.config + logging.info('Writing post-deployment configuration to %s', out_file) + config.dump_config(conf, out_file) conf.cleanup() @@ -221,8 +324,8 @@ def _handle_output(args): conn.to_module.node.output(conn, args.arg)) conn.nonce += 1 - config.dump_config(conf, args.config) - + out_file = args.result or args.config + config.dump_config(conf, out_file) conf.cleanup() @@ -247,8 +350,8 @@ def _handle_request(args): conn.to_module.node.request(conn, args.arg)) conn.nonce += 2 - config.dump_config(conf, args.config) - + out_file = args.result or args.config + config.dump_config(conf, out_file) conf.cleanup() @@ -256,6 +359,15 @@ def main(raw_args=None): args = _parse_args(raw_args) _setup_logging(args) + # create working directory + try: + os.mkdir(glob.BUILD_DIR) + except FileExistsError: + pass + except: + logging.error("Failed to create build dir") + sys.exit(-1) + try: args.command_handler(args) except Exception as e: diff --git a/reactivetools/config.py b/reactivetools/config.py index 5e3a237..ae9d09a 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -62,41 +62,122 @@ def get_connection_by_name(self, name): raise Error('No connection with name {}'.format(name)) - async def install_async(self): + def get_periodic_event(self, name): + for e in self.periodic_events: + if e.name == name: + return e + + raise Error('No periodic event with name {}'.format(name)) + + + async def deploy_priority_modules(self): + priority_modules = [sm for sm in self.modules if sm.priority is not None and not sm.deployed] + priority_modules.sort(key=lambda sm : sm.priority) + + logging.debug("Priority modules: {}".format([sm.name for sm in priority_modules])) + for module in priority_modules: + await module.deploy() + + + async def deploy_async(self, in_order, module): + # If module is not None, deploy just this one + if module: + mod = self.get_module(module) + if mod.deployed: + raise Error('Module {} already deployed'.format(module)) + + logging.info("Deploying {}".format(module)) + await mod.deploy() + return + + # First, deploy all modules that have a priority (in order of priority) await self.deploy_priority_modules() - futures = map(Connection.establish, self.connections) + # If deployment in order is desired, deploy one module at a time + if in_order: + for module in self.modules: + if not module.deployed: + await module.deploy() + # Otherwise, deploy all modules concurrently + else: + lst = self.modules + l_filter = lambda x : not x.deployed + l_map = lambda x : x.deploy() + + futures = map(l_map, filter(l_filter, lst)) + await asyncio.gather(*futures) + + + def deploy(self, in_order, module): + asyncio.get_event_loop().run_until_complete(self.deploy_async(in_order, module)) + + + async def build_async(self, module): + lst = self.modules if not module else [self.get_module(module)] + + futures = [module.build() for module in lst] await asyncio.gather(*futures) - # this is needed if we don't have any connections, to ensure that - # the modules are actually deployed - # TODO: check if you want to only deploy or also do remote attestation - futures = map(lambda x : x.get_key(), self.modules) + + def build(self, module): + asyncio.get_event_loop().run_until_complete(self.build_async(module)) + + + async def attest_async(self, module): + lst = self.modules if not module else [self.get_module(module)] + + to_attest = list(filter(lambda x : not x.attested, lst)) + + if any(map(lambda x : not x.deployed, to_attest)): + raise Error("One or more modules to attest are not deployed yet") + + logging.info("To attest: {}".format([x.name for x in to_attest])) + + futures = map(lambda x : x.attest(), to_attest) await asyncio.gather(*futures) - futures = map(PeriodicEvent.register, self.periodic_events) + + def attest(self, module): + asyncio.get_event_loop().run_until_complete(self.attest_async(module)) + + + async def connect_async(self, conn): + lst = self.connections if not conn else [self.get_connection_by_name(conn)] + + to_connect = list(filter(lambda x : not x.established, lst)) + + if any(map( + lambda x : (x.from_module and not x.from_module.attested) or + not x.to_module.attested, + to_connect)): + raise Error("One or more modules to connect are not attested yet") + + logging.info("To connect: {}".format([x.name for x in to_connect])) + + futures = map(lambda x : x.establish(), to_connect) await asyncio.gather(*futures) - def install(self): - asyncio.get_event_loop().run_until_complete(self.install_async()) - async def deploy_modules_ordered_async(self): - for module in self.modules: - await module.deploy() - await module.get_key() # trigger remote attestation for some modules (e.g. SGX) + def connect(self, conn): + asyncio.get_event_loop().run_until_complete(self.connect_async(conn)) - def deploy_modules_ordered(self): - asyncio.get_event_loop().run_until_complete( - self.deploy_modules_ordered_async()) + async def register_async(self, event): + lst = self.periodic_events if not event else [self.get_periodic_event(event)] - async def build_async(self): - futures = [module.build() for module in self.modules] + to_register = list(filter(lambda x : not x.established, lst)) + + if any(map(lambda x : not x.module.attested, to_register)): + raise Error("One or more modules are not attested yet") + + logging.info("To register: {}".format([x.name for x in to_register])) + + futures = map(lambda x : x.register(), to_register) await asyncio.gather(*futures) - def build(self): - asyncio.get_event_loop().run_until_complete(self.build_async()) + def register_event(self, event): + asyncio.get_event_loop().run_until_complete(self.register_async(event)) async def cleanup_async(self): @@ -108,15 +189,6 @@ def cleanup(self): asyncio.get_event_loop().run_until_complete(self.cleanup_async()) - async def deploy_priority_modules(self): - priority_modules = [sm for sm in self.modules if sm.priority is not None] - priority_modules.sort(key=lambda sm : sm.priority) - - logging.debug("Priority modules: {}".format([sm.name for sm in priority_modules])) - for module in priority_modules: - await module.deploy() - - def load(file_name, output_type=None): config = Config() desc_type = DescriptorType.from_str(output_type) @@ -134,6 +206,7 @@ def load(file_name, output_type=None): lambda m: _load_module(m, config)) config.connections_current_id = contents.get('connections_current_id') or 0 + config.events_current_id = contents.get('events_current_id') or 0 if 'connections' in contents: config.connections = load_list(contents['connections'], @@ -217,6 +290,7 @@ def _(config): 'modules': dump(config.modules), 'connections_current_id': config.connections_current_id, 'connections': dump(config.connections), + 'events_current_id': config.events_current_id, 'periodic-events' : dump(config.periodic_events) } diff --git a/reactivetools/connection.py b/reactivetools/connection.py index 54dadf8..ba466fb 100644 --- a/reactivetools/connection.py +++ b/reactivetools/connection.py @@ -81,16 +81,14 @@ def load(conn_dict, config): to_input = conn_dict.get('to_input') to_handler = conn_dict.get('to_handler') encryption = Encryption.from_str(conn_dict['encryption']) - key = parse_key(conn_dict.get('key')) - nonce = conn_dict.get('nonce') + key = parse_key(conn_dict.get('key')) or Connection.generate_key(from_module, to_module, encryption) # auto-generated key + nonce = conn_dict.get('nonce') or 0 id = conn_dict.get('id') established = conn_dict.get('established') - if not established: + if id is None: id = config.connections_current_id # incremental ID config.connections_current_id += 1 - key = Connection.generate_key(from_module, to_module, encryption) # auto-generated key - nonce = 0 # only used for direct connections name = conn_dict.get('name') or "conn{}".format(id) diff --git a/reactivetools/glob.py b/reactivetools/glob.py index 885ef44..d1feba2 100644 --- a/reactivetools/glob.py +++ b/reactivetools/glob.py @@ -1,4 +1,7 @@ from enum import IntEnum +import os + +BUILD_DIR = os.path.join(os.getcwd(), "build") class Error(Exception): pass diff --git a/reactivetools/modules/base.py b/reactivetools/modules/base.py index ece963a..f810f94 100644 --- a/reactivetools/modules/base.py +++ b/reactivetools/modules/base.py @@ -1,10 +1,13 @@ from abc import ABC, abstractmethod +import os +import logging +from .. import glob class Error(Exception): pass class Module(ABC): - def __init__(self, name, node, priority, deployed, nonce): + def __init__(self, name, node, priority, deployed, nonce, attested): """ Generic attributes common to all Module subclasses @@ -22,9 +25,20 @@ def __init__(self, name, node, priority, deployed, nonce): self.priority = priority self.deployed = deployed self.nonce = 0 if nonce is None else nonce + self.attested = attested self.connections = 0 + # create temp dir + try: + os.mkdir(os.path.join(glob.BUILD_DIR, name)) + except FileExistsError: + pass + except: + logging.error("Failed to create build dir for {}".format(name)) + sys.exit(-1) + + """ ### Description ### Creates a XXXModule object from a dict @@ -95,6 +109,20 @@ async def deploy(self): pass + """ + ### Description ### + Coroutine. Attest a deployed module + + ### Parameters ### + self: Module object + + ### Returns ### + """ + @abstractmethod + async def attest(self): + pass + + """ ### Description ### Coroutine. Get the ID of the module diff --git a/reactivetools/modules/native.py b/reactivetools/modules/native.py index 06f53bf..3d9a57d 100644 --- a/reactivetools/modules/native.py +++ b/reactivetools/modules/native.py @@ -21,18 +21,17 @@ class Error(Exception): class NativeModule(Module): - def __init__(self, name, node, priority, deployed, nonce, features, - id, binary, key, data, folder): - super().__init__(name, node, priority, deployed, nonce) + def __init__(self, name, node, priority, deployed, nonce, attested, features, + id, binary, key, data, folder, port): + super().__init__(name, node, priority, deployed, nonce, attested) - self.__deploy_fut = tools.init_future(id) # not completely true self.__generate_fut = tools.init_future(data, key) self.__build_fut = tools.init_future(binary) self.features = [] if features is None else features self.id = id if id is not None else node.get_module_id() - self.port = self.node.reactive_port + self.id - self.output = os.path.join(os.getcwd(), "build", name) + self.port = port or self.node.reactive_port + self.id + self.output = os.path.join(glob.BUILD_DIR, name) self.folder = folder @@ -43,15 +42,17 @@ def load(mod_dict, node_obj): priority = mod_dict.get('priority') deployed = mod_dict.get('deployed') nonce = mod_dict.get('nonce') + attested = mod_dict.get('attested') features = mod_dict.get('features') id = mod_dict.get('id') binary = parse_file_name(mod_dict.get('binary')) key = parse_key(mod_dict.get('key')) data = mod_dict.get('data') folder = mod_dict.get('folder') or name + port = mod_dict.get('port') - return NativeModule(name, node, priority, deployed, nonce, features, - id, binary, key, data, folder) + return NativeModule(name, node, priority, deployed, nonce, attested, + features, id, binary, key, data, folder, port) def dump(self): return { @@ -61,12 +62,14 @@ def dump(self): "priority": self.priority, "deployed": self.deployed, "nonce": self.nonce, + "attested": self.attested, "features": self.features, "id": self.id, - "binary": dump(self.binary), - "key": dump(self.key), - "data": dump(self.data), - "folder": self.folder + "binary": dump(self.binary) if self.deployed else None, + "key": dump(self.key) if self.deployed else None, # For native, key is generated at compile time + "data": dump(self.data) if self.deployed else None, + "folder": self.folder, + "port": self.port } # --- Properties --- # @@ -126,10 +129,14 @@ async def build(self): async def deploy(self): - if self.__deploy_fut is None: - self.__deploy_fut = asyncio.ensure_future(self.node.deploy(self)) + await self.node.deploy(self) - await self.__deploy_fut + + async def attest(self): + # Native attestation is not really needed. + # TODO with attestation-manager, we still need to send a msg to it + await self.key + self.attested = True async def get_id(self): diff --git a/reactivetools/modules/sancus.py b/reactivetools/modules/sancus.py index 2fdebb3..f966217 100644 --- a/reactivetools/modules/sancus.py +++ b/reactivetools/modules/sancus.py @@ -18,9 +18,9 @@ class Error(Exception): class SancusModule(Module): - def __init__(self, name, node, priority, deployed, nonce, files, cflags, - ldflags, binary, id, symtab, key): - super().__init__(name, node, priority, deployed, nonce) + def __init__(self, name, node, priority, deployed, nonce, attested, files, + cflags, ldflags, binary, id, symtab, key): + super().__init__(name, node, priority, deployed, nonce, attested) self.files = files self.cflags = cflags @@ -38,6 +38,7 @@ def load(mod_dict, node_obj): priority = mod_dict.get('priority') deployed = mod_dict.get('deployed') nonce = mod_dict.get('nonce') + attested = mod_dict.get('attested') files = load_list(mod_dict['files'], lambda f: parse_file_name(f)) cflags = load_list(mod_dict.get('cflags')) @@ -46,9 +47,9 @@ def load(mod_dict, node_obj): id = mod_dict.get('id') symtab = parse_file_name(mod_dict.get('symtab')) key = parse_key(mod_dict.get('key')) - - return SancusModule(name, node, priority, deployed, nonce, files, cflags, - ldflags, binary, id, symtab, key) + + return SancusModule(name, node, priority, deployed, nonce, attested, + files, cflags, ldflags, binary, id, symtab, key) def dump(self): @@ -59,13 +60,14 @@ def dump(self): "priority": self.priority, "deployed": self.deployed, "nonce": self.nonce, + "attested": self.attested, "files": dump(self.files), "cflags": dump(self.cflags), "ldflags": dump(self.ldflags), - "binary": dump(self.binary), - "id": dump(self.id), - "symtab": dump(self.symtab), - "key": dump(self.key) + "binary": dump(self.binary) if self.deployed else None, + "id": dump(self.id) if self.deployed else None, + "symtab": dump(self.symtab) if self.deployed else None, + "key": dump(self.key) if self.deployed else None } @@ -109,6 +111,10 @@ async def deploy(self): return await self.__deploy_fut + async def attest(self): + raise Error("SancusModule::attest not implemented") + + async def get_id(self): return await self.id @@ -176,7 +182,7 @@ async def __build(self): self.name, ', '.join(map(str, self.files))) config = self._get_build_config(tools.get_verbosity()) - objects = {str(p): tools.create_tmp(suffix='.o') for p in self.files} + objects = {str(p): tools.create_tmp(suffix='.o', dir=self.name) for p in self.files} cflags = config.cflags + self.cflags build_obj = lambda c, o: tools.run_async(config.cc, *cflags, @@ -184,7 +190,7 @@ async def __build(self): build_futs = [build_obj(c, o) for c, o in objects.items()] await asyncio.gather(*build_futs) - binary = tools.create_tmp(suffix='.elf') + binary = tools.create_tmp(suffix='.elf', dir=self.name) ldflags = config.ldflags + self.ldflags # setting connections (if not specified in JSON file) @@ -213,7 +219,7 @@ async def _calculate_key(self): async def __link(self): - linked_binary = tools.create_tmp(suffix='.elf') + linked_binary = tools.create_tmp(suffix='.elf', dir=self.name) # NOTE: we use '--noinhibit-exec' flag because the linker complains # if the addresses of .bss section are not aligned to 2 bytes diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 0db08c6..3d182ca 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -29,48 +29,26 @@ class Error(Exception): pass -async def _generate_sp_keys(): - dir = tools.create_tmp_dir() - - priv = os.path.join(dir, "private_key.pem") - pub = os.path.join(dir, "public_key.pem") - ias_cert = os.path.join(dir, "ias_root_ca.pem") - - cmd = "openssl" - - args_private = "genrsa -f4 -out {} 2048".format(priv).split() - args_public = "rsa -in {} -outform PEM -pubout -out {}".format(priv, pub).split() - - await tools.run_async_shell(cmd, *args_private) - await tools.run_async_shell(cmd, *args_public) - - cmd = "curl" - url = "https://certificates.trustedservices.intel.com/Intel_SGX_Attestation_RootCA.pem".split() - await tools.run_async(cmd, *url, output_file=ias_cert) - - return pub, priv, ias_cert - - class SGXModule(Module): - _sp_keys_fut = asyncio.ensure_future(_generate_sp_keys()) + sp_lock = asyncio.Lock() - def __init__(self, name, node, priority, deployed, nonce, vendor_key, + def __init__(self, name, node, priority, deployed, nonce, attested, vendor_key, ra_settings, features, id, binary, key, sgxs, signature, data, - folder): - super().__init__(name, node, priority, deployed, nonce) + folder, port): + super().__init__(name, node, priority, deployed, nonce, attested) - self.__deploy_fut = tools.init_future(id) # not completely true self.__generate_fut = tools.init_future(data) self.__build_fut = tools.init_future(binary) self.__convert_sign_fut = tools.init_future(sgxs, signature) - self.__ra_fut = tools.init_future(key) + self.__attest_fut = tools.init_future(key) + self.__sp_keys_fut = asyncio.ensure_future(self.__generate_sp_keys()) self.vendor_key = vendor_key self.ra_settings = ra_settings self.features = [] if features is None else features self.id = id if id is not None else node.get_module_id() - self.port = self.node.reactive_port + self.id - self.output = os.path.join(os.getcwd(), "build", name) + self.port = port or self.node.reactive_port + self.id + self.output = os.path.join(glob.BUILD_DIR, name) self.folder = folder @@ -81,6 +59,7 @@ def load(mod_dict, node_obj): priority = mod_dict.get('priority') deployed = mod_dict.get('deployed') nonce = mod_dict.get('nonce') + attested = mod_dict.get('attested') vendor_key = parse_file_name(mod_dict['vendor_key']) settings = parse_file_name(mod_dict['ra_settings']) features = mod_dict.get('features') @@ -91,9 +70,11 @@ def load(mod_dict, node_obj): signature = parse_file_name(mod_dict.get('signature')) data = mod_dict.get('data') folder = mod_dict.get('folder') or name + port = mod_dict.get('port') - return SGXModule(name, node, priority, deployed, nonce, vendor_key, - settings, features, id, binary, key, sgxs, signature, data, folder) + return SGXModule(name, node, priority, deployed, nonce, attested, vendor_key, + settings, features, id, binary, key, sgxs, signature, data, folder, + port) def dump(self): return { @@ -103,16 +84,18 @@ def dump(self): "priority": self.priority, "deployed": self.deployed, "nonce": self.nonce, + "attested": self.attested, "vendor_key": self.vendor_key, "ra_settings": self.ra_settings, "features": self.features, "id": self.id, - "binary": dump(self.binary), - "sgxs": dump(self.sgxs), - "signature": dump(self.sig), - "key": dump(self.key), - "data": dump(self.data), - "folder": self.folder + "binary": dump(self.binary) if self.deployed else None, + "sgxs": dump(self.sgxs) if self.deployed else None, + "signature": dump(self.sig) if self.deployed else None, + "key": dump(self.key) if self.attested else None, + "data": dump(self.data) if self.deployed else None, + "folder": self.folder, + "port": self.port } # --- Properties --- # @@ -153,10 +136,7 @@ async def requests(self): @property async def key(self): - if self.__ra_fut is None: - self.__ra_fut = asyncio.ensure_future(self.__remote_attestation()) - - return await self.__ra_fut + return await self.attest() @property @@ -194,10 +174,14 @@ async def build(self): async def deploy(self): - if self.__deploy_fut is None: - self.__deploy_fut = asyncio.ensure_future(self.node.deploy(self)) + await self.node.deploy(self) - await self.__deploy_fut + + async def attest(self): + if self.__attest_fut is None: + self.__attest_fut = asyncio.ensure_future(self.__attest()) + + return await self.__attest_fut async def get_id(self): @@ -281,32 +265,29 @@ def get_supported_encryption(): # --- Static methods --- # @staticmethod - async def _get_ra_sp_pub_key(): - pub, _, _ = await SGXModule._sp_keys_fut + async def cleanup(): + pass - return pub + # --- Others --- # - @staticmethod - async def _get_ra_sp_priv_key(): - _, priv, _ = await SGXModule._sp_keys_fut + async def get_ra_sp_pub_key(self): + pub, _, _ = await self.__sp_keys_fut - return priv + return pub - @staticmethod - async def _get_ias_root_certificate(): - _, _, cert = await SGXModule._sp_keys_fut + async def get_ra_sp_priv_key(self): + _, priv, _ = await self.__sp_keys_fut - return cert + return priv - @staticmethod - async def cleanup(): - pass + async def get_ias_root_certificate(self): + _, _, cert = await self.__sp_keys_fut + return cert - # --- Others --- # async def generate_code(self): if self.__generate_fut is None: @@ -328,7 +309,7 @@ async def __generate_code(self): args.moduleid = self.id args.emport = self.node.deploy_port args.runner = rustsgxgen.Runner.SGX - args.spkey = await self._get_ra_sp_pub_key() + args.spkey = await self.get_ra_sp_pub_key() args.print = None data, _ = rustsgxgen.generate(args) @@ -372,12 +353,10 @@ async def __convert_sign(self): return sgxs, sig - async def __remote_attestation(self): - await self.deploy() - + async def __attest(self): env = {} - env["SP_PRIVKEY"] = await SGXModule._get_ra_sp_priv_key() - env["IAS_CERT"] = await SGXModule._get_ias_root_certificate() + env["SP_PRIVKEY"] = await self.get_ra_sp_priv_key() + env["IAS_CERT"] = await self.get_ias_root_certificate() env["ENCLAVE_SETTINGS"] = self.ra_settings env["ENCLAVE_SIG"] = await self.sig env["ENCLAVE_HOST"] = str(self.node.ip_address) @@ -394,5 +373,31 @@ async def __remote_attestation(self): # TODO: find a better way to do this await asyncio.sleep(2) logging.info("Done Remote Attestation of {}. Key: {}".format(self.name, key_arr)) + self.attested = True return key + + + async def __generate_sp_keys(self): + async with self.sp_lock: + priv = os.path.join(glob.BUILD_DIR, "private_key.pem") + pub = os.path.join(glob.BUILD_DIR, "public_key.pem") + ias_cert = os.path.join(glob.BUILD_DIR, "ias_root_ca.pem") + + # check if already generated in a previous run + if all(map(lambda x : os.path.exists(x), [priv, pub, ias_cert])): + return pub, priv, ias_cert + + cmd = "openssl" + + args_private = "genrsa -f4 -out {} 2048".format(priv).split() + args_public = "rsa -in {} -outform PEM -pubout -out {}".format(priv, pub).split() + + await tools.run_async_shell(cmd, *args_private) + await tools.run_async_shell(cmd, *args_public) + + cmd = "curl" + url = "https://certificates.trustedservices.intel.com/Intel_SGX_Attestation_RootCA.pem".split() + await tools.run_async(cmd, *url, output_file=ias_cert) + + return pub, priv, ias_cert diff --git a/reactivetools/nodes/native.py b/reactivetools/nodes/native.py index cc4a191..932cbd5 100644 --- a/reactivetools/nodes/native.py +++ b/reactivetools/nodes/native.py @@ -17,7 +17,7 @@ def load(node_dict): name = node_dict['name'] ip_address = ipaddress.ip_address(node_dict['ip_address']) reactive_port = node_dict['reactive_port'] - deploy_port = node_dict.get('deploy_port', reactive_port) + deploy_port = node_dict.get('deploy_port') or reactive_port module_id = node_dict.get('module_id') return NativeNode(name, ip_address, reactive_port, deploy_port, diff --git a/reactivetools/nodes/sancus.py b/reactivetools/nodes/sancus.py index d64757d..5725e51 100644 --- a/reactivetools/nodes/sancus.py +++ b/reactivetools/nodes/sancus.py @@ -39,7 +39,7 @@ def load(node_dict): vendor_key = parse_key(node_dict['vendor_key']) ip_address = ipaddress.ip_address(node_dict['ip_address']) reactive_port = node_dict['reactive_port'] - deploy_port = node_dict.get('deploy_port', reactive_port) + deploy_port = node_dict.get('deploy_port') or reactive_port return SancusNode(name, vendor_id, vendor_key, ip_address, reactive_port, deploy_port) @@ -88,7 +88,7 @@ async def deploy(self, module): .format(module.name, self.name)) symtab = res.message.payload[2:] - symtab_file = tools.create_tmp(suffix='.ld') + symtab_file = tools.create_tmp(suffix='.ld', dir=module.name) # aiofile for write operations is bugged (version 3.3.3) # I get a "bad file descriptor" error after writes. diff --git a/reactivetools/nodes/sgx.py b/reactivetools/nodes/sgx.py index 1b534ae..dde2709 100644 --- a/reactivetools/nodes/sgx.py +++ b/reactivetools/nodes/sgx.py @@ -33,7 +33,6 @@ async def deploy(self, module): async def set_key(self, module, conn_id, conn_io, encryption, key): assert module.node is self assert encryption in module.get_supported_encryption() - await module.deploy() io_id = await conn_io.get_index(module) nonce = module.nonce @@ -84,7 +83,7 @@ def load(node_dict): name = node_dict['name'] ip_address = ipaddress.ip_address(node_dict['ip_address']) reactive_port = node_dict['reactive_port'] - deploy_port = node_dict.get('deploy_port', reactive_port) + deploy_port = node_dict.get('deploy_port') or reactive_port module_id = node_dict.get('module_id') aesm_port = node_dict.get('aesm_port') diff --git a/reactivetools/periodic_event.py b/reactivetools/periodic_event.py index 5407c13..774be30 100644 --- a/reactivetools/periodic_event.py +++ b/reactivetools/periodic_event.py @@ -2,7 +2,9 @@ import logging class PeriodicEvent: - def __init__(self, module, entry, frequency, established): + def __init__(self, name, id, module, entry, frequency, established): + self.name = name + self.id = id self.module = module self.entry = entry self.frequency = frequency @@ -10,17 +12,26 @@ def __init__(self, module, entry, frequency, established): @staticmethod - def load(events_dict, config): - module = config.get_module(events_dict['module']) - entry = events_dict['entry'] - frequency = events_dict['frequency'] - established = events_dict.get('established') + def load(event_dict, config): + id = event_dict.get('id') + module = config.get_module(event_dict['module']) + entry = event_dict['entry'] + frequency = event_dict['frequency'] + established = event_dict.get('established') - return PeriodicEvent(module, entry, frequency, established) + if id is None: + id = config.events_current_id # incremental ID + config.events_current_id += 1 + + name = event_dict.get('name') or "event{}".format(id) + + return PeriodicEvent(name, id, module, entry, frequency, established) def dump(self): return { + "name": self.name, + "id": self.id, "module": self.module.name, "entry": self.entry, "frequency": self.frequency, diff --git a/reactivetools/rules/default/connection.yaml b/reactivetools/rules/default/connection.yaml index 3ad0642..fad83fe 100644 --- a/reactivetools/rules/default/connection.yaml +++ b/reactivetools/rules/default/connection.yaml @@ -23,23 +23,23 @@ direct or from_output->to_input or from_request->to_handler: (is_present(dict, "from_output") and is_present(dict, "to_input")) or (is_present(dict, "from_request") and is_present(dict, "to_handler")) -key present ONLY after deployment: - (not has_value(dict, "established", True) and not is_present(dict, "key")) or +key mandatory after establishment: + not has_value(dict, "established", True) or (has_value(dict, "established", True) and is_present(dict, "key")) -nonce present ONLY after deployment: - (not has_value(dict, "established", True) and not is_present(dict, "nonce")) or +nonce mandatory after establishment: + not has_value(dict, "established", True) or (has_value(dict, "established", True) and is_present(dict, "nonce")) -id present ONLY after deployment: - (not has_value(dict, "established", True) and not is_present(dict, "id")) or +id mandatory after establishment: + not has_value(dict, "established", True) or (has_value(dict, "established", True) and is_present(dict, "id")) -name mandatory after deployment: +name mandatory after establishment: not has_value(dict, "established", True) or (has_value(dict, "established", True) and is_present(dict, "name")) -direct mandatory after deployment: +direct mandatory after establishment: not has_value(dict, "established", True) or (has_value(dict, "established", True) and is_present(dict, "direct")) diff --git a/reactivetools/rules/default/module.yaml b/reactivetools/rules/default/module.yaml index 1673c47..28eab17 100644 --- a/reactivetools/rules/default/module.yaml +++ b/reactivetools/rules/default/module.yaml @@ -33,7 +33,8 @@ deployed must be a bool: not is_present(dict, "deployed") or (is_present(dict, "deployed") and isinstance(dict["deployed"], bool)) +attested must be a bool: + not is_present(dict, "attested") or + (is_present(dict, "attested") and isinstance(dict["attested"], bool)) + ## Other constraints ## -nonce required ONLY after deployment: - (not has_value(dict, "deployed", True) and not is_present(dict, "nonce")) or - (has_value(dict, "deployed", True) and is_present(dict, "nonce")) diff --git a/reactivetools/rules/default/node.yaml b/reactivetools/rules/default/node.yaml index fde81af..0d15302 100644 --- a/reactivetools/rules/default/node.yaml +++ b/reactivetools/rules/default/node.yaml @@ -26,3 +26,7 @@ ip_address must be a str: reactive_port must be a positive u16: is_positive_number(dict["reactive_port"]) + +deploy_port must be a positive u16: + not is_present(dict, "deploy_port") or + (is_present(dict, "deploy_port") and is_positive_number(dict["deploy_port"])) diff --git a/reactivetools/tools.py b/reactivetools/tools.py index d4578bf..1786aaa 100644 --- a/reactivetools/tools.py +++ b/reactivetools/tools.py @@ -6,6 +6,8 @@ import struct from enum import Enum +from . import glob + class ProcessRunError(Exception): def __init__(self, args, result): self.args = args @@ -103,14 +105,15 @@ async def run_async_shell(*args, env=None): raise ProcessRunError(args, result) -def create_tmp(suffix=''): - fd, path = tempfile.mkstemp(suffix=suffix) +def create_tmp(suffix='', dir=''): + dir = os.path.join(glob.BUILD_DIR, dir) + fd, path = tempfile.mkstemp(suffix=suffix, dir=dir) os.close(fd) return path def create_tmp_dir(): - return tempfile.mkdtemp() + return tempfile.mkdtemp(dir=glob.BUILD_DIR) def generate_key(length): From 21f1632497618e67853ba82139ce3748c9e343a4 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Tue, 20 Apr 2021 17:00:02 +0200 Subject: [PATCH 13/81] remove sleep instructions, remove sgx key() property --- reactivetools/modules/sgx.py | 17 ++++------------- reactivetools/nodes/native.py | 6 ------ reactivetools/nodes/sgx.py | 8 +------- 3 files changed, 5 insertions(+), 26 deletions(-) diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 3d182ca..df91fac 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -43,6 +43,7 @@ def __init__(self, name, node, priority, deployed, nonce, attested, vendor_key, self.__attest_fut = tools.init_future(key) self.__sp_keys_fut = asyncio.ensure_future(self.__generate_sp_keys()) + self.key = key self.vendor_key = vendor_key self.ra_settings = ra_settings self.features = [] if features is None else features @@ -134,10 +135,6 @@ async def requests(self): data = await self.data return data["requests"] - @property - async def key(self): - return await self.attest() - @property async def binary(self): @@ -181,7 +178,7 @@ async def attest(self): if self.__attest_fut is None: self.__attest_fut = asyncio.ensure_future(self.__attest()) - return await self.__attest_fut + await self.__attest_fut async def get_id(self): @@ -249,7 +246,7 @@ async def get_handler_id(self, handler): async def get_key(self): - return await self.key + return self.key @staticmethod @@ -367,16 +364,10 @@ async def __attest(self): key_arr = eval(out) # from string to array key = bytes(key_arr) # from array to bytes - # fix: give the module the time to change state - # If the EM is multithreaded, it may happen that we send a set_key - # command before the module is actually listening for new connections - # TODO: find a better way to do this - await asyncio.sleep(2) logging.info("Done Remote Attestation of {}. Key: {}".format(self.name, key_arr)) + self.key = key self.attested = True - return key - async def __generate_sp_keys(self): async with self.sp_lock: diff --git a/reactivetools/nodes/native.py b/reactivetools/nodes/native.py index 932cbd5..4cfc332 100644 --- a/reactivetools/nodes/native.py +++ b/reactivetools/nodes/native.py @@ -54,10 +54,4 @@ async def deploy(self, module): log='Deploying {} on {}'.format(module.name, self.name) ) - # fix: give time to load module. - # If the EM is multithreaded, it may happen that we send a set_key - # command before the module is actually loaded. Here, we wait to ensure - # that the module is running before doing anything else - # TODO: find a better way to do this - await asyncio.sleep(2) module.deployed = True diff --git a/reactivetools/nodes/sgx.py b/reactivetools/nodes/sgx.py index dde2709..3e68ce8 100644 --- a/reactivetools/nodes/sgx.py +++ b/reactivetools/nodes/sgx.py @@ -43,7 +43,7 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): tools.pack_int16(io_id) + \ tools.pack_int16(nonce) - cipher = await Encryption.AES.encrypt(await module.key, ad, key) + cipher = await Encryption.AES.encrypt(await module.get_key(), ad, key) payload = tools.pack_int16(module.id) + \ tools.pack_int16(ReactiveEntrypoint.SetKey) + \ @@ -128,10 +128,4 @@ async def deploy(self, module): log='Deploying {} on {}'.format(module.name, self.name) ) - # fix: give time to load module. - # If the EM is multithreaded, it may happen that we send a set_key - # command before the module is actually loaded. Here, we wait to ensure - # that the module is running before doing anything else - # TODO: find a better way to do this - await asyncio.sleep(2) module.deployed = True From 76a7d7ad3cd3dcc531c35402925199ad438db677 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Mon, 3 May 2021 11:49:58 +0200 Subject: [PATCH 14/81] Implement attest() function in Sancus (#8) * implement attest() in sancus * fix attest() * fix deps versions * fix * remove tag check in set_key * update rust-sgx-gen version --- reactivetools/modules/sancus.py | 6 +++- reactivetools/nodes/sancus.py | 50 ++++++++++++++++++++++++--------- setup.py | 4 +-- 3 files changed, 44 insertions(+), 16 deletions(-) diff --git a/reactivetools/modules/sancus.py b/reactivetools/modules/sancus.py index f966217..0741b11 100644 --- a/reactivetools/modules/sancus.py +++ b/reactivetools/modules/sancus.py @@ -29,6 +29,7 @@ def __init__(self, name, node, priority, deployed, nonce, attested, files, self.__build_fut = tools.init_future(binary) self.__deploy_fut = tools.init_future(id, symtab) self.__key_fut = tools.init_future(key) + self.__attest_fut = tools.init_future(attested if attested else None) @staticmethod @@ -112,7 +113,10 @@ async def deploy(self): async def attest(self): - raise Error("SancusModule::attest not implemented") + if self.__attest_fut is None: + self.__attest_fut = asyncio.ensure_future(self.node.attest(self)) + + return await self.__attest_fut async def get_id(self): diff --git a/reactivetools/nodes/sancus.py b/reactivetools/nodes/sancus.py index 5725e51..eb0bbe1 100644 --- a/reactivetools/nodes/sancus.py +++ b/reactivetools/nodes/sancus.py @@ -9,6 +9,7 @@ from .base import Node from .. import tools +from ..crypto import Encryption from ..dumpers import * from ..loaders import * @@ -99,6 +100,41 @@ async def deploy(self, module): return sm_id, symtab_file + async def attest(self, module): + assert module.node is self + + module_id, module_key = await asyncio.gather(module.id, module.key) + + challenge = tools.generate_key(16) + + # The payload format is [sm_id, entry_id, 16 bit nonce, index, wrapped(key), tag] + # where the tag includes the nonce and the index. + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(ReactiveEntrypoint.Attest) + \ + tools.pack_int16(len(challenge)) + \ + challenge + + command = CommandMessage(ReactiveCommand.Call, + Message(payload), + self.ip_address, + self.reactive_port) + + res = await self._send_reactive_command( + command, + log='Attesting {}'.format(module.name) + ) + + # The result format is [tag] where the tag is the challenge's MAC + challenge_response = res.message.payload + expected_tag = await Encryption.SPONGENT.mac(module_key, challenge) + + if challenge_response != expected_tag: + raise Error('Attestation of {} failed'.format(module.name)) + + logging.info("Attestation of {} succeeded".format(module.name)) + module.attested = True + + async def set_key(self, module, conn_id, conn_io, encryption, key): assert module.node is self assert encryption in module.get_supported_encryption() @@ -127,25 +163,13 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): self.ip_address, self.reactive_port) - res = await self._send_reactive_command( + await self._send_reactive_command( command, log='Setting key of {}:{} on {} to {}'.format( module.name, conn_io.name, self.name, binascii.hexlify(key).decode('ascii')) ) - # The result format is [tag] where the tag includes the nonce and result code - res_code = res.message.payload[:2] - res_code_enum = SetKeyResultCode(tools.unpack_int16(res_code)) - if res_code_enum != SetKeyResultCode.Ok: - raise Error("Received result code {}".format(str(res_code_enum))) - - set_key_tag = res.message.payload[2:] - expected_tag = await encryption.SPONGENT.mac(module_key, nonce + res_code) - - if set_key_tag != expected_tag: - raise Error('Module response has wrong tag') - async def connect(self, to_module, conn_id): module_id = await to_module.get_id() diff --git a/setup.py b/setup.py index b7d1ab0..48698ff 100644 --- a/setup.py +++ b/setup.py @@ -17,8 +17,8 @@ 'pyelftools==0.27', 'aiofile==3.3.3', 'pycryptodome==3.10.1', - 'reactive-net==0.1', - 'rust-sgx-gen==0.1', + 'reactive-net==0.2', + 'rust-sgx-gen==0.1.3', 'PyYAML==5.4.1' ], classifiers=[ From 43fb7bf740458132339b2a600814c61d5554cc3a Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Tue, 1 Jun 2021 12:38:16 +0200 Subject: [PATCH 15/81] Setup initial CI/CD workflow for master branch (#9) * add files for building docker image * add first workflow --- .dockerignore | 7 +++++ .github/workflows/ci.yml | 33 ++++++++++++++++++++++++ Dockerfile | 43 +++++++++++++++++++++++++++++++ Makefile | 9 +++++++ docker/scripts/install_edp.sh | 15 +++++++++++ docker/scripts/install_rust.sh | 13 ++++++++++ docker/scripts/install_sancus.sh | 32 +++++++++++++++++++++++ docker/sgx-attester | Bin 0 -> 5929096 bytes 8 files changed, 152 insertions(+) create mode 100644 .dockerignore create mode 100644 .github/workflows/ci.yml create mode 100644 Dockerfile create mode 100755 docker/scripts/install_edp.sh create mode 100755 docker/scripts/install_rust.sh create mode 100755 docker/scripts/install_sancus.sh create mode 100755 docker/sgx-attester diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e7e7b30 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +examples +reactive_tools.egg-info +.gitignore +add_new_architectures.md +AUTHORS +LICENSE +Makefile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..441e1a5 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,33 @@ +name: ci + +on: + push: + branches: + - 'master' + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - + name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - + name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Build and push + id: docker_build + uses: docker/build-push-action@v2 + with: + push: true + tags: gianlu33/reactive-tools:latest + - + name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0ec81ce --- /dev/null +++ b/Dockerfile @@ -0,0 +1,43 @@ +FROM ubuntu:18.04 + +WORKDIR /usr/src/install + +## Python ## +RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl python3.6 python3-distutils git make \ + && echo -e '#!/bin/bash\npython3.6 "$@"' > /usr/bin/python && chmod +x /usr/bin/python \ + && curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \ + && python get-pip.py + +## Rust ## +ENV RUSTUP_HOME=/usr/local/rustup \ + CARGO_HOME=/usr/local/cargo \ + PATH=/usr/local/cargo/bin:$PATH + +COPY docker/scripts/install_rust.sh . +RUN ./install_rust.sh + +## EDP ## +COPY docker/scripts/install_edp.sh . +RUN ./install_edp.sh + +ARG DUMMY1=0 + +## Sancus ## +ENV PYTHONPATH=\$PYTHONPATH:/usr/local/share/sancus-compiler/python/lib/ +ARG SANCUS_SECURITY=128 +ARG SANCUS_KEY=deadbeefcafebabec0defeeddefec8ed + +COPY docker/scripts/install_sancus.sh . +RUN ./install_sancus.sh $SANCUS_SECURITY $SANCUS_KEY + +## SGX attestation stuff ## +COPY docker/sgx-attester /bin/sgx-attester +RUN apt-get update && apt-get install -y --no-install-recommends clang gcc-multilib + +ARG DUMMY=0 + +## reactive-tools, finally ## +COPY . . +RUN pip install . && rm -rf /usr/src/install + +WORKDIR /usr/src/app diff --git a/Makefile b/Makefile index c4bbe16..41efd1a 100644 --- a/Makefile +++ b/Makefile @@ -24,3 +24,12 @@ run: pull: docker pull $(REPO):$(TAG) + +build: + docker build -t $(REPO):$(TAG) --build-arg DUMMY=$(shell date +%s) . + +push: login + docker push $(REPO):$(TAG) + +login: + docker login diff --git a/docker/scripts/install_edp.sh b/docker/scripts/install_edp.sh new file mode 100755 index 0000000..b697832 --- /dev/null +++ b/docker/scripts/install_edp.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -eux + +# add target +rustup default nightly +rustup target add x86_64-fortanix-unknown-sgx --toolchain nightly + +# Install utilities +apt-get update && apt-get install -y --no-install-recommends pkg-config libssl-dev protobuf-compiler +cargo install fortanix-sgx-tools sgxs-tools + +# Configure Cargo integration with EDP +mkdir -p $HOME/.cargo +echo -e '[target.x86_64-fortanix-unknown-sgx]\nrunner = "ftxsgx-runner-cargo"' >> $HOME/.cargo/config diff --git a/docker/scripts/install_rust.sh b/docker/scripts/install_rust.sh new file mode 100755 index 0000000..f3ecf4f --- /dev/null +++ b/docker/scripts/install_rust.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -eux + +apt-get update && apt-get install -y --no-install-recommends ca-certificates gcc libc6-dev wget + +url="https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init" +wget "$url" +chmod +x rustup-init +./rustup-init -y --no-modify-path --default-toolchain nightly +chmod -R a+w $RUSTUP_HOME $CARGO_HOME +apt-get remove -y --auto-remove wget +rm -rf /var/lib/apt/lists/* diff --git a/docker/scripts/install_sancus.sh b/docker/scripts/install_sancus.sh new file mode 100755 index 0000000..bc865b0 --- /dev/null +++ b/docker/scripts/install_sancus.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +set -eux + +function make_repo() { + cd $1 + mkdir build + cd build + cmake .. -DSECURITY=$2 -DMASTER_KEY=$3 + make + make install + cd .. + cd .. +} + +apt-get update && apt-get install -y make git lsb-release screen unzip + +export DEBIAN_FRONTEND=noninteractive + +git clone https://github.com/sancus-tee/sancus-main.git +cd sancus-main +make install_deps +make install SANCUS_SECURITY=$1 SANCUS_KEY=$2 + +# patch sancus-support and sancus-compiler +# TODO remove this as soon as these patches are merged into main repo +cd .. +git clone https://github.com/gianlu33/sancus-compiler.git +git clone https://github.com/gianlu33/sancus-support.git + +make_repo "sancus-compiler" $1 $2 +make_repo "sancus-support" $1 $2 diff --git a/docker/sgx-attester b/docker/sgx-attester new file mode 100755 index 0000000000000000000000000000000000000000..992cb23a2de163ae71db6dedb618579a311676bb GIT binary patch literal 5929096 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

MxE0~nc<{s5@R-2e%F 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

fq<(OEyr&rQh|pU6=z{cS)~lm}VagYuhWHLu}> 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≶84MLU3Qo-7EPU5 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

6K9J*i9rN5wyuTL_&GGAE#NfiRe!4bKO4v*FyP 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 z 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.QJ9 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

  • isV>oaMwR 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�Y24fN)cewArq0$# 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

    RNke$O$l|_`{k11i4bI^r$ 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≧1B+M!vrMNW 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
    q9vEz2}Id!!uN!_(=jVd>lg+%IA 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

    9Z-rLFaPRy(X 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

    MZn!92t3wQ+WcsdikyO)Gh~5ZI474%yJg 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 _hrZLVRi1? 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 A?EnA( literal 0 HcmV?d00001 From 06897cadf0c13ba21ff24399cce60bc908dcc47c Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Tue, 1 Jun 2021 15:24:24 +0200 Subject: [PATCH 16/81] update workflow (#11) --- .github/workflows/ci.yml | 48 ++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 441e1a5..77fac56 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,33 +1,29 @@ -name: ci - +name: Docker on: push: branches: - - 'master' - + - master + - fosdem-21 + schedule: + - cron: '0 0 1 */1 *' # Every month + pull_request: jobs: - docker: + build: runs-on: ubuntu-latest steps: + - + uses: actions/checkout@master + - + name: Build and push + id: docker_build + uses: elgohr/Publish-Docker-Github-Action@master + with: + name: gianlu33/reactive-tools + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + cache: ${{ github.event_name != 'schedule' }} + no_push: ${{ github.event_name == 'pull_request' }} + tag_names: true - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push - id: docker_build - uses: docker/build-push-action@v2 - with: - push: true - tags: gianlu33/reactive-tools:latest - - - name: Image digest - run: echo ${{ steps.docker_build.outputs.digest }} + name: Image tag and digest + run: echo Tag: ${{ steps.docker_build.outputs.tag }} Digest: ${{ steps.docker_build.outputs.digest }} From 52a1cb6787162edddad580be60baec9adf68b626 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Tue, 1 Jun 2021 15:53:10 +0200 Subject: [PATCH 17/81] Fix workflow (#12) --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 77fac56..10eb1ff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,6 +24,6 @@ jobs: cache: ${{ github.event_name != 'schedule' }} no_push: ${{ github.event_name == 'pull_request' }} tag_names: true - - - name: Image tag and digest - run: echo Tag: ${{ steps.docker_build.outputs.tag }} Digest: ${{ steps.docker_build.outputs.digest }} + - + name: Image tag and digest + run: echo Built image with tag ${{ steps.docker_build.outputs.tag }} and digest ${{ steps.docker_build.outputs.digest }} From 70761e5d45a8e41511984538e613b4fd70c22429 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Wed, 2 Jun 2021 11:43:37 +0200 Subject: [PATCH 18/81] Improve workflow, use "reactive-base" base image for Dockerfile (#14) --- .github/workflows/ci.yml | 29 +++++++++++++++------ .github/workflows/fosdem.yml | 32 +++++++++++++++++++++++ Dockerfile | 43 ++----------------------------- docker/scripts/install_edp.sh | 15 ----------- docker/scripts/install_rust.sh | 13 ---------- docker/scripts/install_sancus.sh | 32 ----------------------- docker/sgx-attester | Bin 5929096 -> 0 bytes 7 files changed, 55 insertions(+), 109 deletions(-) create mode 100644 .github/workflows/fosdem.yml delete mode 100755 docker/scripts/install_edp.sh delete mode 100755 docker/scripts/install_rust.sh delete mode 100755 docker/scripts/install_sancus.sh delete mode 100755 docker/sgx-attester diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 10eb1ff..76ff288 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,23 +7,36 @@ on: schedule: - cron: '0 0 1 */1 *' # Every month pull_request: + workflow_dispatch: # Allow manual triggering + +env: + REPO: gianlu33/reactive-tools + jobs: - build: + build-test-publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@master - - name: Build and push - id: docker_build - uses: elgohr/Publish-Docker-Github-Action@master + name: Build + id: build + uses: gianlu33/Publish-Docker-Github-Action@main with: - name: gianlu33/reactive-tools + name: ${{ env.REPO }} username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} cache: ${{ github.event_name != 'schedule' }} - no_push: ${{ github.event_name == 'pull_request' }} tag_names: true + no_push: true - - name: Image tag and digest - run: echo Built image with tag ${{ steps.docker_build.outputs.tag }} and digest ${{ steps.docker_build.outputs.digest }} + name: Test + run: | + docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false gianlu33/reactive-event-manager:latest + git clone https://github.com/gianlu33/authentic-execution.git + docker run --rm --network=host -v $(pwd)/authentic-execution:/usr/src/app/ ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools --verbose deploy --workspace demo native.json + - + name: Push + if: ${{ github.event_name != 'pull_request' }} + run: docker push ${{ env.REPO }}:${{ steps.build.outputs.tag }} diff --git a/.github/workflows/fosdem.yml b/.github/workflows/fosdem.yml new file mode 100644 index 0000000..7137bc6 --- /dev/null +++ b/.github/workflows/fosdem.yml @@ -0,0 +1,32 @@ +name: Fosdem +on: + schedule: + - cron: '0 0 1 */1 *' # Every month + workflow_dispatch: # Allow manual triggering + +env: + REPO: gianlu33/reactive-tools:fosdem + +jobs: + build-test-publish: + runs-on: ubuntu-latest + steps: + - + name: Login + run: docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Pull + run: git clone --branch fosdem-21 https://github.com/gianlu33/reactive-tools.git + - + name: Build + run: cd reactive-tools && docker build -t ${{ env.REPO }} . + - + name: Test + run: | + docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false gianlu33/reactive-event-manager:latest + git clone https://github.com/gianlu33/authentic-execution.git + docker run --rm --network=host -v $(pwd)/authentic-execution:/usr/src/app/ ${{ env.REPO }} reactive-tools --verbose deploy --workspace demo native.json + - + name: Push + run: docker push ${{ env.REPO }} diff --git a/Dockerfile b/Dockerfile index 0ec81ce..78fc463 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,43 +1,4 @@ -FROM ubuntu:18.04 +FROM gianlu33/reactive-base:latest -WORKDIR /usr/src/install - -## Python ## -RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl python3.6 python3-distutils git make \ - && echo -e '#!/bin/bash\npython3.6 "$@"' > /usr/bin/python && chmod +x /usr/bin/python \ - && curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \ - && python get-pip.py - -## Rust ## -ENV RUSTUP_HOME=/usr/local/rustup \ - CARGO_HOME=/usr/local/cargo \ - PATH=/usr/local/cargo/bin:$PATH - -COPY docker/scripts/install_rust.sh . -RUN ./install_rust.sh - -## EDP ## -COPY docker/scripts/install_edp.sh . -RUN ./install_edp.sh - -ARG DUMMY1=0 - -## Sancus ## -ENV PYTHONPATH=\$PYTHONPATH:/usr/local/share/sancus-compiler/python/lib/ -ARG SANCUS_SECURITY=128 -ARG SANCUS_KEY=deadbeefcafebabec0defeeddefec8ed - -COPY docker/scripts/install_sancus.sh . -RUN ./install_sancus.sh $SANCUS_SECURITY $SANCUS_KEY - -## SGX attestation stuff ## -COPY docker/sgx-attester /bin/sgx-attester -RUN apt-get update && apt-get install -y --no-install-recommends clang gcc-multilib - -ARG DUMMY=0 - -## reactive-tools, finally ## COPY . . -RUN pip install . && rm -rf /usr/src/install - -WORKDIR /usr/src/app +RUN pip install . diff --git a/docker/scripts/install_edp.sh b/docker/scripts/install_edp.sh deleted file mode 100755 index b697832..0000000 --- a/docker/scripts/install_edp.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -set -eux - -# add target -rustup default nightly -rustup target add x86_64-fortanix-unknown-sgx --toolchain nightly - -# Install utilities -apt-get update && apt-get install -y --no-install-recommends pkg-config libssl-dev protobuf-compiler -cargo install fortanix-sgx-tools sgxs-tools - -# Configure Cargo integration with EDP -mkdir -p $HOME/.cargo -echo -e '[target.x86_64-fortanix-unknown-sgx]\nrunner = "ftxsgx-runner-cargo"' >> $HOME/.cargo/config diff --git a/docker/scripts/install_rust.sh b/docker/scripts/install_rust.sh deleted file mode 100755 index f3ecf4f..0000000 --- a/docker/scripts/install_rust.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -set -eux - -apt-get update && apt-get install -y --no-install-recommends ca-certificates gcc libc6-dev wget - -url="https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init" -wget "$url" -chmod +x rustup-init -./rustup-init -y --no-modify-path --default-toolchain nightly -chmod -R a+w $RUSTUP_HOME $CARGO_HOME -apt-get remove -y --auto-remove wget -rm -rf /var/lib/apt/lists/* diff --git a/docker/scripts/install_sancus.sh b/docker/scripts/install_sancus.sh deleted file mode 100755 index bc865b0..0000000 --- a/docker/scripts/install_sancus.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -set -eux - -function make_repo() { - cd $1 - mkdir build - cd build - cmake .. -DSECURITY=$2 -DMASTER_KEY=$3 - make - make install - cd .. - cd .. -} - -apt-get update && apt-get install -y make git lsb-release screen unzip - -export DEBIAN_FRONTEND=noninteractive - -git clone https://github.com/sancus-tee/sancus-main.git -cd sancus-main -make install_deps -make install SANCUS_SECURITY=$1 SANCUS_KEY=$2 - -# patch sancus-support and sancus-compiler -# TODO remove this as soon as these patches are merged into main repo -cd .. -git clone https://github.com/gianlu33/sancus-compiler.git -git clone https://github.com/gianlu33/sancus-support.git - -make_repo "sancus-compiler" $1 $2 -make_repo "sancus-support" $1 $2 diff --git a/docker/sgx-attester b/docker/sgx-attester deleted file mode 100755 index 992cb23a2de163ae71db6dedb618579a311676bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5929096 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

    MxE0~nc<{s5@R-2e%F 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

    fq<(OEyr&rQh|pU6=z{cS)~lm}VagYuhWHLu}> zkbcTNJ}$yn4go!(d#t0sK>}kt(L4A7Fq;_J3LT6bfCOgJ1g0Sp2lmX~y2i1w0E|W@pYZ2QXFbvBRJQa39PPx})UO+5YM(tU zQ%=Rur?Edvk;DGR>jap{wXK1?C61EW`Z1RYA2m+ za)5`TogT8sjV5w?S<;+=bO0v$E-3lifG1PV0Sb@#q56d_u$esywSt@uPxy1ML>Hvs zTg26pR>i$0UCnNAEjv*5@S{12G9?x3e6w_at7F@f zk(U#grhA-i5>zZRyVCSg`$x*vKb(cjtLp&tPA!pRBiEn9Mi_O zK)iu5nk0Gkk8BqCX2*Hld&N#_@wspQ?MH))-fJm5^JnH%N%z8;ZDuYg+s&zV!h2on z+_fVBC)Tpq`d z=uy^!G~R1yBUc$}uJd!6ap1cxse{BFHskO+os-R(m4tctJER_2F(MfQ(7bNus4ErQ z!DtAA01sf+Yj8~rzer^#MvUphO;|@9swz=nAWBJrk0dZDi1hf!34MqK0%QmTj#3TN zje=<%0ERb|Xhu1@UprhbtA(Gb*g+2(MQ63<hW!ke zg)jahxn~9GcX6T-W>Kk#9Y9;JBqGOu!W0VZ04Gc(#xn+U1>6@%kV@|x)4vB!X2v1s z-RQAz4JG84WD!`mq=pKDYujW2Dcy?X>VDnIJGfBPM#=yy(%>CGK(q3{PoMI49DiUg zzpK!N&`*Z#JdpeAv)qvRAB-o^W>x=}^eHv}H=cl0Ur-U8 z|Gz|^azon{pL6<@&$Las&h#m>2I^C;mp~&-EA`}`0}o{8Sl(oQPtLTs{YP6Epx@}){RZ4lHq-A zGb+jO-nJR1XRfGjYdS-JXPjwD8ut1B4|R52IXSnf2c&dlT@eimZ=2odpsWZL7PbOPPeHX`Ek&bW=sJ38Y!D$poM*g@G;+)zQs<+cIE zjZGlm?_bs3>EOK2_kBK(eQ)Ir%vI>xk3*$Jk;%2dVR^h>W^L**;oB>qtn*wPsB8EN!lNT$I2W4;{3kx3tjri>u*Ko+M;p> z$xn1*@4sGU{Wx+Ijq#1XSAHCKo?J#BZat+NZ@sMB=-T5?yOy_7cb*(b)6ac%25)_> z6RGpboi_1S;m(sg=_vQLA-r*9!sM5A=jE?@<0tu)GLiTD$La?8m?(%R>UXtylOv{wR*GWcZ_sC}RClrN$pcuy%V6UK)=SbMCH+I_6szOu^VF z65!U)1Vu2iIb%qq{Zf=(p6@n&QR+5r>FZk8l>M`Zuf6Q!uRIpp$Gtoj*~fi67TU-C zJm&LA8+QfDcaf3XVCOVStiDh!hz_Z7xo{mv7-7gJ*=Lj2jzw3F+qAliTgEDNty{+R zMMHMEIk2f|Z9d7i+{j8&EwpzxtaQt^yJag~pAbwGf)@gB7EQVFWBIX^kLg2$V|K|F z{s!SzufUss8+zD_a&Nh@qt@P7V7?Xy-aKr5-W)l*f>g?fi7H$ac(d0}fYy;#&2$jIdm>@MDgCOq%25|su;!ZYkCS&U z@W!z(^!h*^I4*4AUKA~YxnW^wQFZi$Kxjopb@Zl{f#^-NjJbzK|9@UWz)sgoCO{}ap z6fAhh?eTH2U@@M@03Gau{vWD)YzOioLEpE03i?)%sVdO4@*p)xPm2yUPl&>9mkiLp zHA>3SwBl&$9O?R+-7+#h@}UV792{R20C@pCxV0$QV?(f@2~5?(MCHwa9v`|*>ke{# ziGYUE#()n-f9CdBgY?l@g~J0Gw(hqli+#(rZ?pf;krseQ;^^w7{ANj}|62jAtK*91r zkF^0caaq9kzA}xKtv2vi1bfi=>%htdIPV4-=uN8;5^`azu^#xpk^IougHyPG?a^54LWAUtztg11&6zrf6veztCqP|FJ z534Seib9$q$TG{QiP(KJ&Fia1Q7LL-Po!eO^MPUt z?aFsTcLVMj^8ftEUzS}(&YZfeXR<58Wwo6LI&&+}FsWY3_Rn-9h}k#Z#$CpKd?MKU zr=YwS+YD6=S|4tz>)5&_za;c){&}%rpJA+@t`7YN1j>K`f=_h8&@^c=y2k1 zcb8A#tKCl?ma+c1D`xhSho#m(HO}-2bp8Aq8k*cqJ~UT$#KipnvH~*qAMA>C%I049 zL{4NCMx`4id!_PXe=Wr)CAx*l`3wF}oE^Sz9bnx8>HTm>#x`I3hNFx0qzNEV8jd!l zUwVb3i_Irq zwA%j8FU8@|Tj`ggaOmyyOJO*)CjA0TovimB+#%^9IWJ>~r3^dK+Sg_$nhZh13*Dw~ zdxb}2o9*bFLsfa$JByMQ~z zF5pgP0msK)77VMnKCI%B9{@wnTJsxVj!HfP=4d^#n4?j@505B@nlr;A$muk^)PgxS zI{ftTh~ttU0K>k5`3*2VlaGKoUXS4sCjjQ0@Q7Z384w=Pn~(Ib8g*iHc>nN--z7f) zh8q~nZ-6-|`3RVk^%x#;O7uRh2H2}_oWWm!4hfGa1?b@Lh%$;)SfHmyhgXJ2oR<6m z(9@HT06io52+%Y27#{I^zzhwK=nI%XghycY4Rj z^enBM$Lk?^l}V_n#;y$$r)xh*@eLOfgEZH!nQLE6#x*qmFGm7_pN@ZMN9okMdJjw0 zvK`|hwcND!9nZgASAS@}QvZPUw$8_9EH3{0dV9*&EuuH_AM{I`#f+A*th#sM96)`t z&i>3eOo)^y)mtHN#>S^u=ED0-yoG|8n(bJ~!M9WfoepLqB3|N+`c$`3c8G5$7xORes)= zv^XQgVIKKhTADv^J#Pv8%=%lw`Tx7Vy%fm%(A0Hi59)O>s2gZ8tLqHhsq^F2?A4^s zD~``SAce{(K9rG=(4Wr|f+Z|Vq=*vKvE@}7hz1HtqsvW;SwZXayUE)%rGu{tO$TQ%<-{xo+s@wg{cz3!`f;ry;$B2R~6W#1Phh#F9>Oc=X10)t~W&E(|RT3IlaUt)r&n` zGEAjnc^6PE-j!!_gms~wkQffBYKcUgr}q>U1JQPvS3#0VF(a2$&@Ak&iM?8e6<_Wj zrFAN;B;m!ysvOH*hKbR_<&w0cP@MM9Q)}EvE_n=gRg;G_vb_0(nE}pry3r$1fVoAg z-S`%z+)y93ak%jd>{p6-A4Z#3e7R$;{#)Tz7k9h51E4ygq;Qnz05a_J})-u z?5tq#{Ukqh>Taka5y7=?tlRk)6^H@-X@|H)n=iXE*=8<}!esAj&tvn{%d}sO-|anj zm)hN4JHcH2)1vkt*!a=pxVX$qm~ZzkZn6n{m12|spAaQ5!O^52XIsDA)TK8xb!dEU;+av&Odb>3WqpTk%rKz^NdYP;QmG0m(&G%z{9beke>;_$4kPx!TQ+HX%h~%Gc@qwC$F3)n zq5IJC%C5y7mRIH$1N)7VVhwUTj=En~fLj>(IY5Ds7l#3NJ&{3kz-P2SvQf-6cgs-^Y>SCPQKidRQkUUe%!RfJ+%g;-S^8 zu~$n9d9lrGxC6x+%j-aq|Hg@(Wyntd67N!qrMN*zL>q2sA>-XZfmUuD5MMXZG$g}& zDOr@@v`Eiu3eu$1l^dGGoPBKs>5Qp<1gTW~uya~^{C=vgoU&BFGXyCW9~e_OpP63X zrs_NjS!PsUl4M4vXl))wkN^30+K7N%A?C#Lc3v!&Bn}V`4MmKS70d!OAaW%6JyeZ_ z90QdMQro3vi_lLDX*0!Wr(-$6IgB_$a5UkNK~N)%cvCIx+!z4S(DDTo`4_00g0KKI zy_yeg<)}MlUl!Am)362MCg}xt0H8bj88!N~<1`v&rYlz?K-RRtl{a~}(}bkPHm$W& z!@YloU^@i5P{1^BxMKEtnL^T2rOBDZyGCVE+PzFjk(!v%KAgJgCURjzAxd+z-|0;# zK+9-5u|UJ#F=jd;@FF#NBuViKfK5x1&0tFD#1*l5(yg-cFM zjo7d)^?NR#&%KaY&Y;D*-~m>+<>dE=wFASIr~Kg1yNQ2pXTa5j26&@*EYdBgfX)reNJ6kylATLO8<80< zZC-kS;7D3Fd)-txDJ)5QBvV+>EnS#F43W)I?@&so6`6xyspvAmHqqOJ0x zEcfM#gKEMB6Sk8ZeK*t-3WvE()QYkan3*aM`y0 z5gH3pdZ0-wJ#z!EXw4Ylo(~AdK4;P~{76qaXN)`>R^(zE&rJNv+}S#OO#axkalEp_ z0mkt>KBV*!S6E+IQiwh(5=V-ihL69P#2j(g|dBaT;FXx%`Zc{Y$f) zyZ@mgXp)&or^(pFBy}Xu@Q+{&{qhplgi$3adp<-7qJ)isw*`}rF;{W`3(-*;*sf%; zRLR>`)@cCs$0#PS0=8FC@3%@^8ob4On6lPB>ZLSyI$MO2LZZwFW*j^=L|Y_3ENsE9 zSB1A0?=xv<7eT52691*TNcAO}VA8kJzF_PrV>p=PUU*ZJa;j0(zeC+bkSx%(1f~sv z-rKP?15`%opOnd(j{_Shy%KGnACIMlzLu%t6_3 z5lzzWALZxLZ0LUrgoy$4vR#+{Uvw>H(QgvLd#eH8N}r$H(6s|^>BZmdy2Gnu;m7F& z`tDy)n7D^Z$@Zd4j9#UL7Ic)Ds1lP?eh|LvzyROJ>-#mS?^9Zy!5LXwI{#Vzz>KZW zpOn>na4Y`uJ+((fhm~UOml9a<1G~`4^>r+-iK1dq;H!$SU5}$=mbELY=yyYFF|b$Ub>LrGW@G?=NGz{_4{85{I@CMV!bf{NJG>yPHrI^~ z%Xjh8hIGA9Mm8+bKeR}fm2{YJg6VdBkIq*YY6q3%YX-jrn z4rE0yDhloK-NHXPrtWPWLVI#$)n(NgeJ=)PU`*lbIH5}t)s|39uRKy;uFzO+{ zFB;OBek(=JqLaw|?M8X9-D5P2ZN9QZ_)nhffiZF{7QvSs)ICTC(eU z2BP?tO>LIK`2)jUSo$N-Xb;mKFV5vlC^8%E8(lX2``Snlv zD*2Fwd`@QByG>b6PFX`^W=diR4j57seMTb(qv!!{uhszME>Bl8!wyU85DV}IG_1LJ zMGCZE+WGmzef#JN9G7^Z5wuvhB8vOtK+K9yP!(oqagE3dq4CPlIT~`xOr0K|3ur-0 zvj@%|wh{0Ck>-w9bpfLKf-I=_mJ;98+@$@pmfD-khZf&;L-|F$CSB`BIkr?UF@7ey zZum15we3Q86`oi-6g%=KZxO1OM&UK@;)doA6FkSKB2TJ%MM$o}{inru16jn7^oG~?65 z2*cQFc0-sei+3K#SDAXg1x#Np<)m8;XMvf2Q2_)}jHqLJxD&YS^?tNH{{Q8{v}dj-BDq9zMe8-kfX}`LS2_@?pLV=r%2w!dLY|;yx*vIWzx4^Zk*L zU3rY!$D+jdDSup5^fLGbQ(jRm+N?Ham2INc5c?+LYXV6u&e>0D>&g z3%%K#iB5KAOf8CayPZnIpGUT#GWnh59gN9Z8f7W zQ&a(0;Y~GA%0F_ZK0`gX_eXB|N@x1RJhKJwM*l6OPUvtjYA60ZbOfXOXlG7$_Q|`D z*O?zU&p7wOcI=g3n6qE7bw9%s0;`eW`-JNq3NwkeGut@dJ9ENz zS~Z>QRigZ`ivCy?txhp2adknKHN@W(ul^3+)FAdYa!y#Q)lYZgwk=p1DBnD4j5GCK z8lsy)xw6QRI)!)H={93HHd1zY?0$U+55haJEH`QXH(rj8l^?&4R$yG8K_j#{lcuk= z!f`3IFe%9?k*48%Xz)h|cha82FP4Qn>SrLazS?2boP3QDtK)3VrI|Gk74=M!g$zPx z`X+3VG|6lA!Xh%?H*X{?6wTuzgZ7&&o&c?~r^n7w*>KLv~_}t`1Q09j|99^ z6TB=)2t*gEs&~V+EFxlV0Rs)G5h+^9JJV%@1qp8{Z*rzj;+bneNX4?PB7A+Pag~wl zbC(b5z_&X(6I6f+`)znoI|_scwWk~b5MF+GP(DxLK?QEa!*=dyzjX{m=NPozgqEP9 ze1GW9PAuu9*AUtId6Lx}r=gBUC?8B8>FkDS;(aX7vrQ^z4-2jipk%s9Cvjw4A|HJw zpU)&|bsBzTT&C8YU-Mj5_GR;l43Y-8AeB~GlI@<25HS&)#mMqUCsmm>>LC)b$WpJv zoyHca+X&_tEao@0lXRZ&^1oR5di~$A310ff^m`B6?|-EbCs^VoG$~ci>kP}AkGJ;M zNa&|$ZZYMW;zvq4lJLB*bo4#6v~QbBjv(N9>R_K@nZ?azp|NhKQ9WJl1**NSUz=0+ ztuj^BR7PiBqK3;F?g|Dw?KK_^Z;eI|Uw%C5JTZuk-+3;RFOV0VIhf?fEB`+RpF z5E&#T3FNez^nH@}h*f2}zo0LID8sk2EPe4z`c8(vnffC{q({_Oyv)l&@w6%@ z4fMnuv+_*xq~UOQkl2or15d)@dBnp4e3PwbA+DxuAY45WBFXUAT&{n_5QJ{4A_F ztwb2GBeICpi4Dsp4TbjN(20t>AuuDCfsorl-kKsjZ|$-Z(=b-u(879kr_;EN*(9;f zxL8r67&iI3VQ=a^qPn*iC|~MK5AobO^im_P3+9p<(jn#NioEB|Bki#>XIS3A@P$3w zIddz(ePKy-U9 z*DrB9#47%U8@wq_`~tZ}1`y&>5iWNcUzFJkT47|}pF+w-*3|M&h8AbedSgMc2k9fx zN+4R7b<4|cbU=VjS6}10vWrtp5#pN|#q<17va@VsZ_uf;py6AU0zsv*RaYOk9O_u-X?=%e6b$2~H($LqVlYV`n5QEA?pN9ojmG($79hcKJj$K2Ln(_Y zmcmY}ph1+ivRm%mQb|W6z`3{elgRqAeDtqrjWgE>>9{6t>fO?w_9jQh4W--}vpi45 z*h(x)3}9%dTjtRT@pIL(hiP!Mdt_0hOZ38adog17Ny{iF%{R=m1U1a*WUFn8nw zn12uE_?K;Y_&YGao^>}oe1m|LG>BKx;_*HLv69b#7=&s7#LwDt`GI~)F_v!dHUmO4 zI>j!u#nwM52Ik_ppWInK1d=|xhP z=1F(MlTyPI@}6Y!B=kkT)9^aeRZ62Yyub@IZlP^7rMJa>XD05WGH~BAB-IZ@;br#2 zp~4COQ+;71;sRi&xp$ekcbT~N7cBsc0RrNi#Q*X7e5;l1IaanG8^!nG466*L-uGFO zsfmx6OUiZ_kD$!rvUd_kYXJ4$D#c68IYwhuE&(tldzixXjgvF_MjmsX&FF0x%(WbEOjFza#FiMnKrShZ|p-Z5tI`Vn^r3|tl zqZ%>{*w|#2I$yZanu*?qF>L3tF;{4=Jhd#SLjy3kurvKAuy7{hPCTLHUvS6f-pi4t zmMyI=e?ftae_QqSHG47f9@q&<*&{pCLmq9%A<2AJO!Kn5)gN2hE*K&CHMGsg!y7%1 z8)G{-)0@F)R;}*4Tb?}{tHEjbkWc=o5p%8GHy&bIf|-x&K_C9wO~ZC(Jxx*ESi@iR z9y*Jf|D>oJx;>xA$8hXxPq@@Y0NGLG_PXy{X0C@ge`s=|BA+xUSbWAABZ$s#bin@&vN{s zs(hcfA17@Rd{0djieA$9zwzC_qADM87fE+olCFa! zH1+BXqP)u>DLFpB_sWXXjk%S`P=9EF2Y~KQ<1h%M&lC;q=ZYB&*vF2sy%mVQR!qm? z`;v|geV$#<&9;Xvazk5o!L>uo+dD3yp!*9ubpL(6=$6-Wzeq=jO{1UuK$@zmW?WTc%ZhsONB^nWr~%|z z&R2fF0!h@4z{H8N>`UF~OZEKh)eTPm$`4-FNLl(6T~RTSACbX&71Dov9-piu7~a{o z9^ZIbIf9Up=;ZMn&U=&Q6Z$^H)DNtfUa!jh=QU8q42Gk7Q-J+748o6fb>1EPKqHT| z9*;G{v;jS2BHgLBK2}d%f8<5UMEoSFEj8PF@qI(}c{i)cQPQ; z^5Q!>EibDW_i1@)c#-Gc>!KT=i5B7DZh)IuMHhw~S_ zqivHG52Z;xg;n$#hIn%}LgB)!2o2K3bV<2if4dn6iD%3w+a8Gou(mPn(T3Xut6BSF zXl%jyFZy;2u%m;D9($>OuDU&4W@z5Yi!g{&SGx( zJKH`2w`HFeyp4bFMd=ldeQ1lCW7G!pU1@ER_x}KWH2_S}N4Kqhk5+EPIyC!}$@cug zmj7Rszc-_Nx;@@~RI_tL#@4c#9~w`y{4KM7r>g|x{tOu497$zETH+FexI+DLip6;< z<&lHm)22B1+7uofDGSow-KzXCl9*sX@A)|y1 z6Z;7c%=40EVPgO(xhzwew{-Jl_*pt{@Nx684nN#vSQ)aJ~hq<=) zIMp7TQM;9Y!vSK%fIYKQK^YsikBxn2+LK65N+cfSS$m=vu?CXDy}@i`jbIA3yNx(Q z8Rc$t>L~ged7Ui_m~!o96DD^b@xfv$rS>14hGxCRhM^Xi_}nRbvMSJC(?3MzCg&+T zNwJVlPg1?Y!JNAKwKrJ0ERyp{EKy?zbt&vRqr+c^yr zF||YcnX?}~LJxc?KU@#_PUFKTn*L&jH`B4%rmv2=eXFAtSOtW(yS)=`Y@P(!^?mD| ze}V2KgVF5GFb|8<47r?Oat{%oeEe}j8yIz|9pPg>g~yzDX3n~LSXyZAJq&o};HzyS zKWEIofynckd6#Du+9@~MFbYw$m}O6@XfPT8njevvsSp!4_L4$2l7bPJ*TFlJt4)&#mY~U#2)uxt>mbaE zAD@9^0X5)Lz2wT~tjF~1kV^g`E+s@^~8v&0#;+|#z4lPuRy znkCg+Q&q0BE%y&>80h%MweU{L?A0+U_Z5pXxP)CndRc7;FD@2KUzZJPDP#qpxUO7(Z%~_uesFtC?hbEf$<)aW6wI`KfnLu{m!HP6cSW7+T`(QD7OvW$4-z zJ4ZlIx+O(K2PI)FXUMfqepeVX(CBS5ILqD%#ya1}oC}&b=BAON_zTQ6kmAhA>ff1g zt!*1vZp`MEiu*MwK*@$7RB$R+(w}SBKtS|0{h(Mne#o3WfqExUsq!el#81l5BS~#&{5F}$$LR+%?Gts3i-&6IHGKw*SH#k$DMhk-{+iCop zJW>kr@GYZ#r^CGKvLXGA!7>OF@v9_y$-(HIgUlLivAUu_Y;spOl1R?2HfH2a6q|nc zM@MuW?T=O$vCR`!_yMse+VH!KD3h=yQ;`Uj<*S{$$AF*B$Gb1k-yfZO&eh-D&OHP9 zTN$m+hA7W+vo|DR2u#kPh-(48!{0VUVRcm#bhR~~a1k~WV%_#s89A6Jb3=OWL(mh?>CC|TL_ zxTY=nk;Ue*q+s#6vC5u3{gDqKi4E7>lBx!RS;jHws-tx^kq^Ar->12eX6S$CZGD)SqxJIb=|yGpT6{+16@oY3IhyjqrkiNLu5%LJy86Okkc@sB9Q zQNeV_4@S08zcv1gM@6S-uTfUTeDLD;aT;Fcp(;9}6EpsJHX-XeRP~#PD|0wKXoqFX z3R4MLg+82a-e6b4JOcldTyUYitZ(sOu#S!mELt&83n&U+Rp^BNPUmp$k0swwW@(-M zJJ^|1eH@>%!{-(`jW1(6hz&G#6B9oz$e{&s9|JcHftIUW!(hlrpgP4ONyW=?-04OwvLT)sd?6cjTqy*TyQa+xSQA+(q$-5~T7&`*9 zhlwznyPmTuNjrK3zOqHR{ceXd61iw!ZRr51GqeErJmAJ10c2#T8v%9>z~-OAYf49Y zoeMAx7S>Ngg`Bz_!s*1nY~9Bgkm2!xs{ybBpw$#R|*wJ|C;scpGYULVS7!Dc!&dM*?FKqmUIo#9`y^Zms9`6Zg= z7qyZxl{Hop{E5xRg89`C_;3dJ1u&gJ(WWqeyk%0>?d{~a%8n5(SIUZS&seL`0Si~8 zCZwg`88Mk`C-g^E_N=zHz^ruHhiuuGKQM&cLRn1$KW0t>U#$dxjV-t3OH=OLWVypN zCnjaUTcC2TEjRjGQ|{PgxuY`S-LG=Rw%k9lqv(e{6&CMWH7Nz}M#|AukJ%z0Py`X; zp0;>Ps+4ywMdtU)6uO7nVNWjE*3uHXqlh*2bBt@_q$^vs(3nnIrB|WmQ>cjt)a<0hw4KJ#wM_0yQqT>bD3Yu|Pi&g|u(mOQ5Vg7=B%@;kGeYV#@@cGSA| zcmx97djpEuha&*>>dfhYlPJ6C^L*}ka^{>%I27)F@awG#BQ1$%mcaV~ykGNt;kF9V@3cd-}T$$Cc{UdNLPD}yVIjO-sESew_nJBdVyE+euoKsBRGvmyX6n^;+4aBUrVP0)q3ED>y7RE`F~A3s zR~`EU8I)24b1 zKWzVt#+&p!CnnKlc@Gi;l~^a|U4J_|8tf=f#l{pu|`P|WAx!B3hM zn{dWzeIMFQe9K6v;;Ez4Fbnc{!bho%D&W6jC1|$bZ_Vfw;D>>qIE_#&Ds-=Vm%@YX zd~+>@>BIXnihCDRSn6#@y>@!Rd2<&qMJE?26!sdPG5VawOL(Bv_!afDAw;}NykpzB z$%5`=K`+PzodsysZkWJYivAqTc6$^4-^%hW?6>g^ofnARmREZkKaR|EeLn_4sY3; zV(~6r1&T}@m(n^mcwZ{cT-Oa@uScw75p@s}?RVno+% zGASR}-sN1Pw}~HgN{8=Dsv`>?qE2Eb4s}{o!}1vhmGw0Yx<0c-J(Dd;#lJjTpHq7% zZSmC|oQ#F>_Z^HdJ#QiX!9x1x_w>|H=!uM;+O*)no_cm)x~J9>OJ?;Ko~luVlD_6FC{}XZour5BySNw}@z5R^l*A(^N~-a0~A5nc#*b!PzmvfklR;KYTM}h^6NMJTTE}-+0)J}mVaQI}X z)d9pr{HsiAUqk>TFmBZP$maGn8=^I4H- zKRs0y{)dih&}H(YOTfKn&%t#<7nXfWm=C9pF+3pQU#HPIyE8fm8F?&@Ec|mzOAE0F zd9U+ZR^l!KvM?EPm^3Ek;E!6A!-}F{w>y?BiTz8ItyGrmW{7B9<;MEt)Q%!N$)vgX zluT1{0`)V;-N9H6M(_`0Fvky-a6+dD9X6Ph5dGMu4Xw!bj)a6Uql4xBOC~JNu(91p zbJD(++d|Qt+3b!dR$2Gtp{vXw{qR&fNatn_mh zI6Q74DvI^REUG_ft3Ph5->mA1w$-osP4&}StBLIsbv)gM7nwMl) zi1mp~#3zDaMLLxPd|Qn_A6gvb&M|tz-_P*k_%c{o zjkZt8g146;kaT?Xv}LkY<_{TVuwr|8@3of8v*kW6rQFcA=RBj5y*KYaZZ{EWj^hq zlnpaz$kR*}%losXv>wRuUSdR2j|00F*onJW8$fj9eS(=8DY#(|+h1BmxEP5UUAo`6dG7uTMc48Hgl3tj0k-h#&=U1ZHo z4}7BD@yxsN!>I@U3&5Yjf%AmAS0?Ji3~J-^8~|#6XksVKk|&tKtNUF+0=0*D3dAO| zK*pflp>s_(XNy-)J7rp8oN9nm^hS!NLUbgce>yp}v(zw$pP)>J3q&nA$#}-Z@tr9N z@k;5O`NJ|vyYnYx<5{*0srdtDDm6pYRJEy@9kqi-C8pSN-&+h9Q!c&?6_si`J#-(P zbKWZy9nEPo^V?LtjXYJh zQu{}$D@eN7jSWVHb5@e@Q)lWij0z4YB;zv762p7JL{_XY5pu*`ISm&Y*_-I|W>>2x zS!r;SUs#;&m9Zx2Cjt(Kaw<1jOY0U@{-`ZK#!<1Y+B^M+wAvf} zA-VM#3Jb|Bx~9t@%;wLy6tHsKYxIpuRbm!Z`Bum z&TQ?C1Pk{jUb0KmN37t@JrSsW*qLU|NpvJwzqU5fgZf=TC>eA`Upla9qg%1w309p1 zrK_v<2Xy9;7$2=X4`Y(bmP5CAT+BLYISNll-vA?D9LncFHqPq&;-qOlD>KKxGnFoS>JMuY2UD>WbVqPo8= zKi+x)eoR@O#c)Whv!x%m%zsv;pJ>bcM=0HPU|(;LnaO6Rt=`AddY!62!$g_UcbBPp z8(RCc(t5tFKG1f@?^OMRwp!^JRqvIlkhg71H}w!({j8S_TeqG-^#vK~magCOe7fsB zEB8Jt_iw83k!?d|UZHSXzs*XU{5C@7q?Rl&d-; zs8tKKH`R@d^|93_TkEHts@Js@=so{3z5D>Aw!C9nx`l-mjQXgj-RoW7X8bUPGMK%k z)N0$^vznRf7gz`bY)?H1g!m!Sk4aX0F{&lb-f7UB&a@4hTU1CPsi{Ip-Z(*TBlo8R zJvl~4TO3;VQ2jJj*V;0p`U$_O{>!)N>WACv179$5|8oh||J|0M-apfFziopdbsX)9 zXWMyZF*RCo!46Du?=`BRqrS79{Fs0aZwvH3O0-ptS3*!x3;?nRt8CMi&XY*KW>y5D7-E%DUcD5af z-#r7`HUs$$FU_vc*O?|xW{!nJudDj>wqpCDs<)wfa%=S`Z1r2Mh)hy-ukB<}^PB1e zY;`qS@o9+dWs{UTv>Se#F-tvthUe!yeo?PthvR%BVM?u#4Mv&tH1kaky+x`K! zF7scW_&sAZW##3|?=~9_8|yGJb4S|#TF875kMK+44n9KO)_Dx9CS0sM*!Yy5E)ZoeT6CIbA-dnuTNVAl=*ndgw5CtE1u{89zx^7!BAosK#v7i6%fxY?S z*W#xJeB!+|X?}LG{QM^%NH<+7FWjk_#Pxcc#Au5@#;w5$m#2R&Ff! zXm*ot8EvisQ+y3hqR0`}Nwlo)mTD-jaebG{1pWiI9>VdfL~>)RJMbGU=Nj)9^q_KG zah0(>!$b0@deEujv#PO*8q{9Eb5gmJT9CB5c(c6^pE9|wQv3NiR`1NBs1~y8S~b@< z-bv!}g8C2@W{M_(UPOWBCzJR%05{Q|535b)pL0WRDgZpImV_p64l_?*^HgD;K9NuR zO;^vPpd&x2viL>z4Tp7wZq#uj>oi#*J5GbD2BQbLk@bPd&%xd+*&oH>d^KO$y*rHm z{p4NKBH|z-@5U7@aT+{9ox3U6d$n8su5*v_47pK12XPkFa-=I>&%3VOB25KH&DMjX z@oPQ>aF}uuD8O1$#4RlpLt$qFzX729f7F_~A%R%#VQ%zgQN<$K0n#e%e~}#sErJVI zJI9ksNWr??S6Q~WU=JBq!WWh}+B)V>!#lN)8h$5r)&e_BkLJ(t_-9fq8v4q}^VZXd z=dHY$HJH8>{AX{=sCo5_mNAJ-U{0#vn&f9)NnQGRBhMVLhd2Xd#}i79p`DB0nF*;)ieWNAE;G8u;`8%WQiBST7ZPISTzC0BcuU{Bn`*OXk5 zay;n5UafVRiA8WCIXc@8fWnj z+tx9e(v&}FJcUiR!=XMLR;chc8!We@eJ;D4h2+(2u1q$Rbcqh?v}3BGWjGwN5vnAs zPl%P#&^%u2`?9<|mG}CIq`7JA#Zz<`u9VG@`*bpy6ddiwMMBef^nx6`*JzS7LuW+J zV&xqZH~F2v+!Em}e;f)|gw!kgk4HH>^rII|Ym+EA6HgTl_?sXvDpUk=2}A|JX}rqN5Ps+69@%e54Rxh7Kkd5m>ep8_OqI{6jm0jRLLA}qlZrqSfCQV*+s^oLkM=X ziy{e9ayys)RN4f##B{tI0ivLZ2y}aMS>7@?w6CW#?N17?vrIbNE@wMJz;)R$CjMv! z72d0oP|~%=ZY7`19bJP5M53SZ#a@0M#L?CBx^k0LWh8tB23Ta~)%;5}5;rRr-G-)z zO;$X%D(@~PmP#?{Mf@dlJxs^JaqV3C*^il#&qNnFuWMvbkw~nLT_Zj<6hU7x%)Uxq zS_PRBEt_JN*V&Lcs7BG|RoO(FEAgRuIfNIjli}hu$NI@fytmkYF;|sw^sE{+SP~#> z(DXklb%Vh*`8aT$1}>8Wa)*4Z>kO{lX!PLJwXfAaPW$x*JE=__D}p+lib-6n$F zetxcYX@FkNjO1#W)XzZjY)o93! zy6AZ|C~P;^=1$v1}KAx*l+uFg(Z zy$)K;+Bs5McNq0xxzBWoGpB&@cwwGT`^TK@|B=&xa*pRaGhRj)24f|qk`sb*kdw#w zLLObVKha3Dc%gIi%v?lwt-_84@u`xT5@EDGhE1&7W0aW^#lu#Aws-j>EiHrC8|azs zCu=wnaoCi59B2B?1PTSXaWr-vGH@4<@4d5 zQbfb#x4VbIZ-VF=NALvQf3QMy0#qa4Yce@E=zmbip?&O`70_7O7PK+OauIV>YeHn5)kL zhSi!4Pw|VaJ&-Ui8HO93#?6PA)?LJWN@VK>-q5ui+EXwpYm%{9wPk_W1fp6i+vla$ zFOKfFHmee?L&kFLw6APs!TMnNa^h0Q+PKuQic6geIEgy2vJwyMOSJ=n%aVRge64gq zOR588T+G1Bs^Gq2@9JYsMsM<=Jp+I&P6Gjgx5w?9QrOV(HPvH(0pi3X4I7JrsA*&p zDls*PTjS>7=_!CW{mOv^gy>>U1LQ4{T5F(&ve-60CnHa{6aApOu!;jQm_u+7NU^kA zW{MUCFf4N#*5M3Mnx1GcLSLustDj*U3{R>TW&zDcT%YkA zC*lu?P%%htKSUjVF=3*8h1aMe(V~JZ-%ZzTMys*&>|{ zQI_{qe|Z1G(-!CdO@c06$Qp@`#Khb`I%mciS~8(%u#! zBJ5@iuIqIlZ26=AP?oQ+PQ^fGAL}bUF~mT5Sb`qs8@+YjT~g zyJq&Bu*w)=>)C*W{z+m?1hQ%L^Y~d)5)6OVBJ8bBdBTyMI)t)KgWg zFNgJjxK6Ix7vWlK?|RdKV}yI`8p8cGkesAkV~2Tx*a$1w6-+%6?7sXBq74F}dE;fA zIF0l4C6e$jWRzwtq!Y8;4P11sTVk-(IJLv&8oKSp8O&8XJH1B>O`M+`e4J;al+$oN zSV`O&h|~)tdXP*5>vl;85yU=CmlE#8&yr2_$1$RQGA(0t6j;pOZKEHkxhfv9HJY z&yeXo_aM{hO$*8N%5@ns-4iFg&69Ao;3(l#;-~L3t5`_^f z_Z@#z^Q)xZX`F`GGJF+2eFu*#LNCE$!{uj9$5j~fnZa`sv|>ef%fd??%UdB#GFj6K zWeox{X0)^-oHg^Y{^FM;9~!GVa%wkYuAukoCuJ+c@gjc3Tw!=MInz8|>icJptlQSS zCBuc2xQS+f?cFDgm*$^Gqv`R|9Fehz@v7+PL5`#V#EQ(k6WUOuSEx%+jHRVqQ84j=bO*UB@e+Vg)%RPd^E&Agn%jAAKB1SqgbKq zm|)@ACTuCVd<6D#T8ehwZGt-e<%5gO((9gaw9Maca4+YcOL$^LCml=AWY>1|?-<;N zRiqfs{T3Zb++BF0)3BCalcs%xWeHmFXmuKDK)MyGoQA{n5W)}H;P9l9|F$J@J+7?}x!0A|<`S9>A;AUYdnIV4q|Vi9H^gN#$zgpD2WWEVz87VR(nJR~`L>tdo65 z80%!A6$}nLwhG1}G*S!%()bAX?FeAR9*&RZga)N^I6945s8}lQ1puu3U%&zUae&7; zWSfS`jQB>Bf#BO}q;iloQ~#`DT{B0^gA__nlJ7Mip#R@wevTK@9#EW3-PUn4o zLsTR=?42zB)@0H(X;sEt@=+qq-?Slnv4y%-s=X2+NbJz8h2#&UM}(GmXXv@3CbC@P zz-um%DXpCNWJLPd65k%v0g|#HDSmn8z&<*XYUZoh%faaNc=@>VE?y6b1eO;DNYvp* zW|!#QD{HT7@xJ%|hkRLPk*1NdP=2^^&Q0x|gY{>KT!w{uDCVJ952ZYm>Y;*%3Ox+t zVVEAS;Nc2A)bLQl!*n6Sv8g|9^g-DcZe*tZcp-L?=!etoTyO@SOtjQ9Xo0krIzMdZ zf)(}3*C3X+=G9Ad)m(%URnX^l+DZ=sZGfF8zQGR}e+AW%f`ulL<4+m4FX8svod``3 zK?3_jt(k z<}J~Nt<$iI0w&PdC5g64jDuO@&HtS`6xan4fp-ClQ-o^l@Z{$TEx7{qdPh;VbI%4q z_(Snw@Fmx2SYiM|B(-xaWqZ2=WNQXx3}M%)TqdK6o5Z|MW~buDLdKEPcmfLna|K5= zTdC5ATsvy{|C+$;%K#IM%u`lNZ)=S4rF-5e+t-$jsO*xAvfe+YsRNQo78?%<_k7TH zm|8c3nhU8JzeUoXPhSNh-#6E*3F7Ke8m}XF7zB4&z1vF&GP^I;Z|8u=^jjhb5+EFp zDrF$->}I6rN-00+lJfJqP}WYz+rZmuaWQWvF30Gic1U>6qxTbsd~H4qLJH$2i_9x+ zi?37(B@;}%`im9DK=j@kdM7#6MLW1rSo=YoG!0;F^d zQ~3nucMB;SgCl_a01G~)v%tKIjo-Gj!t$jVTI;y441nA1?DjY6#)ra_6zN`^>QBIh?%!j|~Lpy!g#s{Ik zhU>u-`Bn@j>DRvM-FJ5eb~bxK>$uf3~15JE__c%00V}WJxAz6TVCG2Bss%k zeIhx&tbx@-kK8 zU(oCfV%AKhd4nmNo_PPZI73u+eZhKC`EB!R!5{w$+$M;ix7sxTc}`5S27Hk|=z`kB z_4Y%1eYi*;#@G)#gng{23fK={>BDGsd|y78q1<>5^B;Cc5!$u!G&>jGCvmt7#P&vD zD~)RzD70wv!39|(nO3gMXq2~S3U=Y;qYR5>Je*D&Xuxek*G}m2?1yXgVTk%{9%ALa z((=8E4b|6uBJ&Bpwnl_XsOp=NtN}yf)6WgqV^scPmA}ObXBX&&v`R>eBLrz?dsnH} zHMUXHY>ynHLgg8S5RZNon?EwMM+#DC)tYe@t>)ACIB{j441rkQR10y9w8C7JMQSty zF;P#wi>$)yCfS&vdfKOgM{U-biTh|n>sm#2sl5;K0~_Y_^N8UK8IvgZeZ+P=1Ceg@ zrkXZ^9WpPp@ZtCkiMmU!U|ve6nkK-9`{CfY8*NM{X@1MRkIFZuX*;RNXkT~A3Nz83 zvv5Bqel^>#i?Cjo2b#Xi;i~6T&GjOI@(-M;{Zzim>*(*xIgG{)fYNfRM9CbM2O{rj zRowVGU)e}H9VXr5(E6j<;0ctka2j9WhtyE;zI@%z>2L5+hn+ZISaL-$@}oaqN{e(w zHXHNimdGHRL#19NI|)p|eYjaRnY~CgPF6%qDW_kxZj8R9-RI~$?L^yrX_r5#U23+G zMC2*+1(^h5C08)8Cs8-DgNLh2t~6&~L_|1Pas&pey&1Fa&y}ZMU2;Ta*{?F@*xD6= zvAfTfW~(gtPbC(2zB6Z&KlF1cuN^NbIWqF`&W{V;)rrZbUyt!eHtl@ZT`^Uem4vwL z9pguUQ>S-#=JY?fvd3pVHW%#ohfgOHd0mY%S-9m7sPqKR?>}6kj!oy0b{g05N*IJ> zATtbNrW?IimYB|oH@?I}*(Pqk?87XWUWcT9ul>@Ej>$Ji%H0V28MzcnWSf$ek^)n% zc{APip;SP3x{YzQm1omwHomj-okog}G_g*%P?_RqYO3O1OVt`ktyFPu%j9HX1vypO z!jn|0kW$T0crX3>J>4@VKT(6;Owud)m+%wdH)U&>2L0dp;BRK5*yMvJ0tzRA-8Npt z%nvbV2+bL6u^2t;jf4_ulsj3i=!#3H@k^QSkO+3$oj}telGi7;6>)-Hq6i!uSU**3$tp^!1{Ef11nHwwOkT= zJF9COY1nWJ#qE8xgT{yE3kZnl_q+KnX9c|Ju^aK@E+1ivnhfKb2FDbuqQW^k&gYS1 zt@<~0LnUDf+%@v&zAfi-cdp<)Oh>ACfT+3?2L? z({-~u*uA)GQrv(I!RYux82#++wBF9UXYMm*&9xNvk5pjrxQyZf-!`wa1RMIvx%ca@ z`4Yp^sdB0RvdZYZWLCaQ?=&!u14ev&M)m4gU5>eRjDvnQS0BgZy*@$?rO^tM+fskn zut#q^`s@##cqICWG6d7!pd~~suhF(@VS(};HO1x7YjwkTAN<(@rC?X9EbgaZ{N@a5 zDx+>E+WtHxxy+P7far4pS48Liu2ysm_=3J)>gU}}Z)DY00;-1vbuOS7cW>jbOAP~W z9AH*dX_0GamiLWXVO`%dX#9Dx8wRxJaDQH9)OhE~Zd7|F@O&2Do_qsuFOzl}UiTzC zE8zx0J0Rpn=gA|lHS@*j8pf^MY5R@nwaQfOsQ~Y9fj3u8+t})AwoxfLio3SI1yw@yt{+{rNyx94>!y`yP{faQV zk;UG_f*~hLz_$((p3gE;y|BG_N1SL}iEUDJcppqqfJjSi_h9t&5-z-~3Qx{e=0pT3 zr`pG5ks+zQ>fT?k2+0nijaUFC{VlEFsGN7(%O+yH1IAxuS$q|+Q~LoZmjFmp8kZ(t z2eMY1N(WzcAH(S;q%cBkOFv}^ow8JOOU6u^hQ};1{xKVEsYKq9WzBEME?ZE~mU8pU zGgqKHs970V)BKd#525_1_e{CjsrOx^TA*Hoc{hVIZxfa$q(0h?E;^IFq7=PpTP+xU zTzN*J|DU(X&&vHm<~opv(U4|wsOvzU;KgZ(@NXzlVD{Pi7a9qep>?$qtbpSzaHPNk z?qa}6;U#`#0wx~R(o+d1DSMFU*`}_-u#?CTN2#u8rRGSgtBycK>%&M^Xje`hPUnk4sQr-BU+GK`hp_}tY zikLe@o_6@6#%zn;S4^Xly92>kpMwt!Jq^9?(c~s^I*2`(EM;q3cbJ%_s<0Q#< z!j^x=N{Rh>U#NxM*Bjt`?9V&R^A(bo-Gt)2fUObQO=9?ZLYzXo*{+=pfY5ICI?f_M zOybly{|H2IRWS0ch`yPnwVmXCq+rUP@M2Nla9tC>fZ*8JH*vDi##q z;^S5eGolxjzy!&0oR<1%ZR@iy?bTLWEtiLn41t7)B8VcQ@>D#-APJxlK$!n`?Q>=_ z3D|3UfB)a-rynx=oUTb<*LeSw?bhjll8H7Z(gw(?>6FO^X) zcUN0=!ydCelou?Tz1Xb_KJpRtWVEM{D_EW*wv;V@wQg{Wf3V@16)Wys|Q zKWjeAXV(Y9|Kc-vsrXG=xN7(z`~zA!pMr3oISw`BzsaBn^W~qWXME>0m-~K7L=P-& z$zlmt{2(Bb-;_zjuFa|uw2toOk1P-k$eVohIerA;pEKD+{loKJxEin-u~@vQaU_+f zH}dFi9LYt6>ap<#mN+XlR9zEPnl6b59d|X3WSH#l+{oI*eV>Xc2~+5_rJGCt%OXg6 zIW^%oHC)bW!kdHjN*sHf1ygo~PZJ#l*c4s|PDW9Z;FTHc7x;XUEe!Bk!3Xgl z*s)jDa5**1e0-zn7hrkvM}zpje24yva=@nny;tS6BdRgCOT4lPE6sP_Puq=e4z%D-9T z3OnDM~=so%-Jv5N_|yrrEl$mGL5`4jV@M5u9r+QPECJN<5W%dE}aX{li5$VuNRgWo;S#P8Y559Ii);t zXMxI1*wYs)nDi9FPkGP#SL`Hkda$;Z*KSrh?a%VJl#~hpo@NYCB4VrRlChh=(8_K#BEUsSIxO zLr64=P|zqxMhBFeC1A5I@(0g#jPupkN|$F{137w$5ECi(_|Pki11PQfnRm)^YB3gL zW9Kqr-4trPq}WV$pA;*1o+BR+Y1O*oYb+=?d;U=^a5_MtZ!`c%{4v?-u%u&UQiL&R z4UK};$YY9=q0iWTc~c~CTL&ZHXNt3NK{J`ZgYAhfRoa-J9f&9{2r4EYK%dWv$il@r zf>IUt**y6_1PVk5-JvRyGr=}g8T~|Qs?Ew5Nyr@hhxA%hDZ>84YAUx_TLO1+GaxOw zXh}%?p-dA0{T-0*TUNdc5Y5TAX+K;pKZ8}ULVSB$YK1t_GK}Y-g_8Gm$$KV*kV1s{ zJ~@SAJGY;CnnW}>5y)AzKysFO(dV`-*YLtlH4E#k8(40pIxqH*u~H)#QL{BmKs?C; zG0UQ#i&VbY{N5Ssn7QtDT23tu@dWIY>D}8ZkWT@u2d1da!ajrxlmaO^oV)Tx`MiJ&ia5c1b zSsCiEOo_hn9O?8iAbh6u$lFg!hoir&^U4o2CTD|0&btJ$UZ||p25FCF-PuH_E;%Un zMhX@H3zV5+?#kv)>(S( zJyr(elb=ftud$fzcIcCF`6Q3nK6X;P4V^byr z8d(dKQN=2ovtGe2Q{(OsN4?^k6vW?u61My+l2rFctGbJ+4r-p9QK9)`yE=3{Rh`U1v0cR{P*ffi!R!>_A>%I34eI$` zm!f6!yx&>MhlJlx7kNfyNrkP~8h)mpB~+w!g;->=tKxn0jxQ`t=1Rs2K>s7ISk4pQ zSS;r^!sAo(x%^h}cea)9ABM{JA9lV!XRs#2=`nkdHRALj#hwJ8u(_&jK4;FJN3r>n z;Z$sWFsxk~1YW7kv$5RpD-7ofnf?ZLTd#o$vM#C#DQMHXpw zHQIX+fh+|lAlX`OMrI??zU@;GIlQIUEs!8!J^QuQ>%Re6hIw?}O+v;n^-H3@i^zv= zR%_smy&3u^^aO_&bm_CBK&qAbc`cHdJvG;w3Qx7vEWsm$U%2OgBs|(CPIEisub`bc zE~L{v>5C6Tb+p!@=cvxw7%^An9!e^MubpS#QS#hLm~EA38Zz~<+_|YWyaQFje$qRP z!X8l4<tB13&9yn zyu{n!%p@`QIWu< zm&SI^t)fob5lvrTYY%2a52g*!IuOMnk^AjN&&XJ2&Euuf+rCzf1|n*9c_Tvv_gU~c zk=am^0=QhUlRHIUd9A}#Es^*4Jk1yV3GczoeKG<(5^^&lV$ZvA%8x-iGKjPfbVIG3iqPZ0N?L3 zux%a#eBSvcR;Ke=vHy|s%660@X*KS*w>e^0tme7?I6xUwVw{J*&uA}GaF6N}Wc$+nAPqeyt zA)reapU&*!S{aF5U(zlcpT;-bmnc3~i;#O6x;(41<7CFAM8N(Ng;ZqAMCR{XqNGO3 z&1XMNP1=viNDXtW8d_;u+Pp@pNTKxxY4i1V)%m+nYiQ|NJ6~}oY!^trD+D%6H?UVR zYCoQfivoxql)Rae^DCtKl+0nTW`ty^N%8N|unEae(VuQn4W2E<(!qqF46?h;($0LB zS^0WOzRJw%!^AYs>dg1}R#o4IugF)`HQzXM9kW-K&-gW#%>Jb0I+i{H_{*eID3N*5 zz`R(B))v1}$RhH)P0U55$qmC5rlKi6M2Yihkxm>u{qs`^vbBH#7jsrRKB zQ{q&HWd3{_56wu^%1581ro%-ROWA4NVWk0_j9XLYc>LG3K)1y5*;~o{q7z@Dgh;-x zGV{%pd{2`vla`;JmxAd$C`2sIkNt_bmgJ5`5{v-8PykEziy|0em~ zA)if%^RsF|H#&>3A-yc7=O~3IePgWA#prYT`qbR`3DOB97(rX0TQ32b;O^GUxiMUt zdeRbIpGDCjU)av~a3<)dNWN+d^r=?9@pir!GxP18K)!zDgZt!ycKaOfYjRRIV0;wy z!Iv7j#&xdx;Ar9@4;@8z7|i!SmYqzM_S2>4YfZfMJKm?9IhSt%`N38G-vICPDz1eD5T9hpNt56<^KU|G0j&e5A~nKd zl*Iqg)PGD3TP?4=Ar{mT0EKElL=;O^`({>{N~cKX zpIMn-Lk*G4HCE;qGc!wUD|5JHzTV0_{R3D=Rp}o)Ku#BEur}W{9y4TZ}c@wT5zK>Pv~j_>H&3Pqw6=Um~D`x2F-; z=esimS0JB1PI@UmQXg5|=|yZ3^B)y(E(9D%>%Zm2YgV_%Q$rf_YB=wse7wNw$;;!( z*-MJ9rzriV^!3wtH-Mpt53{PnS<^eW|LyRn^Q-RJU4?nCCy5smpzS74_U;0W}+$mcBnPnO@2m21`m>AUUs~ML_K< z9eqQ)7&;LMPZ~|IhJR&bv$cs~XfqfExF~u~+X-w@s<1;C%_}gq{vVpgw zl-YKZNPVU9Y&3X^cu~2$zKN|;;3$T7jj8g)*PR)Zs?iL$Mh#7 zz6N)6aF($s+ZMGNwbcPp00 z4&~-;*XF)ov1(YO)2%;Q+gLy-w?z&=w~^D8&~LF1>i{L!`<`_n=aY#iRyB7ZV|LbA zf0v(=e+XQG=*g%4S$+zO{x~oTg_KfNl*0PtBq?WaNV-T4wvzer0fMMg1r1q|2J6V# z{T?TGblmu!*Ep=-wroayeZ4n!_*6F6N*w!R`*VF|yS&CqZ)}^(Tei|ywokuNt_66* zEk{!vt@2)#O{U8xGt2Jx8t-{yUsCoxUs;l}kpM*pdt#g26s}nL{mWt~$d|S&X zDaW%cU}JWBF<>p*Z@foiW$%@BSi=+BROGE_@frJk#x9@H9&2^QV(!>djt~w$M~_~# z`B`u&Zk`s}YmKT(BmaCpEd8zE^ZeixeEjm=QD+`kEbcpr+YR+r1F~s1md3txb5OdX zqoSSb>6Su-(W)l|tF&0rVZ^+K?};o9!F!GT$Jx?c>N1>ImYbyep`CK?>Iejk4vp#I@+vbFUsGL z*ruGa*u2?5w1!Aw`N!ZpG=z%*^LFbMOB=634~#Y9WfULOcqw;T$yRE4(S|Qnp9i@ z%J$EQmGDK~EcjCM9C&}Q_gnHN-j9@TTa@xA zsZ4**%=E|9cyzCC#(^e)(i(Q~*PT*8`QM>ThJwqu014`Wwi-#$~n=Lq_(?U*Qc=D`MMwuy5)MZzp`71V|&m z$rDa{9&?eKLz{aEv5#7uvMtKgifti)67RlMf0MDzMS07OtG@MfmT@({+TjEFY_x)k z@PWQs13Eg1Ucp->nx;i!#D1*FYRzR)WQ9uMp;fLf&r-MCsr^&)Sd4M4J^W7&6qd!x zs4~_d>pj4>iv;G}G9G9NCF#8;{sOknl)p;!qB6?Bsc)Ds%mvB7p1efaky{{1IJR=k z*TxuU<(Lj*jH_a|F(#i&4MW^(nbBRJEC79e@hgGr&33v2c+K+$0yA#M!-^x7z*FL_ ztUz0H`iw<3Tot>0MoVmG5k4gqv2E^(-AwUz>!Ha0=9WdkdL?ZG%jXIf6Id$8?C=`w zAqq&|*mhNoHg_k$7xb%~(jMFHW{HpoZ)^)4TuX-w%3@pGJkqhX(iOMrTY>7E;J_GD ztXCi89(M+#O9yM{Uyr~2QuR-$mHuu0Z`HrZlmZ_cz2WAf+DZ&HP0kFoFZUX|yv%+; z%FiPX9%x?<6f0BDG-+oMv@c7&2D;_a)g7vK@Md^5h3t5_9<^EzpQ=cCEr@=AMsDg zwTfJNUCC!>uJrSie(X}hG?VBEk4dz z1X(d)T<{qwcuJf5DV&%0r!YmBNIi#D7A*8u7W{^PGrUFt(-ygiz*nI+p#!%bZgcAw zvdo8Grl$pRL|M+Euz9*jk8N@K%Rclw)=Fo+Mo)g6USl|x$y(OD;Vypj`OS|%#3E4#Oc1N_B!eN zLylC0cd!F+mCG0DnL*g>*Htt{hC7J>;A3>%zDkH=vO985zEFjFRXNm&e{hjJSB`XX z&Zt-(D<|hij$eI19tobO{cJRHUwFGv*4|fyvd(JzJ(NYvJdt`JtxYcpX>I8NX?^$t zG=;(1CD*|clZq2g*0^y3NSoW?GnyeKZ)ETru|!ej{ZC|Rb3ef2z*|}EjkOhdD+fPj zEVmdI=|>?yD2>5>ymIW*Wc>_+f9{FpaV^*T&=SY`2o%3zf0R}waW2~g^-{3%rT zk+-rcQlrg%kKdWK5$7Yuei|^^!O8%Z5MQNl7G+v$E4}X8N@v(urzS-c>6zNxMT+|= z6f-{?Dt%HvHF*o9pRj-W;EWi%sDCfQkbnZ?Xp-<2`cW=&^;um{7bY4M;C zQI*kR+F65Ai)d*LiZE$=RKT{k^5Ub6hz!Tj%CS*E6Q-^>wlyeMszI>^0-o?NI;f0? zR0?hwmMFs#V+^I3jEcANTJA!o-}vwC5mab%Hwr3bI4JpBj%YDD534bWT#{e0%UJ1? z3f`5Wq4moAnR>Lx4SyR*pxe3oSOnow`Q^q+@GzjZ@)EaNQ@>)_ERStNg5PDWp**;F zFgC zl4p?g?sW9S^#Xgy;|lz2(~|14}Hde-kypI{=t70wYYd>qyizX^V4 z-o7N0p&ymsMfx6v-T5NJT{3i)y)w9+dNCBCi=|Vr@2ecD*qwUOo!?!T=65}Rqd-hX zyYRbqwUjD;_r)*L{I1yIcc0n(4(SfHb)TA9#c%kG*2)P_WEr~^n>ztEWHG$r#~3d) zi0{LbgyUK4?#(Q1?jZ<2#p@Ot`-Gxk1u{WMCSiIDgry2I9a?$6unKhKHn)r|pJfg) zS#0JfY_{?~xZk_NP+_yoLd7};FJSK491n(46@mWhO4Wbi_8?f?RpkuB0I#uJF+iK`eUs)&+$EY zp0K{Id{5Y1t!DGRx*Uu5!S_D-o5lBt{sZ4DRyslGg6@1TEyM}`6E*_>Gc5imoCN*{ ztBFrk{I97C|HBN51E<`NaY*SABD8)W1^{z2yJYP8pA|lcUe6{PN37d|gepxbrtv1k z)r`j&mTRTA;@(LJX=3>pZ5D5iuca!Bf9+kwv5EvLg)rVaSW8CxUgK-sSW}1lN_Yn+ z<3dv;vd0xxIXUvlF;p&C*)69y+O#s%ogwIvME%$9;?$pg9|Ww65Ov=2f?TBxgge}! z9sY2On>~J1hJ@Rz^{dSa{SB~*&XTcmq{>T^ThObeTJgiCzJi|KbEMA3j5^V70ObHD z9)KlPzxfJGK>!`m-r3aL#AEX|0B5sZ-&KA@Ky_r97<}!5_vPNVBmN>1aT zxX9?S1R{09;SGPOd9^26X0caAtP<_k|pT<~bhkH%ouD z;I`0uP63O11{&gQR^r(Kcosg)zd&Jj;L$A%GFO^_zg({>2M*I?0{*t4^$1kv$LvWF zZi?ZNe+QG=tf>kefS5(dV5&jEbBlV-8Ct(q%N-@1N{brrc5fq$HcUT4J&TwTxe@j z24z|8L!{{ARkDOpd>Ixqu?DxmC zH)}6LEmH(`?1GeZW3VUmV>!;>@I0RhX7?jCj>H2yMR0Q#IB#}@x1w{qDpq?N^9O)t zN28kvXF=xIC!w|CXOi zMu?EU!C?X}5z#2X=rF(S+0MuZ&^*l=0LPDB6DK}b00}11YmSZ;me3o)7wWSe!QF}H z1b+64Eqs?AiSI~{2icv0&Hr#rYmd7~!ZxgvblUGKnv6aZF8&n!pmJ`o3dN}tQo?e5BPIef`nwA@~!;&j6VsABq*Br&@M`&cfmrY?2$rWU(BCx zs;QZ_+7R=trlgq||5ABZNh=>@^XJ1{@-61ylJ8gDCjvRkPaD;>EdsYl2LaEiFf;9z zIoe!!u1WOVR!8GiNrJhCz7moVS;J|`8pM!TtT&sL^Avx=v?c?r-?&J3v@?XPMm6nP zzY*<3ET6(vQH%7l-JD@)W9x;@ndSPv^th)544DkF>|pPEVT1O`LU$ zcK0%jeQirYVTbdm2}O#M8*E*$ajC;x3QtnWZ1c@j(rL<0jC$)*J2xunHlIqpEir$Q zO4gVUrIPjLv{dpW6aQhWhV#suNh(^m_-zVaK{Dw}_%mHgOa%D%Dbcnn1^khTMOKmN zP{#!uSApES-~TU4KdMFEHOpY5QMF+G4D(z>rFfytwCXgS=Hi?(CCExF5hapH^=K}LZMn$ zXRPx(5~NP|HJNnr$EtHCv1?eWF2tv$n=hR7XswPl<0n)UEur`8~F%U}koV?jbaIR=+Z zUFO$*zi0~I)!WeaK-or+s2dkp+Xk$6xSqjJ17)k^+Pz>;dfX>?BY%4Z`{Q97x|`%h z!J)Mc%kI5-7$Qdg;OW5$v%U&C2M@VttcV*jID*UBFCl?~mO2UXw2id1(<%-zM1`5q zJO@!Ed?*yBrdekw~1QhYRD z0XgwV#a?yuN5kyBjT4y`z!qBEH!=W@u=4 z+0dMZpNl68RI{wI;aMFw2K9=)WM9Rqy6R>O9-%iXN7VQ#ukwxe8OIsf-RDo5KZx_1 z{C6aOkjpB%@&|bncW_AN2!DVs@?=pLc?TDR=+I3UJqP(|v#;du-bK0EtU40t?y>Fo zU0$>k-?#vWIH}%?|AG-;@TcAtt6?L(Q}h@q$Th|~bmoN2CDaj)(4_*S~q~aCLjyn=qz^t6_j!ixyu-)iW$RHsZRs!>b?Vc zqqMq^Z>lW$=D2Qh|2*`vWMaKJ^cCzRb3{R3A@+#KNN4xah-4GKXBmo^Q(I~{(L>}Y z4pPrH^B#dA-y<*^%NuX(**Gj0gJ9zw*^Q%e8jn@x^~Ny{wg1^T#%V07Xu?j_IEJ_a z6BKB+ndce{G^IC1rxL^HQfDQRvUY-qCJGBVn>IP`gq)k8-PtxdFRE;K#U|(3I^&XwL=4r*r>z`gHF1)~6Rh3*SedrpE8DPv0z+D!PEi*k3=2KCQ^Ot3I8npVI$- zLqBCd#`(SV(HJ9;4Ee*Y7E2*J>s-If$N3_bm_=bcycYusiIb8ekWlUy;0B z-n?a8cFv}k#?pXMo)W!@;3~#)^7LYli-LLVy)EV0>0-AluRX7o?b?`&4a16+c>0-k!o1tkC?v^1x=EJDfnmLsq$6X}9yfX6%UIsP_cEyAZr#-Du`tZ?49BV_izHAns~e22gDE|lbg>GF5} zE%JBXGyF}QY4JO4Za)ak>)?++n?IKk6v*o&adi*={In;3?#q?ETgXKGI%8Y8l5>$z zpD%BnFYkTjqMFAl*ke7U?8{qTn|B!T&Sf0uGwwm9ZgGk3{c9OqiBUQl>0iu*qvg+a z^5N11On{P*(MXg%IZ7w+fr5gyG~utG{b^d56s(tMU@ zii{52ct0LQ(TmzX6~^+o$D)c7icnG>$iyxQu90hb@woM39LXoG$cg|hP)am>d`g~;6`6f+(qdp!S`C0wB&kEl!9c^ftT-Q{SrE70hxoYYU zCxfoYU|cos|A*3T@Y^Z~ZB31=_R#6D0<4zTiE)#ed2Wd6yz>N2hJ_zK-o(+~ixH>y0;TW_uD8^=N)hlx3Of= zcQ-7}x3IKJu*5ZV%WN#+LV6Wgdb}H!y5#^%k9Q-&ZaKix<2IJ$i_cgqFVs9+vmIX) z8%rq+1!eD|w;w$fuxI&&kAuV1*U%QIE#H$~AMRGaD$ z9zLm=y^Wc@!dte-M(W2Yq}IxMEcv@mZ7|a%%hA!=B}-SletZO8!3WNEt&pEA0*hse zv#$p}E0(447jzB&F8Wiu2XM?;S*fYdwX>{Y+c0;GjONc1%`#n2v7`PVqd){8d?*SY zvNeE$(C3^7`f{IregKMgv*yckueUA%kmSM>RGL+P00~*}87h%B;<+48)1#Ln-geN4 z@OQZA+|ihdn;iSzZybF*@xwzq;~Lq_$DbGTbdB<4$0t|Rwr@m*;Xn`7>Bd$ZY`X|X zMZD%P)dUHRkaEg3pW(?0neZptia0$L$#4hSmea$9RjoLs!0Vo*`EoS9urrb!8OfEG zBRj-l))^T}MtV1&I2>8g!E6uXfW{gS8Oj+H+Bhsv`Qim!z=E0Tk1qmSScGyE$D?X! zhcDvIN5SLn21E zpFT#ea%w9h>?1Gb{}q)Z@Efn3=#EUyS2SJGGHV&#ED(1x+>DB~h7DlD7rl*vyi>NZ zV7qsMh1eH81JRpZb&hWmUQPCIWS=@RtQHf!rKK(8HAybSXLoiosvuOY?2(k!H!zX1;1YvK^+rK5spi z*k2#D9!u@7VIKX}pJ}shfJRyW^RXHfp`I5Dq%3+pajWiG&Idg1&covnC&epW-pb+m z$R@kIjZ<^*OcIyE#;b5@8^TNc0&#J>G+P`t8>c#r4LtNzUVSUY{i<dB6(!$6B0j-K^elfIprC( zfAfFT|Ke@5(EpeGFT|huX#N-L8A97G`JMKF|7-i}4zVcd`u}g(1EA6GZx5KG#P5H1zxoLHQ#V{Rcsk%Qx-r-T*C`jr2;_VAdjq84 z1Z-voSdcf7CxfF|vOC7W@EaaccZrepPvb$!v%>eTLw6`^ubYMA(r$uZozLdE9(@4C zt)~%_cu`qp?JA6g(ahKL^oZ38yQ10pYBTCwLXNDwr4m9iD{mcHt~0;+4TsR90nbEj z?m@0|6Q=@Hs4W~nv+ePXqu~JT>&CXDSjIx_;vq8Y5td!iFzI%5f@qYeeHq0 z*e4ryvL$AZ0-&((Afuru#_Vl(RQBuHKR~YMc2y3dA;X;$sJaf1BqG~!-}&yzpL2m$ zIql2sQ?ja+$mu0Sgs+hj>Nwhq*Uy=pM6lqfAF4S*#MIr+Ehwu)yNDLA&AJW_r=Q6( zt*jGPzLpw|Nz6p3ZVB!A4iG2ZXpu_j90u{I^8is@n1rB|lUf^$e2=-}S8ZbAm-AYp zk+K30R{IIYQf<~%lJ|(qS8$79LV#R8w))({v;b{0XGWJhR)sfp$RN#>J5oqjyl;Gj zSXj+GsH&d4CqACn3jacnHU(nB;It*4khNLn7r(S9@aXgSs1s!J4T=IAd{o`JUvI?X zWuP%FZ+C4^yd710p?|%-Y`eYFXpdI7qc1rh87mo|Ps&0ISov1462Fs$T*8P1@Ol{XIZ#YxRkc_8{(zw|SO8P@o_C8hW^8=xI^Z53|9aM8rN4AP&kJa73DlPP&wE*&5%WuAqSY)Y z6?@GuMNvZDYvz11lc=oua|)_Bd6KtEo6BX< z>nDFfZf;Ft!Aj4W(8)k=JEyU=%kEB_xwYYNQZD{VCf1n${g}wE^=g1q{j2a*LBLpG$l^2ISjlxf^r>8Crd;Lu2_^!%3Wghx5XBdd5kP>&S2u?Mxz5 zlaHR?sf^rm@LI~cl^*8U>vgQJb!_%kv~$jeBdTmJNH~B+5{kgF)a&@L;;^rxxwc|Q ztR+9z%#qy1`QD=xB8GrOKENU;+3B!5){+}*&W$Z{`5d2tg#xc*gSVoM3VmX#xZjhn z>f|WJ;@n!t7B3zq6{~714*HBFAb4qtauqvcEiU=8H`c2N4|;{$9r@) z%Lmow{O4e$tpU#@AJyIIGj=EPtoaftm~E_WESS+4oZ&#(L*=U>ncX;cMyH_j$y+s$ zjJXUMQ&zZpnLkcz4_jg|2&HE#d^6|B{`DADMuH4HD#fDHYOG2cq;UX+kxJYYwjwRSHTN7A;KG2CaNsnsr z6TZOiCr&ZALNh6gyypaRYlb%F|HyCU!WA8pjO<>2#PzF^3I)c}KiDCVj;=U(=>TU<4b59083-+rF=lja28 zeFsP%AWb;y`wo&mNSaej_kBzHThiZ>K1BKu=|iLslRixPFzF=eBx$T2EulG>{^?$G zP2fUAPHol|a9M#x^&tGk5P}2us3FXeB|Rt2s2l--6Ba4JM@6d`Rt$r(Y1RM|lwKjn zCvt0uA)~NbZB9=3jaTaVCQDW~M*!aKD2@Dl9bdaFN$hWjH*3LjEiDAeAg`jSY&k9~ zLaD+{i9D!`heY~8$6;&=TYMa1F!Kv!e2@v5ELGNI5r@{&X7h%qnjbPXK0j%Vbe;G+F_?MX;H0vGJi&4d^~9WJ)_cXoXh|BD(x;0#HUeh zr?@spXkXboE8Z7#XL!fBE_l;1asHYTXhJNkUj)l-cF<;q9}q4Q@aQ1MTKtT4+AJ9~ z&@;{!Zf=<)@}J1_#&%T_tD2m=kyVWiWkdz}Q*Pd4HxYWyAALg^%UQ)uw~9u981=B9 zut_qe@}HzPsTA8Xqy?$WF3#}2>=Crai71sc7e_36Zuo8WJ#@V8_?6UP4|%+bx@Fy* z_cFON7(!&WQX>0oF9$@8SA8u#^K|r4#(-kt9ArKY%Dc{cZPvqdL*{;3 zaz{=zBi7ihA!OSo>1OozHagS=SaXaRd`D{#&q&pdT!p=}Y`I{g(~-?ZLB(|PVLE-Y z%wJ)t5#@fG;-0GB_#dc2nVEJV3po$axX?`z{ z#9xIV#XgGDmo;S$scjUXQkoKnZ-8o$*wz5)eoyAbvaAr|SU16QuX(#ds0AW-EKX3? z>0-rt(?gJHnYPwL;8r%3HnUd>MCDbv`L&#hnhd3r(`2l`JLrs zcRDtH6vP{i?^&fa;ia4FM2)q556d%Y7O&wvd=Ij%`HDr_J_vb@G=lxs89q| z0mEUlr9^!*9#r36_B2ske0r`E&G5cwxN(~)zUx>N=%{7((hcRDQfhu`zkH4o_RDg! zRlOWG8aZJc5yttz%Jrs7u>#Vy0uMtYocx+5)$pu;NG=AR5n{gIj&TdCG8u%dOJvzB zHz&U-S$}-BHcJ?W@=Ag8>@&BYBkx1^h;QUR^IJ9Cp}P?#Lys=VdJQ?xXfrsx^?SP) zqXahkU21ymRJnORDPYpsuoirFuF&{sPZzY$SS%yhIdx@o!=eX#te+7&7SXmwt?xiB zjIh)M5&&cCan^l|j$~jQ5ti)?<>qzl=U5rWsSI~Q735+>epC|RPIQ@~b$oA@U|8&_y@Ik4yTzMdUY4%Qk*~%A%MmZU3{=Onr;fnNof#Q>) zsrRqhH35a#!OU3y)R$jdCG7WCr)xr?NvhMsjQ<4ldPQV_GC`YlD__td$6wvn=0dyr*X-(FlIn#Q zJfgN)(zK|}nj&@2SS&rxpu`maiiWKjEmnC*0AexQ6{EawhLF3 ziAKJeEh?vGj8U(JMj0khrKGK^)p<=W=2RcYN*RpKf||E$RBf|Px1yO%K-Fn+Q zm0vA1`%Ev}g|bTTVQ}?`Tr|pDPn!Q}Xa7{arg|8Xyg$ayzF6MNnh+f|8b30NHtbjb@ZzWPvOFQET`m4W?x{O1ZX`5%J48gZ1X)`vohDOJpHj9P|po{?xAHHu(h# zo0VBwn9tax&H6|t$q~HFl4F=Vcgyi~B=QE&LCI(!%78cE5@OoZQxIju?tQ?L)%n1C zm-&f$fA3WNM&ayFT15g}hsju(E1h;BU0v>OeN@GQRgrfQ73S&eT zYcqd+NTQjC&X7SX(sP(d-nUPLm+94OLMJE=uCo1rn>x^SF7`zgt;qQJWstL#$S5InSyZ@$QQGR!#QhrJxo_cJXQwCIbti56k_t85e6EOyla533-_#)FW9bYv7$1q>yu5w@G ze08Q_f@hsKmdGZk5=Z(XBjA}6Jevs1L|`k9ETLdc@U;6Px0Viz4&Xf7QZZzAaQK4) zZMDXS++$|%Vzzsu#n9>m&r-2YnzhCrS!7mq0?GdAP)9B9cX)u3%*H`kT$a6gOSQSZ z)ZdXgMC7zmJ!oEnPmSzJY%Aq6ug#t8%p>5{8x6ocE*_)ft<3*Gfvt zuCq(LTjwAuK|6Vt1RP7%!%{v`iCJfS!RrJmU3+DZoN}i2_jq-aXDLUhK^F>IEfN-8 z-~r=V2|Jy}GCj7lB;Z&}%v||qmiQfr3{AD{zVqO~7tL$z4}Y2C4R0pAPd2Uk>5kD} zYwVT`oN9#OfwQGny(@K`k_fLtBOF}};9rbFp<3LpSC93qB5v@k&B#2$@`$E4wZvy! z>M^F4`Y_ZQmzHO&@13Ni=>4tH%%J#rcO16opJhK*FHhs;5%%LTSb7nZqSLGT3)eJ8 zyo1G8v^$ckF#Foc53n8E$#u$r{HZb^Z&C*2&oLmY?PrcGC_@~-Ujs%~>xggV#~5Ln zf4E(&#=~@Z7L##my;PAh_VLn+!NT#0ug3%;Q+1BeN$eT%V%RKS)pq~L=>6wc)s=k{ zsNSy4?8Us7J^!+V`QClveQ`wi*2NhU2Wn$m@6bVduLbHId+5(vNB(z>(RO@W8LJSKZ4v9UNTrWYCAZu8vdfg z9~tZHfcfKgT^5fzd;81Yu{Mq;A8&0MuMRJA`6E^NvT+>jlQnrK$2pa5>AlwCW6J6- z{0souJk(}SWEc_;rR9n6R%hr!m|?5z-g#c+62_|FLSvCv`)^;tVeG2?4kum~{lZ*v zFF0^qgMl$c95hfvd_964UQtDfh_B#V@_!o_Z6jU3wa_VSGZ{p)9-+%kXH{~gYl|

    zFX5Q+&!;veBhDHaU5@6%&G$#BOnXbM( z_}AK;+TxnV3w6hGrd&|6$#+I=T7bOC6Zzz_HTy<=Vh#pTigDfZPCbN3_q- zZ_dt&KPuRcTnbrs&wA{XoUFu&NB`FP)6Qx>`TFdv#3j2m_XyW+t)H)3gMDu4%=rt+ z>0!A%qOIeHcjg*JE`bJD3Itf}1Iqkg#4l^Ky8KWyb-tAgrNo>0BW)kqw7OZm8iChv(NObl>(KI02z38L8!Z-n%)eoSdYeA9PTa$&qKXV|Hck#GpJu;Qqa}`=q zt2`(B$25v!V<&p< z003GbTP(@`i&V&JJc5Sfk*gz0qg4ZkKI}XFLOp!IJ>^_=+7;iEbZj-@Z-bnD zgM8;ONA>d1Zt)*v8)0NTKykGmO60`khw5!r{5RP|MyjJ6JVZt^_^@r&b&;L(Zav)Jv-|yr*y*jGFkW(1IFEC(P69- z%!kBDnbpDPQ~i5|0-62Ork+c9G0yXznpwc=-@tVLU|KfxXC&@S^)FdCSy;VN`VRKv5=8KDQ(bU;dE_GCxZKhj7E1 zzif$aoS8T+U`#2gpH>68<^&>lxI%gU>LnrPtJ#Skv<&k)$i+DXG(Hr#WMTEW7BnzP zUHikLLHt<_quoOM!zMis?G$7q$cs0Q_ge47Yckj){xb7+=k0sebNll7wwyoj)QMkS zob$6A2Be<9exr5ADSzJmp!M999@W$-3PdI`3-=`pZyhL*DAmmAsUzINg@Nd~7wkHl z-IXszor49OHR^<%j3Hdvync`@^t{PtAV{8ZM=a(y$) zX>;?heiOtG} zgpFdidCJnZq*RbtlGYEHOrS#eYYG*|N&lQ`3rwnZnu9P$UEQ2U$QdbwI5VN_u|UZt zsz9zPU}L5#g&AjN4|`;m?YTg9T&>1d9FWFRC{kroDC&_}LC?$zau-MktO_1h75ppx zo3#I5?BDsSz`xhOgP36cSN&U{D)?9WSBn1kFOA>6y;9)c>)%3E_J1*c|EVg-=$|gu zAD8Ctsktw4Ywj!Y!C*T@D`N{m`DGxFZHpsbVmx(;G0>eX?0FK*Axs!I(FeXq`L*53 zx19K|m2c@*{-J-d{M>Hkhi8_D^J_ZC=2}IR!eOl`csxsjc2yH$=t}tKCRW_I__4P+ zK*2?QxOqtKQA2BZ>rApI3x6;`B&G~}y38*ZW@WwVxSAC{3wt4Qrby9PDIz0T*Tq58 zoh@E3((bHfx>oyMa!^foMUCN5?z&u+-@=diA;2d3kWtMVb1i2$Wvm{Q zSQ5rQ^Ov^@E=1nyHXaY0+HE{C)s>R&gvy=gLa~ve`e~(Ep{XsyO1b9ZT!Di|l7;0! ztIl!|&89@?TGu1v-GMtc4N_Kqvd%^JmrW5l1kpfMR2C(xNd9tc1)|)jcB^)q!Nr2@ z=0P0#T^d>snj*B4ESv>Fg20lrG~CRm_&?Mf>4%_d&ymB(2xt}fj0qDlXLA>)pyTJa z2pYP|E6RqGrcbWE?Mj~+w5s$6DAFAHY4yW)t+MI&xz4K`;qFBS3?9GN82 z{S|psMBT`#m3o6#&U{WDrOVZIKIWI)swJ$Jchg{L(R z4D}69TbCU=F??Zma82U0IegzF+jBwMlrKTzjZRx<_Hgq^mRE($UzAq<{b zc*H<^s(xF$G$rG8tQso;UIfZy|MQMh!Zos`vZRosKsJGbeL<={tjCgt^BIcXB2&wy zmXjG4=s?zu*tTqW(_0CR$--@g3}0lJE{#Ji(`qCa)Uqju>x6iaoQmWN-%vTHT$ieE z+)?ZMrIqVm$#oL--7UGeb#GhGV7{toe6s&!@-Qxl)Y2-vYe;6J^%;%!A3;|8JZ-AK z#ddz_iXv$n!2TzxylEQ>*^>R+;M^&FNGwl4b%I^Kp8_gXctb(A2@O_`4qqlx`oExx zDSng5kJ%MMg@U04B6o2@V0uv3Olvo)_Na2Z?w5TyQ9Tu*cjVx!4|@Q-On7h}vP>9%L?Bm4-UZ=LfJE z3IspMq-W(Xz;=kh!N*WrA}75n)iZfylDV!|Y`A;>U=h7CTVf8W38Xd5fY|FIw_p_6 zloN;!ZX#-C^sL=q(qT@}HS7NBjX|$Je1EYkE7azX_=@q)RFtL$y^lX~e{rem5tc1~ zBv@R-81)D)k@tgA?-O&GEN;78lVC&hM;>(9h&b-pfmwVn$)I4ZLB)iOJXoaiqybO% zj~|0hoZ<(`{_jITofrzg{UV(i7;-en{|1`oaMmYHc{b0og|Gh4Q%^J8Z8|sd3da$F zZbX-^!FH!vJxdl&Avdhd>f35QSY2acT%8GzvOlDFqdmo~oXP&>(qJd3UB?I73q;t1 zw|LskU54V;Z9;q2`uKlrJnAApO!2QW&UeDZtU*4IwLZX8N~|Hec9<_ zPp@R*r*5H~>8`iLHf~djV!6$Hu+(|AzFEuAC1orH4i8vaC{B(yUa`%NQ2QdZF-MpbTRDgOG8w z$GLu?<}3jPE8t^gjHgH%NR-T~?|@>Yf+E$QG=EiV z_QVo3#l-XT=k$uWx=rvK(AQiFi>==ZnHQ=h4!)^4Pk4!5SA8gWeIR-VEOpvC>32V- z;U?*~OKDMLg$Ea*abyQq(4i1Z&9n~5_@>Uym*o40%9nV_qCfTOcd0zT=Em93BZ)`- zk!wqs4yA&TGFi@#G9A= zr`O5gC#tg_s#(L5kXVtyYKn!`9IxNej)<{0*f+&yl7+_toIi3&kt_rL*5M_P zN!AHS7txD;xe08ZDENm7VTCtqGfM{-2^D@Jn;^Pi=@ap~s1eL^N&+%kVPp2AL=1j{ zyfnRchP=e{+YnB=|3}JCJ<^2u3+FI9cKPXo868%H+J62&qx@ zO9wO8*I$=ptgp%bzoSo`Wmu1xV@;w(O|Ow5?gC><&$x#cnGuTL9DP2a#c7ivy9O8y~l zArxAoT(bY6o|%KC_P;FrXX=xgs&W4nl*j;@n1HVM8R9=?@iUR{EZHlM5ig40e@Yh# z^l0+gpCwBQU!CivEc8d!r-Bm^Ca|oh+2f1r8D8$bQS|e@=4)D0f+V|YN;`TCL{)pR zL?+!#bhe`O#2YHDh`#nc=Nnon`qs7{TEqDmSy9H0P_*i4OZqzo0WvL+yOroYteYLE zQy?EjAw+EV5d!%+d^kcNfAeHvchlYG2P8xw4_w|=V*V%k+h!*tjlE3F>Rku*g<=_0 zh3}O8$~GemU>6(-1KVMi_y=VLghD-?$b%-!hP~KXAnd zVm4-}Zb=sU^I2Un_SQ>59WtPKmN>P|V2OQw)mo<>%tkokI=#ilc zRLozUpk8c&I+FG}2cNo=h36|El{_FYDtVv_jK^ib*vd$V#l(F6Bn!0p{EC%>6I>h3 z0qt^TB58VTcr*MhtY9ALxFO>Wi4Ygw zpVS)e5c?fR632~>cYd_luD7++ofj}CqI$oQ5c1^=qnxW3FMu&4rNK>#zn>(Cy z0xj9xC1NDPTTdnY>88mSa063tFz(b`f7ZfXe_MydHuWU-pDZyS;z z%u&E-Ntc|`!nGuM>k_5vHkFpnQd5@4w&wFetJoXfnj71C44?AW<+U42yn8uh+0Yvp zXB^7P>c`Q(o}|5sEN2`NjA=8Ef$MmcYC;|aY;C6O_DFsQIb}Wdhu3Gt6If$AaWp63 zI9Rca(aBLG^D?<`M0GmUeJES~)hjrgTBnWJmimr@Mj+_3GVP_yvX| z5WQ7ytQmVz)&&I|UHdZlDHqoS99t7FSn~MB&emkTsot-JFPBjaw2XXW&aS(n3`lLj5L}`lwQscW z=e$)EQdfPT&NxU{*4IU+LU|k#tBVdz)>U_C;ajB_s2Y0Wn1CZm`SbB!kkWH0E$Ao% z9gC-I72dgToj*FDnn)2gzXCHb-4(p{6hprA}QJ_~*taI~rmBqVmlpjRD2 z457XW!f^7K!0(730>kEuwqzmWRR`))BXyV9IL^yX6E>wD1pn2}m?_y7Q#^uJFbV=7N>dla4Vxhxx#5raeT(c89rP%g^M=6jLT71zp=dL9}e$79KuANXsT`aiVHxOcuST93~o-k zNthfbxoR3=lh%3)A1!7&e??g-((oG?k{qRrZO`Tq6*ueTUyd8)Ig`&1K&^r3OP^-$YiPsYr47yn z5gkU3qQxL`IUKl*cwBUNRCEA+$gJG%!y%yv)vJ90ZP+ql0GtgF(DPToc4vML)ZElB=9*3Je#s^aSZSrQ;9co!ua5jE(liJ}rKmI!Df z0q*KXQSq&cVzrbOTM-h#Rwb|ra9P*V7W-k;rt!8>nhTHC*QpIS`fIX)2`!{4n5&huOD0p(YTeFY* zkC6K`2+6ZQko{{JWj9Xwx|{rV${jKi^z4|too_RuiP%otxH>0XveP!Nf#!{XMfNV? zRFS^hCX#FrG(yV?Q^d5#nWY=%(m(8Mjn*H1_lliL+kU6_aLwIlRmPdMibWHo%z&GB zGt0?O_93kV6BvamZ!scbaGd?Yx z&B^#jQA2)fpf{~VZUOylX2^7+xtuX_;)hbi4qY%(Aj1q5=;`3%lyFH0*g%>Kh6}88 z7-R@X9Z^P%21kQoo@5J~pjx^NfSBsd(5%j{4UBpBMYLo{9vg>5li`Sn*Ixb3{_U+f zdJ56w@HmdQGn_k`I3oN{6O`Q2Klj(x5b@y$i<9WM7tw5f(h&!FZ>q zawhOQsaQ>4Zm67+&g;K!f2v74v#tl*hGDujuR62NGq~rxIFsmGG_uI$G+J`#YKaBY zNxL?d?6bOVX)|A{H*@=2^*acC=2am_N2f2y@xLr)qcuKbJr%iTRm`d1qfn(R?KOWR zv6jSTB(96j+;bGRNoV#n39R0_hAQ&4xsUzfzwAGE_qHI*v>`C;5@0$%Xah*C^Mh5j zr37xjpqc#){C1Y{i3NA3>kQwi9S+#oO85C4ZWUC#QcZyaR9G86#e@4bb@qv4ESq9g zTV2ih;&X%K~!AU0`I-}HiD$> zDR$x#y2wGy((3gl8@C52beDe)c`g4--fxc8GxX-L*U5Z{0;JyC&1pJ8F?|VS!lb=X zqQQHCb?ZR@!5`Z4#8vKZvJA}{t$P>-M!x8fKJh~^#%vK)wA_v9TQO$ekMHP z*G4xvR7~X~^2K(Wd>;iEfSLY|LH{UA90~wqbP~`yI?Mf3sR72v3V#XS4^i*ED8~V_ z2r&KiHqO0*MGX%9N+vliR6Dncx2uEKE<6rYlD;w_N|MuxgB-3+Y8w|Nyz1lP`xOB~ zTej<*VEZ<9l6yw0^N?ZcGqv@@NG^b@%A1#Q8}WxtK4twsQ;xNmkf)!x0btxRv)$8XLH`H8LX6h41C}C`#<=k!){`!_sOxJzRMqBz}a!mQI zVIq>yuh!Smoh(W5dPmT4r2S-1=IsS3PV7C$sNsdF$?%*eLo{*O9$qd;X|$h zBkEnaN6QAul=C!4CqJD2PA7D$zw8lL5Etugz!a`g&Ba^0i2C7ayPu~C2rlxYqINk_ znYzcUH7!}|^k((oBeDoJlNwZA!fA=Na_X4;2<)JMxo|*ISINiN52f#uT*Cc1l`wDo zErkanDesO}ZEj66rr! zS%t})bJ0;})N>rHLl=Cn7ElWE+p=B2lV`7LNMai^I@`xn&ecH&I#Me@oCRe4OKtc^ zCey$HUgo)7JDvC*lF}pg$LCwf;HEINX^Z}Zd|Gw}MiuY{SuF=)ksz?RZDuj<;>_9z zyD>ViQR!bw4^Z?bW)mWDc0p$_>vi{CJB{TsPtGHw;kEpS_!M_&DksM^JEB7npr^bP zWxEB+pg>lh;c(L)*Si&DjY(Xj`^X(KWu5D#CvWsGgY#9dM|SXCF;XK*7(Arr5;+ouP1;4i!j>#s z{FG77Siv)8ukSuXdRDS*a$e%I*~GCV0y0y!B%AU>lZ}Ft@nJLt*JSf-+QX^1BLF4% z$kB{urtG^Mo>R7AFW+r8-8U~~)BQy7mMI%oWK=wPCoYLJlayMy(exm-V_2be5qS=~ z8K-UcbOc-Ydo8qM(Fy}!$HNV@?EERr?{Sy)u(cEk^1hi-qdF;w`ys6XvVsFRZsJTi zWmmC_Sf7|W&>Yri!c`z~(LkNYiLZeShJ+dqaVop+n#R?2y^G^(O1z86$nh@YXlXj$ zR~Tbj;l^BC?@bwqm9hf+UN#Pa@wYtx^NuKtSp5ZE-20dU|2G%+O{@M*7ycg`0A~FN z@EJz!Nqjjti*f?y!f#-FdPM? zFV&39uCDusFhNNWmm>_xH%#*N;q=47{*!iZ;i28LNI2LLo}bYi?>)vB`F+aq?S8lB zHEkUKJ?I&p+X6B;quuY>yk@JiaUz)_+s!c`jR!JdomRINn556biqZOV&yn^}5;Z&_JGGgIhsIv`C_%>~#~}Vz@%%fx>AVq=8s+lGJF{ z*K=gED2;jJIXKQ3ZFXAbnD0Y>0hWrEN^+oinX=muV2$Nt7@~o78pG^UF3+(FPK#eklBU8Kt;$&w?Z@wP6+ z>T0NZKAMa&X|ZK`4W+dAx+6p0%kkG{pjMW&Y@U7$#&rc&X0lhhL)dh6S{?-pJ_04) zQ?batnD#SYLz%cF*$=24#aPxE1~zYE9-DY|7G@XkrTDfP?c2JeaFsZV*Y{W(!0$s~ zsRp7&<={77m%fz|+Y2^KB6cc(V|)h>E4XvM{SyP+^{QfCRKR0L7LSjASnSM+lh0Ya zrhVIC1(k3Gy<*#{?M-Ebrb+!y3J@F&p$d}$8p%9@9G^gRV=k1Y;k_|jQ;AD+#!UmN7@U%`(JN2|lgs{#J87MSK#?o>i zh%uy33G{Vm(aUBsxf@=im6>Rdb=U})?k$@g@3QVxr&2G|4{fC-j&ze>fzFO|79B30 zv8?%{E|Z`1f5+#Qqe^=Q8*klpiYJSO5@%K)@r&f8Tr%DENfrwUi-f14FaI53Dc4QV zc2rl>P0-eE(ROjEvp8&`5OFPa-DBh@oQofZj5^Cv(H4syDq;#+^d!R0qG!DqXTFKv zo~e6`3`PEw0<>~5RTtFW%8HqJJOnjVdGg&AFqF%E!==hE8znsem8nuFtk;j3#jaY8@vr!X8tk* ztI683-tiK`f(CalW8fx^V>1i$P&a4MF&f#`tOk=i+}-Q^XU%6joHUjLZgwL-JCYdP zMbEQNp$PI<_&%;R|FrU_vC18r?3(m z5}y|~qYnHcf2ukf(2BCZt@pz0x)Ar?Wu^$*d`13nQzT3O^hQ`}O9%VS`w@RY`5Q$^ zLe5qo>Mo^i0bx>9qsJ=b9HPh2{GyZX0kq+!V5^)V5@|3bDOGxM-bKc-Io z!hN{WK(M49-xGG?QLTLYj z^!e#C9NtyrPc9fq+O<&o9?5^XU3~>a;%Ih=Btgx-_KN}GOm&f;GLw%`3h_49#n0wW zCiq{#qaH3804je~JKFpAz(2u&->+Y0AUoF`kpfJ|A8Us2v$&&jnz&s#Ub=xRCt_8I z@>gPi{0Cu<`EmsG1GhH2eIY_E(kZ?!dd_>*u5|fhys7Rn#0n_qW&c(43oBgJhGdp; zH*Bq5zpJBG8?x~a`Dx$|gk^4zWuHE@VjKRC1?K-7wc!0+lpe+2y1V-&Ni>M-Q?AX@ zc&u=?e&)g=9vowa6U^0Fw2XkVi`#najP+>KoQZi?aT$s0A)C-eghS#guVcmZ8$f9O zdTI2>7$--i4&I2fr&f#2>Hb-L-&xe*bp-1vI~vg*o3&)L-9AS7t73`6`a42ljKjCYf5a~U7l96v0&n>gG-W2J)Q&MZM<8EmgGhmFWGSfpep zz*UgJDEvQesE83-Hs;OX_B8){l^8`aK^>saJ%tmL_0Xmnezwe5gLr%RMH#^wPm()ijcj71_W^yo3Fr{ zVp?pH*RV}^1>*Hsw3D};MU~#W@waB6b;rCnZvTrh1Kh`TwdBPC?wWnd+dy7t(bXaE zmG~Po+TZBzEY9@6+wF~(&9~2LklkP+1>EEWv&uxhZvni40<~Re7h32xJkn`b`_{u$ z5EsBV%nsblRhg}zBA%&m=8VSu&RLAZMz0b&l~Zn_Sehgi{S?6pfn;;~IOLJ_-iz@! zF&4aOWQ!gjXg(lcau1Cap}t1uXyOVQG@1R9Cd>;)cd+t^|7G*lg1sOM_LR;6`BeD6 zVuGkKT|X24Mns#s<`2=P`m>hghQLT=ec7_f^0BBH0|v+HQxy{ED_pOHpgZ;06&Pwh zl|=ju96S#SVG+kOl3x&tv*>?xt9sb~Uyx*5HxDRza8dT|U<|$>Tz^6#6k4|$?0i8e z+19yFK)^=@lh-cP52FPX1Rjg#yygEM6tUOs~} z+nD4?V#t?*oFYGJb26Lcj~3+oeUS4alQV}_h)*eBkoaspUo%5N_k|d=&VJR|^Ht45 zhZJ$67~hTOV$B};PrgJT>_9zk2>U-U!)sYelkhFYcz-(WAsPkCMi>52;KWPLH$}y( zz5=fryC1I_ha{gHE~^V)gQAMnBs)@EmdFL)v;I>ef3oKg$kvV^lG)3m80^IblZwGA z^6xX|ho_CAkQ+L!5xzbI3Q2b4=2=59y2y<(5#%o^j~^tvQHI-=(kTGI@b5J(>l;@ze>9`9&0?Ut(Scb|Tgh+d*|mnea|8iTd%#X8 zW5CMx=<_&kje%l^vm)E*19?t%-MKj1?sp8oKcL;gy7LrY$H(_|;r4jYhA;V0*uY-O zDrjr6*Z03tu;w&oi4>u&6m+>@fjWU*uY+o5YSfYmF*9NOO+%Qi+ zCgoG-sY>~`7M6httg>Z3g+ZCR{2`{4#oty4&J6meIp`t%Y{8{}fpR;(a*e-&(kWtN(T|KCS|c_P zea(amEs*^Q+?YMq_{)N(1dFF+W~>}~?cvPXbb=e_`~8mSynJ{Keg$iqf`yhsr# z^i0{PPs!S-9qO*|a9PC89Fd8-1Vi)57^JZWkxd1NX^`T8{42f7U}Lc8nY4S5wJh~OA^6T zIx_6H(xJjGo}6cY`n++FRmJD3IxZm@A#jG_jo>$p5%+ThYX)_xh~FA@$GNE0EWzQEReUFd1J4aNa~93k89fVD9r{$J^ zDtk{Gs2`_Sobp4rE1abojBXO_#XFfGT*gL&*+I`Ub_*NWqB205RV z$p|ltgh6BE%U1P@nXw?rRQ0(t1G%KgpY%CZnf;54$W+~C)wupWAPbzuSFH>i7s&2apuX1L#Gc=G_#$U=zQ z40jf0p!L%GEFyxsuCX~!JRs**3g~Md8UHJu6gMSM|TF^Y5)FZdltcMoX)6}k3LH6xZIJwj5@9Mdy} z$Ia_m*#Qk5Vxd1%2tBX*zBa=hg&F9{q5C6xrxKFA&OIRKk^ARdX>)EW>@zU?@1OHN zoAXBpSel8f_mo?zYUia@`o3G27?I0~SG?9aG_yL3TBMW2t0a*AQAJn)sJe|LX)37w5 zWK7$gxi_eo_WTvoNeBAo^A6YpIxXuuaM$E*g~g%cA>lT3N_~notP`s$Bgb_8Ytp389JDLZ9oI3 zurhtxe^C!#EU^APFJqZ?T`7oXdvG9 zrd=Vm@ybTi1F_Pg+^&+FxRjlVk)z$j#aAnG%dA&5LTqkU;q|zlXPk@j{Dqr`auBcO zIptwvkOEEbn1iJOm`Q+{Zon9Cg8)pzfHC`dw!9o3JImj~8~$JQS%-v*`@lysnK-IR%ex}d$sQK-V*fhtC0 zx>rlPT+=R1!ff|G;5om0oJXMof&1kwo;>@%O+R5v5 zFwxsawBr=NY$6BFU;l%CEa$IhrAHg*ujfdS^VdclgxsiPj>GNOdTqGPK9Rllxl}NV6Xp(hHS!8&l1t*Sey%0lFPtQuu*^G-1nvsph z-)IyL+SVL6EE_r*Bn)&8fZo2)0OWAbh-|dpcbfw5yT1kAcdzDo-*rH&N6o#eM~+_U zk+CoZJ<=$RGA`fUIpX)(?v@232)%TcWC-dD;-#3I5ZPOC6IZf!;_bYM1%jX{x=?}r z<3T;5rMP6N^KP9^F4PglsSlIY13?XmKHOid1DoGO)#3~L+8vEq?>x) z!)4K#ZG_NqT6&Tq8+Q?*qoT=gcByW&{@%`_v3LV#-Mu>uS$yDqU_BbJY}K~xay;!( znC%f0r2?wRgql|Rza=yKy=k1#If2PRFnRRIwHC_;JwWkz5LqDib(YjSJWz9Aua#Wk zt&8SqTBlbEihm*zMhiKi&zL?+mGuj$bCm8th z5w^9rZUdMvpZKUZAmZ-c!tr;V0pX-Fr`#hIoP=g0x9TG~s*iSNokm6w*hu*hF--on z(ydzN%qk-_c~_>kIfIttN~#UD*E);X2_Lq7l$khlP*-vD)%c~rud}Eo?Gh0dt@0(k zF0M%v%IG6z{aRiVHR;oMLw7t*u;As4ZmGzXxvC9jp4b)A4m0gEueI)>5P;HZ74j?Z zaJQi+b&43ay5o%|v~BD%g_1WmA8&Oj5mA>EH4Ukx4vgQ-xWH)FD{?n$Y}9CoMA z&&0SnIa$^paVeUgO`|o~^)8@A7b2-BPEJw!c%nJ)MmRH6mj#Gxg_=HChq&X*ug){) z)IE8ottb5>g>srp7=gp<9tEpK(W-SiYfm_e&DCpci$~xa-`6;^9D*f|;|H>*(7+G5 zGu5~hM0UI^=+QusR0pS4a8=Q$dF;jR#bq z;}f6KhiiaO$GH3W*}yNN$LW81!Xf~( zF9&9?zlP*sab7EvCNxq9{a(r<6cUa2d&po8Ihp;Pk4a;5V|^Mo@edT%0_TvojP0Pu zNA%xt7;QwE%(^X;6X+2)c^5mbLnDNb6MI@Ax2ZN2ifYCLs8*;3e~2nemh|Og7okwz z(N!Fv~U!=GmmKd-@<4pCd{PywxF4f&D~ z5LA&%&tUMlG)tre8Q1!M0DuBC9Hre2$L?;#B49N;P7DPEfe^qlKwEmPxE*1P*~9|xr!Q9 z(T>S-1T+<;R1vi}@t-nf>;|3XxA0o=T+46$2btT2FqzhM^MKK|typX2N(cnk%^hxN zmD_(ec4fE!`3Cj~17S?+Z;m zf&($9`7enz$M+%s{XW~#n77Gy)av*?1U{q1a4@ZNuoZCW%=85U;>_L#I8Mn_`t2eL z0h;}+k`k5vpKJ;++Eoc-+X+K&Uyxu7)x;o}DZn3*;M&(H0sRdVfnpdH9lqiTBr%%e zoD~QPaGMvLSwkq2ybWCK>pra#NgX`B$i;WRIbV3{^CLI(e&#i^ejH9lXHnR{j$fkI zz@OF}1s5yQt5pXMDi4_2{H5B~i0=g}Pt$cg#r-msi|+*~n)`{cUt$vwG2Z?hkeVSC z{{K>}Q=*!`-}%vZICb3lRq??P)swvrGu_G^aYAp-3CLM9Urv~wH?kCk_fe)0BhT z+Kw!MAzOAqf;PGe60}=UkRWS)L4r0Y3le09E=Z8cw;(|_tAYf}=%Qn@}F8lY-YA5y^N~&=?tQ@(Rd$mG>&MS>CIRM|rQZ-|00+V6p-hB*+@0 zgw82Z;2%68IB2Xp&E?s$T-lAxG71^JyKaJMNPHcyf$yCKbw_Ld$BFMW5I>H3E20yZ zb9|&HPH64pxU1P|xeShbVdB2mYspI(DFm5J>2Ooxx6}y6GCZ>%OkxlAa=^{^t&HM zTOWcW>Tq%B!o)3a!Dg!wIl519!Y$p~1f!}RMUa<=gO^&pEDT-->SccLQlXdT;Dy*m z_1z~aj#Rp<>7=6NjOHxu$O(F?)zj4`kW?kBwo?h$bt;MGMEdnEf374_UGIx4m90Fx zTkhR}_xDwt9p~)UR30xzv|m0UPp`_JKggrMnQzO;AN4+oFP#pS&ur?2S_V|auiwL7 zit~GSM^=-Y;8CsXRJy7qqT_4PL~<*yE}v`3 zMdl^^=(UYxUfaxT&q&?8WIK;@?ym+Lp# z=NEv5rU;4q&;Jsn`yz5UY)JgIf@&WVcjXESfbZVMU8)8JEBc%Eg!w+V!)Fja|y4n)wqA8AG>_ zUquU3?4HYMVa$6ZqRRpqB;o0xgLE1&z?fv#9LCr*W(~_?t-o#M0a$Zd?jV=y*N_TL zoAjHHre`%LLDN<~fF{X|kJa*A&FKY;rVfLqhbmOv{gKtC1DLL8kqAO9YJUTyF|GTU z%C;bjXUgs&7)aDx9`#;{w!hO2{KcI5l!;@om(|!!p!KzHt#FH5B5l;>dc0#XL$io$ zCa9_EFEKpa_Sd=*(8G*re;ON0B(Bz%#1rF`F%h2-qtxX?H~Rq6@*yV0-jjx?)YUTQU4#Pamw>Sexpx!cgD`DkisF~qECD-^)5 z4Aq!8ZoIpRyA7o%zim~E8C5gQgYR1fm+y}T@1`E!O}vL>!VVZHd(JrqLne1w1 zj1~#D<>?6F@JwoSs%Ab+DO9$@4fqxV-UXn*>mOa%uZr|>`aV7QzA~tLJZW*076Ub^ zxl|0m$^St4%gJ$AdjBfN$pc_%w^+@B7stK{GwrKL!E;?h|DGC^Q!&!7i zV6XnDixYnud0wYYHU>te9{Y6EsGJ5E!ezBeFuY`6K0IPI=}roVzPhxZ?8EJ{;7fweQOYK!^$Gug=i;fT)Z~_ z5@~w}&mu}tmI0rhMKq}_J(NXA+JNd5O-{gXs&Ei6UySK)Otd|4I(Fhw@*U6v#fL%e zMIv26e3%JjAvU>N)sAS3E$%&M*3Z$h++@#zF-+|o?~4-Wmk~EnF|yQeNy^w)zNOp* zmQ3~m>M}xaFEG3eBS`ly&Fz_Hg;H^43P^q%B3pxP{>o~RR?qKY%Fk@WC~?1;<8{ec zgxnZ2e#6>rat<15bKc|Tc1pfuzIE~EqLCU@tcHATWRR+rhAP=Q$?c~V(#sIC7GPtK z=usY71|!5|F_EG7i5{;c@4N+(T0Uyl{1?^kdfr*ozUzH9=A1=$8+PO@dL%N89L5yV z`aXn>#bLD@LM~D&Q+71J`e)*6GnZR<5BW713WA9p@(0Ljph4Y-#@somWl>MB+~=QP=!2C!ln!z%)*0jXJ00C0&-DPp_Osmu6ab5sXN*_6imN z;j@a7iLZomG{1>7r1|}#-;MHgSuBkHt3{+cvkx(S9#sr=al*bO;H?3}au$!m_-i?I z0Wv?7O-xGIwX|A$Wl?XFv&ckyux8myX-k1wc8@U+KdRnnqnVJq8uHe6npXSA17m!A zN#tCbR^rV0MHY72%&`I8-Q@LbA2i?5tGLK%Ih9PNS2a&Jz3uC`o&dKt0ocDEK*22F z{HZpx6^($}`jXDi0+#V|t@iJxKzyFLPzg&&Tv5Qy5NyNer zPIvDz63|_{zfKC&Zi3LVnMCmOH4XBx|0jfOTFlC|nw(G4R5-J;KL_wKV03#C>e{YCWw@piZLX^S<9tn8h zD{8!29QCkv`caP<#J2ia%}W$;TF1%2ShGjMVbmGELPBBPl94pcY+Vp-d~03vCnKGf z!`KD!w`;P4wdp|gKf%*eNN>3Zn~Q`>%`v(2wr{U!?2c%@dsn)odj0NQ!by&N7!T$1 zm&%#c*ysjg!>L1F=w6&Yj}%ODHKbs8?hX&rMxVqAJ&n^-xt=EIXUPfC#aRQx7GXx;$+pB$Up}u z2A&a_jc7LH5hJQK9iwn;N#rz0CKVc?C|7~-=DqA9g(%%ff7_7SWq}=2TB_R7q6HIG zdLV*yDWPd&r4>%^F{J}-;42Hn|I%*y8OT$4%cg$}=}0Js^+LcC)u%-ryWaCK@&Chh zmbMrX&<)x7a^o+F1+|Dz2eRa*a6UU`i>unu&0wk4UyyE^mqg^J3kSG|zi#5eh~zrM zgU%2Zz{W!J0l}SLVj4;+Gpj(N?Bp&|-cbmZBe}rjFv4dSvEJFe1%L?YZu0CX%kDem zB3r+x(X;->OK=C~DvnNO%C`L$C648y^<}>JKad(mYiv#T8S%27n#a-D`o#T4%JzVeI*axXr-S+#+LmskF-mp&-S?{UWK9_SBm_?LKZD4<(Kelw4{iq)QLkab(+t#NQss-yGmPQ(ug9V zLx`~itG?o|Szy`5e3{0uK&iWgN9!El)(W_)ABA1jEn!tL%Z>E^K9Tg;oQa~f#au+T zJAF6`0f7Oe{I(XqC;HxEROF6@idfbVT9rPEKhhrNQjr!laY_A)v7K7C1k$uR1+fwy zS2FcxV*R(DWVYjated&52$w3iM>~5*&Y6f&!J3&5iOsH0qCK9|o&-Af5~Ika{yc-m zfEbM+0qmmd(ExLQC9dP#Fs_FZ&Ha6yEGw{Z6{4_8a0WxL!qL?l#Y9h3nLz!- zcp)i9O64Se>*7zY=BG>3Nl~v=PYvFa>-dR!$xY_x7h6r@Z&LiE`{a-@;vN>tgeehY zlB{M3qBB>hq)>A>cCisG4cGu|_{enk2FMQ=BeQ`$bGZz8dB#405WQ)}hxsMidmm@c z-|36uzMEliW}Rxp>^-tKJ1xhWm%SKMy2e6paM<}|#qu(ovp2gnm<}NLi@A1T#a6S* zN;>q-0=rTGV%*zQg-bM>?te22-)mhPl06Md8xn+lEIE71@>qy_Q(}FXJpfab_&!95 zHxr?o6TVon1f%-HD*kctC+X`1aAV@!*se9;hC^0F}Umg6Ut7en77TvRKWm7;Rk;S0-~Zv1r+jM zN1{l56Tj&r3(eJ*w>>FLDv zJ?5PqiFs==vvrj`rWVAK{dzwEKrH_C%0SeuS7P2vx^M9KSn?{c#w`x7cWp?V-A^}~ z5!7UBtY#e(1Nbc1a)RDRA#2BGfR}O+jkg}hGf4I zSEs$Ufz=}#YWgrZo<4`R;VD+aj78wnj4jE|SR?i^SufIzEjBZDq?;&#EpBh9xx98t zO-|p%^pnHrh0NOvz#gZ72>ioRc`4KO(u&FX_=tJE1Ga;U5F#hESXYi=sZqgEw+bWi zj}LKXoy3UhA`31M%ENmT4E2u4xYV3#T^0rLYxjMULIAgKEfIZbgrZ*0Zc*>LZo!%x zWZ)>jXpt)z>9~K2Hn|P`MZM>^t4$_g=qFnB&uIJ&T7muih#zV(x;rvhV}V(Mm8@3d zlgJt!yC|s*Xs$<3kjMGT1sUC<$+J2BvC^0)w~AugU&DEH+15+2bj?9$cC&PJZ)FVYT8yZp?XMF!cIa_MjW-x8=W8YGSe=zZbvUjRqsr7M z_JA(V?4PN+m!{TPR|%OF-Ow`^*4%Q|>Zzyu$5BluHJSBw zU-9I=7RVl<6(HU4kTDgtPcGpL7YAN~Dd$;d_9^Jn!agxAW)IY}skGl=Zu?u58*?7z z25_tG3k0x@;@L8bK&agAv)7sPU9+?-FvyiaAv|fMR|}nn&M;^gY$MsK3vS3JilQH1TPRGEFW{Mo!aoY0!Nyuoo=N8k?GpPFy=U4LHMS9Yi>=d~Y{C zb7sts|Na?84I#G0?lvXFi|^SCspw*td)CXM!~_&e?L-;JK(|J@OJ?h2;!lZyQ|Ti* zzmA_DjV~v0tFE^Rb1__RZeHs>0wlcd#Aga1Wg2S!Iqgw@3UAtNgeJ>1EP|$pSLkUDTg_t+kR28C2--F91b;& zb3NqE#IVU!@BdZfh>x43I=fvULjWSR6$OSys&}P&oFVRazfD4K*h*G6S@JD@m>($v zn=8APoBgA3`ckpkN+~wf#O=eD^Av(ybo%FloRkAOjy0iVIp{~Dv9$+_wLt<9Cg<<6r}FSJz-b)b3zFoR+5qFNZWmF%OV7go(yCr?rgb$xU!!05P1t zGeEdQTHk+6{C^;q7>;h>1!5eR!+8TDnpm^XqFZ7uEmb_gYo(8a2_|f^WCdlUlh+!Z zTn0CzljGZNbn*tYR!u;uZ$xuX$+C2R$A>Xtyn(ir`l(Kd76G=O%3 zp*if49;%MLtA}jIbSK`cB$$q5%6(7j6H0DLM%rg6YvY{h>Z`ym-b@Qsp(fZ-sWl z{El<%-ei5`X1rjJoLe6mFS0&LdA?4{@ub`;li$~se5*^HpQpU|o8DDljBT;luls-( z*(Fx9$8y2(7zdJNaXMsz!DY&>M#J{c6KyAlMeNsiF3WvAS6{U-^Yvu=^-Ptmp%}| zL?nSLQ})5#eEhyX2I}Ih?};ihWnE@53BH>t`)DS=Q!-`m>vv+NY`cDMqQ}pVk*5V> zBz_@(1WKBVnah@#L~cpGoJ!L}b-NkTEO!lZ4{ow-k@<>Mh74yZ!!acOG7rwz1gBf3 ztd&ag;?BQ1g|$@djsig}`t;Fk-+CSXEYtLk^quJ&gHPj9Gj5XaIN1lu8fKA1)!~+>-?HZ{Hzm2w>m%9s44toVt0keOXAe zQg0C`RN0F3X+wxnKLwPU>dlI5#{6KPneZ^>KM0X_~@x)4V!I$v)C=3 zQY&DiQ|G)ORewb(Fh-x@w4O>k{j`WL(e>lkyKo!yyKMnDrVi46C(LON%7AmTReFYx zp7v|a#L@B)$%AJMr#}}w))H3=w)!#Nb?#ar20hj&+R$C5?5}Wdq%1M0hR)R8bQLN{ z#4Re?8mG94gg|H}U#(Sr+@r?_uZSZ-Kbpq-r%-2|_TNDXPAXltk3A z0(R<>6%0KyZobl4piOt!2va_ehspeCFcge%k&(-^Fe^l&9cD8O({*nNdLIk3C}6rA zdDvlL@d9YGpfIX*4;QP(JDLCB_!!BKM{0TKZ5B5u5PZOAm|!~b<+{o1sK{`N)F~S* zy{cWd=`6ab?=Sz1);AH%Z<_VdvnNyCgqom5@b_vE&E&EQR=}V07A&s|n_)S|{$wdS zJkPe}-|2759iQFb0n{mO&q<(BE8w{Djn< ztbqYXp?j(0zGdg~k%JI!-5@4~4Mxm(i#yR%6S)1*R^`TrMnX+t)i}~xI{jCu zZG6q4c|2uRG9t1L_JlX=?4^ljijWUdYQI)`yXVVTo+qtK)emmSh%eojhr)yAoP z+~?nQLtK7aG9y~kuWjc6GI>xEf$wxyr>gMi=ZnDn|l;U-z(VDu_sodbyBaq$R zL;QX(jF_})WI4=~<)8b0-1zcx?)>TCa*9Obx^P`$%(_0+>|@tD_pYkmOjqyi&?Q20 z>#XzcDzEdV_N()*uc-5`jHH*cGW_lm2?@Ph#RWQ*OJlz%;Gb7B(_@Kg7|3@y_dJ6o zw847@0|zdk=8n}E%FV;V8$!%NvbrtKD=b~+`j9?of;QDHWv zr$;%QEqfo_lj%0S)-9es*sc1|4Ly%(iyLo`J!EwVUq9HSaTodytxyG86gU(oSBX6L zms&Q``kmW(-t;(f>rjyb7rPtYaC@YPS=`TT0k0yO^q!`5{?TOV1Ti1uz`5FN#_GeF z&W*7U;;or@ZPIwAW}_>W`JpBoa=H zhOwaV=~Q0(Z@6fOXE@#2#!S}{j@E2xdd6RYaULZIH^D{@U_8k;nPn5VSJW*&+;EWo z#^!9OgPfn127;fxG%^NWWwWFVkpyM6b9^0F?r29s_^=2qG zV=TQev1FsXt&uS^>4&jCHh9ko2gvN&boxXZi`c5Vo$YLk@_THUzYtB#X%kMM3Q63& zt`1%+g`B610NVZr2$3z@YSQ*;EBWkGD)*%6ZPNtBKDFhZ#D$cm^_CV*O5fSwZLv*i zjKPm|lCk~GlEMquYoYC)r-A;{4n+S2_vg@GF0*lb1?b<=#CiR*BMsii{)oV*Y7-S} zMZh}O5k^09TGrtV00|u{vOdVT`oGQrF2+92un$hU+yM09mE7nAFfQ=nh)i)WxgeFy zw6_332c<<#ztAGttoo9Sd@8)iE-)sAm29s0f=D8jp1pZ)ES5E1lk}V642I3re;7Ji zj+A5M03(~+!eT5r249-fwRUfWx}e~1HxkafZCLjT>975zza}4yGy_WVuBra}e^sKX zjx|+Y00;+u>Ss@qEP#~zJM^Kt#%XjdqOukHtM$$F%V}-b^ZxLw4-Wra;M?}LTm;87 zU9p$46d>n=M+DxY%W^Qa-Koce$8^H(2|o%Q^40EW@O8C#j|j~_!!#)$-MSYfk@ zC~Q^By_7a8b%@Ls6#W!+DqpsqQgZoQ_Ns^Z;4aGtmmR(Mo+F)>-wJGePr1{2rJlea zgW23>z%H>q!&R%CSscuR`PFhK_T5&Y4YgOlGqkkUS->UL1O5mR%IRjiTZPubu1fOQ zh0C}(ZPr|hxgmcjVZ4kTA)ev7Kgida4aHF#OdOd_wT{-P?KIVzQN!=myjWii|C8WL z1)M*K{WL)BP4@crq4~56q)NY!`BKpTzc7wAVSv;66b8S1q^$$E|6e9i!eOq4a$CbS z2h^apZdIWs3gyP4jg)+_(jWcH$zj>Y1LpGrV@gV&pJgAyMgi6O{ne0orZ_;<2t*%l zoC+<=)nfo*I5y4WccAJ?<3#2xqW9^e9W?7o;sxn%Pr0CDV-KSY%y4Gw~!sjKt!h{>2XTg8OPJ3QpI_S;<#S0cqYog`3 zLeHv~=ZKXehKDtEA0W-#1310udWrPm#BjDaxFEqzCe>m$d9S)a*kv{gmsrETbHNfT zjW`$34z74a5Lsfk0;)cA;(t~#?*+I0ol?wygXg1ZFVT^{_v@Pb`|B<_Ga1zOTgjafgK2_SY*Ez%fj) zSM8%qZbO(x{fY59P&>VY6@Lb)qI2$*rxraSy1@a?Kn)bHU^3Fr-;j*zXIf!UW%;x%s$1dg_GP#KF*m9L64w@Fjfm z0=?Z*imQPt-GECQB(M{U)}q=Q0P$TX7&tT;7-I@xaJ6XxGJgN~L6D*G z6c(~b30UaZCt;y2NxFpR1U-L2@N3dj|ELCA0s#DwX)xDsvSy}EFPGO(=O=%RR#Jp1 zBR)#xW6N`=bI)+#=vcYTsj+0)E_86@2(WAdAN17~n!3ir1U^`qaf84I@7#Wh(GmZH zjOISty41SLo2QXH7g{)^Xa15?|v3YPzqusvFzQZ_5Pn!+!E?yHW+*nas50dmRRta z?OQoE8H=3WL%K)>L|o9aQ}@2FVP0M#n|r`+ocosz4%&BAP@mKKQ#0-?@cXMuQCwsX zRF@hc5ov2;7}K5at)Lda3=lE2Qs=?#@U(Z>R$zvv7aD`bj?~bjM1aG?{+N%nxqujX zKwf{mXwqWtPD~A1c|wN4SmXv7sIIc6;=3cbc1d6z9S8;v%hMPgX88x{SctEj+Y;Hu zqt>LWv~2CR={JzBq5`d7?Q-aoZOdBb>obPWAbe>BwM^z^Ll0Y0ejjy#`N$V5WhSPC z{e|>LX2GWq`t_Hre|3vTVn|Jvpzn#=*e2=J_v#jR!`t!*IA}q{8rFmCaIreL&iyZF znNVP)Rc?=UutdxqSJR9Tum!OK=d-%zJEiTn**h(oYTYWr0+qCbe%y+eIX`T3YhHAI++NWh zP24#cn@P)>N58BtI3rdye;8`|PD8Q*kyGMc72)f!)JnA+sD+G6mpBMZ-lE1BRsjWC zIle`&vIh(nuQLHxM(15M?DlwBR}D`Ji~(-VzNQW8r-2W&N|mmAT!fwevazPD8YvdX zHMQO7J6lbl!@3U`iMRslaYGn^?ub;@J>HER)ol&j8%0qro3%y6@jj)9EJ8=PL{Ezj z88L23Uw7i3Nm1DDjJlO0OV7!czg8oVxN}n7p;Uwc<~0yi}A5%hwU=RY=2(Noz|%s(;{HW!mv6n zmdt(TvI`nvLY6i76;qFCidQ&UVu{+)y2KU6R58v?N*C>OuVKmKunb(N%ylE=K{c|1A`*%aFxHFt;aRx^c(n8#X&XPNh5-53@( zv7yw}(mLYH!|8{xHU4~v2!%7YznWw=9pY~zf9@u9$=K4;qQ|i}V2M0`q9rC|R5cqc zLSeHSNyN~Z7YqUZlxLrezdc>fid8gmUe~=iV{&~^YlqsD81~PvX*1`fhxp-aaPsT{ z*uzE}B6F+KoeXdMd^gdn+L*Z4G;&w@hoQ#4ch$@kOO9ow zfi1SKX?it?FYuK1Bh608%jTw8xLjtV3N(f5GXI+>qC@?-ccJmeAUwns8hgXIEiu{5 z-H7o$p~l1Fdk$?3$M>A|h{g1PlyY7JjUN0(5E{>`XooFhg$izQBPox(m~WhVmWXUgW?d`3~CTwDDQ zPd=k)sN=NGR!!`242sp@UHY2qT<`+-%&{L?mwCb9Vy%oCEpcVT{h+FS@=Z~K1F=SP z9O-GYX3CDeox#Q(c(gg^F@F5`o83goNff{vrFjC)Qg4)DoYT9RJpjnq{=}D0&!a#5 zSKGI7ks@pHK>GgUp`sINf}D=|7MmS!31G69O<#>0F3a(@!Gyf&{pT)o#|THUNPmW) zN~6~951dPoCvsINwi9tBhn;bRklAa_IZ#Wo>(!$GpQPAQMJdUYg~5lfWkhqVpBac` z*NK0WSC1jnu5XQ0d$b^F!7u~F!$3-qyj5Rn^~JSAH)yr8Yv?j%y~b-YXnJuBn*mM^ zn|ruv$|r+NQ~qiozZNuP&TVGuuxaAGmHMwM*fPm(nO3BJu2=M=4)C73m=_5>Fa9OF zf8rvQ=A)m3yti|UjZ@XU)nYxx&ov!6|1P`VQcwig^O}D`Hckm2HZ;^Y0R2C{yi^+y z#AhHlgPVMGt^qbkCrL78bD_t&m9tfZrE!y+cw)Xj$DdFx2q3Osi>6m7olXDfj%?E(5R@#YlFj+AIeg=| z>k|6JjSmJfLPXKZ+HjY~-uc+@cLP#GR4=+B|0OI)Gb#(p4D8Z)ctJb-$tpD8+%F0d zjFtk-dN5XG?1V=VoYv4V(h7`(eamk`o7xtY1U(oUs%A4YqeQs`nVk!k6h5#Tc9O04 zR;KJ!h!Zsi`+2&U8#!a%P*z=OlgVR`x{vZ6oMj{!HdY5WaqL&7@*Mv-(|C=`72vMd zHL3(QQt^El_69DknX>1Y9ZzW*8K0U=*}HHpHU7GoHyv$%5-Z5n6{~8Eh{pI#e+Gg! zks(Jzlyx`YOfYPF7fq+KuQ8pLN{CFwk0hoH`)tF~TnxpRoAl*0zGTXZ#1u#8SNI~# zg$?qmP3kHK%rue3hcTQO#9<*A_LQliSK=%)VFv)t^i9X&+{rOt`Zb_Z`u$`+`UcKUS28#v%V_XG_MaMD?n+esgAGfgRhm3v$v)G*{_wMrlBqx-aye-nU?>-@=-c8*ggL0SG88A zFI1Lr?O%}+wWKti-+cZ+_7zv8&oO0#54EAD?!kwHL+b-H11a~}Y?o#$`{#{k6xBM5 zFhsi{cTTS(f2P$Ns!tC3IMC|8MAOrpIW0Df0#*>`8kezf9D~Nv)a7F>`qB>xeYyE0 z^owB_9u!6AproZ27`Utu|XK;_V{8Ffj2-d555XihBc z9R?ttuLg8zsm7u)GCEV%ZLHu+dV@-J|V@98}p%09wfHN2G1)N@gI7@)xU?Kk6S zKyuiReyZNizloRl@^RO86zGf474f6w`ky#HmN+L$^t&d9cv0H0zjai&!FwY;Qm+^> zGG(y|n$;`J^I-V7_RNs)ZNiy+G>6^3{dK~(xz4v&>(2^Vze~qEx3q)mf2=WXE^F|w z2-Gv}@F6MT9b$YgDul*?E~>ihp-nwC6}EJhCQr)5m4jtB24A({D>P6RB%v`l1s68w zGRK5;9xjAmaS3c>N?0BlPBby9+||9FHKE31(`TFZH`7Yf+^66x!N;bfaZ5q`9UN-J z|CY;=Y_LMtb4wqF^b4*G3TQ5z%3NY;ZrX!(%EFK5QP)VK(Up=*jBJuA zoBa)@_7lT3mzWR(if{GAhJka$V9fGak9r%!k010t-Fv;By+AA=~mJa%GZ2@ z8@mn10hNJP@~u>^%AiPZ&P3|~5eM2hBPcye-q1yKKYeCif8E4)(TyHLW>-kJyl%E0 zjkHl`E_zd#rcw$<>0No3XcA`yqfTH*X>a19Yx-jN&j9F^3DCqub4$%CknW~Ov87r# zQ6NAgATU!$z<>sifS(QJ#5h66AiR2(F?m5JIsIii$Ogj|qf^)XkhaH{htU*WE+T)l zrA>lGxzjQl*6!<|P+ouHLqbhdI>p?Rp{{KZ^8#y7m-dB63p2-G)=dR0RIhf zk!*d}U0_*Cpc&8LfCekTORvcoRDsH>_Z!eQF@`BZaNsq56QO6onuxxn>4@rGLjKrCMGLrJr}>d#74Fd(;Rw~P z#*>Z5pmAybmLx%ZHduU!nf0r19OyUF1&n)r7s zx&()`N31sWHP*xuHOyV+6ASgYSmGPF_Ylb}fQ{$k$FL+-7wJr@HPzK8I9bB6)TT4( zO8QHW+S(<|DiRx~2btQxWj#hqp(Eq6*&ClvTog%6tV~=!Kno|iF@H!<#g_&Hm4+5V zM>^6H#h%zLky_4vBl5)%XNlm>Y#5^*m~fO6d!7K zv$}Tw)hc`)*K+p0ZZ%tOV^(Y3TCH_!wH7uRdRd7I!tdploChzo^ilF#OCJT}i__h{ zCyE%qr}W1lDpR&hi?dkgU0}xSFVHr_SCvN@&01J|jmajN8h7}vS8L29>(q4E^ZbUf z8ZKhoN8!YbvSAWhr*xEP8~*RGP`UC*N7%skV62cI79ju0+j#&^$cZA;$oQTUnyxWV zQSa~AB4(=2#Oa5SqmvTg#_1S zhElZ7k%w{{>Z+0WsML8Qdq!6k*leX`TqCL*lh=_<*@UZ*|Lf`u9T$AKgby)~(+bAB z6}Csf#F2(+SgRUDmuFH_2s-1KcU|3BsUc%K@`oi3TdEAQoegIq=e@C53gz_e6{??|>{4IfLct9gCyV9V0A>@7(`gYJB3VaE{;a7f<;Y@ZQeJ zWcG93H$~WW_Eu$1y5cMQe@}KT+tt13@#EQn(q99+rcw?1bqcl5AzDTXj2R@Neq`V8Bld^BT zYMEwp>W+`aQppT$6D}R6YB)NJ%KvIAhCUDsxb{{i8V0EAjJ9u>j;Zl@dT%f<=Dfbv zB6{sYAv(K0X6+#rERAOC>^!bV0b)i=w*z+6+~ZZrSep#nsj`oRW+J~Pu4nP;wz8xgk&UBs-t}tF)N@Q;GkBZXLs!(6)8JoX3CDDz z`(e#fczoq$xyTnUGcbdVWss;^NONU)8Y@ey$;u=^nn(>k-;T_{|19KwS$m${*hGg< zmQ8yXV~zKg_v&LsP)+KgKhW_6bCL+NO;Kb0x6@a`ww1W`1V1#~Lu`vDCs|?BlTQ5w7BUitu!dtLm1}L3=hK@rb%+VXhgXpb#ypWHt15U zN97Dd_Ba^vKS;tZ3lt2{xH@MyQ?BpGl%3pQqLp#y~$= zjprJZi&pW*6NAx30Q-&>iJZKLe3vPEiuvIj8c1BirfdS)2`z%81+Ue6yHYO_vs)xc zBWgai5w2Es7UQ!-u?D}DhU_wB8yO!RVG`zH_bBB|HO!XS_;dq3P1hd7V``u=3=M?h ztZ9gO|MJj0gZQxXEOJ-eXOUWD;=ot0&+*R!dCKK9v(9{@Elb9EM%$W2Ze~Se-%hmL zbc1Tukw2$JUVNIMpcc8=%u=;38vjJB?VU7nhLAKnncIKv+QA%Ee&lQxyrHKVnfW#1 z|1yOLq#`)r5aX-SP-k3WhJc+Zu>_$>XFfPpXxb%8{^P~uU<4|=97uAnr{((~EBcfc7yiwV?;;!_mOTBn z{_k?Y{O{>g!MEG~E@*j}HAeeizobOAKA2>flc3J*qe(=(JR0@@r9k=8H56?DoN94s*S9dT@^aXUh6UB@xSD);8X0?D~fnx^o_EBlqxX zBc!Rj>L^Of-ccbkLs$}md4@ZgZ|or|-jPBWza(M{{mn;b<*a|RXpaNVL%U2l&f9d7 z39~e)2%*MleU2~9A7e9;2Y31?A}+Rc<4KT9o2Q5A^B>6(kmf-cAAXXC@gaE^a6R6A zx#8e>(#TOhi!~|9mmvhk zmsfULzR{(1$LgG5lF%U5 zVV8NLNwP+3&me^>s%m#;JtzVSE!VNl*3C^T-Nb+ht$Mg5eVTm#Fnc)5psRThz@l8IQ`av?GCwjbuM=V8=Vwm(8L~lViq?AsYvz)-_bCY&!4}xtloXQS=*wIWo5iHk z+PM?L=9Uw)`sHUn>TOHD2b^tRip_~@-l&p=7wx<+XnwdtJf z`udLr2~k4YHM>EQOW1EqfHIzIdH(*<8kTzO4hTG>B?s!^YJO?91YN#OP|_r;k+U&x zntvm-Y)J-z0Fu$dEm=w%l1_`Rqzp)A+z5vIFXpSnn!ytL%~4?aq+FjlsTQ%+aA196 z7ba0#E6*R}vT}W9tF!1TLQ;0Uj)mee0_oDIL5G;$XRl{Uc0KP|zWqPi-UL4C>gxZ` zgbWPpH&F(oRT(sDP>`fz>G`;>r&jQ3#D3>!i-?u0+T3{=~y0HTig1y*4pQ> z{pnNOaH&ExPk_LyexG`;B%T64n$apj;eRl?`Dxj3dzpr&_|Q#!rOLeJ?n zl*mr6`36GU>7B^l*i4=^h1qEPV!_wu|K z7AwP3_;Hg<>*Dj6=V(h9Ks_mME%13#({J8-XxyccX6-J7n%1ziON~pgNIFBdUtwYeNmI zW_}Z!SnO)qCUCp83%_Wr?nTY;eu>pO?(4r_1TPBH456YF?(@K zYDQ%^1)TuFef8@UbE!Q=M=~-74#hX^4DEQ+WG(Lg*dz8j*T?^A{@3!KliG7b{GY=A z>HMFA-`iH2^Tl2lH!u`20Z-Az3MhX;73afCQRA$MeQde_sR}36l@MKFdkGES275Sj zmJVEQLg;Ks9xb^ukR65oPgelY2%Qq~aGqnO&~ux_Gj453T%#jBCX&2Z21ZZCr6PJd z=>Q~05M3@ZJdGowS${T_pi|S~VB&A-`?h?LYe`;HnY~B;_~4#?t^{la=cyoIoq`rY zQv_6chye6wp{J)lbg%kHgIZ|Pgbr(F9&N6=6jg`67$O3*n**P9G1!%y$qx-%5ypY#Uy4Akz_U0NLFXn9Ml)D zC1Cyo51F1mT7r?uIi@DP>qwF957YZ3MYemaN4DLeq4@Q+NVKQ3$D_Y6 z;jFK(#bl;dGD;+MC1wLJN6%+c7mGp}HOdU;MysV6*{fyvW=w&(`~QJ+tGON=zrL|7 zdI|KvP>+w(*K=n^Qk7!RlbTL`Xx`f{_-y_36Ekf?&ZD0k* z-S@uf3-!fCY#*8Bpj$4St}QHw*V7hdiIyBs?b)x)cj-h^;vKF*R@c9r&yM$1QMqD) z3`Ye>abrilD+Ybwlz!ryz1N8$!P>)Tu2bav9)Kyi&Og~qjf6c@PtO12M%E3MJ!22n zZlCghw=WXkp>!({3boG+{|PN~8Fz0jM# zYmfV1(VK_NaE#1m=*^}RzDjQvljm#b&F}X1>0hTe6(<7BJ?YJd4gU_k`2z&=AJLn7 zF11*CGl8cPdb1OurATi&4j1Gwga=PYA_t63J;`F`$qMtsHM?4M+F2 zs7o-E)D4(Bm~Alzz7l;&a_nMYjM}8nKuuQK*r&6WD+{`l1F*mEhvjI}=u7I@sL+>O ztd)8~iM~YQ4Ae;yo0jQwqCRLX?Gn9>k40t4YO70UVakLPl}SzZ5HuuPi^T|Pa0#XETmV(b4oqj(s52st(Q%>VQSK3hl;g)rL57Bn1EI?pKqPh812f>2k{pfb zct9=Y{Lg^o!NiJS>vm7Z_=8J&M_t3%Wle@hYVVPHNl+x|-Oo*T+K&~krM!d8H;J_f zxYNa07!T8&?z>~edTar$h`Zp>3$s&=8W~FhHWE^u(PyN!3$Udb9}9Dr32vG$vp*A; zJd|p#>}Y`vqxPoxMo(}fu`hI>_RpH3h4c@RLpU~TKsOgko)}7=%ApxnnDB${p&8ty zJv1xhnnjV_fa>M^TS0!pvP6%zP<)-eOYB18C?lz3D3!yeViX%E1{1mThb?TTC-UTi zIJ!FLzmg)@d@WhgTjOfA)b;DsSDW%2VFJzA9@t*bVv(koLs~HcgW8 zbhZK82X-DbX2L&I8T^ub0ag>dO|iO)<1SEMxS_h7|D$8vwE*D491^FeGi>bl5xmAF3r;@qCg2mZkFQ~#Uw<5~N4>u3Je|I+&T z!}IFRKUqIDrt^{W0-&;R(V2l6X zt)CO&Q~$N~)A`M>te*!+Dp@~2(=CLrUq64sm~7AWa}-7X$@*D)g>ZA=FxaBf_48X+ z-oLeeHaK>zKza)6=c%ks)B34pr}$Ub&wd#s;YhOPC}$nT!(=YFGs+LAu2 zx@7%K2-x-W{zXM3_vAH$9E2$J=j>{(0gR*^u=o>pvo=aY%+h~%)674s6--(t)by> z&72j6SMj_ZX&^x-E!^5e2Dm-X-nVH7>xY0o8&RY?o6_0&QKDM1pu#Gd8``Mwy57qt zd=IHSC{FGC6uGnS-2 zb9A<&C{hvQqV8xzW3KC^4sEd97{R-`-bJu}Zcz3h*`Hwda8!PN?q=tPA3II_*fAxN zljX;_4M~{nJU@nuH}PXL#}~z==R?WCHLzg*?7j0gH2;$tk37+d+ zd)TxguaU@~G^PB1qnmji>gZzy8uhP-JPiJ=aZRugdMDZN3}~Y|31E=cFVQq7`Ra2; zabiIz-cW`z&O|=zLP@kUwv|RA4J(~nH^Or)tOyU^8QUi#`;z*cdBfqPm=U?)_v9Aj z+kmLDABNC?y}*u1TPr+?ZFvn?KdH4o%Z_Egk+tDONrVsn}8JfRfq%h#F|jU zmobbz)*yG_g>dE-06p3y5GyK9vgu@WbZci$!=jkDZe1Myj5#@!@Ps`>GdIGnpa4L4v*F{c*B{meBG=?Uw_u3 z#MbmV>$T3lf^Wz}oWE{2YivG9AxjTM%IJY`f+gA;iZ1Ux?r0y+Y zNr@@j5=>picfP?dTG8~R**(d1p8s_987wtdO===KIhE%i#OSKgMd%% zq<_X!fywu!C%F84F81%kbD}UqYFDvxft-KcVPA#kV_)tCVg-2qVsBsnH}Kra6n+Js z?~wR^8J=~r05Zq&LRwcicXaN-A1GM8D;=J8isf!E;n&ucX7^Vewlf~(zTrEMQoYkCruNECxb@E&IldHoKW4~w%+=7G|95B%3^!Cp3)8x~0a^y_ zSAdb!CMM(c*_ba)9^8}wdebYWC8qS|PBe}ej7?4mcME-gBzFt4vhSfI99}rv)QOPo zis6oRAg2C|&fl2T_7lopYV8B)ZO9z@5MnG7nAWwNwl;C*=!KsikT|vyB6ve3-S~cG z??j{$WYgVxo(AY?s-6b(FrD86Ii2?CWNeCQ*0@SYyjdhZZhPl3Kd0IGsW~$U zMf}0s@a@b!0IRV6%w%jKh5L%3WEg1Ce*PdSd-Q_%E~cdL{S3atz~FG6A0{De=Acsf z0YVuat>)J7-8>4;d~{=dq)ye!A+I8fmx;2pbQ{#ylyU_>wb#^j}whkjt!u z%@h8xegD+(CfoxPI3^=cdNByb!WJEYu0&l_-IACVa4jGTccThNXr+j;38F6X+n8gG zJ?$C8>^%*)u=rH^oAbX3ADBHW|9#79^Sxc)$C>X>>bnlX99wi=vFLB~Nk+5}+ESB> zrP>U4DIQV{XZO()=rJSR-H$DMKle3|euP(pH|f*%v&`kk-`8R;=reI~VywQ8jwGk~ zaE5jh(9Pf6gG4lO{HPlVc*(vIWhAN(=;W-@@psS@voM;Ns%gP49F{wey$Fk3S&U;F z8itR!zaW#9yY>o+P(^5Eqd9~W{~zxPm^(l##~W`4JR>rlo`=7+@sg>9u(VdU@zBu+ z(vMSKeXA{too50XoF(3|Ld@xa(jKPKUzi>m3{?-U(}HO$8!P&iu~6ppUfJklGN2<< zSgz9tuWUR}ubHXrF~-KjG^{11qXFAI{vy~VWr=|>Vk8vBRH≶84MLU3Qo-7EPU5 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

    6K9J*i9rN5wyuTL_&GGAE#NfiRe!4bKO4v*FyP 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 z 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.QJ9 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

  • isV>oaMwR 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�Y24fN)cewArq0$# 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

    RNke$O$l|_`{k11i4bI^r$ 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≧1B+M!vrMNW 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
    q9vEz2}Id!!uN!_(=jVd>lg+%IA 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

    9Z-rLFaPRy(X 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

    MZn!92t3wQ+WcsdikyO)Gh~5ZI474%yJg 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 _hrZLVRi1? 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 A?EnA( From 7e9c84e598c00892795ff156a30befb2d8b1d41a Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Wed, 2 Jun 2021 12:37:19 +0200 Subject: [PATCH 19/81] Workflow: improve test, fix push (#15) --- .github/workflows/ci.yml | 17 +++++++++++++++-- .github/workflows/fosdem.yml | 14 ++++++++++++-- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 76ff288..0558fa6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,8 +35,21 @@ jobs: docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false gianlu33/reactive-event-manager:latest docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false gianlu33/reactive-event-manager:latest git clone https://github.com/gianlu33/authentic-execution.git - docker run --rm --network=host -v $(pwd)/authentic-execution:/usr/src/app/ ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools --verbose deploy --workspace demo native.json + shopt -s expand_aliases + alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/authentic-execution:/usr/src/app/ ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" + REACTIVE_TOOLS --verbose deploy --workspace demo native.json --result ../res.json + REACTIVE_TOOLS --verbose attest res.json + REACTIVE_TOOLS --verbose connect res.json + REACTIVE_TOOLS --verbose output res.json --connection init-server --arg beef + [ $(curl localhost:48879) -eq 0 ] + REACTIVE_TOOLS --verbose output res.json --connection trigger-btn + [ $(curl localhost:48879) -eq 1 ] + REACTIVE_TOOLS --verbose output res.json --connection trigger-btn + [ $(curl localhost:48879) -eq 2 ] - name: Push if: ${{ github.event_name != 'pull_request' }} - run: docker push ${{ env.REPO }}:${{ steps.build.outputs.tag }} + run: | + docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }} + docker push ${{ env.REPO }}:${{ steps.build.outputs.tag }} + docker logout diff --git a/.github/workflows/fosdem.yml b/.github/workflows/fosdem.yml index 7137bc6..3c2243d 100644 --- a/.github/workflows/fosdem.yml +++ b/.github/workflows/fosdem.yml @@ -26,7 +26,17 @@ jobs: docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false gianlu33/reactive-event-manager:latest docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false gianlu33/reactive-event-manager:latest git clone https://github.com/gianlu33/authentic-execution.git - docker run --rm --network=host -v $(pwd)/authentic-execution:/usr/src/app/ ${{ env.REPO }} reactive-tools --verbose deploy --workspace demo native.json + shopt -s expand_aliases + alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/authentic-execution:/usr/src/app/ ${{ env.REPO }} reactive-tools" + REACTIVE_TOOLS --verbose deploy --workspace demo native.json --result ../res.json + REACTIVE_TOOLS --verbose output --config res.json --connection init-server --arg beef + [ $(curl localhost:48879) -eq 0 ] + REACTIVE_TOOLS --verbose output --config res.json --connection trigger-btn + [ $(curl localhost:48879) -eq 1 ] + REACTIVE_TOOLS --verbose output --config res.json --connection trigger-btn + [ $(curl localhost:48879) -eq 2 ] - name: Push - run: docker push ${{ env.REPO }} + run: | + docker push ${{ env.REPO }} + docker logout From 46621852e7736d08b776717f94253d8a2e345ea0 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Wed, 2 Jun 2021 14:37:25 +0200 Subject: [PATCH 20/81] Dockerfile for the fosdem image (#16) --- .github/workflows/fosdem.yml | 11 +++++------ Dockerfile.fosdem | 31 +++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 Dockerfile.fosdem diff --git a/.github/workflows/fosdem.yml b/.github/workflows/fosdem.yml index 3c2243d..298fb63 100644 --- a/.github/workflows/fosdem.yml +++ b/.github/workflows/fosdem.yml @@ -11,20 +11,19 @@ jobs: build-test-publish: runs-on: ubuntu-latest steps: + - + uses: actions/checkout@master - name: Login run: docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Pull - run: git clone --branch fosdem-21 https://github.com/gianlu33/reactive-tools.git - name: Build - run: cd reactive-tools && docker build -t ${{ env.REPO }} . + run: docker build -f Dockerfile.fosdem -t ${{ env.REPO }} . - name: Test run: | - docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false gianlu33/reactive-event-manager:latest - docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false gianlu33/reactive-event-manager:fosdem + docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false gianlu33/reactive-event-manager:fosdem git clone https://github.com/gianlu33/authentic-execution.git shopt -s expand_aliases alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/authentic-execution:/usr/src/app/ ${{ env.REPO }} reactive-tools" diff --git a/Dockerfile.fosdem b/Dockerfile.fosdem new file mode 100644 index 0000000..fb4823c --- /dev/null +++ b/Dockerfile.fosdem @@ -0,0 +1,31 @@ +FROM gianlu33/reactive-base:latest + +WORKDIR /usr/src/install + +# Patch sancus-compiler and sancus-support using the fosdem-21 version of the repos +ARG SANCUS_SECURITY=128 +ARG SANCUS_KEY=deadbeefcafebabec0defeeddefec8ed + +RUN git clone --branch fosdem-21 https://github.com/gianlu33/sancus-compiler.git \ + && mkdir -p sancus-compiler/build && cd sancus-compiler/build \ + && cmake .. -DSECURITY=$2 -DMASTER_KEY=$3 \ + && make && make install + +RUN git clone --branch fosdem-21 https://github.com/gianlu33/sancus-support.git \ + && mkdir -p sancus-support/build && cd sancus-support/build \ + && cmake .. -DSECURITY=$2 -DMASTER_KEY=$3 \ + && make && make install + + +# Install python packages using the fosdem-21 version of the repos +# Install reactive-tools first, otherwise the versions of reactive-net and rust-sgx-gen will be replaced + +RUN git clone --branch fosdem-21 https://github.com/gianlu33/reactive-net.git \ + && git clone --branch fosdem-21 https://github.com/gianlu33/rust-sgx-gen.git \ + && git clone --branch fosdem-21 https://github.com/gianlu33/reactive-tools.git \ + && pip install reactive-tools/ \ + && pip install reactive-net/ \ + && pip install rust-sgx-gen/ \ + && rm -rf /usr/src/install + + WORKDIR /usr/src/app From dafb8382a1450d0caab156533ce0ff02e823d227 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Wed, 2 Jun 2021 14:49:16 +0200 Subject: [PATCH 21/81] small fix workflow (#17) --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0558fa6..ae5d025 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,7 +3,6 @@ on: push: branches: - master - - fosdem-21 schedule: - cron: '0 0 1 */1 *' # Every month pull_request: From 64abd96ea337a40622dc88ef7a38585913e217a2 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Thu, 1 Jul 2021 10:26:17 +0200 Subject: [PATCH 22/81] update cron of workflows (#18) --- .github/workflows/ci.yml | 2 +- .github/workflows/fosdem.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae5d025..369a3ad 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,7 +4,7 @@ on: branches: - master schedule: - - cron: '0 0 1 */1 *' # Every month + - cron: '0 0 2 */1 *' # Every month pull_request: workflow_dispatch: # Allow manual triggering diff --git a/.github/workflows/fosdem.yml b/.github/workflows/fosdem.yml index 298fb63..872545c 100644 --- a/.github/workflows/fosdem.yml +++ b/.github/workflows/fosdem.yml @@ -1,7 +1,7 @@ name: Fosdem on: schedule: - - cron: '0 0 1 */1 *' # Every month + - cron: '0 0 2 */1 *' # Every month workflow_dispatch: # Allow manual triggering env: From 55cd1a1cbe57d9c13493426b3a3cb638c9bc1549 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Thu, 15 Jul 2021 15:44:36 +0200 Subject: [PATCH 23/81] minor: build folder for SGX/native is self.folder and not self.name --- reactivetools/modules/native.py | 2 +- reactivetools/modules/sgx.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/reactivetools/modules/native.py b/reactivetools/modules/native.py index 3d9a57d..cebd1a5 100644 --- a/reactivetools/modules/native.py +++ b/reactivetools/modules/native.py @@ -31,7 +31,7 @@ def __init__(self, name, node, priority, deployed, nonce, attested, features, self.features = [] if features is None else features self.id = id if id is not None else node.get_module_id() self.port = port or self.node.reactive_port + self.id - self.output = os.path.join(glob.BUILD_DIR, name) + self.output = os.path.join(glob.BUILD_DIR, folder) self.folder = folder diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index df91fac..b1dc77f 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -49,7 +49,7 @@ def __init__(self, name, node, priority, deployed, nonce, attested, vendor_key, self.features = [] if features is None else features self.id = id if id is not None else node.get_module_id() self.port = port or self.node.reactive_port + self.id - self.output = os.path.join(glob.BUILD_DIR, name) + self.output = os.path.join(glob.BUILD_DIR, folder) self.folder = folder From cdb3c717cbb6a6fb01d73a46ef91cd04c76b1e16 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Mon, 26 Jul 2021 14:18:54 +0200 Subject: [PATCH 24/81] add byte to the "connect" message, remove overr. in sancus.py (#22) --- reactivetools/nodes/base.py | 1 + reactivetools/nodes/sancus.py | 24 ------------------------ 2 files changed, 1 insertion(+), 24 deletions(-) diff --git a/reactivetools/nodes/base.py b/reactivetools/nodes/base.py index 3c31703..c257e58 100644 --- a/reactivetools/nodes/base.py +++ b/reactivetools/nodes/base.py @@ -161,6 +161,7 @@ async def connect(self, to_module, conn_id): payload = tools.pack_int16(conn_id) + \ tools.pack_int16(module_id) + \ + tools.pack_int8(int(to_module.node is self)) + \ tools.pack_int16(to_module.node.reactive_port) + \ to_module.node.ip_address.packed diff --git a/reactivetools/nodes/sancus.py b/reactivetools/nodes/sancus.py index eb0bbe1..251c61b 100644 --- a/reactivetools/nodes/sancus.py +++ b/reactivetools/nodes/sancus.py @@ -169,27 +169,3 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): module.name, conn_io.name, self.name, binascii.hexlify(key).decode('ascii')) ) - - - async def connect(self, to_module, conn_id): - module_id = await to_module.get_id() - - # HACK for sancus event manager: - # if ip address is 0.0.0.0 it handles the connection as local - ip_address = b'\x00' * 4 if \ - to_module.node is self else \ - to_module.node.ip_address.packed - - payload = tools.pack_int16(conn_id) + \ - tools.pack_int16(module_id) + \ - tools.pack_int16(to_module.node.reactive_port) + \ - ip_address - - command = CommandMessage(ReactiveCommand.Connect, - Message(payload), - self.ip_address, - self.reactive_port) - - await self._send_reactive_command( - command, - log='Connecting id {} to {}'.format(conn_id, to_module.name)) From 1302e8d8c5e3d12ee3a6c63778d130202132d1c6 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 26 Jul 2021 14:37:17 +0200 Subject: [PATCH 25/81] fix "data" param in encrypt_aes and decrypt_aes --- reactivetools/crypto.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reactivetools/crypto.py b/reactivetools/crypto.py index db29daa..82e5950 100644 --- a/reactivetools/crypto.py +++ b/reactivetools/crypto.py @@ -55,7 +55,7 @@ async def mac(self, key, ad): return await encrypt_spongent(key, ad) -async def encrypt_aes(key, ad, data=[]): +async def encrypt_aes(key, ad, data=b''): # Note: we set nonce to zero because our nonce is part of the associated data aes_gcm = AES.new(key, AES.MODE_GCM, nonce=b'\x00'*12) aes_gcm.update(ad) @@ -64,7 +64,7 @@ async def encrypt_aes(key, ad, data=[]): return cipher + tag -async def decrypt_aes(key, ad, data=[]): +async def decrypt_aes(key, ad, data=b''): try: aes_gcm = AES.new(key, AES.MODE_GCM, nonce=b'\x00'*12) aes_gcm.update(ad) From ecf0efff8d5a4064ced3a549754d5e09e0cb4a39 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 26 Jul 2021 15:17:36 +0200 Subject: [PATCH 26/81] update rust-sgx-gen version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 48698ff..483b7b5 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ 'aiofile==3.3.3', 'pycryptodome==3.10.1', 'reactive-net==0.2', - 'rust-sgx-gen==0.1.3', + 'rust-sgx-gen==0.1.4', 'PyYAML==5.4.1' ], classifiers=[ From ba5bc84fe17c11ac40131ec82f2cc0e0d18fdf2a Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 26 Jul 2021 18:19:04 +0200 Subject: [PATCH 27/81] fix binary name SGX and native --- reactivetools/modules/native.py | 2 +- reactivetools/modules/sgx.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/reactivetools/modules/native.py b/reactivetools/modules/native.py index cebd1a5..16e5304 100644 --- a/reactivetools/modules/native.py +++ b/reactivetools/modules/native.py @@ -260,7 +260,7 @@ async def __build(self): await tools.run_async(*cmd) binary = os.path.join(self.output, - "target", glob.get_build_mode().to_str(), self.folder) + "target", glob.get_build_mode().to_str(), self.name) logging.info("Built module {}".format(self.name)) return binary diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index b1dc77f..a9cf2fe 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -325,7 +325,7 @@ async def __build(self): await tools.run_async(*cmd) binary = os.path.join(self.output, "target", SGX_TARGET, - glob.get_build_mode().to_str(), self.folder) + glob.get_build_mode().to_str(), self.name) logging.info("Built module {}".format(self.name)) From 10f806a021c8fa50bed5fb17e1372352afcc92fe Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Tue, 27 Jul 2021 10:46:48 +0200 Subject: [PATCH 28/81] TrustZone support (#20) * Add two new classes: TrustZoneNode and TrustZoneModule * Add basic examples under examples/example_trustzone Co-authored-by: Sepideh Pouyanrad --- AUTHORS | 1 + .../example_trustzone/button_driver/Makefile | 12 + .../button_driver/authentic_execution.c | 684 ++++++++++++++++++ .../button_driver/button_driver.c | 34 + .../include/authentic_execution.h | 32 + .../button_driver/include/button_driver.h | 15 + .../button_driver/include/pta_attestation.h | 19 + .../button_driver/include/spongent.h | 141 ++++ .../button_driver/spongent.c | 530 ++++++++++++++ .../example_trustzone/button_driver/sub.mk | 7 + .../button_driver/user_ta_header_defines.h | 21 + .../button_driver_native/Cargo.toml | 9 + .../button_driver_native/src/lib.rs | 11 + .../example_trustzone/led_driver/Makefile | 12 + .../led_driver/authentic_execution.c | 684 ++++++++++++++++++ .../led_driver/include/authentic_execution.h | 32 + .../led_driver/include/led_driver.h | 16 + .../led_driver/include/pta_attestation.h | 19 + .../led_driver/include/spongent.h | 141 ++++ .../example_trustzone/led_driver/led_driver.c | 26 + .../example_trustzone/led_driver/spongent.c | 530 ++++++++++++++ examples/example_trustzone/led_driver/sub.mk | 7 + .../led_driver/user_ta_header_defines.h | 21 + .../led_driver_native/Cargo.toml | 9 + .../led_driver_native/src/lib.rs | 16 + examples/example_trustzone/native-to-tz.json | 44 ++ examples/example_trustzone/tz-to-native.json | 45 ++ examples/example_trustzone/tz-to-tz.json | 42 ++ reactivetools/config.py | 3 +- reactivetools/crypto.py | 1 - reactivetools/modules/__init__.py | 10 +- reactivetools/modules/trustzone.py | 196 +++++ reactivetools/nodes/__init__.py | 10 +- reactivetools/nodes/base.py | 4 +- reactivetools/nodes/trustzone.py | 146 ++++ reactivetools/rules/modules/trustzone.yaml | 1 + reactivetools/rules/nodes/trustzone.yaml | 1 + 37 files changed, 3520 insertions(+), 12 deletions(-) create mode 100644 examples/example_trustzone/button_driver/Makefile create mode 100644 examples/example_trustzone/button_driver/authentic_execution.c create mode 100644 examples/example_trustzone/button_driver/button_driver.c create mode 100644 examples/example_trustzone/button_driver/include/authentic_execution.h create mode 100644 examples/example_trustzone/button_driver/include/button_driver.h create mode 100644 examples/example_trustzone/button_driver/include/pta_attestation.h create mode 100644 examples/example_trustzone/button_driver/include/spongent.h create mode 100644 examples/example_trustzone/button_driver/spongent.c create mode 100644 examples/example_trustzone/button_driver/sub.mk create mode 100644 examples/example_trustzone/button_driver/user_ta_header_defines.h create mode 100644 examples/example_trustzone/button_driver_native/Cargo.toml create mode 100644 examples/example_trustzone/button_driver_native/src/lib.rs create mode 100644 examples/example_trustzone/led_driver/Makefile create mode 100644 examples/example_trustzone/led_driver/authentic_execution.c create mode 100644 examples/example_trustzone/led_driver/include/authentic_execution.h create mode 100644 examples/example_trustzone/led_driver/include/led_driver.h create mode 100644 examples/example_trustzone/led_driver/include/pta_attestation.h create mode 100644 examples/example_trustzone/led_driver/include/spongent.h create mode 100644 examples/example_trustzone/led_driver/led_driver.c create mode 100644 examples/example_trustzone/led_driver/spongent.c create mode 100644 examples/example_trustzone/led_driver/sub.mk create mode 100644 examples/example_trustzone/led_driver/user_ta_header_defines.h create mode 100644 examples/example_trustzone/led_driver_native/Cargo.toml create mode 100644 examples/example_trustzone/led_driver_native/src/lib.rs create mode 100644 examples/example_trustzone/native-to-tz.json create mode 100644 examples/example_trustzone/tz-to-native.json create mode 100644 examples/example_trustzone/tz-to-tz.json create mode 100644 reactivetools/modules/trustzone.py create mode 100644 reactivetools/nodes/trustzone.py create mode 100644 reactivetools/rules/modules/trustzone.yaml create mode 100644 reactivetools/rules/nodes/trustzone.yaml diff --git a/AUTHORS b/AUTHORS index e7bf1c0..9d1dafb 100644 --- a/AUTHORS +++ b/AUTHORS @@ -3,3 +3,4 @@ List of authors of this repository Job Noorman Jan Tobias Mühlberg Gianluca Scopelliti +Sepideh Pouyanrad diff --git a/examples/example_trustzone/button_driver/Makefile b/examples/example_trustzone/button_driver/Makefile new file mode 100644 index 0000000..a22c4ed --- /dev/null +++ b/examples/example_trustzone/button_driver/Makefile @@ -0,0 +1,12 @@ +CFG_TEE_TA_LOG_LEVEL ?= 4 + +# The UUID for the Trusted Application +BINARY=$(BINARY) + +-include $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk + +ifeq ($(wildcard $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk), ) +clean: + @echo 'Note: $$(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk not found, cannot clean TA' + @echo 'Note: TA_DEV_KIT_DIR=$(TA_DEV_KIT_DIR)' +endif diff --git a/examples/example_trustzone/button_driver/authentic_execution.c b/examples/example_trustzone/button_driver/authentic_execution.c new file mode 100644 index 0000000..e36c04c --- /dev/null +++ b/examples/example_trustzone/button_driver/authentic_execution.c @@ -0,0 +1,684 @@ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include + +static const TEE_UUID pta_attestation_uuid = ATTESTATION_UUID; + +void *malloc_aligned(size_t size) { + size += size % 2; + + return malloc(size); +} + +int total_node = 0; + +typedef struct +{ + uint8_t encryption; + uint16_t conn_id; + uint16_t io_id; + uint16_t nonce; + unsigned char connection_key[16]; +} Connection; + +typedef struct Node +{ + Connection connection; + struct Node* next; +} Node; + +static Node* connections_head = NULL; + +int connections_add(Connection* connection) +{ + Node* node = malloc_aligned(sizeof(Node)); + + if (node == NULL) + return 0; + + node->connection = *connection; + node->next = connections_head; + connections_head = node; + return 1; +} + +Connection* connections_get(uint16_t conn_id) +{ + Node* current = connections_head; + + while (current != NULL) { + Connection* connection = ¤t->connection; + + if (connection->conn_id == conn_id) { + return connection; + } + + current = current->next; + } + + return NULL; +} + +void find_connections(uint16_t io_id, int *arr, uint8_t *num) +{ + Node* current = connections_head; + while (current != NULL) { + Connection* connection = ¤t->connection; + if (connection->io_id == io_id) { + arr[*num] = connection->conn_id; + *num = *num + 1; + } + + current = current->next; + } + +} + +//=============================================================== + +char module_key[16] = { 0 }; + +struct aes_cipher { + uint32_t algo; /* AES flavour */ + uint32_t mode; /* Encode or decode */ + uint32_t key_size; /* AES key size in byte */ + TEE_OperationHandle op_handle; /* AES ciphering operation */ + TEE_ObjectHandle key_handle; /* transient object to load the key */ +}; + +//=============================================================== + +static TEE_Result ta2tee_algo_id(uint32_t param, uint32_t *algo) +{ + switch (param) { + case TA_AES_ALGO_ECB: + *algo = TEE_ALG_AES_ECB_NOPAD; + return TEE_SUCCESS; + case TA_AES_ALGO_CBC: + *algo = TEE_ALG_AES_CBC_NOPAD; + return TEE_SUCCESS; + case TA_AES_ALGO_GCM: + *algo = TEE_ALG_AES_GCM; + return TEE_SUCCESS; + default: + EMSG("Invalid algo %u", param); + return TEE_ERROR_BAD_PARAMETERS; + } +} +static TEE_Result ta2tee_key_size(uint32_t param, uint32_t *key_size) +{ + switch (param) { + case 16: + *key_size = param; + return TEE_SUCCESS; + default: + EMSG("Invalid key size %u", param); + return TEE_ERROR_BAD_PARAMETERS; + } +} +static TEE_Result ta2tee_mode_id(uint32_t param, uint32_t *mode) +{ + switch (param) { + case TA_AES_MODE_ENCODE: + *mode = TEE_MODE_ENCRYPT; + return TEE_SUCCESS; + case TA_AES_MODE_DECODE: + *mode = TEE_MODE_DECRYPT; + return TEE_SUCCESS; + default: + EMSG("Invalid mode %u", param); + return TEE_ERROR_BAD_PARAMETERS; + } +} + +static TEE_Result alloc_resources(void *session, uint32_t algo, uint32_t key_size, + uint32_t mode){ + + struct aes_cipher *sess; + TEE_Attribute attr; + TEE_Result res; + char *key; + + /* Get ciphering context from session ID */ + DMSG("Session %p: get ciphering resources", session); + sess = (struct aes_cipher *)session; + + res = ta2tee_algo_id(algo, &sess->algo); + if (res != TEE_SUCCESS) + return res; + + res = ta2tee_key_size(key_size, &sess->key_size); + if (res != TEE_SUCCESS) + return res; + + res = ta2tee_mode_id(mode, &sess->mode); + if (res != TEE_SUCCESS) + return res; + + if (sess->op_handle != TEE_HANDLE_NULL) + TEE_FreeOperation(sess->op_handle); + + /* Allocate operation: AES/CTR, mode and size from params */ + res = TEE_AllocateOperation(&sess->op_handle, + sess->algo, + sess->mode, + sess->key_size * 8); + if (res != TEE_SUCCESS) { + EMSG("Failed to allocate operation"); + sess->op_handle = TEE_HANDLE_NULL; + goto err; + } + + /* Free potential previous transient object */ + if (sess->key_handle != TEE_HANDLE_NULL) + TEE_FreeTransientObject(sess->key_handle); + + /* Allocate transient object according to target key size */ + res = TEE_AllocateTransientObject(TEE_TYPE_AES, + sess->key_size * 8, + &sess->key_handle); + if (res != TEE_SUCCESS) { + EMSG("Failed to allocate transient object"); + sess->key_handle = TEE_HANDLE_NULL; + goto err; + } + + key = TEE_Malloc(sess->key_size, 0); + if (!key) { + res = TEE_ERROR_OUT_OF_MEMORY; + goto err; + } + + TEE_InitRefAttribute(&attr, TEE_ATTR_SECRET_VALUE, key, sess->key_size); + + res = TEE_PopulateTransientObject(sess->key_handle, &attr, 1); + if (res != TEE_SUCCESS) { + EMSG("TEE_PopulateTransientObject failed, %x", res); + goto err; + } + + res = TEE_SetOperationKey(sess->op_handle, sess->key_handle); + if (res != TEE_SUCCESS) { + EMSG("TEE_SetOperationKey failed %x", res); + goto err; + } + + return res; + +err: + if (sess->op_handle != TEE_HANDLE_NULL) + TEE_FreeOperation(sess->op_handle); + sess->op_handle = TEE_HANDLE_NULL; + + if (sess->key_handle != TEE_HANDLE_NULL) + TEE_FreeTransientObject(sess->key_handle); + sess->key_handle = TEE_HANDLE_NULL; + + return res; +} + +static TEE_Result set_aes_key(void *session, char *key, uint32_t key_sz){ + + struct aes_cipher *sess; + TEE_Attribute attr; + TEE_Result res; + + /* Get ciphering context from session ID */ + DMSG("Session %p: load key material", session); + sess = (struct aes_cipher *)session; + + //--------------------------------------------------------------- + if (key_sz != sess->key_size) { + EMSG("Wrong key size %" PRIu32 ", expect %" PRIu32 " bytes", + key_sz, sess->key_size); + return TEE_ERROR_BAD_PARAMETERS; + } + + TEE_InitRefAttribute(&attr, TEE_ATTR_SECRET_VALUE, key, key_sz); + + TEE_ResetTransientObject(sess->key_handle); + res = TEE_PopulateTransientObject(sess->key_handle, &attr, 1); + if (res != TEE_SUCCESS) { + EMSG("TEE_PopulateTransientObject failed, %x", res); + return res; + } + + TEE_ResetOperation(sess->op_handle); + res = TEE_SetOperationKey(sess->op_handle, sess->key_handle); + if (res != TEE_SUCCESS) { + EMSG("TEE_SetOperationKey failed %x", res); + return res; + } + + return res; +} + +static TEE_Result reset_aes_iv(void *session, char *aad, size_t aad_sz, + char *nonce, size_t nonce_sz, size_t payload_sz){ + + struct aes_cipher *sess; + + /* Get ciphering context from session ID */ + DMSG("Session %p: reset initial vector", session); + sess = (struct aes_cipher *)session; + + TEE_AEInit(sess->op_handle, nonce, nonce_sz, 16*8/* tag_len in bits */, aad_sz /*aad_len*/, + payload_sz /*plaintext_len*/); + + TEE_AEUpdateAAD(sess->op_handle, aad, aad_sz); + + return TEE_SUCCESS; +} + +static TEE_Result set_key(void *session, uint32_t param_types, + TEE_Param params[4]) +{ + TEE_Result res = TEE_ERROR_OUT_OF_MEMORY; + const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_NONE); + struct aes_cipher *sess; + Connection connection; + + DMSG("Session %p: cipher buffer", session); + sess = (struct aes_cipher *)session; + char nonce[12] = { 0 }; + size_t nonce_sz = 12; + + alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_DECODE); + set_aes_key(sess, module_key, 16); + reset_aes_iv(sess, params[0].memref.buffer, params[0].memref.size, nonce, nonce_sz, params[1].memref.size); + + char *tag; + tag = params[0].memref.buffer; + char *temp; + + void *decrypted_key = NULL; + void *tag_void = NULL; + + //========================================== + decrypted_key = TEE_Malloc(16, 0); + tag_void = TEE_Malloc(params[2].memref.size, 0); + if (!decrypted_key || !tag_void) + goto out; + + TEE_MemMove(tag_void, params[2].memref.buffer, params[2].memref.size); + + res = TEE_AEDecryptFinal(sess->op_handle, params[1].memref.buffer, + params[1].memref.size, decrypted_key, ¶ms[2].memref.size, tag_void, + params[2].memref.size); + + if (!res) { + temp = decrypted_key; + for (int j = 0; j < 16; j++){ + connection.connection_key[j]= temp[j]; + } + + connection.nonce = 0; + connection.encryption = tag[0] & 0xFF; + + int j = 0; + connection.conn_id = 0; + for(int n=2; n>=1; --n){ + connection.conn_id = connection.conn_id + (( tag[n] & 0xFF ) << (8*j)); + ++j; + } + j = 0; + connection.io_id = 0; + for(int n=4; n>=3; --n){ + connection.io_id = connection.io_id + (( tag[n] & 0xFF ) << (8*j)); + ++j; + } + total_node = total_node + 1; + connections_add(&connection); + } + +out: + TEE_Free(decrypted_key); + TEE_Free(tag_void); + + return res; +} + +//====================================================================== + +static TEE_Result attest(void *session, uint32_t param_types, + TEE_Param params[4]) +{ + TEE_Result res = TEE_ERROR_OUT_OF_MEMORY; + const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_MEMREF_OUTPUT, + TEE_PARAM_TYPE_NONE, + TEE_PARAM_TYPE_NONE); + struct aes_cipher *sess; + + DMSG("Session %p: cipher buffer", session); + sess = (struct aes_cipher *)session; + + // ------------ Call PTA ---------************************************************** + TEE_TASessionHandle pta_session = TEE_HANDLE_NULL; + uint32_t ret_origin = 0; + uint32_t pta_param_types = TEE_PARAM_TYPES( TEE_PARAM_TYPE_MEMREF_OUTPUT, + TEE_PARAM_TYPE_NONE, TEE_PARAM_TYPE_NONE, + TEE_PARAM_TYPE_NONE); + + TEE_Param pta_params[TEE_NUM_PARAMS]; + + // prepare the parameters for the pta + pta_params[0].memref.buffer = module_key; + pta_params[0].memref.size = 16; + + // ------------ Open Session to PTA --------- + res = TEE_OpenTASession(&pta_attestation_uuid, 0, 0, NULL, &pta_session, + &ret_origin); + if (res != TEE_SUCCESS) + return res; + + // ------------ Invoke command at PTA (get_module key) --------- + res = TEE_InvokeTACommand(pta_session, 0, ATTESTATION_CMD_GET_MODULE_KEY, + pta_param_types, pta_params, &ret_origin); + if (res != TEE_SUCCESS) + return res; + + // ------------ Close Session to PTA --------- + TEE_CloseTASession(pta_session); + + //******************************************************************************* + char nonce[12] = { 0 }; + size_t nonce_sz = 12; + // challenge = param[0] --> aad + alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_ENCODE); + set_aes_key(sess, module_key, 16); + reset_aes_iv(sess, params[0].memref.buffer, params[0].memref.size, nonce, nonce_sz, 0); + + unsigned char challenge[16]={0}; + memcpy(challenge, params[0].memref.buffer, 16); + DMSG("Module key: %x %x", module_key[0], module_key[1]); + DMSG("Challenge: %x %x", challenge[0], challenge[1]); + + void *tag = TEE_Malloc(16, 0); + uint32_t len = 0, tag_len = 16; + + res = TEE_AEEncryptFinal(sess->op_handle, NULL, + 0, NULL, &len, tag, &tag_len); + + if (!res) { + params[1].memref.size = 16; + TEE_MemMove(params[1].memref.buffer, tag, params[1].memref.size); + } + else { + DMSG("MAC generation failed: %d", res); + } + + TEE_Free(tag); + + return res; + +} + +//====================================================================== + +void handle_output(void *session, uint16_t output_id, uint32_t param_types, + TEE_Param params[4]){ + + const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_VALUE_INOUT, + TEE_PARAM_TYPE_MEMREF_OUTPUT, + TEE_PARAM_TYPE_MEMREF_INOUT, + TEE_PARAM_TYPE_MEMREF_OUTPUT); + + struct aes_cipher *sess; + sess = (struct aes_cipher *)session; + + uint32_t data_len = params[0].value.a; + uint8_t num = 0; + void *conn_id_buf; + void *encrypt_buf; + void *tag_buf; + + int arr[total_node]; + find_connections(output_id, arr, &num); + params[0].value.a = num; + conn_id_buf = TEE_Malloc(num * 2, 0); + encrypt_buf = TEE_Malloc(num * data_len, 0); + tag_buf = TEE_Malloc(num * 16, 0); + + for(int i=0; inonce) >> (8*j)) & 0xFF; // ######## + j--; + } + + unsigned char conn_id_array[2] = { 0 }; + int c = 1; + for(int m = 0; m < 2; m++){ + conn_id_array[m] = ((connection->conn_id) >> (8*j)) & 0xFF; // ######## + c--; + } + memcpy(conn_id_buf+(2*i), conn_id_array, 2); + + //*************** ^ ^ ******************************************************* + + if(connection->encryption == AES){ + alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_ENCODE); + set_aes_key(sess, connection->connection_key, 16); //####### + reset_aes_iv(sess, aad, 2, nonce, nonce_sz, data_len); + + void *encrypt = NULL; + void *tag = NULL; + uint32_t sz = 16; + + encrypt = TEE_Malloc(data_len, 0); + tag = TEE_Malloc(16, 0); + + const void *text = NULL; + text = TEE_Malloc(data_len, 0); + memcpy(text, params[2].memref.buffer, data_len); + + TEE_Result res = TEE_AEEncryptFinal(sess->op_handle, text, data_len, + encrypt, &data_len, tag, &sz); + + if (!res) { + memcpy(encrypt_buf + (data_len * i), encrypt, data_len); + memcpy(tag_buf + (16*i), tag, 16); + TEE_Free(encrypt); + TEE_Free(tag); + TEE_Free(text); + } + } + else { + //SPONGENT for Sancus + BitSequence output[16]; // output length is the same as the input (in this case, 4 bytes) + BitSequence tag_spongent[16]; // TAG length is the same as the key length. 16 bytes. + BitSequence data[data_len]; + memcpy(data, params[2].memref.buffer, data_len); + + SpongentWrap(connection->connection_key, aad, 16, data, data_len * 8, output, tag_spongent, 0); + + memcpy(encrypt_buf + (data_len * i), output, data_len); + memcpy(tag_buf + (16*i), tag_spongent, 16); + } + + connection->nonce = connection->nonce + 1; //###### + + } // for + + params[1].memref.size = 2*num; + TEE_MemMove(params[1].memref.buffer, conn_id_buf, params[1].memref.size); + params[2].memref.size = data_len * num; + TEE_MemMove(params[2].memref.buffer, encrypt_buf, params[2].memref.size); + params[3].memref.size = 16*num; + TEE_MemMove(params[3].memref.buffer, tag_buf, params[3].memref.size); + + TEE_Free(conn_id_buf); + TEE_Free(encrypt_buf); + TEE_Free(tag_buf); +} + +//========================================================================= +TEE_Result handle_input(void *session, uint32_t param_types, TEE_Param params[4]){ + + const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_VALUE_INPUT, + TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_NONE); + + TEE_Result res; + struct aes_cipher *sess; + sess = (struct aes_cipher *)session; + unsigned char* data; + data = malloc(params[1].memref.size); + + Connection* connection = connections_get(params[0].value.a); + + char nonce[12] = { 0 }; + size_t nonce_sz = 12; + + unsigned char aad[2] = { 0 }; + int j = 1; + for(int m = 0; m < 2; m++){ + aad[m] = ((connection->nonce) >> (8*j)) & 0xFF; // ######## + j--; + } + + //--------------------------------------------------------------- + if(connection->encryption == AES){ + alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_DECODE); + set_aes_key(sess, connection->connection_key, 16); //####### + reset_aes_iv(sess, aad, 2, nonce, nonce_sz, params[1].memref.size); + + void *decrypted_data = NULL; + void *tag_void = NULL; + + decrypted_data = TEE_Malloc(params[1].memref.size, 0); + tag_void = TEE_Malloc(params[2].memref.size, 0); + + TEE_MemMove(tag_void, params[2].memref.buffer, params[2].memref.size); + + res = TEE_AEDecryptFinal(sess->op_handle, params[1].memref.buffer, + params[1].memref.size, decrypted_data, ¶ms[1].memref.size, tag_void, + params[2].memref.size); + + if (!res) { + data = decrypted_data; + for(int i = 0; i < params[1].memref.size; i++){ + printf("%2X", data[i]); + } + TEE_Free(decrypted_data); + TEE_Free(tag_void); + } + } + else{ + + BitSequence tag_spongent[16]; // TAG length is the same as the key length. 16 bytes. + BitSequence encrypted_data[params[1].memref.size]; + + for (int n = 0; n < params[1].memref.size; n++){ + encrypted_data[n] = ((uint8_t *)params[1].memref.buffer)[n]; + } + + for (int n = 0; n < 16; n++){ + tag_spongent[n] = ((uint8_t *)params[2].memref.buffer)[n]; + } + + SpongentUnwrap(connection->connection_key, aad, 16, encrypted_data, + (params[1].memref.size) * 8, data, tag_spongent); + + for(int i = 0; i < params[1].memref.size; i++){ + printf("%2X", data[i]); + } + + } + + connection->nonce = connection->nonce + 1; + + find_input_func(connection->io_id, data); + + return TEE_SUCCESS; +} + +// Called when the TA is created ======================================= +TEE_Result TA_CreateEntryPoint(void) { + DMSG("=============== TA_CreateEntryPoint ================"); + return TEE_SUCCESS; +} + +// Called when the TA is destroyed +void TA_DestroyEntryPoint(void) { + DMSG("=============== TA_DestroyEntryPoint ==============="); +} + +// open session +TEE_Result TA_OpenSessionEntryPoint(uint32_t __unused param_types, + TEE_Param __unused params[4], + void __unused **session) +{ + DMSG("=========== TA_OpenSessionEntryPoint ==============="); + + struct aes_cipher *sess; + sess = TEE_Malloc(sizeof(*sess), 0); + if (!sess) + return TEE_ERROR_OUT_OF_MEMORY; + + sess->key_handle = TEE_HANDLE_NULL; + sess->op_handle = TEE_HANDLE_NULL; + + *session = (void *)sess; + DMSG("Session %p: newly allocated", *session); + + return TEE_SUCCESS; +} + +// close session +void TA_CloseSessionEntryPoint(void *session) +{ + DMSG("========== TA_CloseSessionEntryPoint ==============="); + + struct aes_cipher *sess; + + /* Get ciphering context from session ID */ + DMSG("Session %p: release session", session); + sess = (struct aes_cipher *)session; + + /* Release the session resources */ + if (sess->key_handle != TEE_HANDLE_NULL) + TEE_FreeTransientObject(sess->key_handle); + if (sess->op_handle != TEE_HANDLE_NULL) + TEE_FreeOperation(sess->op_handle); + TEE_Free(sess); +} + +// invoke command +TEE_Result TA_InvokeCommandEntryPoint(void *session, uint32_t cmd, uint32_t param_types, + TEE_Param params[4]) +{ + DMSG("^^^^^^^^^^^^^^^^Invoking^^^^^^^^^^^^^^^^^^^\n"); + switch (cmd) { + case SET_KEY: + return set_key(session, param_types, params); + case ATTEST: + return attest(session, param_types, params); + case HANDLE_INPUT: + return handle_input(session, param_types, params); + case ENTRY: + return entry(session, param_types, params); + default: + EMSG("Command ID 0x%x is not supported", cmd); + return TEE_ERROR_NOT_SUPPORTED; + } +} diff --git a/examples/example_trustzone/button_driver/button_driver.c b/examples/example_trustzone/button_driver/button_driver.c new file mode 100644 index 0000000..b1854fd --- /dev/null +++ b/examples/example_trustzone/button_driver/button_driver.c @@ -0,0 +1,34 @@ +#include + +//#include + +#include +#include + +void find_input_func(uint16_t io_id, unsigned char* data){ + switch (io_id) + { + default: + break; + } +} + +void button_pressed(void *session, uint32_t param_types, TEE_Param params[4]){ + struct aes_cipher *sess; + sess = (struct aes_cipher *)session; + uint16_t output_id = 0; + handle_output(sess, output_id, param_types, params); +} + +TEE_Result entry(void *session, uint32_t param_types, TEE_Param params[4]){ + struct aes_cipher *sess; + sess = (struct aes_cipher *)session; + printf("***************Button is Pressed inside entry func****************\n"); + //unsigned char data[16] = {0}; + //data[0]= 0x01; + button_pressed(sess, param_types, params); + return TEE_SUCCESS; +} + + + diff --git a/examples/example_trustzone/button_driver/include/authentic_execution.h b/examples/example_trustzone/button_driver/include/authentic_execution.h new file mode 100644 index 0000000..9c600fa --- /dev/null +++ b/examples/example_trustzone/button_driver/include/authentic_execution.h @@ -0,0 +1,32 @@ +#ifndef TA_H +#define TA_H + +#include + + +#define TA_AES_ALGO_ECB 0 +#define TA_AES_ALGO_CBC 1 +#define TA_AES_ALGO_GCM 2 + +#define TA_AES_SIZE_128BIT (128 / 8) +#define TA_AES_SIZE_256BIT (256 / 8) + +#define TA_AES_MODE_ENCODE 1 +#define TA_AES_MODE_DECODE 0 + +#define AES 0 // aes-gcm-128 +#define SPONGENT 1 // spongent-128 + + +/* The function IDs implemented in this TA */ +#define SET_KEY 0 +#define ATTEST 1 +#define HANDLE_INPUT 2 +#define ENTRY 3 + +void handle_output(void *session, uint16_t output_id, uint32_t param_types, + TEE_Param params[4]); + +TEE_Result handle_input(void *session, uint32_t param_types, TEE_Param params[4]); + +#endif diff --git a/examples/example_trustzone/button_driver/include/button_driver.h b/examples/example_trustzone/button_driver/include/button_driver.h new file mode 100644 index 0000000..e8ac380 --- /dev/null +++ b/examples/example_trustzone/button_driver/include/button_driver.h @@ -0,0 +1,15 @@ +#ifndef BUTTON_DRIVER_H +#define BUTTON_DRIVER_H + +#include + +#define BUTTON_DRIVER_UUID \ + { 0xd3bc8433, 0x2eb5, 0x4c00, { 0xa0, 0x05, 0x3f, 0x87, 0xc1, 0xd3, 0xb4, 0x05} } + + +TEE_Result entry(void *session, uint32_t param_types, TEE_Param params[4]); +void find_input_func(uint16_t io_id, unsigned char* data); + +void button_pressed(void *session, uint32_t param_types, TEE_Param params[4]); + +#endif diff --git a/examples/example_trustzone/button_driver/include/pta_attestation.h b/examples/example_trustzone/button_driver/include/pta_attestation.h new file mode 100644 index 0000000..2036e3b --- /dev/null +++ b/examples/example_trustzone/button_driver/include/pta_attestation.h @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ +/* + * Copyright (c) 2018-2019, Linaro Limited + */ +#ifndef __PTA_ATTESTATION_H +#define __PTA_ATTESTATION_H + +#include + +/* + * Interface to the pseudo TA, which provides remote attestation. + */ +#define ATTESTATION_UUID \ + { 0xa2b0b139, 0x82dc, 0x4ffc, \ + { 0xa8, 0xa8, 0x7d, 0x7c, 0x63, 0x66, 0xe9, 0x84 } } + +#define ATTESTATION_CMD_GET_MODULE_KEY 0 + +#endif /* __PTA_ATTESTATION_H */ diff --git a/examples/example_trustzone/button_driver/include/spongent.h b/examples/example_trustzone/button_driver/include/spongent.h new file mode 100644 index 0000000..61f9fab --- /dev/null +++ b/examples/example_trustzone/button_driver/include/spongent.h @@ -0,0 +1,141 @@ +#ifndef _SPONGENT_H_ +#define _SPONGENT_H_ + +//#include +#include +#include + +// #define _PrintState_ + +#define SW_SECURITY 128 + +#define SW_RATE 16 +#define SW_RATE_BYTES (SW_RATE / 8) + +#define MIN_CAPACITY (SW_SECURITY * 2) +#define MIN_WIDTH (MIN_CAPACITY + SW_RATE + 2) + +#if MIN_WIDTH <= 88 +#define WIDTH 88 +#define nRounds 45 +#define version 88808 + +#elif MIN_WIDTH <= 136 +#define WIDTH 136 +#define nRounds 70 +#define version 1281288 + +#elif MIN_WIDTH <= 176 +#define WIDTH 176 +#define nRounds 90 +#define version 16016016 + +#elif MIN_WIDTH <= 240 +#define WIDTH 240 +#define nRounds 120 +#define version 16016080 + +#elif MIN_WIDTH <= 264 +#define WIDTH 264 +#define nRounds 135 +#define version 8817688 + +#elif MIN_WIDTH <= 272 +#define WIDTH 272 +#define nRounds 140 +#define version 25625616 + +#elif MIN_WIDTH <= 336 +#define WIDTH 336 +#define nRounds 170 +#define version 224224112 + +#elif MIN_WIDTH <= 384 +#define WIDTH 384 +#define nRounds 195 +#define version 256256128 + +#elif MIN_WIDTH <= 480 +#define WIDTH 480 +#define nRounds 240 +#define version 160320160 + +#elif MIN_WIDTH <= 672 +#define WIDTH 672 +#define nRounds 340 +#define version 224448224 + +#elif MIN_WIDTH <= 768 +#define WIDTH 768 +#define nRounds 385 +#define version 256512256 + +#else +#error "Security too high" +#endif + +#define rate (SW_RATE + 2) +#define capacity (WIDTH - rate) +#define hashsize SW_SECURITY + +#define BITS_TO_BYTES(x) (x / 8 + (x % 8 != 0)) + +#define R_SizeInBytes BITS_TO_BYTES(rate) +#define nBits (capacity + rate) +#define nSBox nBits/8 +#define KEY_SIZE hashsize +#define TAG_SIZE hashsize +#define TAG_SIZE_BYTES (TAG_SIZE / 8) + +typedef unsigned char BitSequence; +typedef unsigned long long DataLength; + +typedef uint64_t bit64; +typedef uint32_t bit32; +typedef uint16_t bit16; +typedef uint8_t bit8; + +#define GET_BIT(x,y) (x >> y) & 0x1 + +typedef enum { SUCCESS = 0, FAIL = 1, BAD_HASHBITLEN = 2, BAD_TAG = 3 } HashReturn; + +typedef struct { + BitSequence value[nSBox]; /* current Spongent state */ + BitSequence messageblock[R_SizeInBytes]; /* message block to be input/output */ + int remainingbitlen; /* remaining data length */ + int hashbitlen; /* # of hashed bits so far */ +} hashState; + +HashReturn SpongentHash(const BitSequence *data, DataLength databitlen, BitSequence *hashval); +HashReturn Init(hashState *state, BitSequence *hashval); +HashReturn Absorb(hashState *state); +HashReturn Squeeze(hashState *state); +HashReturn Pad(hashState *state); + +int Pi(int i); +void pLayer(hashState *state); +void Permute(hashState *state); + +bit16 lCounter(bit16 lfsr); +bit16 retnuoCl(bit16 lfsr); + + +HashReturn SpongentWrap(const BitSequence* key, + const BitSequence* ad, DataLength adBitLength, + const BitSequence* input, DataLength bitLength, + BitSequence* output, + BitSequence* tag, + bool unwrap); + +HashReturn SpongentUnwrap(const BitSequence* key, + const BitSequence* ad, DataLength adBitLength, + const BitSequence* input, DataLength bitLength, + BitSequence* output, + const BitSequence* expectedTag); + +HashReturn SpongentMac(const BitSequence* key, + const BitSequence* input, DataLength bitLength, + BitSequence* mac); + +#endif /* spongent.h */ + diff --git a/examples/example_trustzone/button_driver/spongent.c b/examples/example_trustzone/button_driver/spongent.c new file mode 100644 index 0000000..6041426 --- /dev/null +++ b/examples/example_trustzone/button_driver/spongent.c @@ -0,0 +1,530 @@ +/* + * SPONGENT hash function - Implementation + * This code is placed in the public domain + * For more information, feedback or questions, please refer to our website: + * https://sites.google.com/site/spongenthash/ + +*/ + +#include +#include +#include +#include +#include "spongent.h" + +/* Spongent S-box */ +int S[16] = { 0xe, 0xd, 0xb, 0x0, 0x2, 0x1, 0x4, 0xf, 0x7, 0xa, 0x8, 0x5, 0x9, 0xc, 0x3, 0x6}; + + +/* Spongent eight bit S-box */ +int sBoxLayer[256] = { + 0xee, 0xed, 0xeb, 0xe0, 0xe2, 0xe1, 0xe4, 0xef, 0xe7, 0xea, 0xe8, 0xe5, 0xe9, 0xec, 0xe3, 0xe6, + 0xde, 0xdd, 0xdb, 0xd0, 0xd2, 0xd1, 0xd4, 0xdf, 0xd7, 0xda, 0xd8, 0xd5, 0xd9, 0xdc, 0xd3, 0xd6, + 0xbe, 0xbd, 0xbb, 0xb0, 0xb2, 0xb1, 0xb4, 0xbf, 0xb7, 0xba, 0xb8, 0xb5, 0xb9, 0xbc, 0xb3, 0xb6, + 0x0e, 0x0d, 0x0b, 0x00, 0x02, 0x01, 0x04, 0x0f, 0x07, 0x0a, 0x08, 0x05, 0x09, 0x0c, 0x03, 0x06, + 0x2e, 0x2d, 0x2b, 0x20, 0x22, 0x21, 0x24, 0x2f, 0x27, 0x2a, 0x28, 0x25, 0x29, 0x2c, 0x23, 0x26, + 0x1e, 0x1d, 0x1b, 0x10, 0x12, 0x11, 0x14, 0x1f, 0x17, 0x1a, 0x18, 0x15, 0x19, 0x1c, 0x13, 0x16, + 0x4e, 0x4d, 0x4b, 0x40, 0x42, 0x41, 0x44, 0x4f, 0x47, 0x4a, 0x48, 0x45, 0x49, 0x4c, 0x43, 0x46, + 0xfe, 0xfd, 0xfb, 0xf0, 0xf2, 0xf1, 0xf4, 0xff, 0xf7, 0xfa, 0xf8, 0xf5, 0xf9, 0xfc, 0xf3, 0xf6, + 0x7e, 0x7d, 0x7b, 0x70, 0x72, 0x71, 0x74, 0x7f, 0x77, 0x7a, 0x78, 0x75, 0x79, 0x7c, 0x73, 0x76, + 0xae, 0xad, 0xab, 0xa0, 0xa2, 0xa1, 0xa4, 0xaf, 0xa7, 0xaa, 0xa8, 0xa5, 0xa9, 0xac, 0xa3, 0xa6, + 0x8e, 0x8d, 0x8b, 0x80, 0x82, 0x81, 0x84, 0x8f, 0x87, 0x8a, 0x88, 0x85, 0x89, 0x8c, 0x83, 0x86, + 0x5e, 0x5d, 0x5b, 0x50, 0x52, 0x51, 0x54, 0x5f, 0x57, 0x5a, 0x58, 0x55, 0x59, 0x5c, 0x53, 0x56, + 0x9e, 0x9d, 0x9b, 0x90, 0x92, 0x91, 0x94, 0x9f, 0x97, 0x9a, 0x98, 0x95, 0x99, 0x9c, 0x93, 0x96, + 0xce, 0xcd, 0xcb, 0xc0, 0xc2, 0xc1, 0xc4, 0xcf, 0xc7, 0xca, 0xc8, 0xc5, 0xc9, 0xcc, 0xc3, 0xc6, + 0x3e, 0x3d, 0x3b, 0x30, 0x32, 0x31, 0x34, 0x3f, 0x37, 0x3a, 0x38, 0x35, 0x39, 0x3c, 0x33, 0x36, + 0x6e, 0x6d, 0x6b, 0x60, 0x62, 0x61, 0x64, 0x6f, 0x67, 0x6a, 0x68, 0x65, 0x69, 0x6c, 0x63, 0x66 +}; + +//-------------------------------------------------------------------------------------------- + +DataLength min(DataLength a, DataLength b){ + if(a <= b){ + return a; + } + else{ + return b; + } +} +//-------------------------------------------------------------------------------------------- + +void copy_n(BitSequence *first, int num, BitSequence *result){ + + for(int i = 0; i < num; i++){ + result[i] = first[i]; + } +} +//----------------------------------------------------------------------------------------- + +void PrintState(hashState *state) +{ + int i; + for (i=nSBox-1; i>=0; i--) + printf("%02X", state->value[i]); + printf("\n"); +} + +//-------------------------------------------------------------------------------------------- + +bit16 lCounter(bit16 lfsr) +{ + switch( version ) { + case 88808: + lfsr = (lfsr << 1) | (((0x20 & lfsr) >> 5) ^ ((0x10 & lfsr) >> 4)); + lfsr &= 0x3f; + break; + case 1281288: + case 16016016: + case 16016080: + case 22422416: + lfsr = (lfsr << 1) | (((0x40 & lfsr) >> 6) ^ ((0x20 & lfsr) >> 5)); + lfsr &= 0x7f; + break; + case 8817688: + case 128256128: + case 160320160: + case 224224112: + case 25625616: + case 256256128: + lfsr = (lfsr << 1) | (((0x80 & lfsr) >> 7) ^ ((0x08 & lfsr) >> 3) ^ ((0x04 & lfsr) >> 2) ^ ((0x02 & lfsr) >> 1)); + lfsr &= 0xff; + break; + case 224448224: + case 256512256: + lfsr = (lfsr << 1) | (((0x100 & lfsr) >> 8) ^ ((0x08 & lfsr) >> 3)); + lfsr &= 0x1ff; + break; + default : + printf("ErrorCounter\n"); + break; + } + return lfsr; +} + +//-------------------------------------------------------------------------------------------- + +bit16 retnuoCl(bit16 lfsr) +{ + switch(version) + { + case 88808: + case 8817688: + case 1281288: + case 128256128: + case 16016016: + case 16016080: + case 160320160: + case 22422416: + case 224224112: + case 25625616: + case 256256128: + lfsr = ( ((lfsr & 0x01) <<7) | ((lfsr & 0x02) << 5) | ((lfsr & 0x04) << 3) | ((lfsr & 0x08) << 1) | ((lfsr & 0x10) >> 1) | ((lfsr & 0x20) >> 3) | ((lfsr & 0x40) >> 5) | ((lfsr & 0x80) >> 7) ); + lfsr <<= 8; + break; + case 224448224: + case 256512256: + lfsr = ( ((lfsr & 0x01) <<8) | ((lfsr & 0x02) << 6) | ((lfsr & 0x04) << 4) | ((lfsr & 0x08) << 2) | ((lfsr & 0x10) << 0) | ((lfsr & 0x20) >> 2) | ((lfsr & 0x40) >> 4) | ((lfsr & 0x80) >> 6) | ((lfsr & 0x100) >> 8) ); + lfsr <<= 7; + break; + default : + printf("ErrorInverseCounter\n"); + break; + } + + return lfsr; +} + +//-------------------------------------------------------------------------------------------- + +int Pi(int i) +{ + if (i != nBits-1) + return (i*nBits/4)%(nBits-1); + else + return nBits-1; +} + +//-------------------------------------------------------------------------------------------- + +void pLayer(hashState *state) +{ + int i, j, PermutedBitNo; + bit8 tmp[nSBox], x, y; + + for(i = 0; i < nSBox; i++) tmp[i] = 0; + + for(i = 0; i < nSBox; i++){ + for(j = 0; j < 8; j++){ + x = GET_BIT(state->value[i],j); + PermutedBitNo = Pi(8*i+j); + y = PermutedBitNo/8; + tmp[y] ^= x << (PermutedBitNo - 8*y); + } + } + memcpy(state->value, tmp, nSBox); +} + +//-------------------------------------------------------------------------------------------- + +void Permute(hashState *state) +{ + bit16 i, j, IV, INV_IV; + + switch(version) + { + case 88808: IV = 0x05; break; + case 8817688: IV = 0xC6; break; + case 1281288: IV = 0x7A; break; + case 128256128: IV = 0xFB; break; + case 16016016: IV = 0x45; break; + case 16016080: IV = 0x01; break; + case 160320160: IV = 0xA7; break; + case 22422416: IV = 0x01; break; + case 224224112: IV = 0x52; break; + case 224448224: IV = 0x105; break; + case 25625616: IV = 0x9e; break; + case 256256128: IV = 0xfb; break; + case 256512256: IV = 0x015; break; + } + + for(i = 0; i < nRounds; i++){ +#ifdef _PrintState_ + printf("%3d\t", i); + PrintState(state); +#endif + /* Add counter values */ + state->value[0] ^= IV & 0xFF; + state->value[1] ^= (IV >> 8) & 0xFF; + INV_IV = retnuoCl(IV); + state->value[nSBox-1] ^= (INV_IV >> 8) & 0xFF;; + state->value[nSBox-2] ^= INV_IV & 0xFF; + IV = lCounter(IV); + + /* sBoxLayer layer */ + for ( j=0; j < nSBox; j++) + state->value[j] = sBoxLayer[state->value[j]]; + + /* pLayer */ + pLayer(state);\ + } +#ifdef _PrintState_ + printf("%3d\t", i); + PrintState(state); +#endif +} + +//-------------------------------------------------------------------------------------------- + +HashReturn Init(hashState *state, BitSequence *hashval) +{ + + memset(state->value, 0, nSBox); + state->hashbitlen = 0; + state->remainingbitlen = 0; + + if (hashval != NULL) + memset(hashval, 0, hashsize/8); + + return SUCCESS; +} + +//-------------------------------------------------------------------------------------------- + +HashReturn Absorb(hashState *state) +{ + int i; + for(i = 0; i < R_SizeInBytes; i++) + state->value[i] ^= state->messageblock[i]; + Permute(state); + + return SUCCESS; +} + +//-------------------------------------------------------------------------------------------- + +HashReturn Squeeze(hashState *state) +{ + memcpy(state->messageblock, state->value, R_SizeInBytes); +#ifdef _PrintState_ + printf("h_i\t"); + for(int i = 0; i < R_SizeInBytes; i++) + printf("%02X", state->messageblock[i]); + printf("\n\n"); +#endif + Permute(state); + + return SUCCESS; +} + +//-------------------------------------------------------------------------------------------- + +HashReturn Pad(hashState *state) +{ + int byteind = state->remainingbitlen/8; /* byte index of remaining byte */ + int bitpos = state->remainingbitlen%8; /* bit position in last byte */ + + /* make unoccupied bits 0 */ + if(bitpos) + state->messageblock[byteind] &= 0xff >> (8 - bitpos); + + /* add single 1-bit */ + if(bitpos) + state->messageblock[byteind] |= 0x01 << bitpos; + else + state->messageblock[byteind] = 0x01; + + /* add 0-bits until we have rate bits */ + while(byteind!=R_SizeInBytes) + { + byteind++; + state->messageblock[byteind] = 0; + } + return SUCCESS; +} + +//-------------------------------------------------------------------------------------------- + +HashReturn SpongentHash(const BitSequence *data, DataLength databitlen, BitSequence *hashval) +{ + hashState state; + HashReturn res; + + /* initialize */ + res = Init(&state, hashval); + if(res != SUCCESS) + return res; + + /* Absorb available message blocks */ + while(databitlen >= rate) + { + memcpy(state.messageblock, data, R_SizeInBytes); +#ifdef _PrintState_ + printf("\n"); + printf("m_i\t"); + for(int i = 0; i < R_SizeInBytes; i++) + printf("%02X", state.messageblock[i]); + printf("\n"); +#endif + Absorb(&state); + databitlen -= rate; + data += R_SizeInBytes; + } + + /* Pad the remaining bits before absorbing */ + if(databitlen>0){ + memcpy(state.messageblock, data, databitlen/8 + (databitlen%8?1:0)); + state.remainingbitlen = databitlen; + } + else if(databitlen==0){ + memset(state.messageblock, 0, R_SizeInBytes); + state.remainingbitlen = databitlen; + } + Pad(&state); +#ifdef _PrintState_ + printf("\n"); + printf("m_i\t"); + for(int i = 0; i < R_SizeInBytes; i++) + printf("%02X", state.messageblock[i]); + printf("\n"); +#endif + Absorb(&state); + state.hashbitlen += rate; + + /* Squeeze data blocks */ + while(state.hashbitlen < hashsize) + { + Squeeze(&state); + memcpy(hashval, state.messageblock, R_SizeInBytes); + state.hashbitlen += rate; + hashval += R_SizeInBytes; + } + + memcpy(hashval, state.value, R_SizeInBytes); + hashval += R_SizeInBytes; +#ifdef _PrintState_ + printf("h_i\t"); + for(int i = 0; i < R_SizeInBytes; i++) + printf("%02X", state.value[i]); + printf("\n\n"); +#endif + + return SUCCESS; +} + +HashReturn Duplexing(hashState* state, + BitSequence* block, + DataLength blockBitLength, + BitSequence* out, + DataLength outBitsLength) +{ + copy_n(block, BITS_TO_BYTES(blockBitLength), state->messageblock); + state->remainingbitlen = blockBitLength; + HashReturn ret = Pad(state); + + if (ret != SUCCESS) + return ret; + + ret = Absorb(state); + + if (ret != SUCCESS) + return ret; + + if (out != NULL) + copy_n(state->value, outBitsLength / 8, out); + + return SUCCESS; +} + +HashReturn SpongentWrap(const BitSequence* key, + const BitSequence* ad, DataLength adBitLength, + const BitSequence* input, DataLength bitLength, + BitSequence* output, + BitSequence* tag, + bool unwrap) +{ + if (adBitLength % 8 != 0 || bitLength % 8 != 0) + { + //fprintf(stderr, "Messages containing partial bytes not supported\n"); + return FAIL; + } + + hashState state; + HashReturn ret = Init(&state, NULL); + + if (ret != SUCCESS) + return ret; + + BitSequence block[R_SizeInBytes]; + BitSequence duplexOut[R_SizeInBytes]; + DataLength bitsLeft = KEY_SIZE; + + while (bitsLeft > SW_RATE) + { + copy_n(key, SW_RATE_BYTES, block); + block[SW_RATE_BYTES] = 0x01; + ret = Duplexing(&state, block, SW_RATE + 1, NULL, 16); + + + if (ret != SUCCESS) + return ret; + + bitsLeft -= SW_RATE; + key += SW_RATE_BYTES; + } + + copy_n(key, bitsLeft / 8, block); + block[bitsLeft / 8] = 0x00; + ret = Duplexing(&state, block, bitsLeft + 1, NULL, 16); + + if (ret != SUCCESS) + return ret; + + bitsLeft = adBitLength; + + while (bitsLeft > SW_RATE) + { + copy_n(ad, SW_RATE_BYTES, block); + block[SW_RATE_BYTES] = 0x00; + ret = Duplexing(&state, block, SW_RATE + 1, NULL, 16); + + if (ret != SUCCESS) + return ret; + + bitsLeft -= SW_RATE; + ad += SW_RATE_BYTES; + } + + copy_n(ad, bitsLeft / 8, block); + block[bitsLeft / 8] = 0x01; + ret = Duplexing(&state, block, bitsLeft + 1, duplexOut, 16); + + if (ret != SUCCESS) + return ret; + + DataLength firstBlockLength = min(bitLength, (DataLength)SW_RATE) / 8; + + for (DataLength i = 0; i < firstBlockLength; i++) + output[i] = input[i] ^ duplexOut[i]; + + bitsLeft = bitLength; + + while (bitsLeft > SW_RATE) + { + copy_n(unwrap ? output : input, SW_RATE_BYTES, block); + block[SW_RATE_BYTES] = 0x01; + HashReturn ret = Duplexing(&state, block, SW_RATE + 1, duplexOut, 16); + + if (ret != SUCCESS) + return ret; + + bitsLeft -= SW_RATE; + input += SW_RATE_BYTES; + output += SW_RATE_BYTES; + + DataLength blockLength = min(bitsLeft, (DataLength)SW_RATE) / 8; + + for (DataLength i = 0; i < blockLength; i++) + output[i] = input[i] ^ duplexOut[i]; + } + + copy_n(unwrap ? output : input, bitsLeft / 8, block); + block[bitsLeft / 8] = 0x00; + ret = Duplexing(&state, block, bitsLeft + 1, + tag, min((DataLength)TAG_SIZE, (DataLength)SW_RATE)); + + if (ret != SUCCESS) + return ret; + + DataLength tagBitsDone = SW_RATE; + tag += SW_RATE_BYTES; + for (unsigned int i = 0; i < sizeof(block); i++){ + block[i] = 0x00; + } + //std::fill_n(block, sizeof(block), 0x00); + + while (tagBitsDone < TAG_SIZE) + { + ret = Duplexing(&state, block, 0, tag, + min(TAG_SIZE - tagBitsDone, (DataLength)SW_RATE)); + + if (ret != SUCCESS) + return ret; + + tagBitsDone += SW_RATE; + tag += SW_RATE_BYTES; + } + + return SUCCESS; +} + +HashReturn SpongentUnwrap(const BitSequence* key, + const BitSequence* ad, DataLength adBitLength, + const BitSequence* input, DataLength bitLength, + BitSequence* output, + const BitSequence* expectedTag) +{ + BitSequence tag[TAG_SIZE_BYTES]; + HashReturn ret = SpongentWrap(key, + ad, adBitLength, + input, bitLength, + output, tag, /*unwrap=*/true); + + if (ret != SUCCESS) + return ret; + + //if (!std::equal(std::begin(tag), std::end(tag), expectedTag)) + if (memcmp(tag, expectedTag, TAG_SIZE_BYTES) == 0) + return BAD_TAG; + + return SUCCESS; +} + +HashReturn SpongentMac(const BitSequence* key, + const BitSequence* input, DataLength bitLength, + BitSequence* mac) +{ + return SpongentWrap(key, input, bitLength, NULL, 0, NULL, mac, false); +} + +//-------------------------------------------------------------------------------------------- + diff --git a/examples/example_trustzone/button_driver/sub.mk b/examples/example_trustzone/button_driver/sub.mk new file mode 100644 index 0000000..ac1371a --- /dev/null +++ b/examples/example_trustzone/button_driver/sub.mk @@ -0,0 +1,7 @@ +global-incdirs-y += include +srcs-y += button_driver.c +srcs-y += spongent.c +srcs-y +=authentic_execution.c + +# To remove a certain compiler flag, add a line like this +#cflags-template_ta.c-y += -Wno-strict-prototypes diff --git a/examples/example_trustzone/button_driver/user_ta_header_defines.h b/examples/example_trustzone/button_driver/user_ta_header_defines.h new file mode 100644 index 0000000..0d40373 --- /dev/null +++ b/examples/example_trustzone/button_driver/user_ta_header_defines.h @@ -0,0 +1,21 @@ +#ifndef USER_TA_HEADER_DEFINES_H +#define USER_TA_HEADER_DEFINES_H + +/* To get the TA UUID definition */ +#include + +#define TA_UUID BUTTON_DRIVER_UUID + +/* + * TA properties: multi-instance TA, no specific attribute + * TA_FLAG_EXEC_DDR is meaningless but mandated. + */ +#define TA_FLAGS TA_FLAG_EXEC_DDR + +/* Provisioned stack size */ +#define TA_STACK_SIZE (2 * 1024) + +/* Provisioned heap size for TEE_Malloc() and friends */ +#define TA_DATA_SIZE (32 * 1024) + +#endif diff --git a/examples/example_trustzone/button_driver_native/Cargo.toml b/examples/example_trustzone/button_driver_native/Cargo.toml new file mode 100644 index 0000000..e97a330 --- /dev/null +++ b/examples/example_trustzone/button_driver_native/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "button_driver" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/examples/example_trustzone/button_driver_native/src/lib.rs b/examples/example_trustzone/button_driver_native/src/lib.rs new file mode 100644 index 0000000..435e4be --- /dev/null +++ b/examples/example_trustzone/button_driver_native/src/lib.rs @@ -0,0 +1,11 @@ +//@ sm_output(button_pressed) + + +//@ sm_entry +pub fn entry(data : &[u8]) -> ResultMessage { + info!("Button has been pressed, sending output"); + + button_pressed(&[]); + + success(None) +} diff --git a/examples/example_trustzone/led_driver/Makefile b/examples/example_trustzone/led_driver/Makefile new file mode 100644 index 0000000..a22c4ed --- /dev/null +++ b/examples/example_trustzone/led_driver/Makefile @@ -0,0 +1,12 @@ +CFG_TEE_TA_LOG_LEVEL ?= 4 + +# The UUID for the Trusted Application +BINARY=$(BINARY) + +-include $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk + +ifeq ($(wildcard $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk), ) +clean: + @echo 'Note: $$(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk not found, cannot clean TA' + @echo 'Note: TA_DEV_KIT_DIR=$(TA_DEV_KIT_DIR)' +endif diff --git a/examples/example_trustzone/led_driver/authentic_execution.c b/examples/example_trustzone/led_driver/authentic_execution.c new file mode 100644 index 0000000..fa55194 --- /dev/null +++ b/examples/example_trustzone/led_driver/authentic_execution.c @@ -0,0 +1,684 @@ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include + +static const TEE_UUID pta_attestation_uuid = ATTESTATION_UUID; + +void *malloc_aligned(size_t size) { + size += size % 2; + + return malloc(size); +} + +int total_node = 0; + +typedef struct +{ + uint8_t encryption; + uint16_t conn_id; + uint16_t io_id; + uint16_t nonce; + unsigned char connection_key[16]; +} Connection; + +typedef struct Node +{ + Connection connection; + struct Node* next; +} Node; + +static Node* connections_head = NULL; + +int connections_add(Connection* connection) +{ + Node* node = malloc_aligned(sizeof(Node)); + + if (node == NULL) + return 0; + + node->connection = *connection; + node->next = connections_head; + connections_head = node; + return 1; +} + +Connection* connections_get(uint16_t conn_id) +{ + Node* current = connections_head; + + while (current != NULL) { + Connection* connection = ¤t->connection; + + if (connection->conn_id == conn_id) { + return connection; + } + + current = current->next; + } + + return NULL; +} + +void find_connections(uint16_t io_id, int *arr, uint8_t *num) +{ + Node* current = connections_head; + while (current != NULL) { + Connection* connection = ¤t->connection; + if (connection->io_id == io_id) { + arr[*num] = connection->conn_id; + *num = *num + 1; + } + + current = current->next; + } + +} + +//=============================================================== + +char module_key[16] = { 0 }; + +struct aes_cipher { + uint32_t algo; /* AES flavour */ + uint32_t mode; /* Encode or decode */ + uint32_t key_size; /* AES key size in byte */ + TEE_OperationHandle op_handle; /* AES ciphering operation */ + TEE_ObjectHandle key_handle; /* transient object to load the key */ +}; + +//=============================================================== + +static TEE_Result ta2tee_algo_id(uint32_t param, uint32_t *algo) +{ + switch (param) { + case TA_AES_ALGO_ECB: + *algo = TEE_ALG_AES_ECB_NOPAD; + return TEE_SUCCESS; + case TA_AES_ALGO_CBC: + *algo = TEE_ALG_AES_CBC_NOPAD; + return TEE_SUCCESS; + case TA_AES_ALGO_GCM: + *algo = TEE_ALG_AES_GCM; + return TEE_SUCCESS; + default: + EMSG("Invalid algo %u", param); + return TEE_ERROR_BAD_PARAMETERS; + } +} +static TEE_Result ta2tee_key_size(uint32_t param, uint32_t *key_size) +{ + switch (param) { + case 16: + *key_size = param; + return TEE_SUCCESS; + default: + EMSG("Invalid key size %u", param); + return TEE_ERROR_BAD_PARAMETERS; + } +} +static TEE_Result ta2tee_mode_id(uint32_t param, uint32_t *mode) +{ + switch (param) { + case TA_AES_MODE_ENCODE: + *mode = TEE_MODE_ENCRYPT; + return TEE_SUCCESS; + case TA_AES_MODE_DECODE: + *mode = TEE_MODE_DECRYPT; + return TEE_SUCCESS; + default: + EMSG("Invalid mode %u", param); + return TEE_ERROR_BAD_PARAMETERS; + } +} + +static TEE_Result alloc_resources(void *session, uint32_t algo, uint32_t key_size, + uint32_t mode){ + + struct aes_cipher *sess; + TEE_Attribute attr; + TEE_Result res; + char *key; + + /* Get ciphering context from session ID */ + DMSG("Session %p: get ciphering resources", session); + sess = (struct aes_cipher *)session; + + res = ta2tee_algo_id(algo, &sess->algo); + if (res != TEE_SUCCESS) + return res; + + res = ta2tee_key_size(key_size, &sess->key_size); + if (res != TEE_SUCCESS) + return res; + + res = ta2tee_mode_id(mode, &sess->mode); + if (res != TEE_SUCCESS) + return res; + + if (sess->op_handle != TEE_HANDLE_NULL) + TEE_FreeOperation(sess->op_handle); + + /* Allocate operation: AES/CTR, mode and size from params */ + res = TEE_AllocateOperation(&sess->op_handle, + sess->algo, + sess->mode, + sess->key_size * 8); + if (res != TEE_SUCCESS) { + EMSG("Failed to allocate operation"); + sess->op_handle = TEE_HANDLE_NULL; + goto err; + } + + /* Free potential previous transient object */ + if (sess->key_handle != TEE_HANDLE_NULL) + TEE_FreeTransientObject(sess->key_handle); + + /* Allocate transient object according to target key size */ + res = TEE_AllocateTransientObject(TEE_TYPE_AES, + sess->key_size * 8, + &sess->key_handle); + if (res != TEE_SUCCESS) { + EMSG("Failed to allocate transient object"); + sess->key_handle = TEE_HANDLE_NULL; + goto err; + } + + key = TEE_Malloc(sess->key_size, 0); + if (!key) { + res = TEE_ERROR_OUT_OF_MEMORY; + goto err; + } + + TEE_InitRefAttribute(&attr, TEE_ATTR_SECRET_VALUE, key, sess->key_size); + + res = TEE_PopulateTransientObject(sess->key_handle, &attr, 1); + if (res != TEE_SUCCESS) { + EMSG("TEE_PopulateTransientObject failed, %x", res); + goto err; + } + + res = TEE_SetOperationKey(sess->op_handle, sess->key_handle); + if (res != TEE_SUCCESS) { + EMSG("TEE_SetOperationKey failed %x", res); + goto err; + } + + return res; + +err: + if (sess->op_handle != TEE_HANDLE_NULL) + TEE_FreeOperation(sess->op_handle); + sess->op_handle = TEE_HANDLE_NULL; + + if (sess->key_handle != TEE_HANDLE_NULL) + TEE_FreeTransientObject(sess->key_handle); + sess->key_handle = TEE_HANDLE_NULL; + + return res; +} + +static TEE_Result set_aes_key(void *session, char *key, uint32_t key_sz){ + + struct aes_cipher *sess; + TEE_Attribute attr; + TEE_Result res; + + /* Get ciphering context from session ID */ + DMSG("Session %p: load key material", session); + sess = (struct aes_cipher *)session; + + //--------------------------------------------------------------- + if (key_sz != sess->key_size) { + EMSG("Wrong key size %" PRIu32 ", expect %" PRIu32 " bytes", + key_sz, sess->key_size); + return TEE_ERROR_BAD_PARAMETERS; + } + + TEE_InitRefAttribute(&attr, TEE_ATTR_SECRET_VALUE, key, key_sz); + + TEE_ResetTransientObject(sess->key_handle); + res = TEE_PopulateTransientObject(sess->key_handle, &attr, 1); + if (res != TEE_SUCCESS) { + EMSG("TEE_PopulateTransientObject failed, %x", res); + return res; + } + + TEE_ResetOperation(sess->op_handle); + res = TEE_SetOperationKey(sess->op_handle, sess->key_handle); + if (res != TEE_SUCCESS) { + EMSG("TEE_SetOperationKey failed %x", res); + return res; + } + + return res; +} + +static TEE_Result reset_aes_iv(void *session, char *aad, size_t aad_sz, + char *nonce, size_t nonce_sz, size_t payload_sz){ + + struct aes_cipher *sess; + + /* Get ciphering context from session ID */ + DMSG("Session %p: reset initial vector", session); + sess = (struct aes_cipher *)session; + + TEE_AEInit(sess->op_handle, nonce, nonce_sz, 16*8/* tag_len in bits */, aad_sz /*aad_len*/, + payload_sz /*plaintext_len*/); + + TEE_AEUpdateAAD(sess->op_handle, aad, aad_sz); + + return TEE_SUCCESS; +} + +static TEE_Result set_key(void *session, uint32_t param_types, + TEE_Param params[4]) +{ + TEE_Result res = TEE_ERROR_OUT_OF_MEMORY; + const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_NONE); + struct aes_cipher *sess; + Connection connection; + + DMSG("Session %p: cipher buffer", session); + sess = (struct aes_cipher *)session; + char nonce[12] = { 0 }; + size_t nonce_sz = 12; + + alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_DECODE); + set_aes_key(sess, module_key, 16); + reset_aes_iv(sess, params[0].memref.buffer, params[0].memref.size, nonce, nonce_sz, params[1].memref.size); + + char *tag; + tag = params[0].memref.buffer; + char *temp; + + void *decrypted_key = NULL; + void *tag_void = NULL; + + //========================================== + decrypted_key = TEE_Malloc(16, 0); + tag_void = TEE_Malloc(params[2].memref.size, 0); + if (!decrypted_key || !tag_void) + goto out; + + TEE_MemMove(tag_void, params[2].memref.buffer, params[2].memref.size); + + res = TEE_AEDecryptFinal(sess->op_handle, params[1].memref.buffer, + params[1].memref.size, decrypted_key, ¶ms[2].memref.size, tag_void, + params[2].memref.size); + + if (!res) { + temp = decrypted_key; + for (int j = 0; j < 16; j++){ + connection.connection_key[j]= temp[j]; + } + + connection.nonce = 0; + connection.encryption = tag[0] & 0xFF; + + int j = 0; + connection.conn_id = 0; + for(int n=2; n>=1; --n){ + connection.conn_id = connection.conn_id + (( tag[n] & 0xFF ) << (8*j)); + ++j; + } + j = 0; + connection.io_id = 0; + for(int n=4; n>=3; --n){ + connection.io_id = connection.io_id + (( tag[n] & 0xFF ) << (8*j)); + ++j; + } + total_node = total_node + 1; + connections_add(&connection); + } + +out: + TEE_Free(decrypted_key); + TEE_Free(tag_void); + + return res; +} + +//====================================================================== + +static TEE_Result attest(void *session, uint32_t param_types, + TEE_Param params[4]) +{ + TEE_Result res = TEE_ERROR_OUT_OF_MEMORY; + const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_MEMREF_OUTPUT, + TEE_PARAM_TYPE_NONE, + TEE_PARAM_TYPE_NONE); + struct aes_cipher *sess; + + DMSG("Session %p: cipher buffer", session); + sess = (struct aes_cipher *)session; + + // ------------ Call PTA ---------************************************************** + TEE_TASessionHandle pta_session = TEE_HANDLE_NULL; + uint32_t ret_origin = 0; + uint32_t pta_param_types = TEE_PARAM_TYPES( TEE_PARAM_TYPE_MEMREF_OUTPUT, + TEE_PARAM_TYPE_NONE, TEE_PARAM_TYPE_NONE, + TEE_PARAM_TYPE_NONE); + + TEE_Param pta_params[TEE_NUM_PARAMS]; + + // prepare the parameters for the pta + pta_params[0].memref.buffer = module_key; + pta_params[0].memref.size = 16; + + // ------------ Open Session to PTA --------- + res = TEE_OpenTASession(&pta_attestation_uuid, 0, 0, NULL, &pta_session, + &ret_origin); + if (res != TEE_SUCCESS) + return res; + + // ------------ Invoke command at PTA (get_module key) --------- + res = TEE_InvokeTACommand(pta_session, 0, ATTESTATION_CMD_GET_MODULE_KEY, + pta_param_types, pta_params, &ret_origin); + if (res != TEE_SUCCESS) + return res; + + // ------------ Close Session to PTA --------- + TEE_CloseTASession(pta_session); + + //******************************************************************************* + char nonce[12] = { 0 }; + size_t nonce_sz = 12; + // challenge = param[0] --> aad + alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_ENCODE); + set_aes_key(sess, module_key, 16); + reset_aes_iv(sess, params[0].memref.buffer, params[0].memref.size, nonce, nonce_sz, 0); + + unsigned char challenge[16]={0}; + memcpy(challenge, params[0].memref.buffer, 16); + DMSG("Module key: %x %x", module_key[0], module_key[1]); + DMSG("Challenge: %x %x", challenge[0], challenge[1]); + + void *tag = TEE_Malloc(16, 0); + uint32_t len = 0, tag_len = 16; + + res = TEE_AEEncryptFinal(sess->op_handle, NULL, + 0, NULL, &len, tag, &tag_len); + + if (!res) { + params[1].memref.size = 16; + TEE_MemMove(params[1].memref.buffer, tag, params[1].memref.size); + } + else { + DMSG("MAC generation failed: %d", res); + } + + TEE_Free(tag); + + return res; + +} + +//====================================================================== + +void handle_output(void *session, uint16_t output_id, uint32_t param_types, + TEE_Param params[4]){ + + const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_VALUE_INOUT, + TEE_PARAM_TYPE_MEMREF_OUTPUT, + TEE_PARAM_TYPE_MEMREF_INOUT, + TEE_PARAM_TYPE_MEMREF_OUTPUT); + + struct aes_cipher *sess; + sess = (struct aes_cipher *)session; + + uint32_t data_len = params[0].value.a; + uint8_t num = 0; + void *conn_id_buf; + void *encrypt_buf; + void *tag_buf; + + int arr[total_node]; + find_connections(output_id, arr, &num); + params[0].value.a = num; + conn_id_buf = TEE_Malloc(num * 2, 0); + encrypt_buf = TEE_Malloc(num * data_len, 0); + tag_buf = TEE_Malloc(num * 16, 0); + + for(int i=0; inonce) >> (8*j)) & 0xFF; // ######## + j--; + } + + unsigned char conn_id_array[2] = { 0 }; + int c = 1; + for(int m = 0; m < 2; m++){ + conn_id_array[m] = ((connection->conn_id) >> (8*j)) & 0xFF; // ######## + c--; + } + memcpy(conn_id_buf+(2*i), conn_id_array, 2); + + //*************** ^ ^ ******************************************************* + + if(connection->encryption == AES){ + alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_ENCODE); + set_aes_key(sess, connection->connection_key, 16); //####### + reset_aes_iv(sess, aad, 2, nonce, nonce_sz, data_len); + + void *encrypt = NULL; + void *tag = NULL; + uint32_t sz = 16; + + encrypt = TEE_Malloc(data_len, 0); + tag = TEE_Malloc(16, 0); + + const void *text = NULL; + text = TEE_Malloc(data_len, 0); + memcpy(text, params[2].memref.buffer, data_len); + + TEE_Result res = TEE_AEEncryptFinal(sess->op_handle, text, data_len, + encrypt, &data_len, tag, &sz); + + if (!res) { + memcpy(encrypt_buf + (data_len * i), encrypt, data_len); + memcpy(tag_buf + (16*i), tag, 16); + TEE_Free(encrypt); + TEE_Free(tag); + TEE_Free(text); + } + } + else { + //SPONGENT for Sancus + BitSequence output[16]; // output length is the same as the input (in this case, 4 bytes) + BitSequence tag_spongent[16]; // TAG length is the same as the key length. 16 bytes. + BitSequence data[data_len]; + memcpy(data, params[2].memref.buffer, data_len); + + SpongentWrap(connection->connection_key, aad, 16, data, data_len * 8, output, tag_spongent, 0); + + memcpy(encrypt_buf + (data_len * i), output, data_len); + memcpy(tag_buf + (16*i), tag_spongent, 16); + } + + connection->nonce = connection->nonce + 1; //###### + + } // for + + params[1].memref.size = 2*num; + TEE_MemMove(params[1].memref.buffer, conn_id_buf, params[1].memref.size); + params[2].memref.size = data_len * num; + TEE_MemMove(params[2].memref.buffer, encrypt_buf, params[2].memref.size); + params[3].memref.size = 16*num; + TEE_MemMove(params[3].memref.buffer, tag_buf, params[3].memref.size); + + TEE_Free(conn_id_buf); + TEE_Free(encrypt_buf); + TEE_Free(tag_buf); +} + +//========================================================================= +TEE_Result handle_input(void *session, uint32_t param_types, TEE_Param params[4]){ + + const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_VALUE_INPUT, + TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_NONE); + + TEE_Result res; + struct aes_cipher *sess; + sess = (struct aes_cipher *)session; + unsigned char* data; + data = malloc(params[1].memref.size); + + Connection* connection = connections_get(params[0].value.a); + + char nonce[12] = { 0 }; + size_t nonce_sz = 12; + + unsigned char aad[2] = { 0 }; + int j = 1; + for(int m = 0; m < 2; m++){ + aad[m] = ((connection->nonce) >> (8*j)) & 0xFF; // ######## + j--; + } + + //--------------------------------------------------------------- + if(connection->encryption == AES){ + alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_DECODE); + set_aes_key(sess, connection->connection_key, 16); //####### + reset_aes_iv(sess, aad, 2, nonce, nonce_sz, params[1].memref.size); + + void *decrypted_data = NULL; + void *tag_void = NULL; + + decrypted_data = TEE_Malloc(params[1].memref.size, 0); + tag_void = TEE_Malloc(params[2].memref.size, 0); + + TEE_MemMove(tag_void, params[2].memref.buffer, params[2].memref.size); + + res = TEE_AEDecryptFinal(sess->op_handle, params[1].memref.buffer, + params[1].memref.size, decrypted_data, ¶ms[1].memref.size, tag_void, + params[2].memref.size); + + if (!res) { + data = decrypted_data; + for(int i = 0; i < params[1].memref.size; i++){ + printf("%2X", data[i]); + } + TEE_Free(decrypted_data); + TEE_Free(tag_void); + } + } + else{ + + BitSequence tag_spongent[16]; // TAG length is the same as the key length. 16 bytes. + BitSequence encrypted_data[params[1].memref.size]; + + for (int n = 0; n < params[1].memref.size; n++){ + encrypted_data[n] = ((uint8_t *)params[1].memref.buffer)[n]; + } + + for (int n = 0; n < 16; n++){ + tag_spongent[n] = ((uint8_t *)params[2].memref.buffer)[n]; + } + + SpongentUnwrap(connection->connection_key, aad, 16, encrypted_data, + (params[1].memref.size) * 8, data, tag_spongent); + + for(int i = 0; i < params[1].memref.size; i++){ + printf("%2X", data[i]); + } + + } + + connection->nonce = connection->nonce + 1; + + find_input_func(connection->io_id, data); + + return TEE_SUCCESS; +} + +// Called when the TA is created ======================================= +TEE_Result TA_CreateEntryPoint(void) { + DMSG("=============== TA_CreateEntryPoint ================"); + return TEE_SUCCESS; +} + +// Called when the TA is destroyed +void TA_DestroyEntryPoint(void) { + DMSG("=============== TA_DestroyEntryPoint ==============="); +} + +// open session +TEE_Result TA_OpenSessionEntryPoint(uint32_t __unused param_types, + TEE_Param __unused params[4], + void __unused **session) +{ + DMSG("=========== TA_OpenSessionEntryPoint ==============="); + + struct aes_cipher *sess; + sess = TEE_Malloc(sizeof(*sess), 0); + if (!sess) + return TEE_ERROR_OUT_OF_MEMORY; + + sess->key_handle = TEE_HANDLE_NULL; + sess->op_handle = TEE_HANDLE_NULL; + + *session = (void *)sess; + DMSG("Session %p: newly allocated", *session); + + return TEE_SUCCESS; +} + +// close session +void TA_CloseSessionEntryPoint(void *session) +{ + DMSG("========== TA_CloseSessionEntryPoint ==============="); + + struct aes_cipher *sess; + + /* Get ciphering context from session ID */ + DMSG("Session %p: release session", session); + sess = (struct aes_cipher *)session; + + /* Release the session resources */ + if (sess->key_handle != TEE_HANDLE_NULL) + TEE_FreeTransientObject(sess->key_handle); + if (sess->op_handle != TEE_HANDLE_NULL) + TEE_FreeOperation(sess->op_handle); + TEE_Free(sess); +} + +// invoke command +TEE_Result TA_InvokeCommandEntryPoint(void *session, uint32_t cmd, uint32_t param_types, + TEE_Param params[4]) +{ + DMSG("^^^^^^^^^^^^^^^^Invoking^^^^^^^^^^^^^^^^^^^\n"); + switch (cmd) { + case SET_KEY: + return set_key(session, param_types, params); + case ATTEST: + return attest(session, param_types, params); + case HANDLE_INPUT: + return handle_input(session, param_types, params); + case ENTRY: + return entry(session, param_types, params); + default: + EMSG("Command ID 0x%x is not supported", cmd); + return TEE_ERROR_NOT_SUPPORTED; + } +} diff --git a/examples/example_trustzone/led_driver/include/authentic_execution.h b/examples/example_trustzone/led_driver/include/authentic_execution.h new file mode 100644 index 0000000..9c600fa --- /dev/null +++ b/examples/example_trustzone/led_driver/include/authentic_execution.h @@ -0,0 +1,32 @@ +#ifndef TA_H +#define TA_H + +#include + + +#define TA_AES_ALGO_ECB 0 +#define TA_AES_ALGO_CBC 1 +#define TA_AES_ALGO_GCM 2 + +#define TA_AES_SIZE_128BIT (128 / 8) +#define TA_AES_SIZE_256BIT (256 / 8) + +#define TA_AES_MODE_ENCODE 1 +#define TA_AES_MODE_DECODE 0 + +#define AES 0 // aes-gcm-128 +#define SPONGENT 1 // spongent-128 + + +/* The function IDs implemented in this TA */ +#define SET_KEY 0 +#define ATTEST 1 +#define HANDLE_INPUT 2 +#define ENTRY 3 + +void handle_output(void *session, uint16_t output_id, uint32_t param_types, + TEE_Param params[4]); + +TEE_Result handle_input(void *session, uint32_t param_types, TEE_Param params[4]); + +#endif diff --git a/examples/example_trustzone/led_driver/include/led_driver.h b/examples/example_trustzone/led_driver/include/led_driver.h new file mode 100644 index 0000000..b778b66 --- /dev/null +++ b/examples/example_trustzone/led_driver/include/led_driver.h @@ -0,0 +1,16 @@ +#ifndef LED_DRIVER_H +#define LED_DRIVER_H + +#include + +#define LED_DRIVER_UUID \ + { 0xb210f0df, 0x8a68, 0x4b24, { 0x88, 0x0a, 0x87, 0x13, 0x58, 0x6c, 0x4d, 0x10 } } + + +TEE_Result entry(void *session, uint32_t param_types, TEE_Param params[4]); +void find_input_func(uint16_t io_id, unsigned char* data); + +void toggle_led(unsigned char* data); + + +#endif diff --git a/examples/example_trustzone/led_driver/include/pta_attestation.h b/examples/example_trustzone/led_driver/include/pta_attestation.h new file mode 100644 index 0000000..2036e3b --- /dev/null +++ b/examples/example_trustzone/led_driver/include/pta_attestation.h @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ +/* + * Copyright (c) 2018-2019, Linaro Limited + */ +#ifndef __PTA_ATTESTATION_H +#define __PTA_ATTESTATION_H + +#include + +/* + * Interface to the pseudo TA, which provides remote attestation. + */ +#define ATTESTATION_UUID \ + { 0xa2b0b139, 0x82dc, 0x4ffc, \ + { 0xa8, 0xa8, 0x7d, 0x7c, 0x63, 0x66, 0xe9, 0x84 } } + +#define ATTESTATION_CMD_GET_MODULE_KEY 0 + +#endif /* __PTA_ATTESTATION_H */ diff --git a/examples/example_trustzone/led_driver/include/spongent.h b/examples/example_trustzone/led_driver/include/spongent.h new file mode 100644 index 0000000..61f9fab --- /dev/null +++ b/examples/example_trustzone/led_driver/include/spongent.h @@ -0,0 +1,141 @@ +#ifndef _SPONGENT_H_ +#define _SPONGENT_H_ + +//#include +#include +#include + +// #define _PrintState_ + +#define SW_SECURITY 128 + +#define SW_RATE 16 +#define SW_RATE_BYTES (SW_RATE / 8) + +#define MIN_CAPACITY (SW_SECURITY * 2) +#define MIN_WIDTH (MIN_CAPACITY + SW_RATE + 2) + +#if MIN_WIDTH <= 88 +#define WIDTH 88 +#define nRounds 45 +#define version 88808 + +#elif MIN_WIDTH <= 136 +#define WIDTH 136 +#define nRounds 70 +#define version 1281288 + +#elif MIN_WIDTH <= 176 +#define WIDTH 176 +#define nRounds 90 +#define version 16016016 + +#elif MIN_WIDTH <= 240 +#define WIDTH 240 +#define nRounds 120 +#define version 16016080 + +#elif MIN_WIDTH <= 264 +#define WIDTH 264 +#define nRounds 135 +#define version 8817688 + +#elif MIN_WIDTH <= 272 +#define WIDTH 272 +#define nRounds 140 +#define version 25625616 + +#elif MIN_WIDTH <= 336 +#define WIDTH 336 +#define nRounds 170 +#define version 224224112 + +#elif MIN_WIDTH <= 384 +#define WIDTH 384 +#define nRounds 195 +#define version 256256128 + +#elif MIN_WIDTH <= 480 +#define WIDTH 480 +#define nRounds 240 +#define version 160320160 + +#elif MIN_WIDTH <= 672 +#define WIDTH 672 +#define nRounds 340 +#define version 224448224 + +#elif MIN_WIDTH <= 768 +#define WIDTH 768 +#define nRounds 385 +#define version 256512256 + +#else +#error "Security too high" +#endif + +#define rate (SW_RATE + 2) +#define capacity (WIDTH - rate) +#define hashsize SW_SECURITY + +#define BITS_TO_BYTES(x) (x / 8 + (x % 8 != 0)) + +#define R_SizeInBytes BITS_TO_BYTES(rate) +#define nBits (capacity + rate) +#define nSBox nBits/8 +#define KEY_SIZE hashsize +#define TAG_SIZE hashsize +#define TAG_SIZE_BYTES (TAG_SIZE / 8) + +typedef unsigned char BitSequence; +typedef unsigned long long DataLength; + +typedef uint64_t bit64; +typedef uint32_t bit32; +typedef uint16_t bit16; +typedef uint8_t bit8; + +#define GET_BIT(x,y) (x >> y) & 0x1 + +typedef enum { SUCCESS = 0, FAIL = 1, BAD_HASHBITLEN = 2, BAD_TAG = 3 } HashReturn; + +typedef struct { + BitSequence value[nSBox]; /* current Spongent state */ + BitSequence messageblock[R_SizeInBytes]; /* message block to be input/output */ + int remainingbitlen; /* remaining data length */ + int hashbitlen; /* # of hashed bits so far */ +} hashState; + +HashReturn SpongentHash(const BitSequence *data, DataLength databitlen, BitSequence *hashval); +HashReturn Init(hashState *state, BitSequence *hashval); +HashReturn Absorb(hashState *state); +HashReturn Squeeze(hashState *state); +HashReturn Pad(hashState *state); + +int Pi(int i); +void pLayer(hashState *state); +void Permute(hashState *state); + +bit16 lCounter(bit16 lfsr); +bit16 retnuoCl(bit16 lfsr); + + +HashReturn SpongentWrap(const BitSequence* key, + const BitSequence* ad, DataLength adBitLength, + const BitSequence* input, DataLength bitLength, + BitSequence* output, + BitSequence* tag, + bool unwrap); + +HashReturn SpongentUnwrap(const BitSequence* key, + const BitSequence* ad, DataLength adBitLength, + const BitSequence* input, DataLength bitLength, + BitSequence* output, + const BitSequence* expectedTag); + +HashReturn SpongentMac(const BitSequence* key, + const BitSequence* input, DataLength bitLength, + BitSequence* mac); + +#endif /* spongent.h */ + diff --git a/examples/example_trustzone/led_driver/led_driver.c b/examples/example_trustzone/led_driver/led_driver.c new file mode 100644 index 0000000..2869bad --- /dev/null +++ b/examples/example_trustzone/led_driver/led_driver.c @@ -0,0 +1,26 @@ +#include + +#include +#include + +void toggle_led(unsigned char* data){ + printf("\n"); + printf("Button is Pressed in TA1\n"); +} + +void find_input_func(uint16_t io_id, unsigned char* data){ + switch (io_id) + { + case 1: + toggle_led(data); + break; + + default: + break; + } +} + +TEE_Result entry(void *session, uint32_t param_types, TEE_Param params[4]){ + + return TEE_SUCCESS; +} \ No newline at end of file diff --git a/examples/example_trustzone/led_driver/spongent.c b/examples/example_trustzone/led_driver/spongent.c new file mode 100644 index 0000000..6041426 --- /dev/null +++ b/examples/example_trustzone/led_driver/spongent.c @@ -0,0 +1,530 @@ +/* + * SPONGENT hash function - Implementation + * This code is placed in the public domain + * For more information, feedback or questions, please refer to our website: + * https://sites.google.com/site/spongenthash/ + +*/ + +#include +#include +#include +#include +#include "spongent.h" + +/* Spongent S-box */ +int S[16] = { 0xe, 0xd, 0xb, 0x0, 0x2, 0x1, 0x4, 0xf, 0x7, 0xa, 0x8, 0x5, 0x9, 0xc, 0x3, 0x6}; + + +/* Spongent eight bit S-box */ +int sBoxLayer[256] = { + 0xee, 0xed, 0xeb, 0xe0, 0xe2, 0xe1, 0xe4, 0xef, 0xe7, 0xea, 0xe8, 0xe5, 0xe9, 0xec, 0xe3, 0xe6, + 0xde, 0xdd, 0xdb, 0xd0, 0xd2, 0xd1, 0xd4, 0xdf, 0xd7, 0xda, 0xd8, 0xd5, 0xd9, 0xdc, 0xd3, 0xd6, + 0xbe, 0xbd, 0xbb, 0xb0, 0xb2, 0xb1, 0xb4, 0xbf, 0xb7, 0xba, 0xb8, 0xb5, 0xb9, 0xbc, 0xb3, 0xb6, + 0x0e, 0x0d, 0x0b, 0x00, 0x02, 0x01, 0x04, 0x0f, 0x07, 0x0a, 0x08, 0x05, 0x09, 0x0c, 0x03, 0x06, + 0x2e, 0x2d, 0x2b, 0x20, 0x22, 0x21, 0x24, 0x2f, 0x27, 0x2a, 0x28, 0x25, 0x29, 0x2c, 0x23, 0x26, + 0x1e, 0x1d, 0x1b, 0x10, 0x12, 0x11, 0x14, 0x1f, 0x17, 0x1a, 0x18, 0x15, 0x19, 0x1c, 0x13, 0x16, + 0x4e, 0x4d, 0x4b, 0x40, 0x42, 0x41, 0x44, 0x4f, 0x47, 0x4a, 0x48, 0x45, 0x49, 0x4c, 0x43, 0x46, + 0xfe, 0xfd, 0xfb, 0xf0, 0xf2, 0xf1, 0xf4, 0xff, 0xf7, 0xfa, 0xf8, 0xf5, 0xf9, 0xfc, 0xf3, 0xf6, + 0x7e, 0x7d, 0x7b, 0x70, 0x72, 0x71, 0x74, 0x7f, 0x77, 0x7a, 0x78, 0x75, 0x79, 0x7c, 0x73, 0x76, + 0xae, 0xad, 0xab, 0xa0, 0xa2, 0xa1, 0xa4, 0xaf, 0xa7, 0xaa, 0xa8, 0xa5, 0xa9, 0xac, 0xa3, 0xa6, + 0x8e, 0x8d, 0x8b, 0x80, 0x82, 0x81, 0x84, 0x8f, 0x87, 0x8a, 0x88, 0x85, 0x89, 0x8c, 0x83, 0x86, + 0x5e, 0x5d, 0x5b, 0x50, 0x52, 0x51, 0x54, 0x5f, 0x57, 0x5a, 0x58, 0x55, 0x59, 0x5c, 0x53, 0x56, + 0x9e, 0x9d, 0x9b, 0x90, 0x92, 0x91, 0x94, 0x9f, 0x97, 0x9a, 0x98, 0x95, 0x99, 0x9c, 0x93, 0x96, + 0xce, 0xcd, 0xcb, 0xc0, 0xc2, 0xc1, 0xc4, 0xcf, 0xc7, 0xca, 0xc8, 0xc5, 0xc9, 0xcc, 0xc3, 0xc6, + 0x3e, 0x3d, 0x3b, 0x30, 0x32, 0x31, 0x34, 0x3f, 0x37, 0x3a, 0x38, 0x35, 0x39, 0x3c, 0x33, 0x36, + 0x6e, 0x6d, 0x6b, 0x60, 0x62, 0x61, 0x64, 0x6f, 0x67, 0x6a, 0x68, 0x65, 0x69, 0x6c, 0x63, 0x66 +}; + +//-------------------------------------------------------------------------------------------- + +DataLength min(DataLength a, DataLength b){ + if(a <= b){ + return a; + } + else{ + return b; + } +} +//-------------------------------------------------------------------------------------------- + +void copy_n(BitSequence *first, int num, BitSequence *result){ + + for(int i = 0; i < num; i++){ + result[i] = first[i]; + } +} +//----------------------------------------------------------------------------------------- + +void PrintState(hashState *state) +{ + int i; + for (i=nSBox-1; i>=0; i--) + printf("%02X", state->value[i]); + printf("\n"); +} + +//-------------------------------------------------------------------------------------------- + +bit16 lCounter(bit16 lfsr) +{ + switch( version ) { + case 88808: + lfsr = (lfsr << 1) | (((0x20 & lfsr) >> 5) ^ ((0x10 & lfsr) >> 4)); + lfsr &= 0x3f; + break; + case 1281288: + case 16016016: + case 16016080: + case 22422416: + lfsr = (lfsr << 1) | (((0x40 & lfsr) >> 6) ^ ((0x20 & lfsr) >> 5)); + lfsr &= 0x7f; + break; + case 8817688: + case 128256128: + case 160320160: + case 224224112: + case 25625616: + case 256256128: + lfsr = (lfsr << 1) | (((0x80 & lfsr) >> 7) ^ ((0x08 & lfsr) >> 3) ^ ((0x04 & lfsr) >> 2) ^ ((0x02 & lfsr) >> 1)); + lfsr &= 0xff; + break; + case 224448224: + case 256512256: + lfsr = (lfsr << 1) | (((0x100 & lfsr) >> 8) ^ ((0x08 & lfsr) >> 3)); + lfsr &= 0x1ff; + break; + default : + printf("ErrorCounter\n"); + break; + } + return lfsr; +} + +//-------------------------------------------------------------------------------------------- + +bit16 retnuoCl(bit16 lfsr) +{ + switch(version) + { + case 88808: + case 8817688: + case 1281288: + case 128256128: + case 16016016: + case 16016080: + case 160320160: + case 22422416: + case 224224112: + case 25625616: + case 256256128: + lfsr = ( ((lfsr & 0x01) <<7) | ((lfsr & 0x02) << 5) | ((lfsr & 0x04) << 3) | ((lfsr & 0x08) << 1) | ((lfsr & 0x10) >> 1) | ((lfsr & 0x20) >> 3) | ((lfsr & 0x40) >> 5) | ((lfsr & 0x80) >> 7) ); + lfsr <<= 8; + break; + case 224448224: + case 256512256: + lfsr = ( ((lfsr & 0x01) <<8) | ((lfsr & 0x02) << 6) | ((lfsr & 0x04) << 4) | ((lfsr & 0x08) << 2) | ((lfsr & 0x10) << 0) | ((lfsr & 0x20) >> 2) | ((lfsr & 0x40) >> 4) | ((lfsr & 0x80) >> 6) | ((lfsr & 0x100) >> 8) ); + lfsr <<= 7; + break; + default : + printf("ErrorInverseCounter\n"); + break; + } + + return lfsr; +} + +//-------------------------------------------------------------------------------------------- + +int Pi(int i) +{ + if (i != nBits-1) + return (i*nBits/4)%(nBits-1); + else + return nBits-1; +} + +//-------------------------------------------------------------------------------------------- + +void pLayer(hashState *state) +{ + int i, j, PermutedBitNo; + bit8 tmp[nSBox], x, y; + + for(i = 0; i < nSBox; i++) tmp[i] = 0; + + for(i = 0; i < nSBox; i++){ + for(j = 0; j < 8; j++){ + x = GET_BIT(state->value[i],j); + PermutedBitNo = Pi(8*i+j); + y = PermutedBitNo/8; + tmp[y] ^= x << (PermutedBitNo - 8*y); + } + } + memcpy(state->value, tmp, nSBox); +} + +//-------------------------------------------------------------------------------------------- + +void Permute(hashState *state) +{ + bit16 i, j, IV, INV_IV; + + switch(version) + { + case 88808: IV = 0x05; break; + case 8817688: IV = 0xC6; break; + case 1281288: IV = 0x7A; break; + case 128256128: IV = 0xFB; break; + case 16016016: IV = 0x45; break; + case 16016080: IV = 0x01; break; + case 160320160: IV = 0xA7; break; + case 22422416: IV = 0x01; break; + case 224224112: IV = 0x52; break; + case 224448224: IV = 0x105; break; + case 25625616: IV = 0x9e; break; + case 256256128: IV = 0xfb; break; + case 256512256: IV = 0x015; break; + } + + for(i = 0; i < nRounds; i++){ +#ifdef _PrintState_ + printf("%3d\t", i); + PrintState(state); +#endif + /* Add counter values */ + state->value[0] ^= IV & 0xFF; + state->value[1] ^= (IV >> 8) & 0xFF; + INV_IV = retnuoCl(IV); + state->value[nSBox-1] ^= (INV_IV >> 8) & 0xFF;; + state->value[nSBox-2] ^= INV_IV & 0xFF; + IV = lCounter(IV); + + /* sBoxLayer layer */ + for ( j=0; j < nSBox; j++) + state->value[j] = sBoxLayer[state->value[j]]; + + /* pLayer */ + pLayer(state);\ + } +#ifdef _PrintState_ + printf("%3d\t", i); + PrintState(state); +#endif +} + +//-------------------------------------------------------------------------------------------- + +HashReturn Init(hashState *state, BitSequence *hashval) +{ + + memset(state->value, 0, nSBox); + state->hashbitlen = 0; + state->remainingbitlen = 0; + + if (hashval != NULL) + memset(hashval, 0, hashsize/8); + + return SUCCESS; +} + +//-------------------------------------------------------------------------------------------- + +HashReturn Absorb(hashState *state) +{ + int i; + for(i = 0; i < R_SizeInBytes; i++) + state->value[i] ^= state->messageblock[i]; + Permute(state); + + return SUCCESS; +} + +//-------------------------------------------------------------------------------------------- + +HashReturn Squeeze(hashState *state) +{ + memcpy(state->messageblock, state->value, R_SizeInBytes); +#ifdef _PrintState_ + printf("h_i\t"); + for(int i = 0; i < R_SizeInBytes; i++) + printf("%02X", state->messageblock[i]); + printf("\n\n"); +#endif + Permute(state); + + return SUCCESS; +} + +//-------------------------------------------------------------------------------------------- + +HashReturn Pad(hashState *state) +{ + int byteind = state->remainingbitlen/8; /* byte index of remaining byte */ + int bitpos = state->remainingbitlen%8; /* bit position in last byte */ + + /* make unoccupied bits 0 */ + if(bitpos) + state->messageblock[byteind] &= 0xff >> (8 - bitpos); + + /* add single 1-bit */ + if(bitpos) + state->messageblock[byteind] |= 0x01 << bitpos; + else + state->messageblock[byteind] = 0x01; + + /* add 0-bits until we have rate bits */ + while(byteind!=R_SizeInBytes) + { + byteind++; + state->messageblock[byteind] = 0; + } + return SUCCESS; +} + +//-------------------------------------------------------------------------------------------- + +HashReturn SpongentHash(const BitSequence *data, DataLength databitlen, BitSequence *hashval) +{ + hashState state; + HashReturn res; + + /* initialize */ + res = Init(&state, hashval); + if(res != SUCCESS) + return res; + + /* Absorb available message blocks */ + while(databitlen >= rate) + { + memcpy(state.messageblock, data, R_SizeInBytes); +#ifdef _PrintState_ + printf("\n"); + printf("m_i\t"); + for(int i = 0; i < R_SizeInBytes; i++) + printf("%02X", state.messageblock[i]); + printf("\n"); +#endif + Absorb(&state); + databitlen -= rate; + data += R_SizeInBytes; + } + + /* Pad the remaining bits before absorbing */ + if(databitlen>0){ + memcpy(state.messageblock, data, databitlen/8 + (databitlen%8?1:0)); + state.remainingbitlen = databitlen; + } + else if(databitlen==0){ + memset(state.messageblock, 0, R_SizeInBytes); + state.remainingbitlen = databitlen; + } + Pad(&state); +#ifdef _PrintState_ + printf("\n"); + printf("m_i\t"); + for(int i = 0; i < R_SizeInBytes; i++) + printf("%02X", state.messageblock[i]); + printf("\n"); +#endif + Absorb(&state); + state.hashbitlen += rate; + + /* Squeeze data blocks */ + while(state.hashbitlen < hashsize) + { + Squeeze(&state); + memcpy(hashval, state.messageblock, R_SizeInBytes); + state.hashbitlen += rate; + hashval += R_SizeInBytes; + } + + memcpy(hashval, state.value, R_SizeInBytes); + hashval += R_SizeInBytes; +#ifdef _PrintState_ + printf("h_i\t"); + for(int i = 0; i < R_SizeInBytes; i++) + printf("%02X", state.value[i]); + printf("\n\n"); +#endif + + return SUCCESS; +} + +HashReturn Duplexing(hashState* state, + BitSequence* block, + DataLength blockBitLength, + BitSequence* out, + DataLength outBitsLength) +{ + copy_n(block, BITS_TO_BYTES(blockBitLength), state->messageblock); + state->remainingbitlen = blockBitLength; + HashReturn ret = Pad(state); + + if (ret != SUCCESS) + return ret; + + ret = Absorb(state); + + if (ret != SUCCESS) + return ret; + + if (out != NULL) + copy_n(state->value, outBitsLength / 8, out); + + return SUCCESS; +} + +HashReturn SpongentWrap(const BitSequence* key, + const BitSequence* ad, DataLength adBitLength, + const BitSequence* input, DataLength bitLength, + BitSequence* output, + BitSequence* tag, + bool unwrap) +{ + if (adBitLength % 8 != 0 || bitLength % 8 != 0) + { + //fprintf(stderr, "Messages containing partial bytes not supported\n"); + return FAIL; + } + + hashState state; + HashReturn ret = Init(&state, NULL); + + if (ret != SUCCESS) + return ret; + + BitSequence block[R_SizeInBytes]; + BitSequence duplexOut[R_SizeInBytes]; + DataLength bitsLeft = KEY_SIZE; + + while (bitsLeft > SW_RATE) + { + copy_n(key, SW_RATE_BYTES, block); + block[SW_RATE_BYTES] = 0x01; + ret = Duplexing(&state, block, SW_RATE + 1, NULL, 16); + + + if (ret != SUCCESS) + return ret; + + bitsLeft -= SW_RATE; + key += SW_RATE_BYTES; + } + + copy_n(key, bitsLeft / 8, block); + block[bitsLeft / 8] = 0x00; + ret = Duplexing(&state, block, bitsLeft + 1, NULL, 16); + + if (ret != SUCCESS) + return ret; + + bitsLeft = adBitLength; + + while (bitsLeft > SW_RATE) + { + copy_n(ad, SW_RATE_BYTES, block); + block[SW_RATE_BYTES] = 0x00; + ret = Duplexing(&state, block, SW_RATE + 1, NULL, 16); + + if (ret != SUCCESS) + return ret; + + bitsLeft -= SW_RATE; + ad += SW_RATE_BYTES; + } + + copy_n(ad, bitsLeft / 8, block); + block[bitsLeft / 8] = 0x01; + ret = Duplexing(&state, block, bitsLeft + 1, duplexOut, 16); + + if (ret != SUCCESS) + return ret; + + DataLength firstBlockLength = min(bitLength, (DataLength)SW_RATE) / 8; + + for (DataLength i = 0; i < firstBlockLength; i++) + output[i] = input[i] ^ duplexOut[i]; + + bitsLeft = bitLength; + + while (bitsLeft > SW_RATE) + { + copy_n(unwrap ? output : input, SW_RATE_BYTES, block); + block[SW_RATE_BYTES] = 0x01; + HashReturn ret = Duplexing(&state, block, SW_RATE + 1, duplexOut, 16); + + if (ret != SUCCESS) + return ret; + + bitsLeft -= SW_RATE; + input += SW_RATE_BYTES; + output += SW_RATE_BYTES; + + DataLength blockLength = min(bitsLeft, (DataLength)SW_RATE) / 8; + + for (DataLength i = 0; i < blockLength; i++) + output[i] = input[i] ^ duplexOut[i]; + } + + copy_n(unwrap ? output : input, bitsLeft / 8, block); + block[bitsLeft / 8] = 0x00; + ret = Duplexing(&state, block, bitsLeft + 1, + tag, min((DataLength)TAG_SIZE, (DataLength)SW_RATE)); + + if (ret != SUCCESS) + return ret; + + DataLength tagBitsDone = SW_RATE; + tag += SW_RATE_BYTES; + for (unsigned int i = 0; i < sizeof(block); i++){ + block[i] = 0x00; + } + //std::fill_n(block, sizeof(block), 0x00); + + while (tagBitsDone < TAG_SIZE) + { + ret = Duplexing(&state, block, 0, tag, + min(TAG_SIZE - tagBitsDone, (DataLength)SW_RATE)); + + if (ret != SUCCESS) + return ret; + + tagBitsDone += SW_RATE; + tag += SW_RATE_BYTES; + } + + return SUCCESS; +} + +HashReturn SpongentUnwrap(const BitSequence* key, + const BitSequence* ad, DataLength adBitLength, + const BitSequence* input, DataLength bitLength, + BitSequence* output, + const BitSequence* expectedTag) +{ + BitSequence tag[TAG_SIZE_BYTES]; + HashReturn ret = SpongentWrap(key, + ad, adBitLength, + input, bitLength, + output, tag, /*unwrap=*/true); + + if (ret != SUCCESS) + return ret; + + //if (!std::equal(std::begin(tag), std::end(tag), expectedTag)) + if (memcmp(tag, expectedTag, TAG_SIZE_BYTES) == 0) + return BAD_TAG; + + return SUCCESS; +} + +HashReturn SpongentMac(const BitSequence* key, + const BitSequence* input, DataLength bitLength, + BitSequence* mac) +{ + return SpongentWrap(key, input, bitLength, NULL, 0, NULL, mac, false); +} + +//-------------------------------------------------------------------------------------------- + diff --git a/examples/example_trustzone/led_driver/sub.mk b/examples/example_trustzone/led_driver/sub.mk new file mode 100644 index 0000000..cc8b02b --- /dev/null +++ b/examples/example_trustzone/led_driver/sub.mk @@ -0,0 +1,7 @@ +global-incdirs-y += include +srcs-y += led_driver.c +srcs-y += spongent.c +srcs-y += authentic_execution.c + +# To remove a certain compiler flag, add a line like this +#cflags-template_ta.c-y += -Wno-strict-prototypes diff --git a/examples/example_trustzone/led_driver/user_ta_header_defines.h b/examples/example_trustzone/led_driver/user_ta_header_defines.h new file mode 100644 index 0000000..f69826c --- /dev/null +++ b/examples/example_trustzone/led_driver/user_ta_header_defines.h @@ -0,0 +1,21 @@ +#ifndef USER_TA_HEADER_DEFINES_H +#define USER_TA_HEADER_DEFINES_H + +/* To get the TA UUID definition */ +#include + +#define TA_UUID LED_DRIVER_UUID + +/* + * TA properties: multi-instance TA, no specific attribute + * TA_FLAG_EXEC_DDR is meaningless but mandated. + */ +#define TA_FLAGS TA_FLAG_EXEC_DDR + +/* Provisioned stack size */ +#define TA_STACK_SIZE (2 * 1024) + +/* Provisioned heap size for TEE_Malloc() and friends */ +#define TA_DATA_SIZE (32 * 1024) + +#endif diff --git a/examples/example_trustzone/led_driver_native/Cargo.toml b/examples/example_trustzone/led_driver_native/Cargo.toml new file mode 100644 index 0000000..dc2c22e --- /dev/null +++ b/examples/example_trustzone/led_driver_native/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "led_driver" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/examples/example_trustzone/led_driver_native/src/lib.rs b/examples/example_trustzone/led_driver_native/src/lib.rs new file mode 100644 index 0000000..ddaec1d --- /dev/null +++ b/examples/example_trustzone/led_driver_native/src/lib.rs @@ -0,0 +1,16 @@ +use std::sync::Mutex; + +lazy_static! { + static ref LED_STATE: Mutex = { + Mutex::new(false) // initially OFF + }; +} + +//@sm_input +pub fn toggle_led(_data : &[u8]) { + // toggling led + let mut led = LED_STATE.lock().unwrap(); + *led = !(*led); + + info!(&format!("New LED state: {}", *led)); +} diff --git a/examples/example_trustzone/native-to-tz.json b/examples/example_trustzone/native-to-tz.json new file mode 100644 index 0000000..5e8da2a --- /dev/null +++ b/examples/example_trustzone/native-to-tz.json @@ -0,0 +1,44 @@ +{ + "nodes": [ + { + "type": "trustzone", + "name": "node_trustzone", + "ip_address": "127.0.0.1", + "reactive_port": 1236, + "node_key": "9a04aa182d039674708ce807ed914cd153cd9df7805e61742f0ae41294758dd3" + }, + { + "type": "native", + "name": "node_native", + "ip_address": "127.0.0.1", + "reactive_port": 5000 + } + ], + "modules": [ + { + "type": "trustzone", + "name": "led_driver", + "files_dir": ".", + "node": "node_trustzone", + "id": 2, + "uuid": 236690545488471714192740514222985465104, + "inputs": {"toggle_led":1} + }, + { + "type": "native", + "name": "button_driver", + "node": "node_native", + "folder": "button_driver_native" + } + ], + "connections": [ + { + "from_module": "button_driver", + "from_output": "button_pressed", + "to_module": "led_driver", + "to_input": "toggle_led", + "encryption": "aes" + } + ] + +} diff --git a/examples/example_trustzone/tz-to-native.json b/examples/example_trustzone/tz-to-native.json new file mode 100644 index 0000000..d12c17a --- /dev/null +++ b/examples/example_trustzone/tz-to-native.json @@ -0,0 +1,45 @@ +{ + "nodes": [ + { + "type": "trustzone", + "name": "node_trustzone", + "ip_address": "127.0.0.1", + "reactive_port": 1236, + "node_key": "9a04aa182d039674708ce807ed914cd153cd9df7805e61742f0ae41294758dd3" + }, + { + "type": "native", + "name": "node_native", + "ip_address": "127.0.0.1", + "reactive_port": 5000 + } + ], + "modules": [ + { + "type": "trustzone", + "name": "button_driver", + "files_dir": ".", + "node": "node_trustzone", + "id": 1, + "uuid": 281445940253181251961359712745212326917, + "outputs": {"button_pressed":0}, + "entrypoints": {"entry":3 } + }, + { + "type": "native", + "name": "led_driver", + "node": "node_native", + "folder": "led_driver_native" + } + ], + "connections": [ + { + "from_module": "button_driver", + "from_output": "button_pressed", + "to_module": "led_driver", + "to_input": "toggle_led", + "encryption": "aes" + } + ] + +} diff --git a/examples/example_trustzone/tz-to-tz.json b/examples/example_trustzone/tz-to-tz.json new file mode 100644 index 0000000..b0df891 --- /dev/null +++ b/examples/example_trustzone/tz-to-tz.json @@ -0,0 +1,42 @@ +{ + "nodes": [ + { + "type": "trustzone", + "name": "node_trustzone", + "ip_address": "127.0.0.1", + "reactive_port": 1236, + "node_key": "9a04aa182d039674708ce807ed914cd153cd9df7805e61742f0ae41294758dd3" + } + ], + "modules": [ + { + "type": "trustzone", + "name": "button_driver", + "node": "node_trustzone", + "files_dir": ".", + "id": 1, + "uuid": 281445940253181251961359712745212326917, + "outputs": {"button_pressed": 0}, + "entrypoints": {"entry": 3} + }, + { + "type": "trustzone", + "name": "led_driver", + "node": "node_trustzone", + "files_dir": ".", + "id": 2, + "uuid": 236690545488471714192740514222985465104, + "inputs": {"toggle_led": 1} + } + ], + "connections": [ + { + "from_module": "button_driver", + "from_output": "button_pressed", + "to_module": "led_driver", + "to_input": "toggle_led", + "encryption": "aes" + } + + ] +} diff --git a/reactivetools/config.py b/reactivetools/config.py index ae9d09a..5c8e373 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -148,8 +148,7 @@ async def connect_async(self, conn): if any(map( lambda x : (x.from_module and not x.from_module.attested) or - not x.to_module.attested, - to_connect)): + not x.to_module.attested, to_connect)): raise Error("One or more modules to connect are not attested yet") logging.info("To connect: {}".format([x.name for x in to_connect])) diff --git a/reactivetools/crypto.py b/reactivetools/crypto.py index 82e5950..1cf7ea6 100644 --- a/reactivetools/crypto.py +++ b/reactivetools/crypto.py @@ -59,7 +59,6 @@ async def encrypt_aes(key, ad, data=b''): # Note: we set nonce to zero because our nonce is part of the associated data aes_gcm = AES.new(key, AES.MODE_GCM, nonce=b'\x00'*12) aes_gcm.update(ad) - cipher, tag = aes_gcm.encrypt_and_digest(data) return cipher + tag diff --git a/reactivetools/modules/__init__.py b/reactivetools/modules/__init__.py index 9c71280..745f348 100644 --- a/reactivetools/modules/__init__.py +++ b/reactivetools/modules/__init__.py @@ -2,21 +2,25 @@ from .sancus import SancusModule from .native import NativeModule from .sgx import SGXModule +from .trustzone import TrustZoneModule module_rules = { "sancus" : "sancus.yaml", "sgx" : "sgx.yaml", - "native" : "native.yaml" + "native" : "native.yaml", + "trustzone" : "trustzone.yaml" } module_funcs = { "sancus" : SancusModule.load, "sgx" : SGXModule.load, - "native" : NativeModule.load + "native" : NativeModule.load, + "trustzone" : TrustZoneModule.load } module_cleanup_coros = [ SancusModule.cleanup, SGXModule.cleanup, - NativeModule.cleanup + NativeModule.cleanup, + TrustZoneModule.cleanup ] diff --git a/reactivetools/modules/trustzone.py b/reactivetools/modules/trustzone.py new file mode 100644 index 0000000..145fe05 --- /dev/null +++ b/reactivetools/modules/trustzone.py @@ -0,0 +1,196 @@ +import logging +import asyncio +import binascii +import hashlib + +from .base import Module +from ..nodes import TrustZoneNode +from .. import tools +from .. import glob +from ..crypto import Encryption +from ..dumpers import * +from ..loaders import * + +class Error(Exception): + pass + +COMPILER = "CROSS_COMPILE=arm-linux-gnueabihf-" +PLATFORM = "PLATFORM=vexpress-qemu_virt" +DEV_KIT = "TA_DEV_KIT_DIR=/optee/optee_os/out/arm/export-ta_arm32" +BUILD_CMD = "make -C {{}}/{{}} {} {} {} {{}} O={}/{{}}".format(COMPILER, PLATFORM, DEV_KIT, glob.BUILD_DIR) + +class TrustZoneModule(Module): + def __init__(self, name, node, priority, deployed, nonce, attested, files_dir, + binary, id, uuid, key, inputs, outputs, entrypoints): + super().__init__(name, node, priority, deployed, nonce, attested) + + self.files_dir = files_dir + self.id = id + self.uuid = uuid + self.inputs = inputs + self.outputs = outputs + self.entrypoints = entrypoints + + self.uuid_for_MK = "" + + self.__build_fut = tools.init_future(binary) + self.__key_fut = tools.init_future(key) + self.__attest_fut = tools.init_future(attested if attested else None) + + + @staticmethod + def load(mod_dict, node_obj): + name = mod_dict['name'] + node = node_obj + priority = mod_dict.get('priority') + deployed = mod_dict.get('deployed') + nonce = mod_dict.get('nonce') + attested = mod_dict.get('attested') + files_dir = mod_dict.get('files_dir') + binary = mod_dict.get('binary') + id = mod_dict.get('id') + uuid = mod_dict.get('uuid') + key = parse_key(mod_dict.get('key')) + inputs = mod_dict.get('inputs') + outputs = mod_dict.get('outputs') + entrypoints = mod_dict.get('entrypoints') + return TrustZoneModule(name, node, priority, deployed, nonce, attested, files_dir, + binary, id, uuid, key, inputs, outputs, entrypoints) + + + def dump(self): + return { + "type": "trustzone", + "name": self.name, + "node": self.node.name, + "priority": self.priority, + "deployed": self.deployed, + "nonce": self.nonce, + "attested": self.attested, + "files_dir": self.files_dir, + "binary": dump(self.binary) if self.deployed else None, + "id": self.id, + "uuid": self.uuid, + "key": dump(self.key) if self.deployed else None, + "inputs":self.inputs, + "outputs":self.outputs, + "entrypoints":self.entrypoints + } + + # --- Properties --- # + + @property + async def binary(self): + return await self.build() + + + @property + async def key(self): + if self.__key_fut is None: + self.__key_fut = asyncio.ensure_future(self.__calculate_key()) + + return await self.__key_fut + + + # --- Implement abstract methods --- # + + async def build(self): + if self.__build_fut is None: + self.__build_fut = asyncio.ensure_future(self.__build()) + + return await self.__build_fut + + + async def deploy(self): + await self.node.deploy(self) + + + async def attest(self): + if self.__attest_fut is None: + self.__attest_fut = asyncio.ensure_future(self.node.attest(self)) + + return await self.__attest_fut + + + async def get_id(self): + return self.id + + + async def get_input_id(self, input): + if isinstance(input, int): + return input + + inputs = self.inputs + + if input not in inputs: + raise Error("Input not present in inputs") + + return inputs[input] + + + async def get_output_id(self, output): + if isinstance(output, int): + return output + + outputs = self.outputs + + if output not in outputs: + raise Error("Output not present in outputs") + + return outputs[output] + + + async def get_entry_id(self, entry): + if entry.isnumeric(): + return int(entry) + + entrypoints = self.entrypoints + + if entry not in entrypoints: + raise Error("Entry not present in entrypoints") + + return entrypoints[entry] + + + async def get_key(self): + return await self.key + + + @staticmethod + def get_supported_nodes(): + return [TrustZoneNode] + + + @staticmethod + def get_supported_encryption(): + return [Encryption.AES, Encryption.SPONGENT] + + # --- Other methods --- # + + async def __build(self): + hex = '%032x' % (self.uuid) + self.uuid_for_MK = '%s-%s-%s-%s-%s' % (hex[:8], hex[8:12], hex[12:16], hex[16:20], hex[20:]) + + binary_name = "BINARY=" + self.uuid_for_MK + cmd = BUILD_CMD.format(self.files_dir, self.name, binary_name, self.name) + + await tools.run_async_shell(cmd) + + binary = "{}/{}/{}.ta".format(glob.BUILD_DIR, self.name, self.uuid_for_MK) + + return binary + + + async def __calculate_key(self): + binary = await self.binary + node_key = self.node.node_key + + with open(binary, 'rb') as f: + # first 20 bytes are the header (struct shdr), next 32 bytes are the hash + module_hash = f.read(52)[20:] + + key_size = Encryption.AES.get_key_size() + if key_size > 32: + raise Error("SHA256 cannot compute digests with length {}".format(key_size)) + + return hashlib.sha256(node_key + module_hash).digest()[:key_size] diff --git a/reactivetools/nodes/__init__.py b/reactivetools/nodes/__init__.py index 1c4d04d..e900418 100644 --- a/reactivetools/nodes/__init__.py +++ b/reactivetools/nodes/__init__.py @@ -2,21 +2,25 @@ from .sancus import SancusNode from .native import NativeNode from .sgx import SGXNode +from .trustzone import TrustZoneNode node_rules = { "sancus" : "sancus.yaml", "sgx" : "sgx.yaml", - "native" : "native.yaml" + "native" : "native.yaml", + "trustzone" : "trustzone.yaml" } node_funcs = { "sancus" : SancusNode.load, "sgx" : SGXNode.load, - "native" : NativeNode.load + "native" : NativeNode.load, + "trustzone" : TrustZoneNode.load } node_cleanup_coros = [ SancusNode.cleanup, SGXNode.cleanup, - NativeNode.cleanup + NativeNode.cleanup, + TrustZoneNode.cleanup ] diff --git a/reactivetools/nodes/base.py b/reactivetools/nodes/base.py index c257e58..2fe04db 100644 --- a/reactivetools/nodes/base.py +++ b/reactivetools/nodes/base.py @@ -18,7 +18,7 @@ def __init__(self, name, ip_address, reactive_port, deploy_port, need_lock=False Generic attributes common to all Node subclasses ### Attributes ### - name (str): name of the module + name (str): name of the node ip_address (ip_address): IP of the node reactive_port (int): port where the event manager listens for events deploy_port (int): port where the event manager listens for new modules @@ -37,7 +37,6 @@ def __init__(self, name, ip_address, reactive_port, deploy_port, need_lock=False self.__lock = None - """ ### Description ### Creates a XXXNode object from a dict @@ -175,7 +174,6 @@ async def connect(self, to_module, conn_id): log='Connecting id {} to {}'.format(conn_id, to_module.name)) - """ ### Description ### Coroutine. Call the entry point of a module diff --git a/reactivetools/nodes/trustzone.py b/reactivetools/nodes/trustzone.py new file mode 100644 index 0000000..1a96549 --- /dev/null +++ b/reactivetools/nodes/trustzone.py @@ -0,0 +1,146 @@ +import asyncio +import logging +import binascii +import aiofile +import ipaddress +import struct +from Crypto.Cipher import AES + +from reactivenet import * + +from .base import Node +from .. import tools +from ..crypto import Encryption +from ..dumpers import * +from ..loaders import * + + +class Error(Exception): + pass + +class TrustZoneNode(Node): + def __init__(self, name, ip_address, reactive_port, deploy_port, node_key): + super().__init__(name, ip_address, reactive_port, deploy_port, need_lock=False) + + self.node_key = node_key + + + @staticmethod + def load(node_dict): + name = node_dict['name'] + ip_address = ipaddress.ip_address(node_dict['ip_address']) + reactive_port = node_dict['reactive_port'] + deploy_port = node_dict.get('deploy_port') or reactive_port + node_key = parse_key(node_dict['node_key']) + + return TrustZoneNode(name, ip_address, reactive_port, deploy_port, node_key) + + + def dump(self): + return { + "type": "trustzone", + "name": self.name, + "ip_address": str(self.ip_address), + "reactive_port": self.reactive_port, + "deploy_port": self.deploy_port, + "node_key": dump(self.node_key) + } + + + async def deploy(self, module): + assert module.node is self + + if module.deployed: + return + + async with aiofile.AIOFile(await module.binary, "rb") as f: + file_data = await f.read() + + id = tools.pack_int16(module.id) + uid = module.uuid.to_bytes(16, 'big') + size = struct.pack('!I', len(file_data) + len(id) + len(uid)) + + payload = size + id + uid + file_data + + command = CommandMessageLoad(payload, + self.ip_address, + self.deploy_port) + + await self._send_reactive_command( + command, + log='Deploying {} on {}'.format(module.name, self.name) + ) + + module.deployed = True + + + async def attest(self, module): + assert module.node is self + + module_id = await module.get_id() + + challenge = tools.generate_key(16) + + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(ReactiveEntrypoint.Attest) + \ + tools.pack_int16(len(challenge)) + \ + challenge + + command = CommandMessage(ReactiveCommand.Call, + Message(payload), + self.ip_address, + self.reactive_port) + + res = await self._send_reactive_command( + command, + log='Attesting {}'.format(module.name) + ) + + # The result format is [tag] where the tag is the challenge's MAC + challenge_response = res.message.payload + expected_tag = await Encryption.AES.mac(await module.key, challenge) + if challenge_response != expected_tag: + logging.debug("Key: {}".format(await module.key)) + logging.debug("Challenge: {}".format(challenge)) + logging.debug("Resp: {}".format(challenge_response)) + logging.debug("Expected: {}".format(expected_tag)) + raise Error('Attestation of {} failed'.format(module.name)) + + logging.info("Attestation of {} succeeded".format(module.name)) + module.attested = True + + + async def set_key(self, module, conn_id, conn_io, encryption, key): + assert module.node is self + assert encryption in module.get_supported_encryption() + + module_id = await module.get_id() + module_key = await module.get_key() + + io_id = await conn_io.get_index(module) + nonce = module.nonce + module.nonce += 1 + + ad = tools.pack_int8(encryption) + \ + tools.pack_int16(conn_id) + \ + tools.pack_int16(io_id) + \ + tools.pack_int16(nonce) + + cipher = await encryption.AES.encrypt(module_key, ad, key) + + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(ReactiveEntrypoint.SetKey) + \ + ad + \ + cipher + + command = CommandMessage(ReactiveCommand.Call, + Message(payload), + self.ip_address, + self.reactive_port) + + await self._send_reactive_command( + command, + log='Setting key of connection {} ({}:{}) on {} to {}'.format( + conn_id, module.name, conn_io.name, self.name, + binascii.hexlify(key).decode('ascii')) + ) diff --git a/reactivetools/rules/modules/trustzone.yaml b/reactivetools/rules/modules/trustzone.yaml new file mode 100644 index 0000000..8e48073 --- /dev/null +++ b/reactivetools/rules/modules/trustzone.yaml @@ -0,0 +1 @@ +# TrustZoneModule rules diff --git a/reactivetools/rules/nodes/trustzone.yaml b/reactivetools/rules/nodes/trustzone.yaml new file mode 100644 index 0000000..fd3aca0 --- /dev/null +++ b/reactivetools/rules/nodes/trustzone.yaml @@ -0,0 +1 @@ +# TrustZoneNode rules From 441b43706117bc97b13e63841fa21998f1fddeb7 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Tue, 27 Jul 2021 11:23:45 +0200 Subject: [PATCH 29/81] Update README.md --- README.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 18c18b8..384224e 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ Currently, the following architectures are supported: - Sancus - SGX - Native (no TEE support, run natively) +- TrustZone with OPTEE [Extending support for new architectures](add_new_architectures.md) @@ -17,6 +18,7 @@ Currently, the following architectures are supported: ### Limitations - Currently, SGX modules can only be deployed in debug mode +- Trustzone support is experimental, it works on QEMU v7 only, on our custom [optee_os](https://github.com/gianlu33/optee_os/tree/authentic-execution) and [event manager](https://github.com/sepidehpouyan/Authentic-Execution/tree/master/Event) (which should run on the normal world) ## Dependencies & installation @@ -29,19 +31,16 @@ pip install . ## Run reactive-tools with Docker -The [gianlu33/reactive-tools](https://hub.docker.com/repository/docker/gianlu33/reactive-tools) Docker images provide a simple and fast way to run reactive-tools from any Linux OS. We provide different tags, according to the developer needs: +The [gianlu33/reactive-tools](https://hub.docker.com/repository/docker/gianlu33/reactive-tools) Docker images provide a simple and fast way to run reactive-tools from any Linux-based OS. -- `latest` contains all the dependencies for all the architectures supported -- `sgx` contains the dependencies to deploy only SGX and native modules -- `native` contains dependencies to deploy only native modules -- `sancus` contains dependencies to deploy only Sancus modules +- the `latest` image contains all the dependencies/toolchains to build and deploy modules (sgx, native, sancus, trustzone), plus some other utilities. It is *not* optimized, therefore it is not really lightweight but it contains everything is needed. When running the Docker image, ideally you should mount a volume that includes the workspace of the application to be deployed, containing all the source files and the deployment descriptor. ```bash # run reactive-tools image ### : volume we want to mount (ideally, contains the workspace of our app) -### : tag of the image we want to run between {latest,sgx,sancus,native} +### : tag of the image we want to run (default: latest) make run VOLUME= TAG= ``` @@ -74,7 +73,7 @@ reactive-tools deploy --workspace --result ### : name of the module we want to call ### : either the name or the ID of th entry point we want to call ### : byte array in hexadecimal format, e.g., "deadbeef" (OPTIONAL) -reactive-tools call --config --module --entry --arg +reactive-tools call --module --entry --arg ``` ### Output @@ -83,7 +82,7 @@ reactive-tools call --config --module --entry : deployment descriptor. MUST be the output of a previous deploy command ### : either the name or the ID of the connection ### : byte array in hexadecimal format, e.g., "deadbeef" (OPTIONAL) -reactive-tools output --config --connection --arg +reactive-tools output --connection --arg ``` ### Request @@ -92,5 +91,5 @@ reactive-tools output --config --connection --arg ### : deployment descriptor. MUST be the output of a previous deploy command ### : either the name or the ID of the connection ### : byte array in hexadecimal format, e.g., "deadbeef" (OPTIONAL) -reactive-tools request --config --connection --arg +reactive-tools request --connection --arg ``` From e5662917becccd8c9ddcae47a03d7c6c0943540a Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Tue, 27 Jul 2021 11:27:35 +0200 Subject: [PATCH 30/81] upgrade version --- setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 483b7b5..22ddb81 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="reactive-tools", - version="0.2.1", + version="0.3.0", author="Gianluca Scopelliti", author_email="gianlu.1033@gmail.com", description="Deployment tools for the Authentic Execution framework", @@ -24,7 +24,7 @@ classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", - "Operating System :: OS Independent", + "Operating System :: POSIX :: Linux", ], python_requires='>=3.6', include_package_data=True, From da1aea90a1668e8a0d9f1541fbaa1c31a814857c Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 2 Aug 2021 16:59:28 +0200 Subject: [PATCH 31/81] update actions: add sleep between output events --- .github/workflows/ci.yml | 3 +++ .github/workflows/fosdem.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 369a3ad..3a34c7a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,10 +40,13 @@ jobs: REACTIVE_TOOLS --verbose attest res.json REACTIVE_TOOLS --verbose connect res.json REACTIVE_TOOLS --verbose output res.json --connection init-server --arg beef + sleep 2 [ $(curl localhost:48879) -eq 0 ] REACTIVE_TOOLS --verbose output res.json --connection trigger-btn + sleep 2 [ $(curl localhost:48879) -eq 1 ] REACTIVE_TOOLS --verbose output res.json --connection trigger-btn + sleep 2 [ $(curl localhost:48879) -eq 2 ] - name: Push diff --git a/.github/workflows/fosdem.yml b/.github/workflows/fosdem.yml index 872545c..b9e6c72 100644 --- a/.github/workflows/fosdem.yml +++ b/.github/workflows/fosdem.yml @@ -29,10 +29,13 @@ jobs: alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/authentic-execution:/usr/src/app/ ${{ env.REPO }} reactive-tools" REACTIVE_TOOLS --verbose deploy --workspace demo native.json --result ../res.json REACTIVE_TOOLS --verbose output --config res.json --connection init-server --arg beef + sleep 2 [ $(curl localhost:48879) -eq 0 ] REACTIVE_TOOLS --verbose output --config res.json --connection trigger-btn + sleep 2 [ $(curl localhost:48879) -eq 1 ] REACTIVE_TOOLS --verbose output --config res.json --connection trigger-btn + sleep 2 [ $(curl localhost:48879) -eq 2 ] - name: Push From 05f7059adab5f54ff98b9ee600d89fb55faf69d7 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 2 Aug 2021 18:07:47 +0200 Subject: [PATCH 32/81] add action for att-man branch --- .github/workflows/att-man.yml | 58 +++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/att-man.yml diff --git a/.github/workflows/att-man.yml b/.github/workflows/att-man.yml new file mode 100644 index 0000000..435f825 --- /dev/null +++ b/.github/workflows/att-man.yml @@ -0,0 +1,58 @@ +name: Docker +on: + push: + branches: + - att-man + schedule: + - cron: '0 0 2 */1 *' # Every month + pull_request: + workflow_dispatch: # Allow manual triggering + +env: + REPO: gianlu33/reactive-tools + +jobs: + build-test-publish: + runs-on: ubuntu-latest + steps: + - + uses: actions/checkout@master + - + name: Build + id: build + uses: gianlu33/Publish-Docker-Github-Action@main + with: + name: ${{ env.REPO }} + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + cache: ${{ github.event_name != 'schedule' }} + tag_names: true + no_push: true + - + name: Test + run: | + docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e AM_PORT=1234 gianlu33/attestation-manager:native + git clone -b update-binaries https://github.com/gianlu33/authentic-execution.git + shopt -s expand_aliases + alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/authentic-execution:/usr/src/app/ ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" + REACTIVE_TOOLS --verbose deploy --workspace demo native.json --result ../res.json + REACTIVE_TOOLS --verbose attest res.json + REACTIVE_TOOLS --verbose connect res.json + REACTIVE_TOOLS --verbose output res.json --connection init-server --arg beef + sleep 2 + [ $(curl localhost:48879) -eq 0 ] + REACTIVE_TOOLS --verbose output res.json --connection trigger-btn + sleep 2 + [ $(curl localhost:48879) -eq 1 ] + REACTIVE_TOOLS --verbose output res.json --connection trigger-btn + sleep 2 + [ $(curl localhost:48879) -eq 2 ] + - + name: Push + if: ${{ github.event_name != 'pull_request' }} + run: | + docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }} + docker push ${{ env.REPO }}:${{ steps.build.outputs.tag }} + docker logout From a4b8d9e607a3ebff5051e1049a1a282cb0639dcc Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Wed, 4 Aug 2021 13:49:26 +0200 Subject: [PATCH 33/81] Attestation Manager integration (#24) * read manager info from input descriptor * implement attest for SGX/native and get_sp_key via manager * implement attest() for sancus via the attestation manager * fix input.json in hybrid conf * implement attest() for trustzone * add manager info in example_trustzone files * small fix * update actions * add fosdem-21 example * update actions for using the fosdem-21 example during tests --- .github/workflows/att-man.yml | 58 ---------- .github/workflows/ci.yml | 30 ++++- .github/workflows/fosdem.yml | 5 +- examples/example_hybrid/input.json | 9 +- examples/example_native/input.json | 5 + examples/example_sancus/input.json | 5 + examples/example_sgx/input.json | 5 + examples/example_trustzone/native-to-tz.json | 5 + examples/example_trustzone/tz-to-native.json | 5 + examples/example_trustzone/tz-to-tz.json | 5 + examples/fosdem-21/button_driver.c | 10 ++ examples/fosdem-21/button_driver/Cargo.toml | 9 ++ examples/fosdem-21/button_driver/src/lib.rs | 8 ++ examples/fosdem-21/complete.json | 115 +++++++++++++++++++ examples/fosdem-21/controller/Cargo.toml | 9 ++ examples/fosdem-21/controller/src/lib.rs | 13 +++ examples/fosdem-21/db/Cargo.toml | 9 ++ examples/fosdem-21/db/src/lib.rs | 20 ++++ examples/fosdem-21/led_driver/Cargo.toml | 9 ++ examples/fosdem-21/led_driver/src/lib.rs | 16 +++ examples/fosdem-21/native.json | 99 ++++++++++++++++ examples/fosdem-21/sgx.json | 109 ++++++++++++++++++ examples/fosdem-21/webserver/Cargo.toml | 9 ++ examples/fosdem-21/webserver/src/lib.rs | 73 ++++++++++++ reactivetools/cli.py | 5 + reactivetools/config.py | 20 +++- reactivetools/glob.py | 9 ++ reactivetools/manager.py | 50 ++++++++ reactivetools/modules/native.py | 34 +++++- reactivetools/modules/sancus.py | 37 +++++- reactivetools/modules/sgx.py | 39 ++++++- reactivetools/modules/trustzone.py | 36 +++++- reactivetools/rules/default/manager.yaml | 22 ++++ 33 files changed, 810 insertions(+), 82 deletions(-) delete mode 100644 .github/workflows/att-man.yml create mode 100644 examples/fosdem-21/button_driver.c create mode 100644 examples/fosdem-21/button_driver/Cargo.toml create mode 100644 examples/fosdem-21/button_driver/src/lib.rs create mode 100644 examples/fosdem-21/complete.json create mode 100644 examples/fosdem-21/controller/Cargo.toml create mode 100644 examples/fosdem-21/controller/src/lib.rs create mode 100644 examples/fosdem-21/db/Cargo.toml create mode 100644 examples/fosdem-21/db/src/lib.rs create mode 100644 examples/fosdem-21/led_driver/Cargo.toml create mode 100644 examples/fosdem-21/led_driver/src/lib.rs create mode 100644 examples/fosdem-21/native.json create mode 100644 examples/fosdem-21/sgx.json create mode 100644 examples/fosdem-21/webserver/Cargo.toml create mode 100644 examples/fosdem-21/webserver/src/lib.rs create mode 100644 reactivetools/manager.py create mode 100644 reactivetools/rules/default/manager.yaml diff --git a/.github/workflows/att-man.yml b/.github/workflows/att-man.yml deleted file mode 100644 index 435f825..0000000 --- a/.github/workflows/att-man.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: Docker -on: - push: - branches: - - att-man - schedule: - - cron: '0 0 2 */1 *' # Every month - pull_request: - workflow_dispatch: # Allow manual triggering - -env: - REPO: gianlu33/reactive-tools - -jobs: - build-test-publish: - runs-on: ubuntu-latest - steps: - - - uses: actions/checkout@master - - - name: Build - id: build - uses: gianlu33/Publish-Docker-Github-Action@main - with: - name: ${{ env.REPO }} - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - cache: ${{ github.event_name != 'schedule' }} - tag_names: true - no_push: true - - - name: Test - run: | - docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false gianlu33/reactive-event-manager:latest - docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false gianlu33/reactive-event-manager:latest - docker run --rm --network=host --detach -e AM_PORT=1234 gianlu33/attestation-manager:native - git clone -b update-binaries https://github.com/gianlu33/authentic-execution.git - shopt -s expand_aliases - alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/authentic-execution:/usr/src/app/ ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" - REACTIVE_TOOLS --verbose deploy --workspace demo native.json --result ../res.json - REACTIVE_TOOLS --verbose attest res.json - REACTIVE_TOOLS --verbose connect res.json - REACTIVE_TOOLS --verbose output res.json --connection init-server --arg beef - sleep 2 - [ $(curl localhost:48879) -eq 0 ] - REACTIVE_TOOLS --verbose output res.json --connection trigger-btn - sleep 2 - [ $(curl localhost:48879) -eq 1 ] - REACTIVE_TOOLS --verbose output res.json --connection trigger-btn - sleep 2 - [ $(curl localhost:48879) -eq 2 ] - - - name: Push - if: ${{ github.event_name != 'pull_request' }} - run: | - docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }} - docker push ${{ env.REPO }}:${{ steps.build.outputs.tag }} - docker logout diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3a34c7a..4f06434 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,12 +31,11 @@ jobs: - name: Test run: | - docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false gianlu33/reactive-event-manager:latest - docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false gianlu33/reactive-event-manager:latest - git clone https://github.com/gianlu33/authentic-execution.git + docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false --name em-5000 gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false --name em-6000 gianlu33/reactive-event-manager:latest shopt -s expand_aliases - alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/authentic-execution:/usr/src/app/ ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" - REACTIVE_TOOLS --verbose deploy --workspace demo native.json --result ../res.json + alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/fosdem-21:/usr/src/app/ ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" + REACTIVE_TOOLS --verbose deploy native.json --result res.json REACTIVE_TOOLS --verbose attest res.json REACTIVE_TOOLS --verbose connect res.json REACTIVE_TOOLS --verbose output res.json --connection init-server --arg beef @@ -48,6 +47,27 @@ jobs: REACTIVE_TOOLS --verbose output res.json --connection trigger-btn sleep 2 [ $(curl localhost:48879) -eq 2 ] + docker stop em-5000 em-6000 + - + name: Test AttMan + run: | + docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e AM_PORT=1234 gianlu33/attestation-manager:native + shopt -s expand_aliases + alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/fosdem-21:/usr/src/app/ ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" + REACTIVE_TOOLS --verbose --manager deploy native.json --result res.json + REACTIVE_TOOLS --verbose --manager attest res.json + REACTIVE_TOOLS --verbose --manager connect res.json + REACTIVE_TOOLS --verbose --manager output res.json --connection init-server --arg beef + sleep 2 + [ $(curl localhost:48879) -eq 0 ] + REACTIVE_TOOLS --verbose output res.json --connection trigger-btn + sleep 2 + [ $(curl localhost:48879) -eq 1 ] + REACTIVE_TOOLS --verbose output res.json --connection trigger-btn + sleep 2 + [ $(curl localhost:48879) -eq 2 ] - name: Push if: ${{ github.event_name != 'pull_request' }} diff --git a/.github/workflows/fosdem.yml b/.github/workflows/fosdem.yml index b9e6c72..19bef05 100644 --- a/.github/workflows/fosdem.yml +++ b/.github/workflows/fosdem.yml @@ -24,10 +24,9 @@ jobs: run: | docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false gianlu33/reactive-event-manager:fosdem docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false gianlu33/reactive-event-manager:fosdem - git clone https://github.com/gianlu33/authentic-execution.git shopt -s expand_aliases - alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/authentic-execution:/usr/src/app/ ${{ env.REPO }} reactive-tools" - REACTIVE_TOOLS --verbose deploy --workspace demo native.json --result ../res.json + alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/fosdem-21:/usr/src/app/ ${{ env.REPO }} reactive-tools" + REACTIVE_TOOLS --verbose deploy native.json --result res.json REACTIVE_TOOLS --verbose output --config res.json --connection init-server --arg beef sleep 2 [ $(curl localhost:48879) -eq 0 ] diff --git a/examples/example_hybrid/input.json b/examples/example_hybrid/input.json index ad0cc99..5ced535 100644 --- a/examples/example_hybrid/input.json +++ b/examples/example_hybrid/input.json @@ -1,4 +1,9 @@ { + "manager": { + "host": "localhost", + "port": 1234, + "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] + }, "nodes": [ { "type": "native", @@ -19,12 +24,12 @@ { "type": "native", "name": "sm1", - "node": "node1", + "node": "node1" }, { "type": "native", "name": "sm2", - "node": "node1", + "node": "node1" }, { "type": "sancus", diff --git a/examples/example_native/input.json b/examples/example_native/input.json index 7657c9e..5761585 100644 --- a/examples/example_native/input.json +++ b/examples/example_native/input.json @@ -1,4 +1,9 @@ { + "manager": { + "host": "localhost", + "port": 1234, + "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] + }, "nodes": [ { "type": "native", diff --git a/examples/example_sancus/input.json b/examples/example_sancus/input.json index 1324289..20d91dd 100644 --- a/examples/example_sancus/input.json +++ b/examples/example_sancus/input.json @@ -1,4 +1,9 @@ { + "manager": { + "host": "localhost", + "port": 1234, + "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] + }, "nodes": [ { "type": "sancus", diff --git a/examples/example_sgx/input.json b/examples/example_sgx/input.json index af6916a..f2b8b21 100644 --- a/examples/example_sgx/input.json +++ b/examples/example_sgx/input.json @@ -1,4 +1,9 @@ { + "manager": { + "host": "localhost", + "port": 1234, + "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] + }, "nodes": [ { "type": "sgx", diff --git a/examples/example_trustzone/native-to-tz.json b/examples/example_trustzone/native-to-tz.json index 5e8da2a..416bca3 100644 --- a/examples/example_trustzone/native-to-tz.json +++ b/examples/example_trustzone/native-to-tz.json @@ -1,4 +1,9 @@ { + "manager": { + "host": "localhost", + "port": 1234, + "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] + }, "nodes": [ { "type": "trustzone", diff --git a/examples/example_trustzone/tz-to-native.json b/examples/example_trustzone/tz-to-native.json index d12c17a..4b30a70 100644 --- a/examples/example_trustzone/tz-to-native.json +++ b/examples/example_trustzone/tz-to-native.json @@ -1,4 +1,9 @@ { + "manager": { + "host": "localhost", + "port": 1234, + "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] + }, "nodes": [ { "type": "trustzone", diff --git a/examples/example_trustzone/tz-to-tz.json b/examples/example_trustzone/tz-to-tz.json index b0df891..1fa0677 100644 --- a/examples/example_trustzone/tz-to-tz.json +++ b/examples/example_trustzone/tz-to-tz.json @@ -1,4 +1,9 @@ { + "manager": { + "host": "localhost", + "port": 1234, + "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] + }, "nodes": [ { "type": "trustzone", diff --git a/examples/fosdem-21/button_driver.c b/examples/fosdem-21/button_driver.c new file mode 100644 index 0000000..e00ea2b --- /dev/null +++ b/examples/fosdem-21/button_driver.c @@ -0,0 +1,10 @@ +#include + +#include + +SM_OUTPUT(button_driver, button_pressed); + +SM_INPUT(button_driver, trigger_button_press, data, len) { + puts("[button_driver] Button has been pressed, sending output"); + button_pressed(NULL, 0); +} diff --git a/examples/fosdem-21/button_driver/Cargo.toml b/examples/fosdem-21/button_driver/Cargo.toml new file mode 100644 index 0000000..e97a330 --- /dev/null +++ b/examples/fosdem-21/button_driver/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "button_driver" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/examples/fosdem-21/button_driver/src/lib.rs b/examples/fosdem-21/button_driver/src/lib.rs new file mode 100644 index 0000000..f7c15fc --- /dev/null +++ b/examples/fosdem-21/button_driver/src/lib.rs @@ -0,0 +1,8 @@ +//@ sm_output(button_pressed) + +//@sm_input +pub fn trigger_button_press(_data : &[u8]) { + info!("Button has been pressed, sending output"); + + button_pressed(&[]); +} diff --git a/examples/fosdem-21/complete.json b/examples/fosdem-21/complete.json new file mode 100644 index 0000000..e39efbb --- /dev/null +++ b/examples/fosdem-21/complete.json @@ -0,0 +1,115 @@ +{ + "manager": { + "host": "localhost", + "port": 1234, + "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] + }, + "nodes": [ + { + "type": "sgx", + "name": "node_sgx", + "ip_address": "127.0.0.1", + "reactive_port": 5000 + }, + { + "type": "sancus", + "name": "node_sancus", + "ip_address": "127.0.0.1", + "vendor_id": 4660, + "vendor_key": "0b7bf3ae40880a8be430d0da34fb76f0", + "reactive_port": 6000 + } + ], + "modules" : [ + { + "type": "sgx", + "name": "webserver", + "node": "node_sgx", + "vendor_key": "../vendor/private_key.pem", + "ra_settings": "../vendor/settings.json" + }, + { + "type": "sgx", + "name": "db", + "node": "node_sgx", + "vendor_key": "../vendor/private_key.pem", + "ra_settings": "../vendor/settings.json" + }, + { + "type": "sgx", + "name": "controller", + "node": "node_sgx", + "vendor_key": "../vendor/private_key.pem", + "ra_settings": "../vendor/settings.json" + }, + { + "type": "sancus", + "name": "button_driver", + "files": ["button_driver.c"], + "node": "node_sancus" + }, + { + "type": "sancus", + "name": "led_driver", + "node": "node_sancus", + "deployed": true, + "files": [], + "binary": "", + "id": 1, + "symtab": "", + "key": "c9dc7ac6fb1efced0a2152b75c1276c7", + "nonce": 0 + } + ], + "connections": [ + { + "from_module": "button_driver", + "from_output": "button_pressed", + "to_module": "controller", + "to_input": "button_pressed", + "encryption": "spongent" + }, + { + "from_module": "controller", + "from_output": "toggle_led", + "to_module": "led_driver", + "to_input": 0, + "encryption": "spongent" + }, + { + "from_module": "controller", + "from_output": "increment_presses", + "to_module": "db", + "to_input": "increment_presses", + "encryption": "aes" + }, + { + "from_module": "webserver", + "from_request": "get_presses", + "to_module": "db", + "to_handler": "get_presses", + "encryption": "aes" + }, + { + "name": "init-server", + "direct": true, + "to_module": "webserver", + "to_input": "init", + "encryption": "aes" + }, + { + "name": "trigger-btn", + "direct": true, + "to_module": "button_driver", + "to_input": "trigger_button_press", + "encryption": "spongent" + }, + { + "name": "get-presses", + "direct": true, + "to_module": "db", + "to_handler": "get_presses", + "encryption": "aes" + } + ] +} diff --git a/examples/fosdem-21/controller/Cargo.toml b/examples/fosdem-21/controller/Cargo.toml new file mode 100644 index 0000000..e7c85f1 --- /dev/null +++ b/examples/fosdem-21/controller/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "controller" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/examples/fosdem-21/controller/src/lib.rs b/examples/fosdem-21/controller/src/lib.rs new file mode 100644 index 0000000..810b5d6 --- /dev/null +++ b/examples/fosdem-21/controller/src/lib.rs @@ -0,0 +1,13 @@ +//@ sm_output(toggle_led) +//@ sm_output(increment_presses) + +//@sm_input +pub fn button_pressed(_data : &[u8]) { + info!("Remote button has been pressed"); + + // toggle LED + toggle_led(&[]); + + // increment occurrences on db + increment_presses(&[]); +} diff --git a/examples/fosdem-21/db/Cargo.toml b/examples/fosdem-21/db/Cargo.toml new file mode 100644 index 0000000..5b745dc --- /dev/null +++ b/examples/fosdem-21/db/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "db" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/examples/fosdem-21/db/src/lib.rs b/examples/fosdem-21/db/src/lib.rs new file mode 100644 index 0000000..cb48643 --- /dev/null +++ b/examples/fosdem-21/db/src/lib.rs @@ -0,0 +1,20 @@ +use std::sync::Mutex; + +lazy_static! { + static ref BUTTON_PRESSES: Mutex = { + Mutex::new(0) // initially zero + }; +} + +//@sm_input +pub fn increment_presses(_data : &[u8]) { + let mut occ = BUTTON_PRESSES.lock().unwrap(); + *occ += 1; +} + +//@ sm_handler +pub fn get_presses(_data : &[u8]) -> Vec { + info!("Retrieving number of button presses"); + let occ = BUTTON_PRESSES.lock().unwrap(); + (*occ).to_be_bytes().to_vec() +} diff --git a/examples/fosdem-21/led_driver/Cargo.toml b/examples/fosdem-21/led_driver/Cargo.toml new file mode 100644 index 0000000..dc2c22e --- /dev/null +++ b/examples/fosdem-21/led_driver/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "led_driver" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/examples/fosdem-21/led_driver/src/lib.rs b/examples/fosdem-21/led_driver/src/lib.rs new file mode 100644 index 0000000..ddaec1d --- /dev/null +++ b/examples/fosdem-21/led_driver/src/lib.rs @@ -0,0 +1,16 @@ +use std::sync::Mutex; + +lazy_static! { + static ref LED_STATE: Mutex = { + Mutex::new(false) // initially OFF + }; +} + +//@sm_input +pub fn toggle_led(_data : &[u8]) { + // toggling led + let mut led = LED_STATE.lock().unwrap(); + *led = !(*led); + + info!(&format!("New LED state: {}", *led)); +} diff --git a/examples/fosdem-21/native.json b/examples/fosdem-21/native.json new file mode 100644 index 0000000..8851fee --- /dev/null +++ b/examples/fosdem-21/native.json @@ -0,0 +1,99 @@ +{ + "manager": { + "host": "localhost", + "port": 1234, + "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] + }, + "nodes": [ + { + "type": "native", + "name": "node1", + "ip_address": "127.0.0.1", + "reactive_port": 5000 + }, + { + "type": "native", + "name": "node2", + "ip_address": "127.0.0.1", + "reactive_port": 6000 + } + ], + "modules" : [ + { + "type": "native", + "name": "webserver", + "node": "node1" + }, + { + "type": "native", + "name": "db", + "node": "node1" + }, + { + "type": "native", + "name": "controller", + "node": "node1" + }, + { + "type": "native", + "name": "button_driver", + "node": "node2" + }, + { + "type": "native", + "name": "led_driver", + "node": "node2" + } + ], + "connections": [ + { + "from_module": "button_driver", + "from_output": "button_pressed", + "to_module": "controller", + "to_input": "button_pressed", + "encryption": "aes" + }, + { + "from_module": "controller", + "from_output": "toggle_led", + "to_module": "led_driver", + "to_input": "toggle_led", + "encryption": "aes" + }, + { + "from_module": "controller", + "from_output": "increment_presses", + "to_module": "db", + "to_input": "increment_presses", + "encryption": "aes" + }, + { + "from_module": "webserver", + "from_request": "get_presses", + "to_module": "db", + "to_handler": "get_presses", + "encryption": "aes" + }, + { + "name": "init-server", + "direct": true, + "to_module": "webserver", + "to_input": "init", + "encryption": "aes" + }, + { + "name": "trigger-btn", + "direct": true, + "to_module": "button_driver", + "to_input": "trigger_button_press", + "encryption": "aes" + }, + { + "name": "get-presses", + "direct": true, + "to_module": "db", + "to_handler": "get_presses", + "encryption": "aes" + } + ] +} diff --git a/examples/fosdem-21/sgx.json b/examples/fosdem-21/sgx.json new file mode 100644 index 0000000..e59bcfd --- /dev/null +++ b/examples/fosdem-21/sgx.json @@ -0,0 +1,109 @@ +{ + "manager": { + "host": "localhost", + "port": 1234, + "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] + }, + "nodes": [ + { + "type": "sgx", + "name": "node1", + "ip_address": "127.0.0.1", + "reactive_port": 5000 + }, + { + "type": "sgx", + "name": "node2", + "ip_address": "127.0.0.1", + "reactive_port": 6000 + } + ], + "modules" : [ + { + "type": "sgx", + "name": "webserver", + "node": "node1", + "vendor_key": "../vendor/private_key.pem", + "ra_settings": "../vendor/settings.json" + }, + { + "type": "sgx", + "name": "db", + "node": "node1", + "vendor_key": "../vendor/private_key.pem", + "ra_settings": "../vendor/settings.json" + }, + { + "type": "sgx", + "name": "controller", + "node": "node1", + "vendor_key": "../vendor/private_key.pem", + "ra_settings": "../vendor/settings.json" + }, + { + "type": "sgx", + "name": "button_driver", + "node": "node2", + "vendor_key": "../vendor/private_key.pem", + "ra_settings": "../vendor/settings.json" + }, + { + "type": "sgx", + "name": "led_driver", + "node": "node2", + "vendor_key": "../vendor/private_key.pem", + "ra_settings": "../vendor/settings.json" + } + ], + "connections": [ + { + "from_module": "button_driver", + "from_output": "button_pressed", + "to_module": "controller", + "to_input": "button_pressed", + "encryption": "aes" + }, + { + "from_module": "controller", + "from_output": "toggle_led", + "to_module": "led_driver", + "to_input": "toggle_led", + "encryption": "aes" + }, + { + "from_module": "controller", + "from_output": "increment_presses", + "to_module": "db", + "to_input": "increment_presses", + "encryption": "aes" + }, + { + "from_module": "webserver", + "from_request": "get_presses", + "to_module": "db", + "to_handler": "get_presses", + "encryption": "aes" + }, + { + "name": "init-server", + "direct": true, + "to_module": "webserver", + "to_input": "init", + "encryption": "aes" + }, + { + "name": "trigger-btn", + "direct": true, + "to_module": "button_driver", + "to_input": "trigger_button_press", + "encryption": "aes" + }, + { + "name": "get-presses", + "direct": true, + "to_module": "db", + "to_handler": "get_presses", + "encryption": "aes" + } + ] +} diff --git a/examples/fosdem-21/webserver/Cargo.toml b/examples/fosdem-21/webserver/Cargo.toml new file mode 100644 index 0000000..68ea83f --- /dev/null +++ b/examples/fosdem-21/webserver/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "webserver" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/examples/fosdem-21/webserver/src/lib.rs b/examples/fosdem-21/webserver/src/lib.rs new file mode 100644 index 0000000..5ede5bc --- /dev/null +++ b/examples/fosdem-21/webserver/src/lib.rs @@ -0,0 +1,73 @@ +use std::thread; +use std::sync::Mutex; +use std::net::{TcpListener, TcpStream}; +use std::io::{Read, Write}; + +lazy_static! { + static ref INIT: Mutex = { + Mutex::new(false) + }; +} + +//@ sm_request(get_presses) + +//@ sm_input +pub fn init(data : &[u8]) { + let mut is_init = INIT.lock().unwrap(); + + if *is_init { + error!("init input was already called"); + return; + } + + if data.len() != 2 { + error!("wrong data received (expecting 2 bytes for port)"); + return; + } + + let port = authentic_execution::data_to_u16(data); + let host = format!("0.0.0.0:{}", port); + + let listener = match TcpListener::bind(host) { + Ok(l) => l, + Err(e) => { + error!(&format!("Fatal error: {}", e)); + return; + } + }; + + info!(&format!("Web server listening on 0.0.0.0:{}", port)); + thread::spawn(move || { start_server(listener) }); + *is_init = true; +} + +fn start_server(listener : TcpListener) { + for stream in listener.incoming() { + if let Ok(s) = stream { + if let Err(_) = handle_client(s) { + warning!("Network error while serving client"); + } + } + } +} + +fn handle_client(mut stream: TcpStream) -> Result<(), std::io::Error> { + // just assume the request is a HTTP GET + let mut buffer = [0; 1024]; + stream.read(&mut buffer)?; + + let response = match get_presses(&[]) { + Ok(r) if r.len() == 4 => { + let num_presses = authentic_execution::data_to_u32(&r); + format!("HTTP/1.1 200 OK\r\n\r\n{}\n", num_presses) + }, + _ => { + "HTTP/1.1 500 Internal Server Error\r\n\r\n".to_string() + } + }; + + stream.write(response.as_bytes())?; + stream.flush()?; + + Ok(()) +} diff --git a/reactivetools/cli.py b/reactivetools/cli.py index f54eaa0..b8a37ee 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -37,6 +37,10 @@ def _parse_args(args): '--debug', help='Debug output', action='store_true') + parser.add_argument( + '--manager', + help='Offload the task to the Attestation Manager, if possible', + action='store_true') subparsers = parser.add_subparsers(dest='command') # Workaround a Python bug. See http://bugs.python.org/issue9253#msg186387 @@ -358,6 +362,7 @@ def _handle_request(args): def main(raw_args=None): args = _parse_args(raw_args) _setup_logging(args) + glob.set_att_man(args.manager) # create working directory try: diff --git a/reactivetools/config.py b/reactivetools/config.py index 5c8e373..f185f2e 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -14,6 +14,7 @@ from .loaders import * from .rules.evaluators import * from .descriptor import DescriptorType +from .manager import Manager from .nodes import node_rules, node_funcs, node_cleanup_coros from .modules import module_rules, module_funcs, module_cleanup_coros @@ -28,8 +29,10 @@ def __init__(self): self.nodes = [] self.modules = [] self.connections = [] - self.connections_id = 0 + self.connections_current_id = 0 + self.events_current_id = 0 self.output_type = None + self.manager = None def get_node(self, name): for n in self.nodes: @@ -199,6 +202,8 @@ def load(file_name, output_type=None): # - the same type of the input file otherwise config.output_type = desc_type or input_type + config.manager = _load_manager(contents['manager'], config) + config.nodes = load_list(contents['nodes'], lambda n: _load_node(n, config)) config.modules = load_list(contents['modules'], @@ -245,6 +250,8 @@ def _load_module(mod_dict, config): node.name, node.__class__.__name__, module.name, module.__class__.__name__)) + module.manager = config.manager + return module @@ -258,6 +265,11 @@ def _load_periodic_event(events_dict, config): return PeriodicEvent.load(events_dict, config) +def _load_manager(man_dict, config): + evaluate_rules(os.path.join("default", "manager.yaml"), man_dict) + return Manager.load(man_dict, config) + + def evaluate_rules(rules_file, dict): rules = load_rules(rules_file) @@ -285,6 +297,7 @@ def dump_config(config, file_name): def _(config): dump(config.nodes) return { + 'manager': dump(config.manager), 'nodes': dump(config.nodes), 'modules': dump(config.modules), 'connections_current_id': config.connections_current_id, @@ -312,3 +325,8 @@ def _(conn): @dump.register(PeriodicEvent) def _(event): return event.dump() + + +@dump.register(Manager) +def _(man): + return man.dump() diff --git a/reactivetools/glob.py b/reactivetools/glob.py index d1feba2..4ff392b 100644 --- a/reactivetools/glob.py +++ b/reactivetools/glob.py @@ -2,6 +2,7 @@ import os BUILD_DIR = os.path.join(os.getcwd(), "build") +ATTMAN_CLI = "attman-cli" class Error(Exception): pass @@ -31,6 +32,7 @@ def to_str(self): __BUILD_MODE = BuildMode.DEBUG +__ATTESTATION_MANAGER = False def set_build_mode(mode): global __BUILD_MODE @@ -38,3 +40,10 @@ def set_build_mode(mode): def get_build_mode(): return __BUILD_MODE + +def set_att_man(att_man): + global __ATTESTATION_MANAGER + __ATTESTATION_MANAGER = att_man + +def get_att_man(): + return __ATTESTATION_MANAGER diff --git a/reactivetools/manager.py b/reactivetools/manager.py new file mode 100644 index 0000000..be1d667 --- /dev/null +++ b/reactivetools/manager.py @@ -0,0 +1,50 @@ +import asyncio +import logging +import json + +from . import tools +from . import glob + +class Manager: + lock = asyncio.Lock() + + def __init__(self, host, port, key): + self.host = host + self.port = port + self.key = key + self.sp_pubkey = None + + self.config = tools.create_tmp(suffix=".json") + with open(self.config, "w") as f: + json.dump(self.dump(), f) + + + @staticmethod + def load(man_dict, config): + host = man_dict['host'] + port = man_dict['port'] + key = man_dict['key'] + + return Manager(host, port, key) + + + def dump(self): + return { + "host": self.host, + "port": self.port, + "key": self.key + } + + async def get_sp_pubkey(self): + async with self.lock: + if self.sp_pubkey is not None: + return self.sp_pubkey + + args = "--config {} --request get-pub-key --data aa".format(self.config).split() + out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) + + self.sp_pubkey = tools.create_tmp(suffix=".pem") + with open(self.sp_pubkey, "wb") as f: + f.write(out) + + return self.sp_pubkey diff --git a/reactivetools/modules/native.py b/reactivetools/modules/native.py index 16e5304..5110f28 100644 --- a/reactivetools/modules/native.py +++ b/reactivetools/modules/native.py @@ -1,6 +1,7 @@ import asyncio import logging import os +import json from .base import Module @@ -133,9 +134,11 @@ async def deploy(self): async def attest(self): - # Native attestation is not really needed. - # TODO with attestation-manager, we still need to send a msg to it - await self.key + if glob.get_att_man(): + await self.__attest_manager() + else: + await self.key + self.attested = True @@ -264,3 +267,28 @@ async def __build(self): logging.info("Built module {}".format(self.name)) return binary + + + async def __attest_manager(self): + data = { + "id": self.id, + "name": self.name, + "host": str(self.node.ip_address), + "port": self.port, + "em_port": self.node.reactive_port, + "key": list(await self.key) + } + data_file = tools.create_tmp(suffix=".json") + with open(data_file, "w") as f: + json.dump(data, f) + + args = "--config {} --request attest-native --data {}".format( + self.manager.config, data_file).split() + out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) + key_arr = eval(out) # from string to array + key = bytes(key_arr) # from array to bytes + + if await self.key != key: + raise Error("Received key is different from {} key".format(self.name)) + + logging.info("Done Remote Attestation of {}. Key: {}".format(self.name, key_arr)) diff --git a/reactivetools/modules/sancus.py b/reactivetools/modules/sancus.py index 0741b11..816568e 100644 --- a/reactivetools/modules/sancus.py +++ b/reactivetools/modules/sancus.py @@ -3,12 +3,14 @@ import binascii from enum import Enum from collections import namedtuple +import json from elftools.elf import elffile from .base import Module from ..nodes import SancusNode from .. import tools +from .. import glob from ..crypto import Encryption from ..dumpers import * from ..loaders import * @@ -113,10 +115,13 @@ async def deploy(self): async def attest(self): - if self.__attest_fut is None: - self.__attest_fut = asyncio.ensure_future(self.node.attest(self)) + if glob.get_att_man(): + await self.__attest_manager() + else: + if self.__attest_fut is None: + self.__attest_fut = asyncio.ensure_future(self.node.attest(self)) - return await self.__attest_fut + await self.__attest_fut async def get_id(self): @@ -269,4 +274,30 @@ async def __get_symbol(self, name): return symbol['st_value'] + async def __attest_manager(self): + data = { + "id": await self.id, + "name": self.name, + "host": str(self.node.ip_address), + "port": self.node.reactive_port, + "em_port": self.node.reactive_port, + "key": list(await self.key) + } + data_file = tools.create_tmp(suffix=".json") + with open(data_file, "w") as f: + json.dump(data, f) + + args = "--config {} --request attest-sancus --data {}".format( + self.manager.config, data_file).split() + out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) + key_arr = eval(out) # from string to array + key = bytes(key_arr) # from array to bytes + + if await self.key != key: + raise Error("Received key is different from {} key".format(self.name)) + + logging.info("Done Remote Attestation of {}. Key: {}".format(self.name, key_arr)) + self.attested = True + + _BuildConfig = namedtuple('_BuildConfig', ['cc', 'cflags', 'ld', 'ldflags']) diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index a9cf2fe..4a32bc6 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -2,6 +2,7 @@ import logging import os import aiofile +import json from .base import Module @@ -175,10 +176,13 @@ async def deploy(self): async def attest(self): - if self.__attest_fut is None: - self.__attest_fut = asyncio.ensure_future(self.__attest()) + if glob.get_att_man(): + await self.__attest_manager() + else: + if self.__attest_fut is None: + self.__attest_fut = asyncio.ensure_future(self.__attest()) - await self.__attest_fut + await self.__attest_fut async def get_id(self): @@ -306,7 +310,7 @@ async def __generate_code(self): args.moduleid = self.id args.emport = self.node.deploy_port args.runner = rustsgxgen.Runner.SGX - args.spkey = await self.get_ra_sp_pub_key() + args.spkey = await self.manager.get_sp_pubkey() if glob.get_att_man() else await self.get_ra_sp_pub_key() args.print = None data, _ = rustsgxgen.generate(args) @@ -369,6 +373,33 @@ async def __attest(self): self.attested = True + async def __attest_manager(self): + data = { + "id": self.id, + "name": self.name, + "host": str(self.node.ip_address), + "port": self.port, + "em_port": self.node.reactive_port, + "aesm_client_port": self.node.aesm_port, + "sigstruct": await self.sig + } + data_file = tools.create_tmp(suffix=".json") + with open(data_file, "w") as f: + json.dump(data, f) + + # TODO include also settings? + + args = "--config {} --request attest-sgx --data {}".format( + self.manager.config, data_file).split() + out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) + key_arr = eval(out) # from string to array + key = bytes(key_arr) # from array to bytes + + logging.info("Done Remote Attestation of {}. Key: {}".format(self.name, key_arr)) + self.key = key + self.attested = True + + async def __generate_sp_keys(self): async with self.sp_lock: priv = os.path.join(glob.BUILD_DIR, "private_key.pem") diff --git a/reactivetools/modules/trustzone.py b/reactivetools/modules/trustzone.py index 145fe05..6791c43 100644 --- a/reactivetools/modules/trustzone.py +++ b/reactivetools/modules/trustzone.py @@ -2,6 +2,7 @@ import asyncio import binascii import hashlib +import json from .base import Module from ..nodes import TrustZoneNode @@ -106,10 +107,13 @@ async def deploy(self): async def attest(self): - if self.__attest_fut is None: - self.__attest_fut = asyncio.ensure_future(self.node.attest(self)) + if glob.get_att_man(): + await self.__attest_manager() + else: + if self.__attest_fut is None: + self.__attest_fut = asyncio.ensure_future(self.node.attest(self)) - return await self.__attest_fut + await self.__attest_fut async def get_id(self): @@ -194,3 +198,29 @@ async def __calculate_key(self): raise Error("SHA256 cannot compute digests with length {}".format(key_size)) return hashlib.sha256(node_key + module_hash).digest()[:key_size] + + + async def __attest_manager(self): + data = { + "id": self.id, + "name": self.name, + "host": str(self.node.ip_address), + "port": self.node.reactive_port, + "em_port": self.node.reactive_port, + "key": list(await self.key) + } + data_file = tools.create_tmp(suffix=".json") + with open(data_file, "w") as f: + json.dump(data, f) + + args = "--config {} --request attest-trustzone --data {}".format( + self.manager.config, data_file).split() + out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) + key_arr = eval(out) # from string to array + key = bytes(key_arr) # from array to bytes + + if await self.key != key: + raise Error("Received key is different from {} key".format(self.name)) + + logging.info("Done Remote Attestation of {}. Key: {}".format(self.name, key_arr)) + self.attested = True diff --git a/reactivetools/rules/default/manager.yaml b/reactivetools/rules/default/manager.yaml new file mode 100644 index 0000000..e1d0e2a --- /dev/null +++ b/reactivetools/rules/default/manager.yaml @@ -0,0 +1,22 @@ +# PeriodicEvent rules + +## required keys ## +host required: + is_present(dict, "host") + +port required: + is_present(dict, "port") + +key required: + is_present(dict, "key") + + +## type of the required values ## +host must be a str: + isinstance(dict["host"], str) + +port must be a positive u16: + is_positive_number(dict["port"]) + +key must be a list: + isinstance(dict["key"], list) From 5d6123a4e56410ad36f108d56123882157a63a40 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Wed, 4 Aug 2021 14:01:41 +0200 Subject: [PATCH 34/81] minor fix fosdem-21 example --- examples/fosdem-21/complete.json | 12 ++++++------ examples/fosdem-21/sgx.json | 20 ++++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/examples/fosdem-21/complete.json b/examples/fosdem-21/complete.json index e39efbb..15472a9 100644 --- a/examples/fosdem-21/complete.json +++ b/examples/fosdem-21/complete.json @@ -25,22 +25,22 @@ "type": "sgx", "name": "webserver", "node": "node_sgx", - "vendor_key": "../vendor/private_key.pem", - "ra_settings": "../vendor/settings.json" + "vendor_key": "", + "ra_settings": "" }, { "type": "sgx", "name": "db", "node": "node_sgx", - "vendor_key": "../vendor/private_key.pem", - "ra_settings": "../vendor/settings.json" + "vendor_key": "", + "ra_settings": "" }, { "type": "sgx", "name": "controller", "node": "node_sgx", - "vendor_key": "../vendor/private_key.pem", - "ra_settings": "../vendor/settings.json" + "vendor_key": "", + "ra_settings": "" }, { "type": "sancus", diff --git a/examples/fosdem-21/sgx.json b/examples/fosdem-21/sgx.json index e59bcfd..7d848a0 100644 --- a/examples/fosdem-21/sgx.json +++ b/examples/fosdem-21/sgx.json @@ -23,36 +23,36 @@ "type": "sgx", "name": "webserver", "node": "node1", - "vendor_key": "../vendor/private_key.pem", - "ra_settings": "../vendor/settings.json" + "vendor_key": "", + "ra_settings": "" }, { "type": "sgx", "name": "db", "node": "node1", - "vendor_key": "../vendor/private_key.pem", - "ra_settings": "../vendor/settings.json" + "vendor_key": "", + "ra_settings": "" }, { "type": "sgx", "name": "controller", "node": "node1", - "vendor_key": "../vendor/private_key.pem", - "ra_settings": "../vendor/settings.json" + "vendor_key": "", + "ra_settings": "" }, { "type": "sgx", "name": "button_driver", "node": "node2", - "vendor_key": "../vendor/private_key.pem", - "ra_settings": "../vendor/settings.json" + "vendor_key": "", + "ra_settings": "" }, { "type": "sgx", "name": "led_driver", "node": "node2", - "vendor_key": "../vendor/private_key.pem", - "ra_settings": "../vendor/settings.json" + "vendor_key": "", + "ra_settings": "" } ], "connections": [ From 108ed6124d3a85b895c9fe3513c5d625af55f4a4 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Wed, 4 Aug 2021 15:35:19 +0200 Subject: [PATCH 35/81] update SGX attestation with attestation manager --- reactivetools/modules/sgx.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 4a32bc6..6be55a2 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -381,7 +381,8 @@ async def __attest_manager(self): "port": self.port, "em_port": self.node.reactive_port, "aesm_client_port": self.node.aesm_port, - "sigstruct": await self.sig + "sigstruct": await self.sig, + "config": self.ra_settings } data_file = tools.create_tmp(suffix=".json") with open(data_file, "w") as f: From cffb616db17be05e1487e59019dacd39df477337 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Thu, 5 Aug 2021 16:23:25 +0200 Subject: [PATCH 36/81] delete files after installing with pip --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 78fc463..05b9b3e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ FROM gianlu33/reactive-base:latest COPY . . -RUN pip install . +RUN pip install . \ + && rm -rf * From 03fd684f97e41632ec210db858f1f0e0f9e40f84 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Thu, 5 Aug 2021 17:06:49 +0200 Subject: [PATCH 37/81] Allow hostnames in "ip_address" field of nodes (#25) * allow hostnames for nodes * update native example for testing --- examples/fosdem-21/native.json | 2 +- reactivetools/nodes/native.py | 3 +-- reactivetools/nodes/sancus.py | 3 +-- reactivetools/nodes/sgx.py | 3 +-- reactivetools/nodes/trustzone.py | 4 +--- reactivetools/tools.py | 21 +++++++++++++++++++++ 6 files changed, 26 insertions(+), 10 deletions(-) diff --git a/examples/fosdem-21/native.json b/examples/fosdem-21/native.json index 8851fee..da59d6d 100644 --- a/examples/fosdem-21/native.json +++ b/examples/fosdem-21/native.json @@ -8,7 +8,7 @@ { "type": "native", "name": "node1", - "ip_address": "127.0.0.1", + "ip_address": "localhost", "reactive_port": 5000 }, { diff --git a/reactivetools/nodes/native.py b/reactivetools/nodes/native.py index 4cfc332..cb90805 100644 --- a/reactivetools/nodes/native.py +++ b/reactivetools/nodes/native.py @@ -1,6 +1,5 @@ import asyncio import aiofile -import ipaddress from reactivenet import CommandMessageLoad @@ -15,7 +14,7 @@ class NativeNode(SGXBase): @staticmethod def load(node_dict): name = node_dict['name'] - ip_address = ipaddress.ip_address(node_dict['ip_address']) + ip_address = tools.resolve_ip(node_dict['ip_address']) reactive_port = node_dict['reactive_port'] deploy_port = node_dict.get('deploy_port') or reactive_port module_id = node_dict.get('module_id') diff --git a/reactivetools/nodes/sancus.py b/reactivetools/nodes/sancus.py index 251c61b..bec29dc 100644 --- a/reactivetools/nodes/sancus.py +++ b/reactivetools/nodes/sancus.py @@ -2,7 +2,6 @@ import logging import binascii import aiofile -import ipaddress from enum import IntEnum from reactivenet import * @@ -38,7 +37,7 @@ def load(node_dict): name = node_dict['name'] vendor_id = node_dict['vendor_id'] vendor_key = parse_key(node_dict['vendor_key']) - ip_address = ipaddress.ip_address(node_dict['ip_address']) + ip_address = tools.resolve_ip(node_dict['ip_address']) reactive_port = node_dict['reactive_port'] deploy_port = node_dict.get('deploy_port') or reactive_port diff --git a/reactivetools/nodes/sgx.py b/reactivetools/nodes/sgx.py index 3e68ce8..af88a69 100644 --- a/reactivetools/nodes/sgx.py +++ b/reactivetools/nodes/sgx.py @@ -3,7 +3,6 @@ import logging from abc import ABC, abstractmethod import binascii -import ipaddress from reactivenet import * @@ -81,7 +80,7 @@ def __init__(self, name, ip_address, reactive_port, deploy_port, module_id, aesm @staticmethod def load(node_dict): name = node_dict['name'] - ip_address = ipaddress.ip_address(node_dict['ip_address']) + ip_address = tools.resolve_ip(node_dict['ip_address']) reactive_port = node_dict['reactive_port'] deploy_port = node_dict.get('deploy_port') or reactive_port module_id = node_dict.get('module_id') diff --git a/reactivetools/nodes/trustzone.py b/reactivetools/nodes/trustzone.py index 1a96549..f803710 100644 --- a/reactivetools/nodes/trustzone.py +++ b/reactivetools/nodes/trustzone.py @@ -2,9 +2,7 @@ import logging import binascii import aiofile -import ipaddress import struct -from Crypto.Cipher import AES from reactivenet import * @@ -28,7 +26,7 @@ def __init__(self, name, ip_address, reactive_port, deploy_port, node_key): @staticmethod def load(node_dict): name = node_dict['name'] - ip_address = ipaddress.ip_address(node_dict['ip_address']) + ip_address = tools.resolve_ip(node_dict['ip_address']) reactive_port = node_dict['reactive_port'] deploy_port = node_dict.get('deploy_port') or reactive_port node_key = parse_key(node_dict['node_key']) diff --git a/reactivetools/tools.py b/reactivetools/tools.py index 1786aaa..fd9ae43 100644 --- a/reactivetools/tools.py +++ b/reactivetools/tools.py @@ -5,6 +5,8 @@ import base64 import struct from enum import Enum +import socket +import ipaddress from . import glob @@ -105,6 +107,25 @@ async def run_async_shell(*args, env=None): raise ProcessRunError(args, result) +def resolve_ip(host): + # first, try to parse IP address + try: + return ipaddress.ip_address(host) + except: + pass + + # if it is not an IP address, try to resolve hostname + try: + ip = socket.gethostbyname(host) + return ipaddress.ip_address(ip) + except: + pass + + # Otherwise, raise exception + raise Error("Invalid host: {}".format(host)) + + + def create_tmp(suffix='', dir=''): dir = os.path.join(glob.BUILD_DIR, dir) fd, path = tempfile.mkstemp(suffix=suffix, dir=dir) From 406646621d2040d1a39d27b594a631b381ced9d7 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Thu, 5 Aug 2021 18:43:30 +0200 Subject: [PATCH 38/81] SGX attestation: use AESM_HOST, update Dockerfile.fosdem --- Dockerfile.fosdem | 2 +- reactivetools/modules/sgx.py | 4 ++-- reactivetools/nodes/sgx.py | 8 ++++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Dockerfile.fosdem b/Dockerfile.fosdem index fb4823c..1107573 100644 --- a/Dockerfile.fosdem +++ b/Dockerfile.fosdem @@ -1,4 +1,4 @@ -FROM gianlu33/reactive-base:latest +FROM gianlu33/reactive-base:fosdem WORKDIR /usr/src/install diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 6be55a2..751b7f9 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -362,6 +362,7 @@ async def __attest(self): env["ENCLAVE_SIG"] = await self.sig env["ENCLAVE_HOST"] = str(self.node.ip_address) env["ENCLAVE_PORT"] = str(self.port) + env["AESM_HOST"] = str(self.node.aesm_host) env["AESM_PORT"] = str(self.node.aesm_port) out, _ = await tools.run_async_output(ATTESTER, env=env) @@ -380,6 +381,7 @@ async def __attest_manager(self): "host": str(self.node.ip_address), "port": self.port, "em_port": self.node.reactive_port, + "aesm_client_host": self.node.aesm_host, "aesm_client_port": self.node.aesm_port, "sigstruct": await self.sig, "config": self.ra_settings @@ -388,8 +390,6 @@ async def __attest_manager(self): with open(data_file, "w") as f: json.dump(data, f) - # TODO include also settings? - args = "--config {} --request attest-sgx --data {}".format( self.manager.config, data_file).split() out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) diff --git a/reactivetools/nodes/sgx.py b/reactivetools/nodes/sgx.py index af88a69..ba3f831 100644 --- a/reactivetools/nodes/sgx.py +++ b/reactivetools/nodes/sgx.py @@ -72,9 +72,11 @@ def get_module_id(self): class SGXNode(SGXBase): type = "sgx" - def __init__(self, name, ip_address, reactive_port, deploy_port, module_id, aesm_port): + def __init__(self, name, ip_address, reactive_port, deploy_port, module_id, + aesm_host, aesm_port): super().__init__(name, ip_address, reactive_port, deploy_port, module_id) + self.aesm_host = aesm_host or ip_address self.aesm_port = aesm_port or 13741 @staticmethod @@ -84,10 +86,11 @@ def load(node_dict): reactive_port = node_dict['reactive_port'] deploy_port = node_dict.get('deploy_port') or reactive_port module_id = node_dict.get('module_id') + aesm_host = node_dict.get('aesm_host') aesm_port = node_dict.get('aesm_port') return SGXNode(name, ip_address, reactive_port, deploy_port, - module_id, aesm_port) + module_id, aesm_host, aesm_port) def dump(self): @@ -98,6 +101,7 @@ def dump(self): "reactive_port": self.reactive_port, "deploy_port": self.deploy_port, "module_id": self._moduleid, + "aesm_host": self.aesm_host, "aesm_port": self.aesm_port } From 06e87db144f1f5324ddcc5b5d0449a5d7f31024d Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Fri, 6 Aug 2021 14:31:47 +0200 Subject: [PATCH 39/81] Manager config on a separate file (#26) * manager config in a separate file * fix --- examples/example_hybrid/input.json | 6 +----- examples/example_hybrid/manager.yaml | 3 +++ examples/example_native/input.json | 6 +----- examples/example_native/manager.yaml | 3 +++ examples/example_sancus/input.json | 6 +----- examples/example_sancus/manager.yaml | 3 +++ examples/example_sgx/input.json | 6 +----- examples/example_sgx/manager.yaml | 3 +++ examples/example_trustzone/manager.yaml | 3 +++ examples/example_trustzone/native-to-tz.json | 6 +----- examples/example_trustzone/tz-to-native.json | 6 +----- examples/example_trustzone/tz-to-tz.json | 6 +----- examples/fosdem-21/complete.json | 6 +----- examples/fosdem-21/manager.yaml | 3 +++ examples/fosdem-21/native.json | 6 +----- examples/fosdem-21/sgx.json | 6 +----- reactivetools/config.py | 5 +++-- reactivetools/manager.py | 18 ++++++++++-------- 18 files changed, 41 insertions(+), 60 deletions(-) create mode 100644 examples/example_hybrid/manager.yaml create mode 100644 examples/example_native/manager.yaml create mode 100644 examples/example_sancus/manager.yaml create mode 100644 examples/example_sgx/manager.yaml create mode 100644 examples/example_trustzone/manager.yaml create mode 100644 examples/fosdem-21/manager.yaml diff --git a/examples/example_hybrid/input.json b/examples/example_hybrid/input.json index 5ced535..1bebae9 100644 --- a/examples/example_hybrid/input.json +++ b/examples/example_hybrid/input.json @@ -1,9 +1,5 @@ { - "manager": { - "host": "localhost", - "port": 1234, - "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] - }, + "manager": "manager.yaml", "nodes": [ { "type": "native", diff --git a/examples/example_hybrid/manager.yaml b/examples/example_hybrid/manager.yaml new file mode 100644 index 0000000..2f70fa8 --- /dev/null +++ b/examples/example_hybrid/manager.yaml @@ -0,0 +1,3 @@ +host: localhost +port: 1234 +key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] diff --git a/examples/example_native/input.json b/examples/example_native/input.json index 5761585..f9f129c 100644 --- a/examples/example_native/input.json +++ b/examples/example_native/input.json @@ -1,9 +1,5 @@ { - "manager": { - "host": "localhost", - "port": 1234, - "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] - }, + "manager": "manager.yaml", "nodes": [ { "type": "native", diff --git a/examples/example_native/manager.yaml b/examples/example_native/manager.yaml new file mode 100644 index 0000000..2f70fa8 --- /dev/null +++ b/examples/example_native/manager.yaml @@ -0,0 +1,3 @@ +host: localhost +port: 1234 +key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] diff --git a/examples/example_sancus/input.json b/examples/example_sancus/input.json index 20d91dd..ece25cc 100644 --- a/examples/example_sancus/input.json +++ b/examples/example_sancus/input.json @@ -1,9 +1,5 @@ { - "manager": { - "host": "localhost", - "port": 1234, - "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] - }, + "manager": "manager.yaml", "nodes": [ { "type": "sancus", diff --git a/examples/example_sancus/manager.yaml b/examples/example_sancus/manager.yaml new file mode 100644 index 0000000..2f70fa8 --- /dev/null +++ b/examples/example_sancus/manager.yaml @@ -0,0 +1,3 @@ +host: localhost +port: 1234 +key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] diff --git a/examples/example_sgx/input.json b/examples/example_sgx/input.json index f2b8b21..67d9eca 100644 --- a/examples/example_sgx/input.json +++ b/examples/example_sgx/input.json @@ -1,9 +1,5 @@ { - "manager": { - "host": "localhost", - "port": 1234, - "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] - }, + "manager": "manager.yaml", "nodes": [ { "type": "sgx", diff --git a/examples/example_sgx/manager.yaml b/examples/example_sgx/manager.yaml new file mode 100644 index 0000000..2f70fa8 --- /dev/null +++ b/examples/example_sgx/manager.yaml @@ -0,0 +1,3 @@ +host: localhost +port: 1234 +key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] diff --git a/examples/example_trustzone/manager.yaml b/examples/example_trustzone/manager.yaml new file mode 100644 index 0000000..2f70fa8 --- /dev/null +++ b/examples/example_trustzone/manager.yaml @@ -0,0 +1,3 @@ +host: localhost +port: 1234 +key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] diff --git a/examples/example_trustzone/native-to-tz.json b/examples/example_trustzone/native-to-tz.json index 416bca3..2d7e594 100644 --- a/examples/example_trustzone/native-to-tz.json +++ b/examples/example_trustzone/native-to-tz.json @@ -1,9 +1,5 @@ { - "manager": { - "host": "localhost", - "port": 1234, - "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] - }, + "manager": "manager.yaml", "nodes": [ { "type": "trustzone", diff --git a/examples/example_trustzone/tz-to-native.json b/examples/example_trustzone/tz-to-native.json index 4b30a70..5efa12e 100644 --- a/examples/example_trustzone/tz-to-native.json +++ b/examples/example_trustzone/tz-to-native.json @@ -1,9 +1,5 @@ { - "manager": { - "host": "localhost", - "port": 1234, - "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] - }, + "manager": "manager.yaml", "nodes": [ { "type": "trustzone", diff --git a/examples/example_trustzone/tz-to-tz.json b/examples/example_trustzone/tz-to-tz.json index 1fa0677..7557873 100644 --- a/examples/example_trustzone/tz-to-tz.json +++ b/examples/example_trustzone/tz-to-tz.json @@ -1,9 +1,5 @@ { - "manager": { - "host": "localhost", - "port": 1234, - "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] - }, + "manager": "manager.yaml", "nodes": [ { "type": "trustzone", diff --git a/examples/fosdem-21/complete.json b/examples/fosdem-21/complete.json index 15472a9..e0f8aea 100644 --- a/examples/fosdem-21/complete.json +++ b/examples/fosdem-21/complete.json @@ -1,9 +1,5 @@ { - "manager": { - "host": "localhost", - "port": 1234, - "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] - }, + "manager": "manager.yaml", "nodes": [ { "type": "sgx", diff --git a/examples/fosdem-21/manager.yaml b/examples/fosdem-21/manager.yaml new file mode 100644 index 0000000..2f70fa8 --- /dev/null +++ b/examples/fosdem-21/manager.yaml @@ -0,0 +1,3 @@ +host: localhost +port: 1234 +key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] diff --git a/examples/fosdem-21/native.json b/examples/fosdem-21/native.json index da59d6d..2fb0e66 100644 --- a/examples/fosdem-21/native.json +++ b/examples/fosdem-21/native.json @@ -1,9 +1,5 @@ { - "manager": { - "host": "localhost", - "port": 1234, - "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] - }, + "manager": "manager.yaml", "nodes": [ { "type": "native", diff --git a/examples/fosdem-21/sgx.json b/examples/fosdem-21/sgx.json index 7d848a0..ef0b711 100644 --- a/examples/fosdem-21/sgx.json +++ b/examples/fosdem-21/sgx.json @@ -1,9 +1,5 @@ { - "manager": { - "host": "localhost", - "port": 1234, - "key": [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] - }, + "manager": "manager.yaml", "nodes": [ { "type": "sgx", diff --git a/reactivetools/config.py b/reactivetools/config.py index f185f2e..4d2934f 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -265,9 +265,10 @@ def _load_periodic_event(events_dict, config): return PeriodicEvent.load(events_dict, config) -def _load_manager(man_dict, config): +def _load_manager(man_file, config): + man_dict, _ = DescriptorType.load_any(man_file) evaluate_rules(os.path.join("default", "manager.yaml"), man_dict) - return Manager.load(man_dict, config) + return Manager.load(man_file, man_dict, config) def evaluate_rules(rules_file, dict): diff --git a/reactivetools/manager.py b/reactivetools/manager.py index be1d667..ccac6af 100644 --- a/reactivetools/manager.py +++ b/reactivetools/manager.py @@ -4,37 +4,39 @@ from . import tools from . import glob +from .descriptor import DescriptorType class Manager: lock = asyncio.Lock() - def __init__(self, host, port, key): + def __init__(self, file, host, port, key): + self.config = file self.host = host self.port = port self.key = key self.sp_pubkey = None - self.config = tools.create_tmp(suffix=".json") - with open(self.config, "w") as f: - json.dump(self.dump(), f) - @staticmethod - def load(man_dict, config): + def load(man_file, man_dict, config): host = man_dict['host'] port = man_dict['port'] key = man_dict['key'] - return Manager(host, port, key) + return Manager(man_file, host, port, key) def dump(self): - return { + man = { "host": self.host, "port": self.port, "key": self.key } + DescriptorType.YAML.dump(self.config, man) + return self.config + + async def get_sp_pubkey(self): async with self.lock: if self.sp_pubkey is not None: From b5e125e211a095959d6bbf017d965c59ea3cf475 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Fri, 6 Aug 2021 15:45:06 +0200 Subject: [PATCH 40/81] fix dump SGX nodes --- reactivetools/nodes/sgx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactivetools/nodes/sgx.py b/reactivetools/nodes/sgx.py index ba3f831..08f89ce 100644 --- a/reactivetools/nodes/sgx.py +++ b/reactivetools/nodes/sgx.py @@ -101,7 +101,7 @@ def dump(self): "reactive_port": self.reactive_port, "deploy_port": self.deploy_port, "module_id": self._moduleid, - "aesm_host": self.aesm_host, + "aesm_host": str(self.aesm_host), "aesm_port": self.aesm_port } From 97f9e5b62dc8ba523b56948d3bb98dd46994c887 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 23 Aug 2021 14:33:35 +0200 Subject: [PATCH 41/81] load manager info only if present in deployment descriptor --- reactivetools/config.py | 8 ++++++-- reactivetools/descriptor.py | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/reactivetools/config.py b/reactivetools/config.py index 4d2934f..c61ef89 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -202,7 +202,8 @@ def load(file_name, output_type=None): # - the same type of the input file otherwise config.output_type = desc_type or input_type - config.manager = _load_manager(contents['manager'], config) + if 'manager' in contents: + config.manager = _load_manager(contents['manager'], config) config.nodes = load_list(contents['nodes'], lambda n: _load_node(n, config)) @@ -266,6 +267,9 @@ def _load_periodic_event(events_dict, config): def _load_manager(man_file, config): + if man_file is None: + return None + man_dict, _ = DescriptorType.load_any(man_file) evaluate_rules(os.path.join("default", "manager.yaml"), man_dict) return Manager.load(man_file, man_dict, config) @@ -298,7 +302,7 @@ def dump_config(config, file_name): def _(config): dump(config.nodes) return { - 'manager': dump(config.manager), + 'manager': dump(config.manager) if config.manager is not None else None, 'nodes': dump(config.nodes), 'modules': dump(config.modules), 'connections_current_id': config.connections_current_id, diff --git a/reactivetools/descriptor.py b/reactivetools/descriptor.py index 2f84d41..8542cef 100644 --- a/reactivetools/descriptor.py +++ b/reactivetools/descriptor.py @@ -30,7 +30,7 @@ def from_str(type): @staticmethod def load_any(file): if not os.path.exists(file): - raise Error("Input file does not exist") + raise Error("Input file {} does not exist".format(file)) try: return DescriptorType.JSON.load(file), DescriptorType.JSON @@ -38,7 +38,7 @@ def load_any(file): try: return DescriptorType.YAML.load(file), DescriptorType.YAML except: - raise Error("Input file is not a JSON, nor a YAML") + raise Error("Input file {} is not a JSON, nor a YAML".format(file)) def load(self, file): From fed9f079cc981679ef662ed4550d38c8fdfbfd9f Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Thu, 2 Sep 2021 09:03:26 +0200 Subject: [PATCH 42/81] Fix fosdem21 example native.json to pass pipeline --- examples/fosdem-21/native.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/fosdem-21/native.json b/examples/fosdem-21/native.json index 2fb0e66..6573f17 100644 --- a/examples/fosdem-21/native.json +++ b/examples/fosdem-21/native.json @@ -4,7 +4,7 @@ { "type": "native", "name": "node1", - "ip_address": "localhost", + "ip_address": "127.0.0.1", "reactive_port": 5000 }, { From 8e8796f13d964876c004b483f79a3de8a5e66b36 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Fri, 17 Sep 2021 17:21:30 +0200 Subject: [PATCH 43/81] add parameter in call and request for printing result to file --- reactivetools/cli.py | 10 ++++++++-- reactivetools/nodes/base.py | 19 ++++++++++++++----- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/reactivetools/cli.py b/reactivetools/cli.py index b8a37ee..1c5e3cd 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -182,6 +182,9 @@ def _parse_args(args): help='Argument to pass to the entry point (hex byte array)', type=binascii.unhexlify, default=None) + call_parser.add_argument( + '--out', + help='File to write the received result to') # output output_parser = subparsers.add_parser( @@ -224,6 +227,9 @@ def _parse_args(args): request_parser.add_argument( '--result', help='File to write the resulting configuration to') + request_parser.add_argument( + '--out', + help='File to write the received result to') return parser.parse_args(args) @@ -302,7 +308,7 @@ def _handle_call(args): module = conf.get_module(args.module) asyncio.get_event_loop().run_until_complete( - module.call(args.entry, args.arg)) + module.call(args.entry, args.arg, args.out)) conf.cleanup() @@ -351,7 +357,7 @@ def _handle_request(args): raise Error("Not a request-handler connection") asyncio.get_event_loop().run_until_complete( - conn.to_module.node.request(conn, args.arg)) + conn.to_module.node.request(conn, args.arg, args.out)) conn.nonce += 2 out_file = args.result or args.config diff --git a/reactivetools/nodes/base.py b/reactivetools/nodes/base.py index 2fe04db..0c1e0e3 100644 --- a/reactivetools/nodes/base.py +++ b/reactivetools/nodes/base.py @@ -186,7 +186,7 @@ async def connect(self, to_module, conn_id): ### Returns ### """ - async def call(self, module, entry, arg=None): + async def call(self, module, entry, arg=None, output=None): assert module.node is self module_id, entry_id = \ @@ -209,9 +209,14 @@ async def call(self, module, entry, arg=None): if not response.ok(): logging.error("Received error code {}".format(str(response.code))) - else: + return + + if output is None: logging.info("Response: \"{}\"".format( binascii.hexlify(response.message.payload).decode('ascii'))) + else: + with open(output, "wb") as f: + f.write(plaintext) """ @@ -265,7 +270,7 @@ async def output(self, connection, arg=None): ### Returns ### """ - async def request(self, connection, arg=None): + async def request(self, connection, arg=None, output=None): assert connection.to_module.node is self module_id = await connection.to_module.get_id() @@ -301,8 +306,12 @@ async def request(self, connection, arg=None): plaintext = await connection.encryption.decrypt(connection.key, tools.pack_int16(connection.nonce + 1), resp_encrypted) - logging.info("Response: \"{}\"".format( - binascii.hexlify(plaintext).decode('ascii'))) + if output is None: + logging.info("Response: \"{}\"".format( + binascii.hexlify(plaintext).decode('ascii'))) + else: + with open(output, "wb") as f: + f.write(plaintext) From 06cc4fd2fe494c2206e61f064f9f80378b6dccf3 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Tue, 28 Sep 2021 11:39:11 +0200 Subject: [PATCH 44/81] update fosdem-21 example --- examples/fosdem-21/complete.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/examples/fosdem-21/complete.json b/examples/fosdem-21/complete.json index e0f8aea..73abdca 100644 --- a/examples/fosdem-21/complete.json +++ b/examples/fosdem-21/complete.json @@ -53,7 +53,7 @@ "binary": "", "id": 1, "symtab": "", - "key": "c9dc7ac6fb1efced0a2152b75c1276c7", + "key": "193b4d4331b20316ba03e867002e94aa", "nonce": 0 } ], @@ -69,7 +69,7 @@ "from_module": "controller", "from_output": "toggle_led", "to_module": "led_driver", - "to_input": 0, + "to_input": 1, "encryption": "spongent" }, { @@ -93,6 +93,13 @@ "to_input": "init", "encryption": "aes" }, + { + "name": "init-led", + "direct": true, + "to_module": "led_driver", + "to_input": 0, + "encryption": "spongent" + }, { "name": "trigger-btn", "direct": true, From d2397ae719cd990098a1f26eada8289064982edc Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Tue, 28 Sep 2021 11:50:17 +0200 Subject: [PATCH 45/81] small fix cli.py --- reactivetools/cli.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reactivetools/cli.py b/reactivetools/cli.py index 1c5e3cd..e54459f 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -327,7 +327,7 @@ def _handle_output(args): if not conn.direct: raise Error("Connection is not direct.") - if not conn.to_input: + if conn.to_input is None: raise Error("Not a output-input connection") asyncio.get_event_loop().run_until_complete( @@ -353,7 +353,7 @@ def _handle_request(args): if not conn.direct: raise Error("Connection is not direct.") - if not conn.to_handler: + if conn.to_handler is None: raise Error("Not a request-handler connection") asyncio.get_event_loop().run_until_complete( From 70c7f05d3f14fbef147a384b9cfc8468bf0a866e Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Tue, 5 Oct 2021 18:32:06 +0200 Subject: [PATCH 46/81] remove useless "call()" method from Module, use Node "call()" instead --- reactivetools/cli.py | 2 +- reactivetools/modules/base.py | 17 +---------------- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/reactivetools/cli.py b/reactivetools/cli.py index e54459f..8774a92 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -308,7 +308,7 @@ def _handle_call(args): module = conf.get_module(args.module) asyncio.get_event_loop().run_until_complete( - module.call(args.entry, args.arg, args.out)) + module.node.call(module, args.entry, args.arg, args.out)) conf.cleanup() diff --git a/reactivetools/modules/base.py b/reactivetools/modules/base.py index f810f94..2ce3a34 100644 --- a/reactivetools/modules/base.py +++ b/reactivetools/modules/base.py @@ -37,7 +37,7 @@ def __init__(self, name, node, priority, deployed, nonce, attested): except: logging.error("Failed to create build dir for {}".format(name)) sys.exit(-1) - + """ ### Description ### @@ -264,21 +264,6 @@ async def cleanup(): pass - """ - ### Description ### - Coroutine. Call an entrypoint of the module - - ### Parameters ### - self: Module object - entry (str): name of the entry point to call - arg (bytes): argument to pass as a byte array (can be None) - - ### Returns ### - """ - async def call(self, entry, arg=None): - await self.node.call(self, entry, arg) - - """ ### Description ### Coroutine. Get the ID of the request passed as parameter From e2e3a9f6bab12b60edfcd2c410496100d0413c8e Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Tue, 5 Oct 2021 19:46:02 +0200 Subject: [PATCH 47/81] update fosdem-21 example --- examples/fosdem-21/complete.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/fosdem-21/complete.json b/examples/fosdem-21/complete.json index 73abdca..7201ae4 100644 --- a/examples/fosdem-21/complete.json +++ b/examples/fosdem-21/complete.json @@ -53,7 +53,7 @@ "binary": "", "id": 1, "symtab": "", - "key": "193b4d4331b20316ba03e867002e94aa", + "key": "3ce4fee780e5a4d8580a741466517020", "nonce": 0 } ], From 6fcea4732b14d1b93be14b28c6ea180750bfbcf1 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Wed, 13 Oct 2021 16:54:18 +0200 Subject: [PATCH 48/81] upgrade rust-sgx-gen version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 22ddb81..8325c62 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ 'aiofile==3.3.3', 'pycryptodome==3.10.1', 'reactive-net==0.2', - 'rust-sgx-gen==0.1.4', + 'rust-sgx-gen==0.1.5', 'PyYAML==5.4.1' ], classifiers=[ From 56bf007f6fbad50b3616326116b244cc59171032 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Thu, 14 Oct 2021 14:48:59 +0200 Subject: [PATCH 49/81] upgrade rust-sgx-gen version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 8325c62..eeaeeb1 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ 'aiofile==3.3.3', 'pycryptodome==3.10.1', 'reactive-net==0.2', - 'rust-sgx-gen==0.1.5', + 'rust-sgx-gen==0.1.6', 'PyYAML==5.4.1' ], classifiers=[ From b5e8d3ef6acfdec60f32221eefd3b2e7676cf641 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Fri, 15 Oct 2021 13:54:30 +0200 Subject: [PATCH 50/81] Sancus: update linking of SMs according to the new sancus-compiler --- reactivetools/modules/sancus.py | 36 ++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/reactivetools/modules/sancus.py b/reactivetools/modules/sancus.py index 816568e..96a09a7 100644 --- a/reactivetools/modules/sancus.py +++ b/reactivetools/modules/sancus.py @@ -4,6 +4,7 @@ from enum import Enum from collections import namedtuple import json +import yaml from elftools.elf import elffile @@ -202,15 +203,44 @@ async def __build(self): binary = tools.create_tmp(suffix='.elf', dir=self.name) ldflags = config.ldflags + self.ldflags - # setting connections (if not specified in JSON file) - if not any("--num-connections" in flag for flag in ldflags): - ldflags.append("--num-connections {}".format(self.connections)) + # prepare the config file for this SM + ldflags = await self.__prepare_config_file(ldflags) await tools.run_async(config.ld, *ldflags, '-o', binary, *objects.values()) return binary + async def __prepare_config_file(self, ldflags): + # try to get sm config file if present in self.ldflags + # otherwise, create empty file + try: + # fetch the name + flag = next(filter(lambda x : "--sm-config-file" in x, ldflags)) + config_file = flag.split()[1] + + # open the file and parse it + with open(config_file, "r") as f: + config = yaml.load(f) + except: + # we create a new file with empty config + config_file = tools.create_tmp(suffix='.yaml', dir=self.name) + config = { self.name : [] } + + # remove old flag if present, append new one + ldflags = list(filter(lambda x : "--sm-config-file" not in x, ldflags)) + ldflags.append("--sm-config-file {}".format(config_file)) + + # override num_connections if the value is present and is < self.connections + if "num_connections" not in config or config["num_connections"] < self.connections: + config[self.name].append({"num_connections": self.connections}) + + # save changes + with open(config_file, "w") as f: + yaml.dump(config, f) + + return ldflags + async def _calculate_key(self): try: From 4a9f8e4ab3ab90c533f984480af424af1d2abbcb Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Fri, 15 Oct 2021 14:20:57 +0200 Subject: [PATCH 51/81] Update examples and CI workflows --- .github/workflows/ci.yml | 47 +- .github/workflows/fosdem.yml | 43 -- .gitignore | 1 - examples/button-led-native/README.md | 45 ++ .../button_driver/Cargo.toml | 0 .../button_driver/src/lib.rs | 0 .../db/Cargo.toml | 0 .../db/src/lib.rs | 0 examples/button-led-native/deploy.sh | 26 + .../descriptor-local.json} | 44 +- .../descriptor.json} | 70 +- examples/button-led-native/docker-compose.yml | 60 ++ .../gateway}/Cargo.toml | 2 +- .../gateway}/src/lib.rs | 0 examples/button-led-native/init-webserver.sh | 11 + .../led_driver/Cargo.toml | 0 .../led_driver/src/lib.rs | 0 .../manager.yaml | 4 +- .../button-led-native/webserver/Cargo.toml | 11 + .../button-led-native/webserver/src/lib.rs | 158 +++++ examples/button-led/README.md | 44 ++ .../{fosdem-21 => button-led}/button_driver.c | 0 examples/button-led/cred/ias_root_ca.pem | 31 + examples/button-led/cred/manager.sig | Bin 0 -> 1808 bytes examples/button-led/cred/manager_privkey.pem | 27 + examples/button-led/cred/manager_pubkey.pem | 9 + examples/button-led/cred/modules_privkey.pem | 27 + examples/button-led/cred/modules_pubkey.pem | 9 + examples/button-led/cred/settings.json | 16 + examples/button-led/cred/vendor_key.pem | 39 ++ .../controller => button-led/db}/Cargo.toml | 2 +- examples/button-led/db/src/lib.rs | 20 + examples/button-led/deploy.sh | 38 + .../descriptor-local.json} | 67 +- examples/button-led/descriptor.json | 137 ++++ examples/button-led/docker-compose.yml | 75 ++ examples/button-led/gateway/Makefile | 12 + .../button-led/gateway/authentic_execution.c | 656 ++++++++++++++++++ examples/button-led/gateway/controller.c | 81 +++ .../gateway/include/authentic_execution.h | 32 + .../button-led/gateway/include/controller.h | 24 + .../gateway/include/pta_attestation.h | 19 + .../button-led/gateway/include/spongent.h | 141 ++++ examples/button-led/gateway/spongent.c | 530 ++++++++++++++ examples/button-led/gateway/sub.mk | 7 + .../gateway/user_ta_header_defines.h | 21 + examples/button-led/init-webserver.sh | 11 + examples/button-led/init_sgx.yaml | 3 + examples/button-led/manager.yaml | 3 + examples/button-led/run_attester.py | 37 + examples/button-led/webserver/Cargo.toml | 11 + examples/button-led/webserver/src/lib.rs | 158 +++++ examples/fosdem-21/webserver/src/lib.rs | 73 -- 53 files changed, 2669 insertions(+), 213 deletions(-) delete mode 100644 .github/workflows/fosdem.yml create mode 100644 examples/button-led-native/README.md rename examples/{fosdem-21 => button-led-native}/button_driver/Cargo.toml (100%) rename examples/{fosdem-21 => button-led-native}/button_driver/src/lib.rs (100%) rename examples/{fosdem-21 => button-led-native}/db/Cargo.toml (100%) rename examples/{fosdem-21 => button-led-native}/db/src/lib.rs (100%) create mode 100644 examples/button-led-native/deploy.sh rename examples/{fosdem-21/native.json => button-led-native/descriptor-local.json} (69%) rename examples/{fosdem-21/sgx.json => button-led-native/descriptor.json} (53%) create mode 100644 examples/button-led-native/docker-compose.yml rename examples/{fosdem-21/webserver => button-led-native/gateway}/Cargo.toml (91%) rename examples/{fosdem-21/controller => button-led-native/gateway}/src/lib.rs (100%) create mode 100644 examples/button-led-native/init-webserver.sh rename examples/{fosdem-21 => button-led-native}/led_driver/Cargo.toml (100%) rename examples/{fosdem-21 => button-led-native}/led_driver/src/lib.rs (100%) rename examples/{fosdem-21 => button-led-native}/manager.yaml (78%) create mode 100644 examples/button-led-native/webserver/Cargo.toml create mode 100644 examples/button-led-native/webserver/src/lib.rs create mode 100644 examples/button-led/README.md rename examples/{fosdem-21 => button-led}/button_driver.c (100%) create mode 100644 examples/button-led/cred/ias_root_ca.pem create mode 100644 examples/button-led/cred/manager.sig create mode 100644 examples/button-led/cred/manager_privkey.pem create mode 100644 examples/button-led/cred/manager_pubkey.pem create mode 100644 examples/button-led/cred/modules_privkey.pem create mode 100644 examples/button-led/cred/modules_pubkey.pem create mode 100644 examples/button-led/cred/settings.json create mode 100644 examples/button-led/cred/vendor_key.pem rename examples/{fosdem-21/controller => button-led/db}/Cargo.toml (91%) create mode 100644 examples/button-led/db/src/lib.rs create mode 100644 examples/button-led/deploy.sh rename examples/{fosdem-21/complete.json => button-led/descriptor-local.json} (61%) create mode 100644 examples/button-led/descriptor.json create mode 100644 examples/button-led/docker-compose.yml create mode 100644 examples/button-led/gateway/Makefile create mode 100644 examples/button-led/gateway/authentic_execution.c create mode 100644 examples/button-led/gateway/controller.c create mode 100644 examples/button-led/gateway/include/authentic_execution.h create mode 100644 examples/button-led/gateway/include/controller.h create mode 100644 examples/button-led/gateway/include/pta_attestation.h create mode 100644 examples/button-led/gateway/include/spongent.h create mode 100644 examples/button-led/gateway/spongent.c create mode 100644 examples/button-led/gateway/sub.mk create mode 100644 examples/button-led/gateway/user_ta_header_defines.h create mode 100644 examples/button-led/init-webserver.sh create mode 100644 examples/button-led/init_sgx.yaml create mode 100644 examples/button-led/manager.yaml create mode 100644 examples/button-led/run_attester.py create mode 100644 examples/button-led/webserver/Cargo.toml create mode 100644 examples/button-led/webserver/src/lib.rs delete mode 100644 examples/fosdem-21/webserver/src/lib.rs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4f06434..9dd1cd4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,45 +29,56 @@ jobs: tag_names: true no_push: true - - name: Test + name: Test build + run: | + shopt -s expand_aliases + alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/button-led:/usr/src/app/ -v /usr/local/cargo/git:/usr/local/cargo/git -v /usr/local/cargo/registry:/usr/local/cargo/registry ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" + REACTIVE_TOOLS --verbose build descriptor-local.json + - + name: Test deploy run: | docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false --name em-5000 gianlu33/reactive-event-manager:latest docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false --name em-6000 gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e EM_PORT=7000 -e EM_SGX=false --name em-7000 gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e EM_PORT=8000 -e EM_SGX=false --name em-8000 gianlu33/reactive-event-manager:latest shopt -s expand_aliases - alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/fosdem-21:/usr/src/app/ ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" - REACTIVE_TOOLS --verbose deploy native.json --result res.json + alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/button-led-native:/usr/src/app/ -v /usr/local/cargo/git:/usr/local/cargo/git -v /usr/local/cargo/registry:/usr/local/cargo/registry ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" + REACTIVE_TOOLS --verbose deploy descriptor-local.json --result res.json REACTIVE_TOOLS --verbose attest res.json REACTIVE_TOOLS --verbose connect res.json - REACTIVE_TOOLS --verbose output res.json --connection init-server --arg beef + REACTIVE_TOOLS --verbose request res.json --connection init-server --arg beef --out cert.der sleep 2 - [ $(curl localhost:48879) -eq 0 ] + [ $(curl -k https://localhost:48879) -eq 0 ] REACTIVE_TOOLS --verbose output res.json --connection trigger-btn sleep 2 - [ $(curl localhost:48879) -eq 1 ] + [ $(curl -k https://localhost:48879) -eq 1 ] REACTIVE_TOOLS --verbose output res.json --connection trigger-btn sleep 2 - [ $(curl localhost:48879) -eq 2 ] - docker stop em-5000 em-6000 + [ $(curl -k https://localhost:48879) -eq 2 ] + docker stop em-5000 em-6000 em-7000 em-8000 - - name: Test AttMan + name: Test Attestation Manager run: | - docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false gianlu33/reactive-event-manager:latest - docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false gianlu33/reactive-event-manager:latest - docker run --rm --network=host --detach -e AM_PORT=1234 gianlu33/attestation-manager:native + docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false --name em-5000 gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false --name em-6000 gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e EM_PORT=7000 -e EM_SGX=false --name em-7000 gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e EM_PORT=8000 -e EM_SGX=false --name em-8000 gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e AM_PORT=1234 --name manager gianlu33/attestation-manager:native shopt -s expand_aliases - alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/fosdem-21:/usr/src/app/ ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" - REACTIVE_TOOLS --verbose --manager deploy native.json --result res.json + alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/button-led-native:/usr/src/app/ -v /usr/local/cargo/git:/usr/local/cargo/git -v /usr/local/cargo/registry:/usr/local/cargo/registry ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" + REACTIVE_TOOLS --verbose --manager deploy descriptor-local.json --result res.json REACTIVE_TOOLS --verbose --manager attest res.json REACTIVE_TOOLS --verbose --manager connect res.json - REACTIVE_TOOLS --verbose --manager output res.json --connection init-server --arg beef + REACTIVE_TOOLS --verbose request res.json --connection init-server --arg beef --out cert.der sleep 2 - [ $(curl localhost:48879) -eq 0 ] + [ $(curl -k https://localhost:48879) -eq 0 ] REACTIVE_TOOLS --verbose output res.json --connection trigger-btn sleep 2 - [ $(curl localhost:48879) -eq 1 ] + [ $(curl -k https://localhost:48879) -eq 1 ] REACTIVE_TOOLS --verbose output res.json --connection trigger-btn sleep 2 - [ $(curl localhost:48879) -eq 2 ] + [ $(curl -k https://localhost:48879) -eq 2 ] + docker stop em-5000 em-6000 em-7000 em-8000 manager - name: Push if: ${{ github.event_name != 'pull_request' }} diff --git a/.github/workflows/fosdem.yml b/.github/workflows/fosdem.yml deleted file mode 100644 index 19bef05..0000000 --- a/.github/workflows/fosdem.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: Fosdem -on: - schedule: - - cron: '0 0 2 */1 *' # Every month - workflow_dispatch: # Allow manual triggering - -env: - REPO: gianlu33/reactive-tools:fosdem - -jobs: - build-test-publish: - runs-on: ubuntu-latest - steps: - - - uses: actions/checkout@master - - - name: Login - run: docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build - run: docker build -f Dockerfile.fosdem -t ${{ env.REPO }} . - - - name: Test - run: | - docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false gianlu33/reactive-event-manager:fosdem - docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false gianlu33/reactive-event-manager:fosdem - shopt -s expand_aliases - alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/fosdem-21:/usr/src/app/ ${{ env.REPO }} reactive-tools" - REACTIVE_TOOLS --verbose deploy native.json --result res.json - REACTIVE_TOOLS --verbose output --config res.json --connection init-server --arg beef - sleep 2 - [ $(curl localhost:48879) -eq 0 ] - REACTIVE_TOOLS --verbose output --config res.json --connection trigger-btn - sleep 2 - [ $(curl localhost:48879) -eq 1 ] - REACTIVE_TOOLS --verbose output --config res.json --connection trigger-btn - sleep 2 - [ $(curl localhost:48879) -eq 2 ] - - - name: Push - run: | - docker push ${{ env.REPO }} - docker logout diff --git a/.gitignore b/.gitignore index 686c64f..046ff38 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,4 @@ __pycache__/ build dist -vendor_key.pem res.json diff --git a/examples/button-led-native/README.md b/examples/button-led-native/README.md new file mode 100644 index 0000000..e7e15e1 --- /dev/null +++ b/examples/button-led-native/README.md @@ -0,0 +1,45 @@ +# button-led-native + +This example is analogous to [button-led](../button-led), but all the modules run as normal Linux processes on your machine. + +- No TEE protections and no real I/O devices. +- Instead of having physical Sancus/SGX/Trustzone nodes, we use virtual `Native` nodes + +## Prerequisites + +You only need [Docker](https://docs.docker.com/get-docker/) and [docker-compose](https://docs.docker.com/compose/install/) to run this example. + +## Run the example + +```bash +# Deploy the system +docker-compose up + +# Wait until the "admin" container prints "Setup complete" +# The following commands should be launched from another terminal + +# Open a shell in the "admin" container +docker exec -it button-led-native_admin_1 bash + +# Initialize the web server and retrieve the self-signed certificate +# You can actually use a different port than "beef" if you want +reactive-tools request res.json --connection init-server --arg beef --out cert.der + +# Convert the retrieved certificate in PEM format +openssl x509 -inform der -in cert.der -out cert.pem + +# Try querying the web server to get the number of button presses (check the port) +curl --cacert cert.pem https://node-sgx:48879 # returns 0 + +# Simulate a button press +reactive-tools --verbose output res.json --connection trigger-btn + +# Query the web server again +curl --cacert cert.pem https://node-sgx:48879 # returns 1 + +### Cleanup ### +# Go back on the first terminal, press CTRL-C to stop the containers + +# Delete the network and containers +docker-compose down +``` diff --git a/examples/fosdem-21/button_driver/Cargo.toml b/examples/button-led-native/button_driver/Cargo.toml similarity index 100% rename from examples/fosdem-21/button_driver/Cargo.toml rename to examples/button-led-native/button_driver/Cargo.toml diff --git a/examples/fosdem-21/button_driver/src/lib.rs b/examples/button-led-native/button_driver/src/lib.rs similarity index 100% rename from examples/fosdem-21/button_driver/src/lib.rs rename to examples/button-led-native/button_driver/src/lib.rs diff --git a/examples/fosdem-21/db/Cargo.toml b/examples/button-led-native/db/Cargo.toml similarity index 100% rename from examples/fosdem-21/db/Cargo.toml rename to examples/button-led-native/db/Cargo.toml diff --git a/examples/fosdem-21/db/src/lib.rs b/examples/button-led-native/db/src/lib.rs similarity index 100% rename from examples/fosdem-21/db/src/lib.rs rename to examples/button-led-native/db/src/lib.rs diff --git a/examples/button-led-native/deploy.sh b/examples/button-led-native/deploy.sh new file mode 100644 index 0000000..c60102b --- /dev/null +++ b/examples/button-led-native/deploy.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +set -e + +# TODO: find a better way +echo "Waiting until all the EMs are ready.." +sleep 10 + +# deploy +echo "Deploying modules.." +reactive-tools --manager deploy descriptor.json --result res.json + +# TODO: is it really necessary? +echo "Waiting until all the modules are up and running.." +sleep 2 + +# attest +echo "Attesting modules.." +reactive-tools --manager attest res.json + +# connect +echo "Establishing connections.." +reactive-tools --manager connect res.json + +echo "Setup complete" +sleep 3600 diff --git a/examples/fosdem-21/native.json b/examples/button-led-native/descriptor-local.json similarity index 69% rename from examples/fosdem-21/native.json rename to examples/button-led-native/descriptor-local.json index 6573f17..78f2806 100644 --- a/examples/fosdem-21/native.json +++ b/examples/button-led-native/descriptor-local.json @@ -3,61 +3,73 @@ "nodes": [ { "type": "native", - "name": "node1", - "ip_address": "127.0.0.1", + "name": "node_sgx", + "ip_address": "localhost", "reactive_port": 5000 }, { "type": "native", - "name": "node2", - "ip_address": "127.0.0.1", + "name": "node_sancus_1", + "ip_address": "localhost", "reactive_port": 6000 + }, + { + "type": "native", + "name": "node_sancus_2", + "ip_address": "localhost", + "reactive_port": 7000 + }, + { + "type": "native", + "name": "node_trustzone", + "ip_address": "localhost", + "reactive_port": 8000, } ], "modules" : [ { "type": "native", "name": "webserver", - "node": "node1" + "node": "node_sgx" }, { "type": "native", "name": "db", - "node": "node1" + "node": "node_sgx" }, { "type": "native", - "name": "controller", - "node": "node1" + "name": "gateway", + "node": "node_trustzone" }, { "type": "native", - "name": "button_driver", - "node": "node2" + "name": "led_driver", + "node": "node_sancus_1" }, { "type": "native", - "name": "led_driver", - "node": "node2" + "name": "button_driver", + "node": "node_sancus_2" } ], "connections": [ { "from_module": "button_driver", "from_output": "button_pressed", - "to_module": "controller", + "to_module": "gateway", "to_input": "button_pressed", "encryption": "aes" }, { - "from_module": "controller", + "from_module": "gateway", "from_output": "toggle_led", "to_module": "led_driver", "to_input": "toggle_led", "encryption": "aes" }, { - "from_module": "controller", + "from_module": "gateway", "from_output": "increment_presses", "to_module": "db", "to_input": "increment_presses", @@ -74,7 +86,7 @@ "name": "init-server", "direct": true, "to_module": "webserver", - "to_input": "init", + "to_handler": "init_server", "encryption": "aes" }, { diff --git a/examples/fosdem-21/sgx.json b/examples/button-led-native/descriptor.json similarity index 53% rename from examples/fosdem-21/sgx.json rename to examples/button-led-native/descriptor.json index ef0b711..c4eb0a2 100644 --- a/examples/fosdem-21/sgx.json +++ b/examples/button-led-native/descriptor.json @@ -2,72 +2,74 @@ "manager": "manager.yaml", "nodes": [ { - "type": "sgx", - "name": "node1", - "ip_address": "127.0.0.1", + "type": "native", + "name": "node_sgx", + "ip_address": "node-sgx", "reactive_port": 5000 }, { - "type": "sgx", - "name": "node2", - "ip_address": "127.0.0.1", - "reactive_port": 6000 + "type": "native", + "name": "node_sancus_1", + "ip_address": "node-sancus-1", + "reactive_port": 5000 + }, + { + "type": "native", + "name": "node_sancus_2", + "ip_address": "node-sancus-2", + "reactive_port": 5000 + }, + { + "type": "native", + "name": "node_trustzone", + "ip_address": "node-trustzone", + "reactive_port": 5000, } ], "modules" : [ { - "type": "sgx", + "type": "native", "name": "webserver", - "node": "node1", - "vendor_key": "", - "ra_settings": "" + "node": "node_sgx" }, { - "type": "sgx", + "type": "native", "name": "db", - "node": "node1", - "vendor_key": "", - "ra_settings": "" + "node": "node_sgx" }, { - "type": "sgx", - "name": "controller", - "node": "node1", - "vendor_key": "", - "ra_settings": "" + "type": "native", + "name": "gateway", + "node": "node_trustzone" }, { - "type": "sgx", - "name": "button_driver", - "node": "node2", - "vendor_key": "", - "ra_settings": "" + "type": "native", + "name": "led_driver", + "node": "node_sancus_1" }, { - "type": "sgx", - "name": "led_driver", - "node": "node2", - "vendor_key": "", - "ra_settings": "" + "type": "native", + "name": "button_driver", + "node": "node_sancus_2" } ], "connections": [ { "from_module": "button_driver", "from_output": "button_pressed", - "to_module": "controller", + "to_module": "gateway", "to_input": "button_pressed", "encryption": "aes" }, { - "from_module": "controller", + "from_module": "gateway", "from_output": "toggle_led", "to_module": "led_driver", "to_input": "toggle_led", "encryption": "aes" }, { - "from_module": "controller", + "from_module": "gateway", "from_output": "increment_presses", "to_module": "db", "to_input": "increment_presses", @@ -84,7 +86,7 @@ "name": "init-server", "direct": true, "to_module": "webserver", - "to_input": "init", + "to_handler": "init_server", "encryption": "aes" }, { diff --git a/examples/button-led-native/docker-compose.yml b/examples/button-led-native/docker-compose.yml new file mode 100644 index 0000000..4d08b79 --- /dev/null +++ b/examples/button-led-native/docker-compose.yml @@ -0,0 +1,60 @@ +version: "3.9" + +services: + node-sancus-1: + image: gianlu33/reactive-event-manager:latest + expose: + - "5000-5010" + environment: + - EM_PORT=5000 + - EM_LOG=info + - EM_THREADS=16 + - EM_PERIODIC_TASKS=false + - EM_SGX=false + node-sancus-2: + image: gianlu33/reactive-event-manager:latest + expose: + - "5000-5010" + environment: + - EM_PORT=5000 + - EM_LOG=info + - EM_THREADS=16 + - EM_PERIODIC_TASKS=false + - EM_SGX=false + node-sgx: + image: gianlu33/reactive-event-manager:latest + expose: + - "5000-5010" + environment: + - EM_PORT=5000 + - EM_LOG=info + - EM_THREADS=16 + - EM_PERIODIC_TASKS=false + - EM_SGX=false + node-trustzone: + image: gianlu33/reactive-event-manager:latest + expose: + - "5000-5010" + environment: + - EM_PORT=5000 + - EM_LOG=info + - EM_THREADS=16 + - EM_PERIODIC_TASKS=false + - EM_SGX=false + manager: + image: gianlu33/attestation-manager:native + expose: + - "1234" + admin: + image: gianlu33/reactive-tools:latest + command: ./deploy.sh + depends_on: + - node-sancus-1 + - node-sancus-2 + - node-sgx + - node-trustzone + - manager + volumes: + - ".:/usr/src/app" + - "/usr/local/cargo/git:/usr/local/cargo/git" # for caching builds + - "/usr/local/cargo/registry:/usr/local/cargo/registry" # same diff --git a/examples/fosdem-21/webserver/Cargo.toml b/examples/button-led-native/gateway/Cargo.toml similarity index 91% rename from examples/fosdem-21/webserver/Cargo.toml rename to examples/button-led-native/gateway/Cargo.toml index 68ea83f..25b84de 100644 --- a/examples/fosdem-21/webserver/Cargo.toml +++ b/examples/button-led-native/gateway/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "webserver" +name = "gateway" version = "0.1.0" authors = ["Gianluca Scopelliti "] edition = "2018" diff --git a/examples/fosdem-21/controller/src/lib.rs b/examples/button-led-native/gateway/src/lib.rs similarity index 100% rename from examples/fosdem-21/controller/src/lib.rs rename to examples/button-led-native/gateway/src/lib.rs diff --git a/examples/button-led-native/init-webserver.sh b/examples/button-led-native/init-webserver.sh new file mode 100644 index 0000000..cb3f9b9 --- /dev/null +++ b/examples/button-led-native/init-webserver.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e + +echo "Initializing web server to listen to port 48879" +reactive-tools request res.json --connection init-server --arg beef --out cert.der > /dev/null 2>&1 + +echo "Converting certificate from DER to PEM" +openssl x509 -inform der -in cert.der -out cert.pem > /dev/null 2>&1 + +echo "All done! You can query the server with 'curl --cacert cert.pem '" diff --git a/examples/fosdem-21/led_driver/Cargo.toml b/examples/button-led-native/led_driver/Cargo.toml similarity index 100% rename from examples/fosdem-21/led_driver/Cargo.toml rename to examples/button-led-native/led_driver/Cargo.toml diff --git a/examples/fosdem-21/led_driver/src/lib.rs b/examples/button-led-native/led_driver/src/lib.rs similarity index 100% rename from examples/fosdem-21/led_driver/src/lib.rs rename to examples/button-led-native/led_driver/src/lib.rs diff --git a/examples/fosdem-21/manager.yaml b/examples/button-led-native/manager.yaml similarity index 78% rename from examples/fosdem-21/manager.yaml rename to examples/button-led-native/manager.yaml index 2f70fa8..6918724 100644 --- a/examples/fosdem-21/manager.yaml +++ b/examples/button-led-native/manager.yaml @@ -1,3 +1,3 @@ -host: localhost -port: 1234 +host: manager key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] +port: 1234 diff --git a/examples/button-led-native/webserver/Cargo.toml b/examples/button-led-native/webserver/Cargo.toml new file mode 100644 index 0000000..b7fe555 --- /dev/null +++ b/examples/button-led-native/webserver/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "webserver" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +mbedtls = { git = "https://github.com/gianlu33/rust-mbedtls.git", branch="psk", features = ["rdrand"] } +anyhow = "1.0.44" diff --git a/examples/button-led-native/webserver/src/lib.rs b/examples/button-led-native/webserver/src/lib.rs new file mode 100644 index 0000000..bc73d2f --- /dev/null +++ b/examples/button-led-native/webserver/src/lib.rs @@ -0,0 +1,158 @@ +use std::thread; +use std::sync::Mutex; +use std::net::{TcpListener, TcpStream}; +use std::io::{Read, Write}; + +use mbedtls::pk::Pk; +use mbedtls::ssl::config::{Endpoint, Preset, Transport}; +use mbedtls::ssl::{Config, Context}; +use mbedtls::x509::{Certificate, Time}; +use mbedtls::x509::certificate::Builder; +use mbedtls::alloc::List as CertList; +use mbedtls::hash::Type as MdType; +use mbedtls::rng::Rdrand as Rng; +use std::sync::Arc; + +lazy_static! { + static ref INIT: Mutex = { + Mutex::new(false) + }; + + static ref PRIVATE_KEY: Mutex = { + Mutex::new(Pk::generate_rsa(&mut Rng, 2048, 65537).expect("Failed to generate key")) + }; + + static ref CERTIFICATE: Mutex>> = { + Mutex::new(None) + }; +} + +static HOST_NAME: &str = "node-sgx"; + +//@ sm_request(get_presses) + +//@ sm_handler +pub fn init_server(data : &[u8]) -> Vec { + let mut is_init = INIT.lock().unwrap(); + + if *is_init { + error!("init input was already called"); + return vec!(); + } + + if data.len() != 2 { + error!("wrong data received (expecting 2 bytes for port)"); + return vec!(); + } + + let port = authentic_execution::data_to_u16(data); + let host = format!("0.0.0.0:{}", port); + + let listener = match TcpListener::bind(host) { + Ok(l) => l, + Err(e) => { + error!(&format!("Fatal error: {}", e)); + return vec!(); + } + }; + + let (key, cert) = match init_credentials() { + Ok((k, c)) => (k,c), + Err(e) => { + error!(&format!("Error with credentials: {}", e)); + return vec!(); + } + }; + + info!(&format!("Web server listening on 0.0.0.0:{}", port)); + thread::spawn(move || { start_server(listener, key, cert) }); + *is_init = true; + + let cert = CERTIFICATE.lock().unwrap(); + cert.as_ref().unwrap().clone() +} + +fn start_server(listener : TcpListener, key : Pk, cert : CertList) { + let rng = Arc::new(Rng); + + let mut config = Config::new(Endpoint::Server, Transport::Stream, Preset::Default); + config.set_rng(rng); + + if let Err(_) = config.push_cert(Arc::new(cert), Arc::new(key)) { + error!("Could not push cert in config"); + return; + } + + let rc_config = Arc::new(config); + + for stream in listener.incoming() { + if let Ok(s) = stream { + if let Err(e) = handle_client(s, rc_config.clone()) { + warning!(&format!("Client error: {}", e)); + } + } + } +} + +fn init_credentials() -> anyhow::Result<(Pk, CertList)> { + let mut buf_key = [0u8; 8192]; + let mut key = PRIVATE_KEY.lock().unwrap(); + key.write_private_pem(&mut buf_key)?.unwrap(); + + let key = Pk::from_private_key(&buf_key, None)?; + let key1 = Pk::from_private_key(&buf_key, None)?; + let key2 = Pk::from_private_key(&buf_key, None)?; + + let cert_bytes = generate_cert(key1, key2)?; + let cert = Certificate::from_pem_multiple(&cert_bytes)?; + + let mut certificate = CERTIFICATE.lock().unwrap(); + certificate.replace(cert_bytes); + + Ok((key, cert)) +} + +fn generate_cert(mut key1 : Pk, mut key2 : Pk) -> anyhow::Result> { + let mut builder = Builder::new(); + let mut buf_cert = [0u8; 8192]; + + let common_name = format!("CN={}\0", HOST_NAME); + + let cert = builder + .subject_key(&mut key1) + .subject_with_nul(&common_name)? + .issuer_key(&mut key2) + .issuer_with_nul(&common_name)? + .validity( + Time::new(2020, 1, 1, 0, 0, 0).unwrap(), + Time::new(2030, 12, 31, 23, 59, 59).unwrap(), + )? + .serial(&[5])? + .signature_hash(MdType::Sha256) + .write_pem(&mut buf_cert, &mut Rng)?.unwrap(); + + Ok(cert.to_vec()) +} + +fn handle_client(conn : TcpStream, config : Arc) -> anyhow::Result<()> { + let mut ctx = Context::new(config); + ctx.establish(conn, None)?; + + let mut buffer = [0; 1024]; + ctx.read(&mut buffer)?; + + let response = match get_presses(&[]) { + Ok(r) if r.len() == 4 => { + let num_presses = authentic_execution::data_to_u32(&r); + format!("HTTP/1.1 200 OK\r\n\r\n{}\n", num_presses) + }, + _ => { + "HTTP/1.1 500 Internal Server Error\r\n\r\n".to_string() + } + }; + + ctx.write(response.as_bytes())?; + ctx.flush()?; + + Ok(()) +} diff --git a/examples/button-led/README.md b/examples/button-led/README.md new file mode 100644 index 0000000..f00bb2e --- /dev/null +++ b/examples/button-led/README.md @@ -0,0 +1,44 @@ +# button-led + +[Video](https://drive.google.com/file/d/17507pl12mycp1ELxH8cLghydNJlxVawi/view?usp=sharing) + +## Prerequisites + +Check the main [README](../README.md) + +- [Simulated version](../button-led-native) (only Docker and docker-compose needed) + +## Run the example + +```bash +# Deploy the system +docker-compose up + +# Wait until the "admin" container prints "Setup complete" +# The following commands should be launched from another terminal + +# Open a shell in the "admin" container +docker exec -it button-led_admin_1 bash + +# Initialize the web server and retrieve the self-signed certificate +# You can actually use a different port than "beef" if you want +reactive-tools request res.json --connection init-server --arg beef --out cert.der + +# Convert the retrieved certificate in PEM format +openssl x509 -inform der -in cert.der -out cert.pem + +# Try querying the web server to get the number of button presses (check the port) +curl --cacert cert.pem https://node-sgx:48879 # returns 0 + +# Simulate a button press +reactive-tools --verbose output res.json --connection trigger-btn + +# Query the web server again +curl --cacert cert.pem https://node-sgx:48879 # returns 1 + +### Cleanup ### +# Go back on the first terminal, press CTRL-C to stop the containers + +# Delete the network and containers +docker-compose down +``` diff --git a/examples/fosdem-21/button_driver.c b/examples/button-led/button_driver.c similarity index 100% rename from examples/fosdem-21/button_driver.c rename to examples/button-led/button_driver.c diff --git a/examples/button-led/cred/ias_root_ca.pem b/examples/button-led/cred/ias_root_ca.pem new file mode 100644 index 0000000..948b4c0 --- /dev/null +++ b/examples/button-led/cred/ias_root_ca.pem @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFSzCCA7OgAwIBAgIJANEHdl0yo7CUMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNV +BAYTAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xhcmExGjAYBgNV +BAoMEUludGVsIENvcnBvcmF0aW9uMTAwLgYDVQQDDCdJbnRlbCBTR1ggQXR0ZXN0 +YXRpb24gUmVwb3J0IFNpZ25pbmcgQ0EwIBcNMTYxMTE0MTUzNzMxWhgPMjA0OTEy +MzEyMzU5NTlaMH4xCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwL +U2FudGEgQ2xhcmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMTAwLgYDVQQD +DCdJbnRlbCBTR1ggQXR0ZXN0YXRpb24gUmVwb3J0IFNpZ25pbmcgQ0EwggGiMA0G +CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCfPGR+tXc8u1EtJzLA10Feu1Wg+p7e +LmSRmeaCHbkQ1TF3Nwl3RmpqXkeGzNLd69QUnWovYyVSndEMyYc3sHecGgfinEeh +rgBJSEdsSJ9FpaFdesjsxqzGRa20PYdnnfWcCTvFoulpbFR4VBuXnnVLVzkUvlXT +L/TAnd8nIZk0zZkFJ7P5LtePvykkar7LcSQO85wtcQe0R1Raf/sQ6wYKaKmFgCGe +NpEJUmg4ktal4qgIAxk+QHUxQE42sxViN5mqglB0QJdUot/o9a/V/mMeH8KvOAiQ +byinkNndn+Bgk5sSV5DFgF0DffVqmVMblt5p3jPtImzBIH0QQrXJq39AT8cRwP5H +afuVeLHcDsRp6hol4P+ZFIhu8mmbI1u0hH3W/0C2BuYXB5PC+5izFFh/nP0lc2Lf +6rELO9LZdnOhpL1ExFOq9H/B8tPQ84T3Sgb4nAifDabNt/zu6MmCGo5U8lwEFtGM +RoOaX4AS+909x00lYnmtwsDVWv9vBiJCXRsCAwEAAaOByTCBxjBgBgNVHR8EWTBX +MFWgU6BRhk9odHRwOi8vdHJ1c3RlZHNlcnZpY2VzLmludGVsLmNvbS9jb250ZW50 +L0NSTC9TR1gvQXR0ZXN0YXRpb25SZXBvcnRTaWduaW5nQ0EuY3JsMB0GA1UdDgQW +BBR4Q3t2pn680K9+QjfrNXw7hwFRPDAfBgNVHSMEGDAWgBR4Q3t2pn680K9+Qjfr +NXw7hwFRPDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADANBgkq +hkiG9w0BAQsFAAOCAYEAeF8tYMXICvQqeXYQITkV2oLJsp6J4JAqJabHWxYJHGir +IEqucRiJSSx+HjIJEUVaj8E0QjEud6Y5lNmXlcjqRXaCPOqK0eGRz6hi+ripMtPZ +sFNaBwLQVV905SDjAzDzNIDnrcnXyB4gcDFCvwDFKKgLRjOB/WAqgscDUoGq5ZVi +zLUzTqiQPmULAQaB9c6Oti6snEFJiCQ67JLyW/E83/frzCmO5Ru6WjU4tmsmy8Ra +Ud4APK0wZTGtfPXU7w+IBdG5Ez0kE1qzxGQaL4gINJ1zMyleDnbuS8UicjJijvqA +152Sq049ESDz+1rRGc2NVEqh1KaGXmtXvqxXcTB+Ljy5Bw2ke0v8iGngFBPqCTVB +3op5KBG3RjbF6RRSzwzuWfL7QErNC8WEy5yDVARzTA5+xmBc388v9Dm21HGfcC8O +DD+gT9sSpssq0ascmvH49MOgjt1yoysLtdCtJW/9FZpoOypaHx0R+mJTLwPXVMrv +DaVzWh5aiEx+idkSGMnX +-----END CERTIFICATE----- diff --git a/examples/button-led/cred/manager.sig b/examples/button-led/cred/manager.sig new file mode 100644 index 0000000000000000000000000000000000000000..331c6d408fa3603218649afe81700f6e7d5097b9 GIT binary patch literal 1808 zcmb_bX*3&%7EX;sVo41xVpkeP$*5^-scl57=%8v%DAkrJEozxsN`}udMbG<|BF z;{^&xj)wD%K6D30S!bp7tw2pf*c*6!U{$r#Rx_m8?#u;`w=GA|=4_#X(a`jI59ZIo zer}6K$tX%@jAaOx!OA!zht}()Zg^)n~2=8J2*IKyp30m zHt+6ujM%`48YS^*b>004WNMT@kO{BYbcp|H<`g9EsYl~#; zQKae(PMkhYA4;hmxBx;OyainIEkg~7FXF1(yaIoh>YTOu!;hQj@y*w}7|NdQDGi;9 zp`4wgGqsyIUd-?m*iMQ)#q^DxY;OpCD-E^%AY#EB%k=)uKeSqNqT>B8k>}z%0Oi2gF&nSAlMP>Tzp%HlG zYPY`E_}F{!0^3xG`|0rr!^28nk@l+FDc6Z`)3NR{rRJSCCf2>M0DMI?cS&ZBD7pCK z?S9e+v)K;YRWZA~TUj$uy8N(d7%eD*qW~-s?%m;6*BtE4Dl1lVLTnHknkoU&DYf~c z2<4~~D1XxsKF3+dRp$pEP-q$$FF5_fTfU%SAyiDch8zf*+1@B;Uo5q^kAJcj=THEMWlCo^3Ib; zy%mJiopri_YzqxXWIcwIk!+T(_jB_tZ0Vt1A2TvEgapy+>dO##e1xkBp*a-hM%NOtb}2iRDl-ep1Ej2Zi+(&~j&4*43ff1!*n0hi`+4;412wjvIT zTWv7+eUWRD3AtUO%@jX{`rnhB43m~UqNwI2!Q`A-Y_pAF`c&&2G4|1^HgaO>0e<;s z*>KBf>8N{gArBSuLK4rt>9nM(^r|Hx&{f=g^-hkQ^T^i3=*0~FTM4PmmtvnxD?=)E zker>IudCYrN7^@MfWq`jw4-`fQl$hKZeY@WE{c5n3hpzscuyKP9MI{ofDOWNkxTW$ zsnx-(<;Bp7H}1}P!QY-4qn0wwD&6{-kT{U6r~YwSDGT%aKP^CXejeX@ZGL5;b@@nl zUW=)QNdLU6o>OH*ftEUYQ01iSq|RwulDIiF+nv^*LRj3<=C+=(Zch4?pKk0nK{B!# zP6MpO(_Bd2{(g+LU@pt<>4ABUdJeM7p-5EFYQBTF@y+6anb6ET?~X;za%u5=ITx?F z>&#l2^#s4+mrR#|Tr70$YFS-EdU;>v++o7^_wFI*^*4Fj*p3iUm$k^!cczUlZn)^h zEJz=l+5T-eM$qI|8mnIeeMaf@<-TJvu0A8J*8SSyqYNZo;@Nb0Nk_i0i%nLVG;EJs zk{>9^fYsd%T+)r4UA1?Mz6qj+ey)>c9=ox!4h||+$*x{4sxg>ZU#g9v^G+1Y$62Q2 tIR28`UlZ#n=kW8>FeTJu3wIXNpDJ@xw-60`hPSm&Mr1wE1hpAK{{j^zIadGx literal 0 HcmV?d00001 diff --git a/examples/button-led/cred/manager_privkey.pem b/examples/button-led/cred/manager_privkey.pem new file mode 100644 index 0000000..8805184 --- /dev/null +++ b/examples/button-led/cred/manager_privkey.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA088zei4LDLCtSpsPiBCn42Um5eNJ6IFbHo91S4qJChw4kAnD +MyptqN4nkRSYSuMz4c49awI0pbZlEAd9e1bYFp8Jw9iz/uhLeZxihcFRah8mgTvj +HmgieMrf7pqYIFkft5kLBlroTy5xeo/0ejksg6tiz005AWs1+OrXudxR+dZ0abVP +gN0jOQOuWQbFGfDUvb9w958EwfsPJdmB4Fk+eGj/zXMs56Fjdars110FPg8h31+A +PeFROSK+mgSbdhkwdDrjuYhvs/wzflWe6ZtnIfUsf8g10PXL/uBhtbqe18TBuRAC +bOa0cM9RBEaOi/cfOmTN5xmSPengv3Yi6d3dMwIDAQABAoIBAQCTeMqAoRo0Zbbi +IQA5Xk9mdgEVQqEs7xPAPWYPiI9NqMSBFSsBruLXFoY57zrxuStgZrZAkTKSxmGr +PWvSum6NoYGtCG6aZqZWL9oxAp5q4vFuPYIuo5aMv8QWXzDYJPV+YWJZtGXW66E7 +EovHpZMmwed0KnIsWLclbm1xDMNOzQtPoZoHLu2H7ftqujtCk2dNdMv/aK96YxvF +g4VyRYKQc794Php2pwejAelhQoao7lAd6mVgZTCuvhsKiso9D9b1TM/9o6t24A+I +CZsrJ2drjSm+ntmgJfjJVbH40GtpsW2FfxYyOPA116H1xvy1Upx9FNUqdHkRn5Zf +YAcgvCWRAoGBAPZJnj2dcBB2fCaw7Ij31IOLEB6ih+INGWTSlFgUNovc22OHlmet +wK7qnTeipzEsoYUvjrB3XkZdRmBmJ0PIcTfn3FIBXoFQ+C/KlVyoC9nbGWEqF7R5 +Lschj4qUnBXrBCH1U7js3A0yiBMuGK1zyZlHu6rOyxXdI8cPMV5rnb7HAoGBANwp +gqfe9HJmdIaWMjxrotTbUex1ZvF/cf8D+j+iT4fm4xnu9eaad+FExQpdRgmBCO8l +djKDV3dofDr3S9nFluSUj9IfpJQOo4aGCvK7FrxJPsxhJHg8v8EEU9FWLgHFX9Pe +R71S8HY3OKq/eXWH/A1iIX0iPSntiJ9JsrR8+bI1AoGAKX/gJRu5PVzpsI9RXAb+ +jSfKkI7sfJ+ebsm461qEkm6lnRDEvDWf6RlpYm2K5JNTqCCKV5vVi9+9sxKjfR1y +TmxISJ0ocnvVRiBJqLI8RPpRPXkdQ3DD/BPgnwZJgrv2F07CS7/FmIeyPCEhUWDY +UHaw3ag4ujdoBuu9ct6JVxMCgYBYzfmgwwLw/ji0bPMYggYtO8Ygzf5XHSQbTDxt +3Ied9tjWBhh0Cwyd9gJQuuzcOosjA4ZYu7fVN3Ucx9F1pwjFbNNSW2ckPX9ibMEP +xb1W92h4QhrW0RI7xgYVI2DtX/LWYAup50GNPZsC7LcOXGqj71g4xE3Nkr2QGscV +nG+PnQKBgET+QaDrh0TS/knLIwwUUxb5sJMCeyoSQaqIadibnnmdVHIa8HKx9mRC ++ok6TEpHlN1L1e/uXRuH3GAw4CkXqef7/eiMBG2KJMnLfvCVjayX9JYWX7fiqQtF +mOk1we+jBlSOFZJtSaay26YveUdazMrAZA+uCnLlmdHmF0LJOGoE +-----END RSA PRIVATE KEY----- diff --git a/examples/button-led/cred/manager_pubkey.pem b/examples/button-led/cred/manager_pubkey.pem new file mode 100644 index 0000000..fbc21b7 --- /dev/null +++ b/examples/button-led/cred/manager_pubkey.pem @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA088zei4LDLCtSpsPiBCn +42Um5eNJ6IFbHo91S4qJChw4kAnDMyptqN4nkRSYSuMz4c49awI0pbZlEAd9e1bY +Fp8Jw9iz/uhLeZxihcFRah8mgTvjHmgieMrf7pqYIFkft5kLBlroTy5xeo/0ejks +g6tiz005AWs1+OrXudxR+dZ0abVPgN0jOQOuWQbFGfDUvb9w958EwfsPJdmB4Fk+ +eGj/zXMs56Fjdars110FPg8h31+APeFROSK+mgSbdhkwdDrjuYhvs/wzflWe6Ztn +IfUsf8g10PXL/uBhtbqe18TBuRACbOa0cM9RBEaOi/cfOmTN5xmSPengv3Yi6d3d +MwIDAQAB +-----END PUBLIC KEY----- diff --git a/examples/button-led/cred/modules_privkey.pem b/examples/button-led/cred/modules_privkey.pem new file mode 100644 index 0000000..60acd44 --- /dev/null +++ b/examples/button-led/cred/modules_privkey.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA24fMUXKgPwNDJHTS9KCYoXGv5n/loH8iGpjWcbjg8yAhnY3x +LNQnIVVEpptOycm7pkTIzxSFaultTl0rStN8VouH9iLZFc2vZlpFSJ7HFZ/nHUr7 +MFnqKM9/MyoIWWjP9QyrCV+HXRPuRfJKpFQEzJcqUlpEjghCVAw4lTfhr34r2Hkn +Ckdz+khPdu4WMHn13imH6GZX64Y7oobEhM37ValdNoLA4jM8RPwAtidCecmUPY7A +k4FiU2rCkK2AFnWaiM+AG5avATT0O04EMRQ3X8vLDfxLHg/RnEunf+jvFW6OlzQr +bOwc6flEBWQi/JH+3Dnoo+Psxf/nO4y5ETsT+wIDAQABAoIBAQCzxqiOhoUuNRi1 +8SmUhTOY+kXnSBOe9J3UFBeA97rXvxdoNAYuBOqqhG581bCW1Spjhe7AjniXzeLi +iq/aTgiDwy4rZexKy6747bHRP52fWtxkA7Riqy90DkCHgMNnnMq4TZB/U4jBs4Gs +LDfuDJQFi0FwQVXkzmSq+XsYz7N1ByTPksSRsoZswwtVKMKfAzmTOEAQSGPD2gqt +gCUu7XDQFCnLoEpl1PZnPneNNF+jMjCAonjKa5oHWwST2memo/RMzWUtGrd/j6sR +mMfpkBRyICN0wArgVFpzeGgGrOAS66IwsTTMjGy/Lyn9MW+plraqjG3LH8rvO9vx +JrEyZGkJAoGBAO3WS9Vc3t4WXiHsIpdQczrkNsTdVf4IPbx2sdl+UdH70wMFwmM3 +/zbbCa1HvrUICr8AxTwpNMT9Xn+uSpWl04ximqn5SvZrQD/QbCkClCuNER7mHkG1 +pdrRhDoJEwGsowr830g4Icwqt6gCK0gzAzv2u/y8BT467v20nIRPtBHdAoGBAOxL +m6v9bKsD4YPh8SVmosXNVePmq+oKSwINVVPRECMV4SljyPdOJ7uJEkHSdE0+EX0U +XJovmRlcTRXp4BZQY810hrB8pjRk3gLOWynyWJRPc6nu9sB1dDYDpbrniBoCd0yw +dmANUooy1oviMo8XqNUylq5LRzcyvwGNrhZ2IBu3AoGAMPLZyJ/EfpC77t9afynf +jU9KtlmXSSEJE7CaCdklncHmO8kDqMftjqyl4TPS3A87pvPRpAAXDDPZLw3/66yl +TU895Z2Y//4yyu9qU0ZkmFIAJAvYTk3ERLS6MfeMIdwV8jz49zQWQJ7KDZnkrodR +MxYkum835QbcCPsS+2gr90ECgYAe6BTIfjFEfRF2KotcFPydWqotUPKTfh0pe4z5 +lZLCxA3bWA3lKvfPc7JLobdMkx2+endSQ3+G7ae3ggupX4JuURt84hDrMXZIb61E +40nqvCmoxHTJ35L/raJzu+z1WfU4tqwFDDkLknK1gTSTush+ektzKK177stE7L8k +ePbiKQKBgF1vW3q8FVg8HlHLOOc3wquoxiVB7X5h2gP0i5+VcPHvKQbGDcDm9eRu +xgc+mW48hNlURZm+ROUxUE8tSxsMx0eL5sykkkvu5Qf+mrP8MLV5IBAhJUJBas92 +j1xkXrNCGk3hj109/O6hJK9J6+afXC4p6tiOYFz2SaJI7+m6xtBa +-----END RSA PRIVATE KEY----- diff --git a/examples/button-led/cred/modules_pubkey.pem b/examples/button-led/cred/modules_pubkey.pem new file mode 100644 index 0000000..70af8dd --- /dev/null +++ b/examples/button-led/cred/modules_pubkey.pem @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA24fMUXKgPwNDJHTS9KCY +oXGv5n/loH8iGpjWcbjg8yAhnY3xLNQnIVVEpptOycm7pkTIzxSFaultTl0rStN8 +VouH9iLZFc2vZlpFSJ7HFZ/nHUr7MFnqKM9/MyoIWWjP9QyrCV+HXRPuRfJKpFQE +zJcqUlpEjghCVAw4lTfhr34r2HknCkdz+khPdu4WMHn13imH6GZX64Y7oobEhM37 +ValdNoLA4jM8RPwAtidCecmUPY7Ak4FiU2rCkK2AFnWaiM+AG5avATT0O04EMRQ3 +X8vLDfxLHg/RnEunf+jvFW6OlzQrbOwc6flEBWQi/JH+3Dnoo+Psxf/nO4y5ETsT ++wIDAQAB +-----END PUBLIC KEY----- diff --git a/examples/button-led/cred/settings.json b/examples/button-led/cred/settings.json new file mode 100644 index 0000000..4237cd3 --- /dev/null +++ b/examples/button-led/cred/settings.json @@ -0,0 +1,16 @@ +{ + "debug": true, + "linkable": true, + "random_nonce": false, + "use_platform_service": false, + "spid": "", + "primary_subscription_key": "", + "secondary_subscription_key": "", + "quote_trust_options": [ + "GROUP_OUT_OF_DATE", + "CONFIGURATION_NEEDED" + ], + "sp_private_key_pem_path": "", + "ias_root_cert_pem_path": "", + "sigstruct_path": "" +} diff --git a/examples/button-led/cred/vendor_key.pem b/examples/button-led/cred/vendor_key.pem new file mode 100644 index 0000000..7f24e00 --- /dev/null +++ b/examples/button-led/cred/vendor_key.pem @@ -0,0 +1,39 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- diff --git a/examples/fosdem-21/controller/Cargo.toml b/examples/button-led/db/Cargo.toml similarity index 91% rename from examples/fosdem-21/controller/Cargo.toml rename to examples/button-led/db/Cargo.toml index e7c85f1..5b745dc 100644 --- a/examples/fosdem-21/controller/Cargo.toml +++ b/examples/button-led/db/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "controller" +name = "db" version = "0.1.0" authors = ["Gianluca Scopelliti "] edition = "2018" diff --git a/examples/button-led/db/src/lib.rs b/examples/button-led/db/src/lib.rs new file mode 100644 index 0000000..cb48643 --- /dev/null +++ b/examples/button-led/db/src/lib.rs @@ -0,0 +1,20 @@ +use std::sync::Mutex; + +lazy_static! { + static ref BUTTON_PRESSES: Mutex = { + Mutex::new(0) // initially zero + }; +} + +//@sm_input +pub fn increment_presses(_data : &[u8]) { + let mut occ = BUTTON_PRESSES.lock().unwrap(); + *occ += 1; +} + +//@ sm_handler +pub fn get_presses(_data : &[u8]) -> Vec { + info!("Retrieving number of button presses"); + let occ = BUTTON_PRESSES.lock().unwrap(); + (*occ).to_be_bytes().to_vec() +} diff --git a/examples/button-led/deploy.sh b/examples/button-led/deploy.sh new file mode 100644 index 0000000..da82eb7 --- /dev/null +++ b/examples/button-led/deploy.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +set -e + +# TODO: find a better way +echo "Waiting until all the EMs are ready.." +sleep 10 + +# Attesting the Attestation Manager +echo "Attesting AM.." +python3 run_attester.py manager.yaml + +# Initialize the Attestation Manager for the SGX attestation +echo "Initializing AM.." +attman-cli --config manager.yaml --request init-sgx --data init_sgx.yaml + +# deploy +echo "Deploying modules.." +reactive-tools --manager deploy descriptor.json --result res.json + +# TODO: is it really necessary? +echo "Waiting until all the modules are up and running.." +sleep 2 + +# attest +echo "Attesting modules.." +reactive-tools --manager attest res.json + +# connect +echo "Establishing connections.." +reactive-tools --manager connect res.json + +# init LED and attest pmodled +echo "Initializing and attesting MMIO LED.." +reactive-tools output res.json --connection init-led + +echo "Setup complete" +sleep 3600 diff --git a/examples/fosdem-21/complete.json b/examples/button-led/descriptor-local.json similarity index 61% rename from examples/fosdem-21/complete.json rename to examples/button-led/descriptor-local.json index 7201ae4..b181dd0 100644 --- a/examples/fosdem-21/complete.json +++ b/examples/button-led/descriptor-local.json @@ -4,16 +4,32 @@ { "type": "sgx", "name": "node_sgx", - "ip_address": "127.0.0.1", - "reactive_port": 5000 + "ip_address": "localhost", + "reactive_port": 5000, + "aesm_host": "aesm-client" }, { "type": "sancus", - "name": "node_sancus", - "ip_address": "127.0.0.1", + "name": "node_sancus_1", + "ip_address": "localhost", "vendor_id": 4660, "vendor_key": "0b7bf3ae40880a8be430d0da34fb76f0", "reactive_port": 6000 + }, + { + "type": "sancus", + "name": "node_sancus_2", + "ip_address": "localhost", + "vendor_id": 4660, + "vendor_key": "0b7bf3ae40880a8be430d0da34fb76f0", + "reactive_port": 6000 + }, + { + "type": "trustzone", + "name": "node_trustzone", + "ip_address": "localhost", + "reactive_port": 1236, + "node_key": "9a04aa182d039674708ce807ed914cd153cd9df7805e61742f0ae41294758dd3" } ], "modules" : [ @@ -21,33 +37,30 @@ "type": "sgx", "name": "webserver", "node": "node_sgx", - "vendor_key": "", - "ra_settings": "" + "vendor_key": "cred/vendor_key.pem", + "ra_settings": "cred/settings.json" }, { "type": "sgx", "name": "db", "node": "node_sgx", - "vendor_key": "", - "ra_settings": "" + "vendor_key": "cred/vendor_key.pem", + "ra_settings": "cred/settings.json" }, { - "type": "sgx", - "name": "controller", - "node": "node_sgx", - "vendor_key": "", - "ra_settings": "" - }, - { - "type": "sancus", - "name": "button_driver", - "files": ["button_driver.c"], - "node": "node_sancus" + "type": "trustzone", + "name": "gateway", + "node": "node_trustzone", + "files_dir": ".", + "id": 1, + "uuid": 330315078004237493521607747927864613423, + "inputs": {"button_pressed": 0}, + "outputs": {"toggle_led": 1 , "increment_presses": 2} }, { "type": "sancus", "name": "led_driver", - "node": "node_sancus", + "node": "node_sancus_1", "deployed": true, "files": [], "binary": "", @@ -55,25 +68,31 @@ "symtab": "", "key": "3ce4fee780e5a4d8580a741466517020", "nonce": 0 + }, + { + "type": "sancus", + "name": "button_driver", + "node": "node_sancus_2", + "files": ["button_driver.c"] } ], "connections": [ { "from_module": "button_driver", "from_output": "button_pressed", - "to_module": "controller", + "to_module": "gateway", "to_input": "button_pressed", "encryption": "spongent" }, { - "from_module": "controller", + "from_module": "gateway", "from_output": "toggle_led", "to_module": "led_driver", "to_input": 1, "encryption": "spongent" }, { - "from_module": "controller", + "from_module": "gateway", "from_output": "increment_presses", "to_module": "db", "to_input": "increment_presses", @@ -90,7 +109,7 @@ "name": "init-server", "direct": true, "to_module": "webserver", - "to_input": "init", + "to_handler": "init_server", "encryption": "aes" }, { diff --git a/examples/button-led/descriptor.json b/examples/button-led/descriptor.json new file mode 100644 index 0000000..6527e06 --- /dev/null +++ b/examples/button-led/descriptor.json @@ -0,0 +1,137 @@ +{ + "manager": "manager.yaml", + "nodes": [ + { + "type": "sgx", + "name": "node_sgx", + "ip_address": "node-sgx", + "reactive_port": 5000, + "aesm_host": "aesm-client" + }, + { + "type": "sancus", + "name": "node_sancus_1", + "ip_address": "node-sancus-1", + "vendor_id": 4660, + "vendor_key": "0b7bf3ae40880a8be430d0da34fb76f0", + "reactive_port": 6000 + }, + { + "type": "sancus", + "name": "node_sancus_2", + "ip_address": "node-sancus-2", + "vendor_id": 4660, + "vendor_key": "0b7bf3ae40880a8be430d0da34fb76f0", + "reactive_port": 6000 + }, + { + "type": "trustzone", + "name": "node_trustzone", + "ip_address": "node-trustzone", + "reactive_port": 1236, + "node_key": "9a04aa182d039674708ce807ed914cd153cd9df7805e61742f0ae41294758dd3" + } + ], + "modules" : [ + { + "type": "sgx", + "name": "webserver", + "node": "node_sgx", + "vendor_key": "cred/vendor_key.pem", + "ra_settings": "cred/settings.json" + }, + { + "type": "sgx", + "name": "db", + "node": "node_sgx", + "vendor_key": "cred/vendor_key.pem", + "ra_settings": "cred/settings.json" + }, + { + "type": "trustzone", + "name": "gateway", + "node": "node_trustzone", + "files_dir": ".", + "id": 1, + "uuid": 330315078004237493521607747927864613423, + "inputs": {"button_pressed": 0}, + "outputs": {"toggle_led": 1 , "increment_presses": 2} + }, + { + "type": "sancus", + "name": "led_driver", + "node": "node_sancus_1", + "deployed": true, + "files": [], + "binary": "", + "id": 1, + "symtab": "", + "key": "3ce4fee780e5a4d8580a741466517020", + "nonce": 0 + }, + { + "type": "sancus", + "name": "button_driver", + "node": "node_sancus_2", + "files": ["button_driver.c"] + } + ], + "connections": [ + { + "from_module": "button_driver", + "from_output": "button_pressed", + "to_module": "gateway", + "to_input": "button_pressed", + "encryption": "spongent" + }, + { + "from_module": "gateway", + "from_output": "toggle_led", + "to_module": "led_driver", + "to_input": 1, + "encryption": "spongent" + }, + { + "from_module": "gateway", + "from_output": "increment_presses", + "to_module": "db", + "to_input": "increment_presses", + "encryption": "aes" + }, + { + "from_module": "webserver", + "from_request": "get_presses", + "to_module": "db", + "to_handler": "get_presses", + "encryption": "aes" + }, + { + "name": "init-server", + "direct": true, + "to_module": "webserver", + "to_handler": "init_server", + "encryption": "aes" + }, + { + "name": "init-led", + "direct": true, + "to_module": "led_driver", + "to_input": 0, + "encryption": "spongent" + }, + { + "name": "trigger-btn", + "direct": true, + "to_module": "button_driver", + "to_input": "trigger_button_press", + "encryption": "spongent" + }, + { + "name": "get-presses", + "direct": true, + "to_module": "db", + "to_handler": "get_presses", + "encryption": "aes" + } + ] +} diff --git a/examples/button-led/docker-compose.yml b/examples/button-led/docker-compose.yml new file mode 100644 index 0000000..ac3b55e --- /dev/null +++ b/examples/button-led/docker-compose.yml @@ -0,0 +1,75 @@ +version: "3.9" + +services: + node-sancus-1: + image: gianlu33/event-manager-sancus:latest + expose: + - "6000" + environment: + - ELF=reactive_led.elf + - PORT=6000 + devices: + - "/dev/ttyUSB6:/dev/RIOT" + - "/dev/ttyUSB7:/dev/UART" + node-sancus-2: + image: gianlu33/event-manager-sancus:latest + expose: + - "6000" + environment: + - ELF=reactive.elf + - PORT=6000 + devices: + - "/dev/ttyUSB8:/dev/RIOT" + - "/dev/ttyUSB9:/dev/UART" + node-sgx: + image: gianlu33/reactive-event-manager:latest + expose: + - "5000-5010" + environment: + - EM_PORT=5000 + - EM_LOG=info + - EM_THREADS=16 + - EM_PERIODIC_TASKS=false + - EM_SGX=true + devices: + - "/dev/isgx:/dev/isgx" + volumes: + - "/var/run/aesmd:/var/run/aesmd" + node-trustzone: + image: gianlu33/optee-deps:latest + expose: + - "1236" + environment: + - PORT=1236 + volumes: + - "/opt/optee:/opt/optee" + aesm-client: + image: gianlu33/aesm-client:latest + expose: + - "13741" + environment: + - AESM_PORT=13741 + volumes: + - "/var/run/aesmd:/var/run/aesmd" + manager: + image: gianlu33/attestation-manager:sgx + expose: + - "1234" + devices: + - "/dev/isgx:/dev/isgx" + volumes: + - "/var/run/aesmd:/var/run/aesmd" + admin: + image: gianlu33/reactive-tools:latest + command: ./deploy.sh + depends_on: + - node-sancus-1 + - node-sancus-2 + - node-sgx + - node-trustzone + - aesm-client + - manager + volumes: + - ".:/usr/src/app" + - "/usr/local/cargo/git:/usr/local/cargo/git" # for caching builds + - "/usr/local/cargo/registry:/usr/local/cargo/registry" # same diff --git a/examples/button-led/gateway/Makefile b/examples/button-led/gateway/Makefile new file mode 100644 index 0000000..a22c4ed --- /dev/null +++ b/examples/button-led/gateway/Makefile @@ -0,0 +1,12 @@ +CFG_TEE_TA_LOG_LEVEL ?= 4 + +# The UUID for the Trusted Application +BINARY=$(BINARY) + +-include $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk + +ifeq ($(wildcard $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk), ) +clean: + @echo 'Note: $$(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk not found, cannot clean TA' + @echo 'Note: TA_DEV_KIT_DIR=$(TA_DEV_KIT_DIR)' +endif diff --git a/examples/button-led/gateway/authentic_execution.c b/examples/button-led/gateway/authentic_execution.c new file mode 100644 index 0000000..8249677 --- /dev/null +++ b/examples/button-led/gateway/authentic_execution.c @@ -0,0 +1,656 @@ +#include +#include +#include +#include + +#include + +#include +#include +#include +#include + +static const TEE_UUID pta_attestation_uuid = ATTESTATION_UUID; + +void *malloc_aligned(size_t size) { + size += size % 2; + + return malloc(size); +} + +int total_node = 0; + +typedef struct +{ + uint8_t encryption; + uint16_t conn_id; + uint16_t io_id; + uint16_t nonce; + unsigned char connection_key[16]; +} Connection; + +typedef struct Node +{ + Connection connection; + struct Node* next; +} Node; + +static Node* connections_head = NULL; + +int connections_add(Connection* connection) +{ + Node* node = malloc_aligned(sizeof(Node)); + + if (node == NULL) + return 0; + + node->connection = *connection; + node->next = connections_head; + connections_head = node; + return 1; +} + +Connection* connections_get(uint16_t conn_id) +{ + Node* current = connections_head; + + while (current != NULL) { + Connection* connection = ¤t->connection; + + if (connection->conn_id == conn_id) { + return connection; + } + + current = current->next; + } + + return NULL; +} + +void find_connections(uint16_t io_id, int *arr, uint8_t *num) +{ + Node* current = connections_head; + while (current != NULL) { + Connection* connection = ¤t->connection; + if (connection->io_id == io_id) { + arr[*num] = connection->conn_id; + *num = *num + 1; + } + + current = current->next; + } + +} + +//=============================================================== + +char module_key[16] = { 0 }; + +struct aes_cipher { + uint32_t algo; /* AES flavour */ + uint32_t mode; /* Encode or decode */ + uint32_t key_size; /* AES key size in byte */ + TEE_OperationHandle op_handle; /* AES ciphering operation */ + TEE_ObjectHandle key_handle; /* transient object to load the key */ +}; + +//=============================================================== + +static TEE_Result ta2tee_algo_id(uint32_t param, uint32_t *algo) +{ + switch (param) { + case TA_AES_ALGO_ECB: + *algo = TEE_ALG_AES_ECB_NOPAD; + return TEE_SUCCESS; + case TA_AES_ALGO_CBC: + *algo = TEE_ALG_AES_CBC_NOPAD; + return TEE_SUCCESS; + case TA_AES_ALGO_GCM: + *algo = TEE_ALG_AES_GCM; + return TEE_SUCCESS; + default: + EMSG("Invalid algo %u", param); + return TEE_ERROR_BAD_PARAMETERS; + } +} +static TEE_Result ta2tee_key_size(uint32_t param, uint32_t *key_size) +{ + switch (param) { + case 16: + *key_size = param; + return TEE_SUCCESS; + default: + EMSG("Invalid key size %u", param); + return TEE_ERROR_BAD_PARAMETERS; + } +} +static TEE_Result ta2tee_mode_id(uint32_t param, uint32_t *mode) +{ + switch (param) { + case TA_AES_MODE_ENCODE: + *mode = TEE_MODE_ENCRYPT; + return TEE_SUCCESS; + case TA_AES_MODE_DECODE: + *mode = TEE_MODE_DECRYPT; + return TEE_SUCCESS; + default: + EMSG("Invalid mode %u", param); + return TEE_ERROR_BAD_PARAMETERS; + } +} + +static TEE_Result alloc_resources(void *session, uint32_t algo, uint32_t key_size, + uint32_t mode){ + + struct aes_cipher *sess; + TEE_Attribute attr; + TEE_Result res; + char *key; + + /* Get ciphering context from session ID */ + sess = (struct aes_cipher *)session; + + res = ta2tee_algo_id(algo, &sess->algo); + if (res != TEE_SUCCESS) + return res; + + res = ta2tee_key_size(key_size, &sess->key_size); + if (res != TEE_SUCCESS) + return res; + + res = ta2tee_mode_id(mode, &sess->mode); + if (res != TEE_SUCCESS) + return res; + + if (sess->op_handle != TEE_HANDLE_NULL) + TEE_FreeOperation(sess->op_handle); + + /* Allocate operation: AES/CTR, mode and size from params */ + res = TEE_AllocateOperation(&sess->op_handle, + sess->algo, + sess->mode, + sess->key_size * 8); + if (res != TEE_SUCCESS) { + EMSG("Failed to allocate operation"); + sess->op_handle = TEE_HANDLE_NULL; + goto err; + } + + /* Free potential previous transient object */ + if (sess->key_handle != TEE_HANDLE_NULL) + TEE_FreeTransientObject(sess->key_handle); + + /* Allocate transient object according to target key size */ + res = TEE_AllocateTransientObject(TEE_TYPE_AES, + sess->key_size * 8, + &sess->key_handle); + if (res != TEE_SUCCESS) { + EMSG("Failed to allocate transient object"); + sess->key_handle = TEE_HANDLE_NULL; + goto err; + } + + key = TEE_Malloc(sess->key_size, 0); + if (!key) { + res = TEE_ERROR_OUT_OF_MEMORY; + goto err; + } + + TEE_InitRefAttribute(&attr, TEE_ATTR_SECRET_VALUE, key, sess->key_size); + + res = TEE_PopulateTransientObject(sess->key_handle, &attr, 1); + if (res != TEE_SUCCESS) { + EMSG("TEE_PopulateTransientObject failed, %x", res); + goto err; + } + + res = TEE_SetOperationKey(sess->op_handle, sess->key_handle); + if (res != TEE_SUCCESS) { + EMSG("TEE_SetOperationKey failed %x", res); + goto err; + } + + return res; + +err: + if (sess->op_handle != TEE_HANDLE_NULL) + TEE_FreeOperation(sess->op_handle); + sess->op_handle = TEE_HANDLE_NULL; + + if (sess->key_handle != TEE_HANDLE_NULL) + TEE_FreeTransientObject(sess->key_handle); + sess->key_handle = TEE_HANDLE_NULL; + + return res; +} + +static TEE_Result set_aes_key(void *session, char *key, uint32_t key_sz){ + + struct aes_cipher *sess; + TEE_Attribute attr; + TEE_Result res; + + /* Get ciphering context from session ID */ + sess = (struct aes_cipher *)session; + + //--------------------------------------------------------------- + if (key_sz != sess->key_size) { + EMSG("Wrong key size %" PRIu32 ", expect %" PRIu32 " bytes", + key_sz, sess->key_size); + return TEE_ERROR_BAD_PARAMETERS; + } + + TEE_InitRefAttribute(&attr, TEE_ATTR_SECRET_VALUE, key, key_sz); + + TEE_ResetTransientObject(sess->key_handle); + res = TEE_PopulateTransientObject(sess->key_handle, &attr, 1); + if (res != TEE_SUCCESS) { + EMSG("TEE_PopulateTransientObject failed, %x", res); + return res; + } + + TEE_ResetOperation(sess->op_handle); + res = TEE_SetOperationKey(sess->op_handle, sess->key_handle); + if (res != TEE_SUCCESS) { + EMSG("TEE_SetOperationKey failed %x", res); + return res; + } + + return res; +} + +static TEE_Result reset_aes_iv(void *session, char *aad, size_t aad_sz, + char *nonce, size_t nonce_sz, size_t payload_sz){ + + struct aes_cipher *sess; + + /* Get ciphering context from session ID */ + sess = (struct aes_cipher *)session; + + TEE_AEInit(sess->op_handle, nonce, nonce_sz, 16*8/* tag_len in bits */, aad_sz /*aad_len*/, + payload_sz /*plaintext_len*/); + + TEE_AEUpdateAAD(sess->op_handle, aad, aad_sz); + + return TEE_SUCCESS; +} + +static TEE_Result set_key(void *session, uint32_t param_types, + TEE_Param params[4]) +{ + TEE_Result res = TEE_ERROR_OUT_OF_MEMORY; + const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_NONE); + struct aes_cipher *sess; + Connection connection; + + sess = (struct aes_cipher *)session; + char nonce[12] = { 0 }; + size_t nonce_sz = 12; + + alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_DECODE); + set_aes_key(sess, module_key, 16); + reset_aes_iv(sess, params[0].memref.buffer, params[0].memref.size, nonce, nonce_sz, params[1].memref.size); + + char *tag; + tag = params[0].memref.buffer; + char *temp; + + void *decrypted_key = NULL; + void *tag_void = NULL; + + //========================================== + decrypted_key = TEE_Malloc(16, 0); + tag_void = TEE_Malloc(params[2].memref.size, 0); + if (!decrypted_key || !tag_void) + goto out; + + TEE_MemMove(tag_void, params[2].memref.buffer, params[2].memref.size); + + res = TEE_AEDecryptFinal(sess->op_handle, params[1].memref.buffer, + params[1].memref.size, decrypted_key, ¶ms[2].memref.size, tag_void, + params[2].memref.size); + + if (!res) { + temp = decrypted_key; + for (int j = 0; j < 16; j++){ + connection.connection_key[j]= temp[j]; + } + + connection.nonce = 0; + connection.encryption = tag[0] & 0xFF; + + int j = 0; + connection.conn_id = 0; + for(int n=2; n>=1; --n){ + connection.conn_id = connection.conn_id + (( tag[n] & 0xFF ) << (8*j)); + ++j; + } + j = 0; + connection.io_id = 0; + for(int n=4; n>=3; --n){ + connection.io_id = connection.io_id + (( tag[n] & 0xFF ) << (8*j)); + ++j; + } + total_node = total_node + 1; + connections_add(&connection); + } + +out: + TEE_Free(decrypted_key); + TEE_Free(tag_void); + + return res; +} + +//====================================================================== + +static TEE_Result attest(void *session, uint32_t param_types, + TEE_Param params[4]) +{ + TEE_Result res = TEE_ERROR_OUT_OF_MEMORY; + const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_INPUT, + TEE_PARAM_TYPE_MEMREF_OUTPUT, + TEE_PARAM_TYPE_NONE, + TEE_PARAM_TYPE_NONE); + struct aes_cipher *sess; + + sess = (struct aes_cipher *)session; + + // ------------ Call PTA ---------************************************************** + TEE_TASessionHandle pta_session = TEE_HANDLE_NULL; + uint32_t ret_origin = 0; + uint32_t pta_param_types = TEE_PARAM_TYPES( TEE_PARAM_TYPE_MEMREF_OUTPUT, + TEE_PARAM_TYPE_NONE, TEE_PARAM_TYPE_NONE, + TEE_PARAM_TYPE_NONE); + + TEE_Param pta_params[TEE_NUM_PARAMS]; + + // prepare the parameters for the pta + pta_params[0].memref.buffer = module_key; + pta_params[0].memref.size = 16; + + // ------------ Open Session to PTA --------- + res = TEE_OpenTASession(&pta_attestation_uuid, 0, 0, NULL, &pta_session, + &ret_origin); + if (res != TEE_SUCCESS) + return res; + + // ------------ Invoke command at PTA (get_module key) --------- + res = TEE_InvokeTACommand(pta_session, 0, ATTESTATION_CMD_GET_MODULE_KEY, + pta_param_types, pta_params, &ret_origin); + if (res != TEE_SUCCESS) + return res; + + // ------------ Close Session to PTA --------- + TEE_CloseTASession(pta_session); + + //******************************************************************************* + char nonce[12] = { 0 }; + size_t nonce_sz = 12; + // challenge = param[0] --> aad + alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_ENCODE); + set_aes_key(sess, module_key, 16); + reset_aes_iv(sess, params[0].memref.buffer, params[0].memref.size, nonce, nonce_sz, 0); + + unsigned char challenge[16]={0}; + memcpy(challenge, params[0].memref.buffer, 16); + DMSG("Module key: %x %x", module_key[0], module_key[1]); + DMSG("Challenge: %x %x", challenge[0], challenge[1]); + + void *tag = TEE_Malloc(16, 0); + uint32_t len = 0, tag_len = 16; + + res = TEE_AEEncryptFinal(sess->op_handle, NULL, + 0, NULL, &len, tag, &tag_len); + + if (!res) { + params[1].memref.size = 16; + TEE_MemMove(params[1].memref.buffer, tag, params[1].memref.size); + } + else { + DMSG("MAC generation failed: %d", res); + } + + TEE_Free(tag); + + return res; + +} + +//====================================================================== +void handle_output(void *session, uint8_t *num, uint16_t output_id, unsigned char *conn_id, + unsigned char *data, uint32_t data_len, unsigned char *tag) { + + struct aes_cipher *sess; + sess = (struct aes_cipher *)session; + + const void *text = data; // for AES + + BitSequence output[data_len]; + BitSequence tag_spongent[16]; + BitSequence data_spongent[data_len]; + memcpy(data_spongent, data, data_len); // for spongent + + uint8_t index = 0; + + int arr[total_node]; + find_connections(output_id, arr, num); + + for(int i = 0; i < *num; i++){ + + Connection* connection = connections_get(arr[i]); + char nonce[12] = { 0 }; + size_t nonce_sz = 12; + + unsigned char aad[2] = { 0 }; + int j = 1; + for(int m = 0; m < 2; m++){ + aad[m] = ((connection->nonce) >> (8*j)) & 0xFF; // ######## + j--; + } + + unsigned char conn_id_array[2] = { 0 }; + int c = 1; + for(int m = 0; m < 2; m++){ + conn_id_array[m] = ((connection->conn_id) >> (8*c)) & 0xFF; + c--; + } + + memcpy(conn_id + (2 * i), conn_id_array, 2); + + //*************** ^ ^ ******************************************************* + + if(connection->encryption == AES){ + + alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_ENCODE); + set_aes_key(sess, connection->connection_key, 16); //####### + reset_aes_iv(sess, aad, 2, nonce, nonce_sz, data_len); + + void *encrypt = NULL; + void *tag_void = NULL; + uint32_t sz = 16; + + encrypt = TEE_Malloc(data_len, 0); + tag_void = TEE_Malloc(16, 0); + + TEE_Result res = TEE_AEEncryptFinal(sess->op_handle, text, data_len, + encrypt, &data_len, tag_void, &sz); + + if (!res) { + + data[index] = data_len & 0xFF; + memcpy(data + index + 1, encrypt, data_len); + memcpy(tag + (16 * i), tag_void, 16); + TEE_Free(encrypt); + TEE_Free(tag_void); + } + } // if AES + else { + + SpongentWrap(connection->connection_key, aad, 16, data_spongent, data_len * 8, output, tag_spongent, 0); + + data[index] = data_len & 0xFF; + memcpy(data + index + 1, output, data_len); + memcpy(tag + (16 * i), tag_spongent, 16); + } // if SPONGENT + + index = index + data_len + 1; + connection->nonce = connection->nonce + 1; //###### + + } // for + +} +//========================================================================= +TEE_Result handle_input(void *session, uint32_t param_types, TEE_Param params[4]){ + + const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_VALUE_INOUT, + TEE_PARAM_TYPE_MEMREF_OUTPUT, + TEE_PARAM_TYPE_MEMREF_INOUT, + TEE_PARAM_TYPE_MEMREF_INOUT); + + TEE_Result res; + struct aes_cipher *sess; + sess = (struct aes_cipher *)session; + uint32_t size = params[0].value.a; + unsigned char* data; + data = malloc(size); + + Connection* connection = connections_get(params[0].value.b); + + char nonce[12] = { 0 }; + size_t nonce_sz = 12; + + unsigned char aad[2] = { 0 }; + int j = 1; + for(int m = 0; m < 2; m++){ + aad[m] = ((connection->nonce) >> (8*j)) & 0xFF; // ######## + j--; + } + + //--------------------------------------------------------------- + if(connection->encryption == AES){ + + alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_DECODE); + set_aes_key(sess, connection->connection_key, 16); //####### + reset_aes_iv(sess, aad, 2, nonce, nonce_sz, size); + + void *decrypted_data = NULL; + void *tag_void = NULL; + + decrypted_data = TEE_Malloc(size, 0); + tag_void = TEE_Malloc(16, 0); + + TEE_MemMove(tag_void, params[3].memref.buffer, 16); + + res = TEE_AEDecryptFinal(sess->op_handle, params[2].memref.buffer, size, + decrypted_data, &size, tag_void, 16); + + if (!res) { + memcpy(data, decrypted_data, size); + for(int i = 0; i < size; i++){ + printf("%2X", data[i]); + } + printf("\n"); + TEE_Free(decrypted_data); + TEE_Free(tag_void); + } + }// if AES + else{ + + BitSequence tag_spongent[16]; // TAG length is the same as the key length. 16 bytes. + BitSequence encrypted_data[size]; + + for (int n = 0; n < size; n++){ + encrypted_data[n] = ((uint8_t *)params[2].memref.buffer)[n]; + } + + for (int n = 0; n < 16; n++){ + tag_spongent[n] = ((uint8_t *)params[3].memref.buffer)[n]; + } + + SpongentUnwrap(connection->connection_key, aad, 16, encrypted_data, + size * 8, data, tag_spongent); + + for(int i = 0; i < size; i++){ + printf("%2X", data[i]); + } + printf("\n"); + }// if spongent + + connection->nonce = connection->nonce + 1; + + find_input_func(session, param_types, params, connection->io_id, data, size); + + return TEE_SUCCESS; +} + +// Called when the TA is created ======================================= +TEE_Result TA_CreateEntryPoint(void) { + DMSG("=============== TA_CreateEntryPoint ================"); + return TEE_SUCCESS; +} + +// Called when the TA is destroyed +void TA_DestroyEntryPoint(void) { + DMSG("=============== TA_DestroyEntryPoint ==============="); +} + +// open session +TEE_Result TA_OpenSessionEntryPoint(uint32_t __unused param_types, + TEE_Param __unused params[4], + void __unused **session) +{ + DMSG("=========== TA_OpenSessionEntryPoint ==============="); + + struct aes_cipher *sess; + sess = TEE_Malloc(sizeof(*sess), 0); + if (!sess) + return TEE_ERROR_OUT_OF_MEMORY; + + sess->key_handle = TEE_HANDLE_NULL; + sess->op_handle = TEE_HANDLE_NULL; + + *session = (void *)sess; + + return TEE_SUCCESS; +} + +// close session +void TA_CloseSessionEntryPoint(void *session) +{ + DMSG("========== TA_CloseSessionEntryPoint ==============="); + + struct aes_cipher *sess; + + /* Get ciphering context from session ID */ + sess = (struct aes_cipher *)session; + + /* Release the session resources */ + if (sess->key_handle != TEE_HANDLE_NULL) + TEE_FreeTransientObject(sess->key_handle); + if (sess->op_handle != TEE_HANDLE_NULL) + TEE_FreeOperation(sess->op_handle); + TEE_Free(sess); +} + +// invoke command +TEE_Result TA_InvokeCommandEntryPoint(void *session, uint32_t cmd, uint32_t param_types, + TEE_Param params[4]) +{ + switch (cmd) { + case SET_KEY: + return set_key(session, param_types, params); + case ATTEST: + return attest(session, param_types, params); + case HANDLE_INPUT: + return handle_input(session, param_types, params); + case ENTRY: + return entry(session, param_types, params); + default: + EMSG("Command ID 0x%x is not supported", cmd); + return TEE_ERROR_NOT_SUPPORTED; + } +} diff --git a/examples/button-led/gateway/controller.c b/examples/button-led/gateway/controller.c new file mode 100644 index 0000000..70c47cf --- /dev/null +++ b/examples/button-led/gateway/controller.c @@ -0,0 +1,81 @@ +#include +#include +#include + +#include +#include + +//sm_output +void toggle_led(void *session, uint8_t *num, unsigned char *conn_id, unsigned char *data, + uint32_t data_len, unsigned char *tag){ + + uint16_t output_id = 1; + handle_output(session, num, output_id, conn_id, data, data_len, tag); +} +void increment_presses(void *session, uint8_t *num, unsigned char *conn_id, unsigned char *data, + uint32_t data_len, unsigned char *tag){ + + uint16_t output_id = 2; + handle_output(session, num, output_id, conn_id, data, data_len, tag); +} + +// sm_input +void button_pressed(void *session, uint32_t param_types, TEE_Param params[4], + unsigned char* data_input, uint32_t data_len) { + + uint8_t i = 0; + uint8_t num = 0; + uint8_t index = 0; + unsigned char *data; + unsigned char *conn_id; + unsigned char *tag; + conn_id = malloc(16 * 2); + data = malloc(16 * 16); /* Maximum number of output*/ + tag = malloc(16 * 16); + //--------------------------------------------------------------------------------- + memcpy(data, data_input, data_len); + + toggle_led(session, &num, conn_id, data, data_len, tag); //sm_output + + TEE_MemMove(params[1].memref.buffer, conn_id, (2 * num)); + TEE_MemMove(params[2].memref.buffer, data, ((data_len * num) + num)); + TEE_MemMove(params[3].memref.buffer, tag, (16 * num)); + //------------------------------------------------------------------------------- + i += num; + index = index + (data_len * num) + num; + memcpy(data, data_input, data_len); + num = 0; + increment_presses(session, &num, conn_id, data, data_len, tag); //sm_output + + TEE_MemMove(params[1].memref.buffer + (i * 2), conn_id, (2 * num)); + TEE_MemMove(params[2].memref.buffer + index, data, ((data_len * num) + num)); + TEE_MemMove(params[3].memref.buffer + (i * 16), tag, (16 * num)); + //------------------------------------------------------------------------------- + params[0].value.b = i + num; + + free(data); + free(conn_id); + free(tag); +} + +void find_input_func(void *session, uint32_t param_types, TEE_Param params[4], + uint16_t io_id, unsigned char* data, uint32_t size){ + + switch (io_id) + { + case 0: + button_pressed(session, param_types, params, data, size); + break; + + default: + break; + } +} +//sm_entry +TEE_Result entry(void *session, uint32_t param_types, TEE_Param params[4]){ + + return TEE_SUCCESS; +} + + + diff --git a/examples/button-led/gateway/include/authentic_execution.h b/examples/button-led/gateway/include/authentic_execution.h new file mode 100644 index 0000000..3653601 --- /dev/null +++ b/examples/button-led/gateway/include/authentic_execution.h @@ -0,0 +1,32 @@ +#ifndef TA_H +#define TA_H + +#include + + +#define TA_AES_ALGO_ECB 0 +#define TA_AES_ALGO_CBC 1 +#define TA_AES_ALGO_GCM 2 + +#define TA_AES_SIZE_128BIT (128 / 8) +#define TA_AES_SIZE_256BIT (256 / 8) + +#define TA_AES_MODE_ENCODE 1 +#define TA_AES_MODE_DECODE 0 + +#define AES 0 // aes-gcm-128 +#define SPONGENT 1 // spongent-128 + + +/* The function IDs implemented in this TA */ +#define SET_KEY 0 +#define ATTEST 1 +#define HANDLE_INPUT 2 +#define ENTRY 3 + +void handle_output(void *session, uint8_t *num, uint16_t output_id, unsigned char *conn_id, + unsigned char *data, uint32_t data_len, unsigned char *tag); + +TEE_Result handle_input(void *session, uint32_t param_types, TEE_Param params[4]); + +#endif diff --git a/examples/button-led/gateway/include/controller.h b/examples/button-led/gateway/include/controller.h new file mode 100644 index 0000000..0ad6209 --- /dev/null +++ b/examples/button-led/gateway/include/controller.h @@ -0,0 +1,24 @@ +#ifndef CONTROLLER_H +#define CONTROLLER_H + +#include + +#define CONTROLLER_UUID \ + { 0xf8805eb7, 0x14c6, 0x49bd, { 0x86, 0xe2, 0xe7, 0x71, 0xca, 0xfd, 0x9a, 0x2f} } + + + +TEE_Result entry(void *session, uint32_t param_types, TEE_Param params[4]); +void find_input_func(void *session, uint32_t param_types, TEE_Param params[4], + uint16_t io_id, unsigned char* data, uint32_t size); + +//sm_input +void button_pressed(void *session, uint32_t param_types, TEE_Param params[4], + unsigned char* data_input, uint32_t data_len); +//sm_output +void toggle_led(void *session, uint8_t *num, unsigned char *conn_id, unsigned char *data, + uint32_t data_len, unsigned char *tag); +void increment_presses(void *session, uint8_t *num, unsigned char *conn_id, unsigned char *data, + uint32_t data_len, unsigned char *tag); + +#endif diff --git a/examples/button-led/gateway/include/pta_attestation.h b/examples/button-led/gateway/include/pta_attestation.h new file mode 100644 index 0000000..2036e3b --- /dev/null +++ b/examples/button-led/gateway/include/pta_attestation.h @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ +/* + * Copyright (c) 2018-2019, Linaro Limited + */ +#ifndef __PTA_ATTESTATION_H +#define __PTA_ATTESTATION_H + +#include + +/* + * Interface to the pseudo TA, which provides remote attestation. + */ +#define ATTESTATION_UUID \ + { 0xa2b0b139, 0x82dc, 0x4ffc, \ + { 0xa8, 0xa8, 0x7d, 0x7c, 0x63, 0x66, 0xe9, 0x84 } } + +#define ATTESTATION_CMD_GET_MODULE_KEY 0 + +#endif /* __PTA_ATTESTATION_H */ diff --git a/examples/button-led/gateway/include/spongent.h b/examples/button-led/gateway/include/spongent.h new file mode 100644 index 0000000..61f9fab --- /dev/null +++ b/examples/button-led/gateway/include/spongent.h @@ -0,0 +1,141 @@ +#ifndef _SPONGENT_H_ +#define _SPONGENT_H_ + +//#include +#include +#include + +// #define _PrintState_ + +#define SW_SECURITY 128 + +#define SW_RATE 16 +#define SW_RATE_BYTES (SW_RATE / 8) + +#define MIN_CAPACITY (SW_SECURITY * 2) +#define MIN_WIDTH (MIN_CAPACITY + SW_RATE + 2) + +#if MIN_WIDTH <= 88 +#define WIDTH 88 +#define nRounds 45 +#define version 88808 + +#elif MIN_WIDTH <= 136 +#define WIDTH 136 +#define nRounds 70 +#define version 1281288 + +#elif MIN_WIDTH <= 176 +#define WIDTH 176 +#define nRounds 90 +#define version 16016016 + +#elif MIN_WIDTH <= 240 +#define WIDTH 240 +#define nRounds 120 +#define version 16016080 + +#elif MIN_WIDTH <= 264 +#define WIDTH 264 +#define nRounds 135 +#define version 8817688 + +#elif MIN_WIDTH <= 272 +#define WIDTH 272 +#define nRounds 140 +#define version 25625616 + +#elif MIN_WIDTH <= 336 +#define WIDTH 336 +#define nRounds 170 +#define version 224224112 + +#elif MIN_WIDTH <= 384 +#define WIDTH 384 +#define nRounds 195 +#define version 256256128 + +#elif MIN_WIDTH <= 480 +#define WIDTH 480 +#define nRounds 240 +#define version 160320160 + +#elif MIN_WIDTH <= 672 +#define WIDTH 672 +#define nRounds 340 +#define version 224448224 + +#elif MIN_WIDTH <= 768 +#define WIDTH 768 +#define nRounds 385 +#define version 256512256 + +#else +#error "Security too high" +#endif + +#define rate (SW_RATE + 2) +#define capacity (WIDTH - rate) +#define hashsize SW_SECURITY + +#define BITS_TO_BYTES(x) (x / 8 + (x % 8 != 0)) + +#define R_SizeInBytes BITS_TO_BYTES(rate) +#define nBits (capacity + rate) +#define nSBox nBits/8 +#define KEY_SIZE hashsize +#define TAG_SIZE hashsize +#define TAG_SIZE_BYTES (TAG_SIZE / 8) + +typedef unsigned char BitSequence; +typedef unsigned long long DataLength; + +typedef uint64_t bit64; +typedef uint32_t bit32; +typedef uint16_t bit16; +typedef uint8_t bit8; + +#define GET_BIT(x,y) (x >> y) & 0x1 + +typedef enum { SUCCESS = 0, FAIL = 1, BAD_HASHBITLEN = 2, BAD_TAG = 3 } HashReturn; + +typedef struct { + BitSequence value[nSBox]; /* current Spongent state */ + BitSequence messageblock[R_SizeInBytes]; /* message block to be input/output */ + int remainingbitlen; /* remaining data length */ + int hashbitlen; /* # of hashed bits so far */ +} hashState; + +HashReturn SpongentHash(const BitSequence *data, DataLength databitlen, BitSequence *hashval); +HashReturn Init(hashState *state, BitSequence *hashval); +HashReturn Absorb(hashState *state); +HashReturn Squeeze(hashState *state); +HashReturn Pad(hashState *state); + +int Pi(int i); +void pLayer(hashState *state); +void Permute(hashState *state); + +bit16 lCounter(bit16 lfsr); +bit16 retnuoCl(bit16 lfsr); + + +HashReturn SpongentWrap(const BitSequence* key, + const BitSequence* ad, DataLength adBitLength, + const BitSequence* input, DataLength bitLength, + BitSequence* output, + BitSequence* tag, + bool unwrap); + +HashReturn SpongentUnwrap(const BitSequence* key, + const BitSequence* ad, DataLength adBitLength, + const BitSequence* input, DataLength bitLength, + BitSequence* output, + const BitSequence* expectedTag); + +HashReturn SpongentMac(const BitSequence* key, + const BitSequence* input, DataLength bitLength, + BitSequence* mac); + +#endif /* spongent.h */ + diff --git a/examples/button-led/gateway/spongent.c b/examples/button-led/gateway/spongent.c new file mode 100644 index 0000000..6041426 --- /dev/null +++ b/examples/button-led/gateway/spongent.c @@ -0,0 +1,530 @@ +/* + * SPONGENT hash function - Implementation + * This code is placed in the public domain + * For more information, feedback or questions, please refer to our website: + * https://sites.google.com/site/spongenthash/ + +*/ + +#include +#include +#include +#include +#include "spongent.h" + +/* Spongent S-box */ +int S[16] = { 0xe, 0xd, 0xb, 0x0, 0x2, 0x1, 0x4, 0xf, 0x7, 0xa, 0x8, 0x5, 0x9, 0xc, 0x3, 0x6}; + + +/* Spongent eight bit S-box */ +int sBoxLayer[256] = { + 0xee, 0xed, 0xeb, 0xe0, 0xe2, 0xe1, 0xe4, 0xef, 0xe7, 0xea, 0xe8, 0xe5, 0xe9, 0xec, 0xe3, 0xe6, + 0xde, 0xdd, 0xdb, 0xd0, 0xd2, 0xd1, 0xd4, 0xdf, 0xd7, 0xda, 0xd8, 0xd5, 0xd9, 0xdc, 0xd3, 0xd6, + 0xbe, 0xbd, 0xbb, 0xb0, 0xb2, 0xb1, 0xb4, 0xbf, 0xb7, 0xba, 0xb8, 0xb5, 0xb9, 0xbc, 0xb3, 0xb6, + 0x0e, 0x0d, 0x0b, 0x00, 0x02, 0x01, 0x04, 0x0f, 0x07, 0x0a, 0x08, 0x05, 0x09, 0x0c, 0x03, 0x06, + 0x2e, 0x2d, 0x2b, 0x20, 0x22, 0x21, 0x24, 0x2f, 0x27, 0x2a, 0x28, 0x25, 0x29, 0x2c, 0x23, 0x26, + 0x1e, 0x1d, 0x1b, 0x10, 0x12, 0x11, 0x14, 0x1f, 0x17, 0x1a, 0x18, 0x15, 0x19, 0x1c, 0x13, 0x16, + 0x4e, 0x4d, 0x4b, 0x40, 0x42, 0x41, 0x44, 0x4f, 0x47, 0x4a, 0x48, 0x45, 0x49, 0x4c, 0x43, 0x46, + 0xfe, 0xfd, 0xfb, 0xf0, 0xf2, 0xf1, 0xf4, 0xff, 0xf7, 0xfa, 0xf8, 0xf5, 0xf9, 0xfc, 0xf3, 0xf6, + 0x7e, 0x7d, 0x7b, 0x70, 0x72, 0x71, 0x74, 0x7f, 0x77, 0x7a, 0x78, 0x75, 0x79, 0x7c, 0x73, 0x76, + 0xae, 0xad, 0xab, 0xa0, 0xa2, 0xa1, 0xa4, 0xaf, 0xa7, 0xaa, 0xa8, 0xa5, 0xa9, 0xac, 0xa3, 0xa6, + 0x8e, 0x8d, 0x8b, 0x80, 0x82, 0x81, 0x84, 0x8f, 0x87, 0x8a, 0x88, 0x85, 0x89, 0x8c, 0x83, 0x86, + 0x5e, 0x5d, 0x5b, 0x50, 0x52, 0x51, 0x54, 0x5f, 0x57, 0x5a, 0x58, 0x55, 0x59, 0x5c, 0x53, 0x56, + 0x9e, 0x9d, 0x9b, 0x90, 0x92, 0x91, 0x94, 0x9f, 0x97, 0x9a, 0x98, 0x95, 0x99, 0x9c, 0x93, 0x96, + 0xce, 0xcd, 0xcb, 0xc0, 0xc2, 0xc1, 0xc4, 0xcf, 0xc7, 0xca, 0xc8, 0xc5, 0xc9, 0xcc, 0xc3, 0xc6, + 0x3e, 0x3d, 0x3b, 0x30, 0x32, 0x31, 0x34, 0x3f, 0x37, 0x3a, 0x38, 0x35, 0x39, 0x3c, 0x33, 0x36, + 0x6e, 0x6d, 0x6b, 0x60, 0x62, 0x61, 0x64, 0x6f, 0x67, 0x6a, 0x68, 0x65, 0x69, 0x6c, 0x63, 0x66 +}; + +//-------------------------------------------------------------------------------------------- + +DataLength min(DataLength a, DataLength b){ + if(a <= b){ + return a; + } + else{ + return b; + } +} +//-------------------------------------------------------------------------------------------- + +void copy_n(BitSequence *first, int num, BitSequence *result){ + + for(int i = 0; i < num; i++){ + result[i] = first[i]; + } +} +//----------------------------------------------------------------------------------------- + +void PrintState(hashState *state) +{ + int i; + for (i=nSBox-1; i>=0; i--) + printf("%02X", state->value[i]); + printf("\n"); +} + +//-------------------------------------------------------------------------------------------- + +bit16 lCounter(bit16 lfsr) +{ + switch( version ) { + case 88808: + lfsr = (lfsr << 1) | (((0x20 & lfsr) >> 5) ^ ((0x10 & lfsr) >> 4)); + lfsr &= 0x3f; + break; + case 1281288: + case 16016016: + case 16016080: + case 22422416: + lfsr = (lfsr << 1) | (((0x40 & lfsr) >> 6) ^ ((0x20 & lfsr) >> 5)); + lfsr &= 0x7f; + break; + case 8817688: + case 128256128: + case 160320160: + case 224224112: + case 25625616: + case 256256128: + lfsr = (lfsr << 1) | (((0x80 & lfsr) >> 7) ^ ((0x08 & lfsr) >> 3) ^ ((0x04 & lfsr) >> 2) ^ ((0x02 & lfsr) >> 1)); + lfsr &= 0xff; + break; + case 224448224: + case 256512256: + lfsr = (lfsr << 1) | (((0x100 & lfsr) >> 8) ^ ((0x08 & lfsr) >> 3)); + lfsr &= 0x1ff; + break; + default : + printf("ErrorCounter\n"); + break; + } + return lfsr; +} + +//-------------------------------------------------------------------------------------------- + +bit16 retnuoCl(bit16 lfsr) +{ + switch(version) + { + case 88808: + case 8817688: + case 1281288: + case 128256128: + case 16016016: + case 16016080: + case 160320160: + case 22422416: + case 224224112: + case 25625616: + case 256256128: + lfsr = ( ((lfsr & 0x01) <<7) | ((lfsr & 0x02) << 5) | ((lfsr & 0x04) << 3) | ((lfsr & 0x08) << 1) | ((lfsr & 0x10) >> 1) | ((lfsr & 0x20) >> 3) | ((lfsr & 0x40) >> 5) | ((lfsr & 0x80) >> 7) ); + lfsr <<= 8; + break; + case 224448224: + case 256512256: + lfsr = ( ((lfsr & 0x01) <<8) | ((lfsr & 0x02) << 6) | ((lfsr & 0x04) << 4) | ((lfsr & 0x08) << 2) | ((lfsr & 0x10) << 0) | ((lfsr & 0x20) >> 2) | ((lfsr & 0x40) >> 4) | ((lfsr & 0x80) >> 6) | ((lfsr & 0x100) >> 8) ); + lfsr <<= 7; + break; + default : + printf("ErrorInverseCounter\n"); + break; + } + + return lfsr; +} + +//-------------------------------------------------------------------------------------------- + +int Pi(int i) +{ + if (i != nBits-1) + return (i*nBits/4)%(nBits-1); + else + return nBits-1; +} + +//-------------------------------------------------------------------------------------------- + +void pLayer(hashState *state) +{ + int i, j, PermutedBitNo; + bit8 tmp[nSBox], x, y; + + for(i = 0; i < nSBox; i++) tmp[i] = 0; + + for(i = 0; i < nSBox; i++){ + for(j = 0; j < 8; j++){ + x = GET_BIT(state->value[i],j); + PermutedBitNo = Pi(8*i+j); + y = PermutedBitNo/8; + tmp[y] ^= x << (PermutedBitNo - 8*y); + } + } + memcpy(state->value, tmp, nSBox); +} + +//-------------------------------------------------------------------------------------------- + +void Permute(hashState *state) +{ + bit16 i, j, IV, INV_IV; + + switch(version) + { + case 88808: IV = 0x05; break; + case 8817688: IV = 0xC6; break; + case 1281288: IV = 0x7A; break; + case 128256128: IV = 0xFB; break; + case 16016016: IV = 0x45; break; + case 16016080: IV = 0x01; break; + case 160320160: IV = 0xA7; break; + case 22422416: IV = 0x01; break; + case 224224112: IV = 0x52; break; + case 224448224: IV = 0x105; break; + case 25625616: IV = 0x9e; break; + case 256256128: IV = 0xfb; break; + case 256512256: IV = 0x015; break; + } + + for(i = 0; i < nRounds; i++){ +#ifdef _PrintState_ + printf("%3d\t", i); + PrintState(state); +#endif + /* Add counter values */ + state->value[0] ^= IV & 0xFF; + state->value[1] ^= (IV >> 8) & 0xFF; + INV_IV = retnuoCl(IV); + state->value[nSBox-1] ^= (INV_IV >> 8) & 0xFF;; + state->value[nSBox-2] ^= INV_IV & 0xFF; + IV = lCounter(IV); + + /* sBoxLayer layer */ + for ( j=0; j < nSBox; j++) + state->value[j] = sBoxLayer[state->value[j]]; + + /* pLayer */ + pLayer(state);\ + } +#ifdef _PrintState_ + printf("%3d\t", i); + PrintState(state); +#endif +} + +//-------------------------------------------------------------------------------------------- + +HashReturn Init(hashState *state, BitSequence *hashval) +{ + + memset(state->value, 0, nSBox); + state->hashbitlen = 0; + state->remainingbitlen = 0; + + if (hashval != NULL) + memset(hashval, 0, hashsize/8); + + return SUCCESS; +} + +//-------------------------------------------------------------------------------------------- + +HashReturn Absorb(hashState *state) +{ + int i; + for(i = 0; i < R_SizeInBytes; i++) + state->value[i] ^= state->messageblock[i]; + Permute(state); + + return SUCCESS; +} + +//-------------------------------------------------------------------------------------------- + +HashReturn Squeeze(hashState *state) +{ + memcpy(state->messageblock, state->value, R_SizeInBytes); +#ifdef _PrintState_ + printf("h_i\t"); + for(int i = 0; i < R_SizeInBytes; i++) + printf("%02X", state->messageblock[i]); + printf("\n\n"); +#endif + Permute(state); + + return SUCCESS; +} + +//-------------------------------------------------------------------------------------------- + +HashReturn Pad(hashState *state) +{ + int byteind = state->remainingbitlen/8; /* byte index of remaining byte */ + int bitpos = state->remainingbitlen%8; /* bit position in last byte */ + + /* make unoccupied bits 0 */ + if(bitpos) + state->messageblock[byteind] &= 0xff >> (8 - bitpos); + + /* add single 1-bit */ + if(bitpos) + state->messageblock[byteind] |= 0x01 << bitpos; + else + state->messageblock[byteind] = 0x01; + + /* add 0-bits until we have rate bits */ + while(byteind!=R_SizeInBytes) + { + byteind++; + state->messageblock[byteind] = 0; + } + return SUCCESS; +} + +//-------------------------------------------------------------------------------------------- + +HashReturn SpongentHash(const BitSequence *data, DataLength databitlen, BitSequence *hashval) +{ + hashState state; + HashReturn res; + + /* initialize */ + res = Init(&state, hashval); + if(res != SUCCESS) + return res; + + /* Absorb available message blocks */ + while(databitlen >= rate) + { + memcpy(state.messageblock, data, R_SizeInBytes); +#ifdef _PrintState_ + printf("\n"); + printf("m_i\t"); + for(int i = 0; i < R_SizeInBytes; i++) + printf("%02X", state.messageblock[i]); + printf("\n"); +#endif + Absorb(&state); + databitlen -= rate; + data += R_SizeInBytes; + } + + /* Pad the remaining bits before absorbing */ + if(databitlen>0){ + memcpy(state.messageblock, data, databitlen/8 + (databitlen%8?1:0)); + state.remainingbitlen = databitlen; + } + else if(databitlen==0){ + memset(state.messageblock, 0, R_SizeInBytes); + state.remainingbitlen = databitlen; + } + Pad(&state); +#ifdef _PrintState_ + printf("\n"); + printf("m_i\t"); + for(int i = 0; i < R_SizeInBytes; i++) + printf("%02X", state.messageblock[i]); + printf("\n"); +#endif + Absorb(&state); + state.hashbitlen += rate; + + /* Squeeze data blocks */ + while(state.hashbitlen < hashsize) + { + Squeeze(&state); + memcpy(hashval, state.messageblock, R_SizeInBytes); + state.hashbitlen += rate; + hashval += R_SizeInBytes; + } + + memcpy(hashval, state.value, R_SizeInBytes); + hashval += R_SizeInBytes; +#ifdef _PrintState_ + printf("h_i\t"); + for(int i = 0; i < R_SizeInBytes; i++) + printf("%02X", state.value[i]); + printf("\n\n"); +#endif + + return SUCCESS; +} + +HashReturn Duplexing(hashState* state, + BitSequence* block, + DataLength blockBitLength, + BitSequence* out, + DataLength outBitsLength) +{ + copy_n(block, BITS_TO_BYTES(blockBitLength), state->messageblock); + state->remainingbitlen = blockBitLength; + HashReturn ret = Pad(state); + + if (ret != SUCCESS) + return ret; + + ret = Absorb(state); + + if (ret != SUCCESS) + return ret; + + if (out != NULL) + copy_n(state->value, outBitsLength / 8, out); + + return SUCCESS; +} + +HashReturn SpongentWrap(const BitSequence* key, + const BitSequence* ad, DataLength adBitLength, + const BitSequence* input, DataLength bitLength, + BitSequence* output, + BitSequence* tag, + bool unwrap) +{ + if (adBitLength % 8 != 0 || bitLength % 8 != 0) + { + //fprintf(stderr, "Messages containing partial bytes not supported\n"); + return FAIL; + } + + hashState state; + HashReturn ret = Init(&state, NULL); + + if (ret != SUCCESS) + return ret; + + BitSequence block[R_SizeInBytes]; + BitSequence duplexOut[R_SizeInBytes]; + DataLength bitsLeft = KEY_SIZE; + + while (bitsLeft > SW_RATE) + { + copy_n(key, SW_RATE_BYTES, block); + block[SW_RATE_BYTES] = 0x01; + ret = Duplexing(&state, block, SW_RATE + 1, NULL, 16); + + + if (ret != SUCCESS) + return ret; + + bitsLeft -= SW_RATE; + key += SW_RATE_BYTES; + } + + copy_n(key, bitsLeft / 8, block); + block[bitsLeft / 8] = 0x00; + ret = Duplexing(&state, block, bitsLeft + 1, NULL, 16); + + if (ret != SUCCESS) + return ret; + + bitsLeft = adBitLength; + + while (bitsLeft > SW_RATE) + { + copy_n(ad, SW_RATE_BYTES, block); + block[SW_RATE_BYTES] = 0x00; + ret = Duplexing(&state, block, SW_RATE + 1, NULL, 16); + + if (ret != SUCCESS) + return ret; + + bitsLeft -= SW_RATE; + ad += SW_RATE_BYTES; + } + + copy_n(ad, bitsLeft / 8, block); + block[bitsLeft / 8] = 0x01; + ret = Duplexing(&state, block, bitsLeft + 1, duplexOut, 16); + + if (ret != SUCCESS) + return ret; + + DataLength firstBlockLength = min(bitLength, (DataLength)SW_RATE) / 8; + + for (DataLength i = 0; i < firstBlockLength; i++) + output[i] = input[i] ^ duplexOut[i]; + + bitsLeft = bitLength; + + while (bitsLeft > SW_RATE) + { + copy_n(unwrap ? output : input, SW_RATE_BYTES, block); + block[SW_RATE_BYTES] = 0x01; + HashReturn ret = Duplexing(&state, block, SW_RATE + 1, duplexOut, 16); + + if (ret != SUCCESS) + return ret; + + bitsLeft -= SW_RATE; + input += SW_RATE_BYTES; + output += SW_RATE_BYTES; + + DataLength blockLength = min(bitsLeft, (DataLength)SW_RATE) / 8; + + for (DataLength i = 0; i < blockLength; i++) + output[i] = input[i] ^ duplexOut[i]; + } + + copy_n(unwrap ? output : input, bitsLeft / 8, block); + block[bitsLeft / 8] = 0x00; + ret = Duplexing(&state, block, bitsLeft + 1, + tag, min((DataLength)TAG_SIZE, (DataLength)SW_RATE)); + + if (ret != SUCCESS) + return ret; + + DataLength tagBitsDone = SW_RATE; + tag += SW_RATE_BYTES; + for (unsigned int i = 0; i < sizeof(block); i++){ + block[i] = 0x00; + } + //std::fill_n(block, sizeof(block), 0x00); + + while (tagBitsDone < TAG_SIZE) + { + ret = Duplexing(&state, block, 0, tag, + min(TAG_SIZE - tagBitsDone, (DataLength)SW_RATE)); + + if (ret != SUCCESS) + return ret; + + tagBitsDone += SW_RATE; + tag += SW_RATE_BYTES; + } + + return SUCCESS; +} + +HashReturn SpongentUnwrap(const BitSequence* key, + const BitSequence* ad, DataLength adBitLength, + const BitSequence* input, DataLength bitLength, + BitSequence* output, + const BitSequence* expectedTag) +{ + BitSequence tag[TAG_SIZE_BYTES]; + HashReturn ret = SpongentWrap(key, + ad, adBitLength, + input, bitLength, + output, tag, /*unwrap=*/true); + + if (ret != SUCCESS) + return ret; + + //if (!std::equal(std::begin(tag), std::end(tag), expectedTag)) + if (memcmp(tag, expectedTag, TAG_SIZE_BYTES) == 0) + return BAD_TAG; + + return SUCCESS; +} + +HashReturn SpongentMac(const BitSequence* key, + const BitSequence* input, DataLength bitLength, + BitSequence* mac) +{ + return SpongentWrap(key, input, bitLength, NULL, 0, NULL, mac, false); +} + +//-------------------------------------------------------------------------------------------- + diff --git a/examples/button-led/gateway/sub.mk b/examples/button-led/gateway/sub.mk new file mode 100644 index 0000000..156b302 --- /dev/null +++ b/examples/button-led/gateway/sub.mk @@ -0,0 +1,7 @@ +global-incdirs-y += include +srcs-y += controller.c +srcs-y += spongent.c +srcs-y +=authentic_execution.c + +# To remove a certain compiler flag, add a line like this +#cflags-template_ta.c-y += -Wno-strict-prototypes diff --git a/examples/button-led/gateway/user_ta_header_defines.h b/examples/button-led/gateway/user_ta_header_defines.h new file mode 100644 index 0000000..8d4888c --- /dev/null +++ b/examples/button-led/gateway/user_ta_header_defines.h @@ -0,0 +1,21 @@ +#ifndef USER_TA_HEADER_DEFINES_H +#define USER_TA_HEADER_DEFINES_H + +/* To get the TA UUID definition */ +#include + +#define TA_UUID CONTROLLER_UUID + +/* + * TA properties: multi-instance TA, no specific attribute + * TA_FLAG_EXEC_DDR is meaningless but mandated. + */ +#define TA_FLAGS TA_FLAG_EXEC_DDR + +/* Provisioned stack size */ +#define TA_STACK_SIZE (2 * 1024) + +/* Provisioned heap size for TEE_Malloc() and friends */ +#define TA_DATA_SIZE (32 * 1024) + +#endif diff --git a/examples/button-led/init-webserver.sh b/examples/button-led/init-webserver.sh new file mode 100644 index 0000000..cb3f9b9 --- /dev/null +++ b/examples/button-led/init-webserver.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -e + +echo "Initializing web server to listen to port 48879" +reactive-tools request res.json --connection init-server --arg beef --out cert.der > /dev/null 2>&1 + +echo "Converting certificate from DER to PEM" +openssl x509 -inform der -in cert.der -out cert.pem > /dev/null 2>&1 + +echo "All done! You can query the server with 'curl --cacert cert.pem '" diff --git a/examples/button-led/init_sgx.yaml b/examples/button-led/init_sgx.yaml new file mode 100644 index 0000000..5da4f63 --- /dev/null +++ b/examples/button-led/init_sgx.yaml @@ -0,0 +1,3 @@ +sp_privkey: cred/modules_privkey.pem +sp_pubkey: cred/modules_pubkey.pem +ias_certificate: cred/ias_root_ca.pem diff --git a/examples/button-led/manager.yaml b/examples/button-led/manager.yaml new file mode 100644 index 0000000..431522b --- /dev/null +++ b/examples/button-led/manager.yaml @@ -0,0 +1,3 @@ +host: manager +port: 1234 +key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] diff --git a/examples/button-led/run_attester.py b/examples/button-led/run_attester.py new file mode 100644 index 0000000..9041be3 --- /dev/null +++ b/examples/button-led/run_attester.py @@ -0,0 +1,37 @@ +import subprocess +import sys +import yaml + +ATTESTER = "sgx-attester" +manager_config = sys.argv[1] if len(sys.argv) > 1 else "manager.yaml" + +def attest(manager): + env = { + "AESM_HOST" : "aesm-client", + "AESM_PORT" : "13741", + "ENCLAVE_HOST" : manager["host"], + "ENCLAVE_PORT" : str(manager["port"]), + "SP_PRIVKEY" : "cred/manager_privkey.pem", + "ENCLAVE_SIG" : "cred/manager.sig", + "IAS_CERT" : "cred/ias_root_ca.pem", + "ENCLAVE_SETTINGS" : "cred/settings.json", + } + + try: + res = subprocess.run([ATTESTER], env=env, stdout=subprocess.PIPE) + res.check_returncode() + except Exception as e: + print(e) + sys.exit(1) + + return eval(res.stdout) + + +if __name__ == "__main__": + with open(manager_config, 'r') as f: + manager = yaml.load(f, Loader=yaml.FullLoader) + + manager["key"] = attest(manager) + + with open(manager_config, "w") as f: + yaml.dump(manager, f) diff --git a/examples/button-led/webserver/Cargo.toml b/examples/button-led/webserver/Cargo.toml new file mode 100644 index 0000000..b7fe555 --- /dev/null +++ b/examples/button-led/webserver/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "webserver" +version = "0.1.0" +authors = ["Gianluca Scopelliti "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +mbedtls = { git = "https://github.com/gianlu33/rust-mbedtls.git", branch="psk", features = ["rdrand"] } +anyhow = "1.0.44" diff --git a/examples/button-led/webserver/src/lib.rs b/examples/button-led/webserver/src/lib.rs new file mode 100644 index 0000000..bc73d2f --- /dev/null +++ b/examples/button-led/webserver/src/lib.rs @@ -0,0 +1,158 @@ +use std::thread; +use std::sync::Mutex; +use std::net::{TcpListener, TcpStream}; +use std::io::{Read, Write}; + +use mbedtls::pk::Pk; +use mbedtls::ssl::config::{Endpoint, Preset, Transport}; +use mbedtls::ssl::{Config, Context}; +use mbedtls::x509::{Certificate, Time}; +use mbedtls::x509::certificate::Builder; +use mbedtls::alloc::List as CertList; +use mbedtls::hash::Type as MdType; +use mbedtls::rng::Rdrand as Rng; +use std::sync::Arc; + +lazy_static! { + static ref INIT: Mutex = { + Mutex::new(false) + }; + + static ref PRIVATE_KEY: Mutex = { + Mutex::new(Pk::generate_rsa(&mut Rng, 2048, 65537).expect("Failed to generate key")) + }; + + static ref CERTIFICATE: Mutex>> = { + Mutex::new(None) + }; +} + +static HOST_NAME: &str = "node-sgx"; + +//@ sm_request(get_presses) + +//@ sm_handler +pub fn init_server(data : &[u8]) -> Vec { + let mut is_init = INIT.lock().unwrap(); + + if *is_init { + error!("init input was already called"); + return vec!(); + } + + if data.len() != 2 { + error!("wrong data received (expecting 2 bytes for port)"); + return vec!(); + } + + let port = authentic_execution::data_to_u16(data); + let host = format!("0.0.0.0:{}", port); + + let listener = match TcpListener::bind(host) { + Ok(l) => l, + Err(e) => { + error!(&format!("Fatal error: {}", e)); + return vec!(); + } + }; + + let (key, cert) = match init_credentials() { + Ok((k, c)) => (k,c), + Err(e) => { + error!(&format!("Error with credentials: {}", e)); + return vec!(); + } + }; + + info!(&format!("Web server listening on 0.0.0.0:{}", port)); + thread::spawn(move || { start_server(listener, key, cert) }); + *is_init = true; + + let cert = CERTIFICATE.lock().unwrap(); + cert.as_ref().unwrap().clone() +} + +fn start_server(listener : TcpListener, key : Pk, cert : CertList) { + let rng = Arc::new(Rng); + + let mut config = Config::new(Endpoint::Server, Transport::Stream, Preset::Default); + config.set_rng(rng); + + if let Err(_) = config.push_cert(Arc::new(cert), Arc::new(key)) { + error!("Could not push cert in config"); + return; + } + + let rc_config = Arc::new(config); + + for stream in listener.incoming() { + if let Ok(s) = stream { + if let Err(e) = handle_client(s, rc_config.clone()) { + warning!(&format!("Client error: {}", e)); + } + } + } +} + +fn init_credentials() -> anyhow::Result<(Pk, CertList)> { + let mut buf_key = [0u8; 8192]; + let mut key = PRIVATE_KEY.lock().unwrap(); + key.write_private_pem(&mut buf_key)?.unwrap(); + + let key = Pk::from_private_key(&buf_key, None)?; + let key1 = Pk::from_private_key(&buf_key, None)?; + let key2 = Pk::from_private_key(&buf_key, None)?; + + let cert_bytes = generate_cert(key1, key2)?; + let cert = Certificate::from_pem_multiple(&cert_bytes)?; + + let mut certificate = CERTIFICATE.lock().unwrap(); + certificate.replace(cert_bytes); + + Ok((key, cert)) +} + +fn generate_cert(mut key1 : Pk, mut key2 : Pk) -> anyhow::Result> { + let mut builder = Builder::new(); + let mut buf_cert = [0u8; 8192]; + + let common_name = format!("CN={}\0", HOST_NAME); + + let cert = builder + .subject_key(&mut key1) + .subject_with_nul(&common_name)? + .issuer_key(&mut key2) + .issuer_with_nul(&common_name)? + .validity( + Time::new(2020, 1, 1, 0, 0, 0).unwrap(), + Time::new(2030, 12, 31, 23, 59, 59).unwrap(), + )? + .serial(&[5])? + .signature_hash(MdType::Sha256) + .write_pem(&mut buf_cert, &mut Rng)?.unwrap(); + + Ok(cert.to_vec()) +} + +fn handle_client(conn : TcpStream, config : Arc) -> anyhow::Result<()> { + let mut ctx = Context::new(config); + ctx.establish(conn, None)?; + + let mut buffer = [0; 1024]; + ctx.read(&mut buffer)?; + + let response = match get_presses(&[]) { + Ok(r) if r.len() == 4 => { + let num_presses = authentic_execution::data_to_u32(&r); + format!("HTTP/1.1 200 OK\r\n\r\n{}\n", num_presses) + }, + _ => { + "HTTP/1.1 500 Internal Server Error\r\n\r\n".to_string() + } + }; + + ctx.write(response.as_bytes())?; + ctx.flush()?; + + Ok(()) +} diff --git a/examples/fosdem-21/webserver/src/lib.rs b/examples/fosdem-21/webserver/src/lib.rs deleted file mode 100644 index 5ede5bc..0000000 --- a/examples/fosdem-21/webserver/src/lib.rs +++ /dev/null @@ -1,73 +0,0 @@ -use std::thread; -use std::sync::Mutex; -use std::net::{TcpListener, TcpStream}; -use std::io::{Read, Write}; - -lazy_static! { - static ref INIT: Mutex = { - Mutex::new(false) - }; -} - -//@ sm_request(get_presses) - -//@ sm_input -pub fn init(data : &[u8]) { - let mut is_init = INIT.lock().unwrap(); - - if *is_init { - error!("init input was already called"); - return; - } - - if data.len() != 2 { - error!("wrong data received (expecting 2 bytes for port)"); - return; - } - - let port = authentic_execution::data_to_u16(data); - let host = format!("0.0.0.0:{}", port); - - let listener = match TcpListener::bind(host) { - Ok(l) => l, - Err(e) => { - error!(&format!("Fatal error: {}", e)); - return; - } - }; - - info!(&format!("Web server listening on 0.0.0.0:{}", port)); - thread::spawn(move || { start_server(listener) }); - *is_init = true; -} - -fn start_server(listener : TcpListener) { - for stream in listener.incoming() { - if let Ok(s) = stream { - if let Err(_) = handle_client(s) { - warning!("Network error while serving client"); - } - } - } -} - -fn handle_client(mut stream: TcpStream) -> Result<(), std::io::Error> { - // just assume the request is a HTTP GET - let mut buffer = [0; 1024]; - stream.read(&mut buffer)?; - - let response = match get_presses(&[]) { - Ok(r) if r.len() == 4 => { - let num_presses = authentic_execution::data_to_u32(&r); - format!("HTTP/1.1 200 OK\r\n\r\n{}\n", num_presses) - }, - _ => { - "HTTP/1.1 500 Internal Server Error\r\n\r\n".to_string() - } - }; - - stream.write(response.as_bytes())?; - stream.flush()?; - - Ok(()) -} From a49ea5959a7b9a026c6943b2f2d9523b23a77230 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 18 Oct 2021 16:48:44 +0200 Subject: [PATCH 52/81] fix button-led-native example --- examples/button-led-native/manager.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/button-led-native/manager.yaml b/examples/button-led-native/manager.yaml index 6918724..500ec28 100644 --- a/examples/button-led-native/manager.yaml +++ b/examples/button-led-native/manager.yaml @@ -1,3 +1,3 @@ -host: manager +host: localhost key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] port: 1234 From 0eec93d1f59b8c5c7a7fb5c8b0db3331d4396b17 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 18 Oct 2021 17:24:59 +0200 Subject: [PATCH 53/81] give more meaningful names for output dirs --- reactivetools/modules/base.py | 4 ++-- reactivetools/modules/native.py | 10 +++++----- reactivetools/modules/sancus.py | 13 +++++++------ reactivetools/modules/sgx.py | 10 +++++----- reactivetools/modules/trustzone.py | 10 ++++++---- 5 files changed, 25 insertions(+), 22 deletions(-) diff --git a/reactivetools/modules/base.py b/reactivetools/modules/base.py index 2ce3a34..617dea2 100644 --- a/reactivetools/modules/base.py +++ b/reactivetools/modules/base.py @@ -7,7 +7,7 @@ class Error(Exception): pass class Module(ABC): - def __init__(self, name, node, priority, deployed, nonce, attested): + def __init__(self, name, node, priority, deployed, nonce, attested, out_dir): """ Generic attributes common to all Module subclasses @@ -31,7 +31,7 @@ def __init__(self, name, node, priority, deployed, nonce, attested): # create temp dir try: - os.mkdir(os.path.join(glob.BUILD_DIR, name)) + os.mkdir(os.path.join(glob.BUILD_DIR, out_dir)) except FileExistsError: pass except: diff --git a/reactivetools/modules/native.py b/reactivetools/modules/native.py index 5110f28..806f5ce 100644 --- a/reactivetools/modules/native.py +++ b/reactivetools/modules/native.py @@ -24,7 +24,8 @@ class Error(Exception): class NativeModule(Module): def __init__(self, name, node, priority, deployed, nonce, attested, features, id, binary, key, data, folder, port): - super().__init__(name, node, priority, deployed, nonce, attested) + self.out_dir = os.path.join(glob.BUILD_DIR, "native-{}".format(folder)) + super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) self.__generate_fut = tools.init_future(data, key) self.__build_fut = tools.init_future(binary) @@ -32,7 +33,6 @@ def __init__(self, name, node, priority, deployed, nonce, attested, features, self.features = [] if features is None else features self.id = id if id is not None else node.get_module_id() self.port = port or self.node.reactive_port + self.id - self.output = os.path.join(glob.BUILD_DIR, folder) self.folder = folder @@ -240,7 +240,7 @@ async def __generate_code(self): args = Object() args.input = self.folder - args.output = self.output + args.output = self.out_dir args.moduleid = self.id args.emport = self.node.deploy_port args.runner = rustsgxgen.Runner.NATIVE @@ -259,10 +259,10 @@ async def __build(self): release = "--release" if glob.get_build_mode() == glob.BuildMode.RELEASE else "" features = "--features " + " ".join(self.features) if self.features else "" - cmd = BUILD_APP.format(release, features, self.output).split() + cmd = BUILD_APP.format(release, features, self.out_dir).split() await tools.run_async(*cmd) - binary = os.path.join(self.output, + binary = os.path.join(self.out_dir, "target", glob.get_build_mode().to_str(), self.name) logging.info("Built module {}".format(self.name)) diff --git a/reactivetools/modules/sancus.py b/reactivetools/modules/sancus.py index 96a09a7..06488be 100644 --- a/reactivetools/modules/sancus.py +++ b/reactivetools/modules/sancus.py @@ -5,6 +5,7 @@ from collections import namedtuple import json import yaml +import os from elftools.elf import elffile @@ -23,7 +24,8 @@ class Error(Exception): class SancusModule(Module): def __init__(self, name, node, priority, deployed, nonce, attested, files, cflags, ldflags, binary, id, symtab, key): - super().__init__(name, node, priority, deployed, nonce, attested) + self.out_dir = os.path.join(glob.BUILD_DIR, "sancus-{}".format(name)) + super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) self.files = files self.cflags = cflags @@ -34,7 +36,6 @@ def __init__(self, name, node, priority, deployed, nonce, attested, files, self.__key_fut = tools.init_future(key) self.__attest_fut = tools.init_future(attested if attested else None) - @staticmethod def load(mod_dict, node_obj): name = mod_dict['name'] @@ -192,7 +193,7 @@ async def __build(self): self.name, ', '.join(map(str, self.files))) config = self._get_build_config(tools.get_verbosity()) - objects = {str(p): tools.create_tmp(suffix='.o', dir=self.name) for p in self.files} + objects = {str(p): tools.create_tmp(suffix='.o', dir=self.out_dir) for p in self.files} cflags = config.cflags + self.cflags build_obj = lambda c, o: tools.run_async(config.cc, *cflags, @@ -200,7 +201,7 @@ async def __build(self): build_futs = [build_obj(c, o) for c, o in objects.items()] await asyncio.gather(*build_futs) - binary = tools.create_tmp(suffix='.elf', dir=self.name) + binary = tools.create_tmp(suffix='.elf', dir=self.out_dir) ldflags = config.ldflags + self.ldflags # prepare the config file for this SM @@ -224,7 +225,7 @@ async def __prepare_config_file(self, ldflags): config = yaml.load(f) except: # we create a new file with empty config - config_file = tools.create_tmp(suffix='.yaml', dir=self.name) + config_file = tools.create_tmp(suffix='.yaml', dir=self.out_dir) config = { self.name : [] } # remove old flag if present, append new one @@ -258,7 +259,7 @@ async def _calculate_key(self): async def __link(self): - linked_binary = tools.create_tmp(suffix='.elf', dir=self.name) + linked_binary = tools.create_tmp(suffix='.elf', dir=self.out_dir) # NOTE: we use '--noinhibit-exec' flag because the linker complains # if the addresses of .bss section are not aligned to 2 bytes diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 751b7f9..3ebb7c1 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -36,7 +36,8 @@ class SGXModule(Module): def __init__(self, name, node, priority, deployed, nonce, attested, vendor_key, ra_settings, features, id, binary, key, sgxs, signature, data, folder, port): - super().__init__(name, node, priority, deployed, nonce, attested) + self.out_dir = os.path.join(glob.BUILD_DIR, "sgx-{}".format(folder)) + super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) self.__generate_fut = tools.init_future(data) self.__build_fut = tools.init_future(binary) @@ -50,7 +51,6 @@ def __init__(self, name, node, priority, deployed, nonce, attested, vendor_key, self.features = [] if features is None else features self.id = id if id is not None else node.get_module_id() self.port = port or self.node.reactive_port + self.id - self.output = os.path.join(glob.BUILD_DIR, folder) self.folder = folder @@ -306,7 +306,7 @@ async def __generate_code(self): args = Object() args.input = self.folder - args.output = self.output + args.output = self.out_dir args.moduleid = self.id args.emport = self.node.deploy_port args.runner = rustsgxgen.Runner.SGX @@ -325,10 +325,10 @@ async def __build(self): release = "--release" if glob.get_build_mode() == glob.BuildMode.RELEASE else "" features = "--features " + " ".join(self.features) if self.features else "" - cmd = BUILD_APP.format(release, features, self.output).split() + cmd = BUILD_APP.format(release, features, self.out_dir).split() await tools.run_async(*cmd) - binary = os.path.join(self.output, "target", SGX_TARGET, + binary = os.path.join(self.out_dir, "target", SGX_TARGET, glob.get_build_mode().to_str(), self.name) logging.info("Built module {}".format(self.name)) diff --git a/reactivetools/modules/trustzone.py b/reactivetools/modules/trustzone.py index 6791c43..0198add 100644 --- a/reactivetools/modules/trustzone.py +++ b/reactivetools/modules/trustzone.py @@ -3,6 +3,7 @@ import binascii import hashlib import json +import os from .base import Module from ..nodes import TrustZoneNode @@ -18,12 +19,13 @@ class Error(Exception): COMPILER = "CROSS_COMPILE=arm-linux-gnueabihf-" PLATFORM = "PLATFORM=vexpress-qemu_virt" DEV_KIT = "TA_DEV_KIT_DIR=/optee/optee_os/out/arm/export-ta_arm32" -BUILD_CMD = "make -C {{}}/{{}} {} {} {} {{}} O={}/{{}}".format(COMPILER, PLATFORM, DEV_KIT, glob.BUILD_DIR) +BUILD_CMD = "make -C {{}}/{{}} {} {} {} {{}} O={{}}".format(COMPILER, PLATFORM, DEV_KIT) class TrustZoneModule(Module): def __init__(self, name, node, priority, deployed, nonce, attested, files_dir, binary, id, uuid, key, inputs, outputs, entrypoints): - super().__init__(name, node, priority, deployed, nonce, attested) + self.out_dir = os.path.join(glob.BUILD_DIR, "trustzone-{}".format(name)) + super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) self.files_dir = files_dir self.id = id @@ -176,11 +178,11 @@ async def __build(self): self.uuid_for_MK = '%s-%s-%s-%s-%s' % (hex[:8], hex[8:12], hex[12:16], hex[16:20], hex[20:]) binary_name = "BINARY=" + self.uuid_for_MK - cmd = BUILD_CMD.format(self.files_dir, self.name, binary_name, self.name) + cmd = BUILD_CMD.format(self.files_dir, self.name, binary_name, self.out_dir) await tools.run_async_shell(cmd) - binary = "{}/{}/{}.ta".format(glob.BUILD_DIR, self.name, self.uuid_for_MK) + binary = "{}/{}.ta".format(self.out_dir, self.uuid_for_MK) return binary From 9defd6c581471f24e4e8f53082bae22997fdfceb Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 18 Oct 2021 18:05:07 +0200 Subject: [PATCH 54/81] native/sgx: binary file name is the same as the folder, not the SM --- reactivetools/modules/native.py | 7 ++++++- reactivetools/modules/sgx.py | 15 +++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/reactivetools/modules/native.py b/reactivetools/modules/native.py index 806f5ce..5f1f10b 100644 --- a/reactivetools/modules/native.py +++ b/reactivetools/modules/native.py @@ -262,8 +262,13 @@ async def __build(self): cmd = BUILD_APP.format(release, features, self.out_dir).split() await tools.run_async(*cmd) + # TODO there might be problems with two (or more) modules built from + # the same source code but with different features. Since the + # working dir is the same (for caching reasons) there might be some + # problems when these SMs are built at the same time. + # Find a way to solve this issue. binary = os.path.join(self.out_dir, - "target", glob.get_build_mode().to_str(), self.name) + "target", glob.get_build_mode().to_str(), self.folder) logging.info("Built module {}".format(self.name)) return binary diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 3ebb7c1..9e06920 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -18,7 +18,7 @@ # SGX build/sign SGX_TARGET = "x86_64-fortanix-unknown-sgx" -BUILD_APP = "cargo build {{}} {{}} --target={} --manifest-path={{}}/Cargo.toml".format( SGX_TARGET) +BUILD_APP = "cargo build {{}} {{}} --target={} --manifest-path={{}}/Cargo.toml".format(SGX_TARGET) CONVERT_SGX = "ftxsgx-elf2sgxs {} --heap-size 0x20000 --stack-size 0x20000 --threads 4 {}" SIGN_SGX = "sgxs-sign --key {} {} {} {} --xfrm 7/0 --isvprodid 0 --isvsvn 0" @@ -328,8 +328,13 @@ async def __build(self): cmd = BUILD_APP.format(release, features, self.out_dir).split() await tools.run_async(*cmd) + # TODO there might be problems with two (or more) modules built from + # the same source code but with different features. Since the + # working dir is the same (for caching reasons) there might be some + # problems when these SMs are built at the same time. + # Find a way to solve this issue. binary = os.path.join(self.out_dir, "target", SGX_TARGET, - glob.get_build_mode().to_str(), self.name) + glob.get_build_mode().to_str(), self.folder) logging.info("Built module {}".format(self.name)) @@ -340,8 +345,10 @@ async def __convert_sign(self): binary = await self.binary debug = "--debug" if glob.get_build_mode() == glob.BuildMode.DEBUG else "" - sgxs = "{}.sgxs".format(binary) - sig = "{}.sig".format(binary) + # use this format for the file names to deal with multiple SMs built + # from the same source code + sgxs = "{}-{}.sgxs".format(binary, self.name) + sig = "{}-{}.sig".format(binary, self.name) cmd_convert = CONVERT_SGX.format(binary, debug).split() cmd_sign = SIGN_SGX.format(self.vendor_key, sgxs, sig, debug).split() From 63d69d0013fd370676e3c9f7a2bb04bfcc89f28b Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Tue, 19 Oct 2021 18:17:11 +0200 Subject: [PATCH 55/81] sancus: fix symtab file dir --- reactivetools/nodes/sancus.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactivetools/nodes/sancus.py b/reactivetools/nodes/sancus.py index bec29dc..50233d0 100644 --- a/reactivetools/nodes/sancus.py +++ b/reactivetools/nodes/sancus.py @@ -88,7 +88,7 @@ async def deploy(self, module): .format(module.name, self.name)) symtab = res.message.payload[2:] - symtab_file = tools.create_tmp(suffix='.ld', dir=module.name) + symtab_file = tools.create_tmp(suffix='.ld', dir=module.out_dir) # aiofile for write operations is bugged (version 3.3.3) # I get a "bad file descriptor" error after writes. From 639a0e34ac481f9fbb96649d9c42c92b74aa099c Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Tue, 19 Oct 2021 18:25:19 +0200 Subject: [PATCH 56/81] sgx: fix sgxs name --- reactivetools/modules/sgx.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 9e06920..bf840c8 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -345,9 +345,10 @@ async def __convert_sign(self): binary = await self.binary debug = "--debug" if glob.get_build_mode() == glob.BuildMode.DEBUG else "" + sgxs = "{}.sgxs".format(binary, self.name) + # use this format for the file names to deal with multiple SMs built - # from the same source code - sgxs = "{}-{}.sgxs".format(binary, self.name) + # from the same source code, but with different vendor keys sig = "{}-{}.sig".format(binary, self.name) cmd_convert = CONVERT_SGX.format(binary, debug).split() From 484263513ff251557dd5352cf7b7b3f1c72852f4 Mon Sep 17 00:00:00 2001 From: gianlu33 <36645341+gianlu33@users.noreply.github.com> Date: Wed, 27 Oct 2021 16:58:15 +0200 Subject: [PATCH 57/81] Create LICENSE --- LICENSE | 695 ++------------------------------------------------------ 1 file changed, 21 insertions(+), 674 deletions(-) diff --git a/LICENSE b/LICENSE index f288702..85fbf6b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,674 +1,21 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. +MIT License + +Copyright (c) 2021 Gianluca Scopelliti + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From a143b7ec30e7c9db85a4bafdfceee50d3ec65096 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Thu, 4 Nov 2021 15:56:17 +0100 Subject: [PATCH 58/81] update usage of sancus libraries --- reactivetools/crypto.py | 11 +++++------ reactivetools/modules/sancus.py | 18 ++++++++---------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/reactivetools/crypto.py b/reactivetools/crypto.py index 1cf7ea6..d6e5588 100644 --- a/reactivetools/crypto.py +++ b/reactivetools/crypto.py @@ -77,27 +77,26 @@ async def decrypt_aes(key, ad, data=b''): async def encrypt_spongent(key, ad, data=[]): try: - import sancus.crypto + import sancus.libsancuscrypt as sancus_crypto except: raise Error("Sancus python libraries not found in PYTHONPATH") - cipher, tag = sancus.crypto.wrap(key, ad, data) + cipher, tag = sancus_crypto.wrap(key, ad, data) return cipher + tag async def decrypt_spongent(key, ad, data=[]): try: - import sancus.crypto - import sancus.config + import sancus.libsancuscrypt as sancus_crypto except: raise Error("Sancus python libraries not found in PYTHONPATH") # data should be formed like this: [cipher, tag] - tag_size = sancus.config.SECURITY // 8 + tag_size = sancus_crypto.KEY_SIZE cipher = data[:-tag_size] tag = data[-tag_size:] - plain = sancus.crypto.unwrap(key, ad, cipher, tag) + plain = sancus_crypto.unwrap(key, ad, cipher, tag) if plain is None: raise Error("Decryption failed") diff --git a/reactivetools/modules/sancus.py b/reactivetools/modules/sancus.py index 06488be..96fff78 100644 --- a/reactivetools/modules/sancus.py +++ b/reactivetools/modules/sancus.py @@ -244,18 +244,16 @@ async def __prepare_config_file(self, ldflags): async def _calculate_key(self): - try: - import sancus.crypto - except: - raise Error("Sancus python libraries not found in PYTHONPATH") - linked_binary = await self.__link() - with open(linked_binary, 'rb') as f: - key = sancus.crypto.get_sm_key(f, self.name, self.node.vendor_key) - logging.info('Module key for %s: %s', - self.name, binascii.hexlify(key).decode('ascii')) - return key + args = "{} --gen-sm-key {} --key {}".format( + linked_binary, self.name, self.node.vendor_key + ).split() + + key, _ = await tools.run_async_output("sancus-crypto", *args) + logging.info('Module key for %s: %s', self.name, key) + + return binascii.unhexlify(key) async def __link(self): From 46194f154785c5932189ec0ff2a7425ee1e4b42e Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 8 Nov 2021 10:43:51 +0000 Subject: [PATCH 59/81] minor updates, move to "authexec" Docker repo --- .github/workflows/ci.yml | 28 +++++++++++++++------------- Dockerfile | 2 +- Dockerfile.fosdem | 31 ------------------------------- requirements.txt | 6 ++++++ setup.py | 22 +++++++++------------- 5 files changed, 31 insertions(+), 58 deletions(-) delete mode 100644 Dockerfile.fosdem create mode 100644 requirements.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9dd1cd4..da8f764 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,9 @@ on: workflow_dispatch: # Allow manual triggering env: - REPO: gianlu33/reactive-tools + REPO: authexec/reactive-tools + EM_IMAGE: authexec/event-manager-sgx:latest + AM_IMAGE: authexec/attestation-manager:native jobs: build-test-publish: @@ -23,8 +25,8 @@ jobs: uses: gianlu33/Publish-Docker-Github-Action@main with: name: ${{ env.REPO }} - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + username: authexec + password: ${{ secrets.DOCKER_TOKEN }} cache: ${{ github.event_name != 'schedule' }} tag_names: true no_push: true @@ -37,10 +39,10 @@ jobs: - name: Test deploy run: | - docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false --name em-5000 gianlu33/reactive-event-manager:latest - docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false --name em-6000 gianlu33/reactive-event-manager:latest - docker run --rm --network=host --detach -e EM_PORT=7000 -e EM_SGX=false --name em-7000 gianlu33/reactive-event-manager:latest - docker run --rm --network=host --detach -e EM_PORT=8000 -e EM_SGX=false --name em-8000 gianlu33/reactive-event-manager:latest + docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false --name em-5000 ${{ env.EM_IMAGE }} + docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false --name em-6000 ${{ env.EM_IMAGE }} + docker run --rm --network=host --detach -e EM_PORT=7000 -e EM_SGX=false --name em-7000 ${{ env.EM_IMAGE }} + docker run --rm --network=host --detach -e EM_PORT=8000 -e EM_SGX=false --name em-8000 ${{ env.EM_IMAGE }} shopt -s expand_aliases alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/button-led-native:/usr/src/app/ -v /usr/local/cargo/git:/usr/local/cargo/git -v /usr/local/cargo/registry:/usr/local/cargo/registry ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" REACTIVE_TOOLS --verbose deploy descriptor-local.json --result res.json @@ -59,11 +61,11 @@ jobs: - name: Test Attestation Manager run: | - docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false --name em-5000 gianlu33/reactive-event-manager:latest - docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false --name em-6000 gianlu33/reactive-event-manager:latest - docker run --rm --network=host --detach -e EM_PORT=7000 -e EM_SGX=false --name em-7000 gianlu33/reactive-event-manager:latest - docker run --rm --network=host --detach -e EM_PORT=8000 -e EM_SGX=false --name em-8000 gianlu33/reactive-event-manager:latest - docker run --rm --network=host --detach -e AM_PORT=1234 --name manager gianlu33/attestation-manager:native + docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false --name em-5000 ${{ env.EM_IMAGE }} + docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false --name em-6000 ${{ env.EM_IMAGE }} + docker run --rm --network=host --detach -e EM_PORT=7000 -e EM_SGX=false --name em-7000 ${{ env.EM_IMAGE }} + docker run --rm --network=host --detach -e EM_PORT=8000 -e EM_SGX=false --name em-8000 ${{ env.EM_IMAGE }} + docker run --rm --network=host --detach -e AM_PORT=1234 --name manager ${{ env.AM_IMAGE }} shopt -s expand_aliases alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/button-led-native:/usr/src/app/ -v /usr/local/cargo/git:/usr/local/cargo/git -v /usr/local/cargo/registry:/usr/local/cargo/registry ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" REACTIVE_TOOLS --verbose --manager deploy descriptor-local.json --result res.json @@ -83,6 +85,6 @@ jobs: name: Push if: ${{ github.event_name != 'pull_request' }} run: | - docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }} + docker login -u authexec -p ${{ secrets.DOCKER_TOKEN }} docker push ${{ env.REPO }}:${{ steps.build.outputs.tag }} docker logout diff --git a/Dockerfile b/Dockerfile index 05b9b3e..fdb0855 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM gianlu33/reactive-base:latest +FROM authexec/reactive-base:latest COPY . . RUN pip install . \ diff --git a/Dockerfile.fosdem b/Dockerfile.fosdem deleted file mode 100644 index 1107573..0000000 --- a/Dockerfile.fosdem +++ /dev/null @@ -1,31 +0,0 @@ -FROM gianlu33/reactive-base:fosdem - -WORKDIR /usr/src/install - -# Patch sancus-compiler and sancus-support using the fosdem-21 version of the repos -ARG SANCUS_SECURITY=128 -ARG SANCUS_KEY=deadbeefcafebabec0defeeddefec8ed - -RUN git clone --branch fosdem-21 https://github.com/gianlu33/sancus-compiler.git \ - && mkdir -p sancus-compiler/build && cd sancus-compiler/build \ - && cmake .. -DSECURITY=$2 -DMASTER_KEY=$3 \ - && make && make install - -RUN git clone --branch fosdem-21 https://github.com/gianlu33/sancus-support.git \ - && mkdir -p sancus-support/build && cd sancus-support/build \ - && cmake .. -DSECURITY=$2 -DMASTER_KEY=$3 \ - && make && make install - - -# Install python packages using the fosdem-21 version of the repos -# Install reactive-tools first, otherwise the versions of reactive-net and rust-sgx-gen will be replaced - -RUN git clone --branch fosdem-21 https://github.com/gianlu33/reactive-net.git \ - && git clone --branch fosdem-21 https://github.com/gianlu33/rust-sgx-gen.git \ - && git clone --branch fosdem-21 https://github.com/gianlu33/reactive-tools.git \ - && pip install reactive-tools/ \ - && pip install reactive-net/ \ - && pip install rust-sgx-gen/ \ - && rm -rf /usr/src/install - - WORKDIR /usr/src/app diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..80331e7 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +pyelftools==0.27 +aiofile==3.3.3 +pycryptodome==3.10.1 +PyYAML==5.4.1 +reactive-net +rust-sgx-gen \ No newline at end of file diff --git a/setup.py b/setup.py index eeaeeb1..47d0716 100644 --- a/setup.py +++ b/setup.py @@ -3,32 +3,28 @@ with open("README.md", "r", encoding="utf-8") as fh: long_description = fh.read() +with open("requirements.txt", "r") as f: + requirements = f.readlines() + setuptools.setup( name="reactive-tools", - version="0.3.0", + version="0.4.0", author="Gianluca Scopelliti", author_email="gianlu.1033@gmail.com", description="Deployment tools for the Authentic Execution framework", long_description=long_description, long_description_content_type="text/markdown", - url="https://github.com/gianlu33/reactive-tools", + url="https://github.com/AuthenticExecution/reactive-tools", packages=setuptools.find_packages(), - install_requires=[ - 'pyelftools==0.27', - 'aiofile==3.3.3', - 'pycryptodome==3.10.1', - 'reactive-net==0.2', - 'rust-sgx-gen==0.1.6', - 'PyYAML==5.4.1' - ], + install_requires=requirements, classifiers=[ "Programming Language :: Python :: 3", - "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", + "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", ], python_requires='>=3.6', - include_package_data=True, entry_points={ 'console_scripts': ['reactive-tools = reactivetools.cli:main'] - } + }, + include_package_data=True ) From bc90b7bef5855fd7bae8d13abf1052155cd3c6d6 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 8 Nov 2021 10:46:02 +0000 Subject: [PATCH 60/81] update Makefile --- Makefile | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index 41efd1a..dc83e25 100644 --- a/Makefile +++ b/Makefile @@ -1,23 +1,6 @@ -REPO ?= gianlu33/reactive-tools -TAG ?= latest - -PWD = $(shell pwd) -VOLUME ?= $(PWD) - -PYPI_REPO ?= gianlu33/pypi -PYPI_USERNAME ?= __token__ - -create_pkg: - docker run --rm -it -v $(PWD):/usr/src/app $(PYPI_REPO) python setup.py sdist bdist_wheel - -upload: create_pkg - docker run --rm -it -v $(PWD):/usr/src/app $(PYPI_REPO) twine upload --repository pypi dist/* -u $(PYPI_USERNAME) - -clean: - sudo rm -rf dist/* - -generate_key: - openssl genrsa -3 3072 > examples/vendor_key.pem +REPO ?= authexec/reactive-tools +TAG ?= latest +VOLUME ?= $(shell pwd) run: docker run --rm -it --network=host -v $(VOLUME):/usr/src/app/ $(REPO):$(TAG) bash @@ -26,7 +9,7 @@ pull: docker pull $(REPO):$(TAG) build: - docker build -t $(REPO):$(TAG) --build-arg DUMMY=$(shell date +%s) . + docker build -t $(REPO):$(TAG) . push: login docker push $(REPO):$(TAG) From 0c3abc1140a46080c41ab95d7cd2a95124c58cb7 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 8 Nov 2021 10:51:09 +0000 Subject: [PATCH 61/81] code formatting using autopep8 --- examples/button-led/run_attester.py | 19 +++-- reactivetools/cli.py | 6 +- reactivetools/config.py | 87 +++++++++---------- reactivetools/connection.py | 42 +++++---- reactivetools/crypto.py | 6 +- reactivetools/descriptor.py | 10 +-- reactivetools/dumpers.py | 3 +- reactivetools/glob.py | 10 ++- reactivetools/loaders.py | 1 + reactivetools/manager.py | 7 +- reactivetools/modules/__init__.py | 16 ++-- reactivetools/modules/base.py | 22 +---- reactivetools/modules/native.py | 48 ++++------- reactivetools/modules/sancus.py | 69 ++++++--------- reactivetools/modules/sgx.py | 77 ++++++----------- reactivetools/modules/trustzone.py | 70 ++++++++------- reactivetools/nodes/__init__.py | 16 ++-- reactivetools/nodes/base.py | 127 +++++++++++++--------------- reactivetools/nodes/native.py | 15 ++-- reactivetools/nodes/sancus.py | 81 +++++++++--------- reactivetools/nodes/sgx.py | 58 ++++++------- reactivetools/nodes/trustzone.py | 64 +++++++------- reactivetools/periodic_event.py | 8 +- reactivetools/rules/evaluators.py | 1 + reactivetools/tools.py | 36 +++++--- 25 files changed, 401 insertions(+), 498 deletions(-) diff --git a/examples/button-led/run_attester.py b/examples/button-led/run_attester.py index 9041be3..4ab5875 100644 --- a/examples/button-led/run_attester.py +++ b/examples/button-led/run_attester.py @@ -2,19 +2,20 @@ import sys import yaml -ATTESTER = "sgx-attester" +ATTESTER = "sgx-attester" manager_config = sys.argv[1] if len(sys.argv) > 1 else "manager.yaml" + def attest(manager): env = { - "AESM_HOST" : "aesm-client", - "AESM_PORT" : "13741", - "ENCLAVE_HOST" : manager["host"], - "ENCLAVE_PORT" : str(manager["port"]), - "SP_PRIVKEY" : "cred/manager_privkey.pem", - "ENCLAVE_SIG" : "cred/manager.sig", - "IAS_CERT" : "cred/ias_root_ca.pem", - "ENCLAVE_SETTINGS" : "cred/settings.json", + "AESM_HOST": "aesm-client", + "AESM_PORT": "13741", + "ENCLAVE_HOST": manager["host"], + "ENCLAVE_PORT": str(manager["port"]), + "SP_PRIVKEY": "cred/manager_privkey.pem", + "ENCLAVE_SIG": "cred/manager.sig", + "IAS_CERT": "cred/ias_root_ca.pem", + "ENCLAVE_SETTINGS": "cred/settings.json", } try: diff --git a/reactivetools/cli.py b/reactivetools/cli.py index 8774a92..cfcd473 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -323,7 +323,6 @@ def _handle_output(args): else: conn = conf.get_connection_by_name(args.connection) - if not conn.direct: raise Error("Connection is not direct.") @@ -331,7 +330,7 @@ def _handle_output(args): raise Error("Not a output-input connection") asyncio.get_event_loop().run_until_complete( - conn.to_module.node.output(conn, args.arg)) + conn.to_module.node.output(conn, args.arg)) conn.nonce += 1 out_file = args.result or args.config @@ -349,7 +348,6 @@ def _handle_request(args): else: conn = conf.get_connection_by_name(args.connection) - if not conn.direct: raise Error("Connection is not direct.") @@ -357,7 +355,7 @@ def _handle_request(args): raise Error("Not a request-handler connection") asyncio.get_event_loop().run_until_complete( - conn.to_module.node.request(conn, args.arg, args.out)) + conn.to_module.node.request(conn, args.arg, args.out)) conn.nonce += 2 out_file = args.result or args.config diff --git a/reactivetools/config.py b/reactivetools/config.py index c61ef89..c586c97 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -48,7 +48,6 @@ def get_module(self, name): raise Error('No module with name {}'.format(name)) - def get_connection_by_id(self, id): for c in self.connections: if c.id == id: @@ -56,7 +55,6 @@ def get_connection_by_id(self, id): raise Error('No connection with ID {}'.format(id)) - def get_connection_by_name(self, name): for c in self.connections: if c.name == name: @@ -64,7 +62,6 @@ def get_connection_by_name(self, name): raise Error('No connection with name {}'.format(name)) - def get_periodic_event(self, name): for e in self.periodic_events: if e.name == name: @@ -72,16 +69,16 @@ def get_periodic_event(self, name): raise Error('No periodic event with name {}'.format(name)) - async def deploy_priority_modules(self): - priority_modules = [sm for sm in self.modules if sm.priority is not None and not sm.deployed] - priority_modules.sort(key=lambda sm : sm.priority) + priority_modules = [ + sm for sm in self.modules if sm.priority is not None and not sm.deployed] + priority_modules.sort(key=lambda sm: sm.priority) - logging.debug("Priority modules: {}".format([sm.name for sm in priority_modules])) + logging.debug("Priority modules: {}".format( + [sm.name for sm in priority_modules])) for module in priority_modules: await module.deploy() - async def deploy_async(self, in_order, module): # If module is not None, deploy just this one if module: @@ -104,89 +101,81 @@ async def deploy_async(self, in_order, module): # Otherwise, deploy all modules concurrently else: lst = self.modules - l_filter = lambda x : not x.deployed - l_map = lambda x : x.deploy() + def l_filter(x): return not x.deployed + def l_map(x): return x.deploy() futures = map(l_map, filter(l_filter, lst)) await asyncio.gather(*futures) - def deploy(self, in_order, module): asyncio.get_event_loop().run_until_complete(self.deploy_async(in_order, module)) - async def build_async(self, module): lst = self.modules if not module else [self.get_module(module)] futures = [module.build() for module in lst] await asyncio.gather(*futures) - def build(self, module): asyncio.get_event_loop().run_until_complete(self.build_async(module)) - async def attest_async(self, module): lst = self.modules if not module else [self.get_module(module)] - to_attest = list(filter(lambda x : not x.attested, lst)) + to_attest = list(filter(lambda x: not x.attested, lst)) - if any(map(lambda x : not x.deployed, to_attest)): + if any(map(lambda x: not x.deployed, to_attest)): raise Error("One or more modules to attest are not deployed yet") logging.info("To attest: {}".format([x.name for x in to_attest])) - futures = map(lambda x : x.attest(), to_attest) + futures = map(lambda x: x.attest(), to_attest) await asyncio.gather(*futures) - def attest(self, module): asyncio.get_event_loop().run_until_complete(self.attest_async(module)) - async def connect_async(self, conn): - lst = self.connections if not conn else [self.get_connection_by_name(conn)] + lst = self.connections if not conn else [ + self.get_connection_by_name(conn)] - to_connect = list(filter(lambda x : not x.established, lst)) + to_connect = list(filter(lambda x: not x.established, lst)) if any(map( - lambda x : (x.from_module and not x.from_module.attested) or - not x.to_module.attested, to_connect)): + lambda x: (x.from_module and not x.from_module.attested) or + not x.to_module.attested, to_connect)): raise Error("One or more modules to connect are not attested yet") logging.info("To connect: {}".format([x.name for x in to_connect])) - futures = map(lambda x : x.establish(), to_connect) + futures = map(lambda x: x.establish(), to_connect) await asyncio.gather(*futures) - def connect(self, conn): asyncio.get_event_loop().run_until_complete(self.connect_async(conn)) - async def register_async(self, event): - lst = self.periodic_events if not event else [self.get_periodic_event(event)] + lst = self.periodic_events if not event else [ + self.get_periodic_event(event)] - to_register = list(filter(lambda x : not x.established, lst)) + to_register = list(filter(lambda x: not x.established, lst)) - if any(map(lambda x : not x.module.attested, to_register)): + if any(map(lambda x: not x.module.attested, to_register)): raise Error("One or more modules are not attested yet") logging.info("To register: {}".format([x.name for x in to_register])) - futures = map(lambda x : x.register(), to_register) + futures = map(lambda x: x.register(), to_register) await asyncio.gather(*futures) - def register_event(self, event): asyncio.get_event_loop().run_until_complete(self.register_async(event)) - async def cleanup_async(self): - coros = list(map(lambda c: c(), node_cleanup_coros + module_cleanup_coros)) + coros = list( + map(lambda c: c(), node_cleanup_coros + module_cleanup_coros)) await asyncio.gather(*coros) - def cleanup(self): asyncio.get_event_loop().run_until_complete(self.cleanup_async()) @@ -206,22 +195,22 @@ def load(file_name, output_type=None): config.manager = _load_manager(contents['manager'], config) config.nodes = load_list(contents['nodes'], - lambda n: _load_node(n, config)) + lambda n: _load_node(n, config)) config.modules = load_list(contents['modules'], - lambda m: _load_module(m, config)) + lambda m: _load_module(m, config)) config.connections_current_id = contents.get('connections_current_id') or 0 config.events_current_id = contents.get('events_current_id') or 0 if 'connections' in contents: config.connections = load_list(contents['connections'], - lambda c: _load_connection(c, config)) + lambda c: _load_connection(c, config)) else: config.connections = [] if 'periodic-events' in contents: config.periodic_events = load_list(contents['periodic-events'], - lambda e: _load_periodic_event(e, config)) + lambda e: _load_periodic_event(e, config)) else: config.periodic_events = [] @@ -232,7 +221,8 @@ def _load_node(node_dict, config): # Basic rules common to all nodes evaluate_rules(os.path.join("default", "node.yaml"), node_dict) # Specific rules for a specific node type - evaluate_rules(os.path.join("nodes", node_rules[node_dict['type']]), node_dict) + evaluate_rules(os.path.join( + "nodes", node_rules[node_dict['type']]), node_dict) return node_funcs[node_dict['type']](node_dict) @@ -241,7 +231,8 @@ def _load_module(mod_dict, config): # Basic rules common to all nodes evaluate_rules(os.path.join("default", "module.yaml"), mod_dict) # Specific rules for a specific node type - evaluate_rules(os.path.join("modules", module_rules[mod_dict['type']]), mod_dict) + evaluate_rules(os.path.join( + "modules", module_rules[mod_dict['type']]), mod_dict) node = config.get_node(mod_dict['node']) module = module_funcs[mod_dict['type']](mod_dict, node) @@ -302,14 +293,14 @@ def dump_config(config, file_name): def _(config): dump(config.nodes) return { - 'manager': dump(config.manager) if config.manager is not None else None, - 'nodes': dump(config.nodes), - 'modules': dump(config.modules), - 'connections_current_id': config.connections_current_id, - 'connections': dump(config.connections), - 'events_current_id': config.events_current_id, - 'periodic-events' : dump(config.periodic_events) - } + 'manager': dump(config.manager) if config.manager is not None else None, + 'nodes': dump(config.nodes), + 'modules': dump(config.modules), + 'connections_current_id': config.connections_current_id, + 'connections': dump(config.connections), + 'events_current_id': config.events_current_id, + 'periodic-events': dump(config.periodic_events) + } @dump.register(Node) diff --git a/reactivetools/connection.py b/reactivetools/connection.py index ba466fb..341e517 100644 --- a/reactivetools/connection.py +++ b/reactivetools/connection.py @@ -9,14 +9,17 @@ from .crypto import Encryption from . import tools + class Error(Exception): pass + class ConnectionIO(IntEnum): - OUTPUT = 0x0 - INPUT = 0x1 - REQUEST = 0x2 - HANDLER = 0x3 + OUTPUT = 0x0 + INPUT = 0x1 + REQUEST = 0x2 + HANDLER = 0x3 + class ConnectionIndex(): def __init__(self, type, name): @@ -24,7 +27,6 @@ def __init__(self, type, name): self.name = name self.index = None - async def set_index(self, module): if self.type == ConnectionIO.OUTPUT: self.index = await module.get_output_id(self.name) @@ -35,7 +37,6 @@ async def set_index(self, module): elif self.type == ConnectionIO.HANDLER: self.index = await module.get_handler_id(self.name) - async def get_index(self, module): if self.index: return self.index @@ -43,9 +44,10 @@ async def get_index(self, module): await self.set_index(module) return self.index + class Connection: def __init__(self, name, from_module, from_output, from_request, to_module, - to_input, to_handler, encryption, key, id, nonce, direct, established): + to_input, to_handler, encryption, key, id, nonce, direct, established): self.name = name self.from_module = from_module self.from_output = from_output @@ -63,31 +65,32 @@ def __init__(self, name, from_module, from_output, from_request, to_module, self.direct = True self.from_index = None else: - self.direct = False # to avoid assigning None + self.direct = False # to avoid assigning None self.from_index = ConnectionIndex(ConnectionIO.OUTPUT, from_output) if from_output is not None \ else ConnectionIndex(ConnectionIO.REQUEST, from_request) self.to_index = ConnectionIndex(ConnectionIO.INPUT, to_input) if to_input is not None \ else ConnectionIndex(ConnectionIO.HANDLER, to_handler) - @staticmethod def load(conn_dict, config): direct = conn_dict.get('direct') - from_module = config.get_module(conn_dict['from_module']) if is_present(conn_dict, 'from_module') else None + from_module = config.get_module(conn_dict['from_module']) if is_present( + conn_dict, 'from_module') else None from_output = conn_dict.get('from_output') from_request = conn_dict.get('from_request') to_module = config.get_module(conn_dict['to_module']) to_input = conn_dict.get('to_input') to_handler = conn_dict.get('to_handler') encryption = Encryption.from_str(conn_dict['encryption']) - key = parse_key(conn_dict.get('key')) or Connection.generate_key(from_module, to_module, encryption) # auto-generated key + key = parse_key(conn_dict.get('key')) or Connection.generate_key( + from_module, to_module, encryption) # auto-generated key nonce = conn_dict.get('nonce') or 0 id = conn_dict.get('id') established = conn_dict.get('established') if id is None: - id = config.connections_current_id # incremental ID + id = config.connections_current_id # incremental ID config.connections_current_id += 1 name = conn_dict.get('name') or "conn{}".format(id) @@ -97,8 +100,7 @@ def load(conn_dict, config): to_module.connections += 1 return Connection(name, from_module, from_output, from_request, to_module, - to_input, to_handler, encryption, key, id, nonce, direct, established) - + to_input, to_handler, encryption, key, id, nonce, direct, established) def dump(self): from_module = None if self.direct else self.from_module.name @@ -119,7 +121,6 @@ def dump(self): "established": self.established } - async def establish(self): if self.established: return @@ -131,7 +132,6 @@ async def establish(self): self.established = True - async def __establish_normal(self): from_node, to_node = self.from_module.node, self.to_module.node @@ -139,7 +139,7 @@ async def __establish_normal(self): connect = from_node.connect(self.to_module, self.id) set_key_from = from_node.set_key(self.from_module, self.id, self.from_index, - self.encryption, self.key) + self.encryption, self.key) set_key_to = to_node.set_key(self.to_module, self.id, self.to_index, self.encryption, self.key) @@ -149,22 +149,20 @@ async def __establish_normal(self): self.id, self.name, self.from_module.name, self.from_index.name, from_node.name, self.to_module.name, self.to_index.name, to_node.name) - async def __establish_direct(self): to_node = self.to_module.node await to_node.set_key(self.to_module, self.id, self.to_index, - self.encryption, self.key) + self.encryption, self.key) logging.info('Direct connection %d:%s to %s:%s on %s established', self.id, self.name, self.to_module.name, self.to_index.name, to_node.name) - @staticmethod def generate_key(module1, module2, encryption): if (module1 is not None and encryption not in module1.get_supported_encryption()) \ - or encryption not in module2.get_supported_encryption(): - raise Error('Encryption {} not supported between {} and {}'.format( + or encryption not in module2.get_supported_encryption(): + raise Error('Encryption {} not supported between {} and {}'.format( str(encryption), module1.name, module2.name)) return tools.generate_key(encryption.get_key_size()) diff --git a/reactivetools/crypto.py b/reactivetools/crypto.py index d6e5588..e8563df 100644 --- a/reactivetools/crypto.py +++ b/reactivetools/crypto.py @@ -6,12 +6,14 @@ from . import tools from . import glob + class Error(Exception): pass + class Encryption(IntEnum): - AES = 0x0 # aes-gcm-128 - SPONGENT = 0x1 # spongent-128 + AES = 0x0 # aes-gcm-128 + SPONGENT = 0x1 # spongent-128 @staticmethod def from_str(str): diff --git a/reactivetools/descriptor.py b/reactivetools/descriptor.py index 8542cef..9113af9 100644 --- a/reactivetools/descriptor.py +++ b/reactivetools/descriptor.py @@ -9,8 +9,8 @@ class Error(Exception): class DescriptorType(IntEnum): - JSON = 0 - YAML = 1 + JSON = 0 + YAML = 1 @staticmethod def from_str(type): @@ -26,7 +26,6 @@ def from_str(type): raise Error("Bad deployment descriptor type: {}".format(type)) - @staticmethod def load_any(file): if not os.path.exists(file): @@ -38,8 +37,8 @@ def load_any(file): try: return DescriptorType.YAML.load(file), DescriptorType.YAML except: - raise Error("Input file {} is not a JSON, nor a YAML".format(file)) - + raise Error( + "Input file {} is not a JSON, nor a YAML".format(file)) def load(self, file): with open(file, 'r') as f: @@ -49,7 +48,6 @@ def load(self, file): if self == DescriptorType.YAML: return yaml.load(f, Loader=yaml.FullLoader) - def dump(self, file, data): with open(file, 'w') as f: if self == DescriptorType.JSON: diff --git a/reactivetools/dumpers.py b/reactivetools/dumpers.py index 943e006..4d815a8 100644 --- a/reactivetools/dumpers.py +++ b/reactivetools/dumpers.py @@ -3,6 +3,7 @@ import types import binascii + @functools.singledispatch def dump(obj): assert False, 'No dumper for {}'.format(type(obj)) @@ -27,7 +28,7 @@ def _(x): @dump.register(tuple) def _(t): - return { t[1] : t[0] } + return {t[1]: t[0]} @dump.register(types.CoroutineType) diff --git a/reactivetools/glob.py b/reactivetools/glob.py index 4ff392b..c800c47 100644 --- a/reactivetools/glob.py +++ b/reactivetools/glob.py @@ -4,12 +4,14 @@ BUILD_DIR = os.path.join(os.getcwd(), "build") ATTMAN_CLI = "attman-cli" + class Error(Exception): pass + class BuildMode(IntEnum): - DEBUG = 0 - RELEASE = 1 + DEBUG = 0 + RELEASE = 1 @staticmethod def from_str(mode): @@ -34,16 +36,20 @@ def to_str(self): __BUILD_MODE = BuildMode.DEBUG __ATTESTATION_MANAGER = False + def set_build_mode(mode): global __BUILD_MODE __BUILD_MODE = BuildMode.from_str(mode) + def get_build_mode(): return __BUILD_MODE + def set_att_man(att_man): global __ATTESTATION_MANAGER __ATTESTATION_MANAGER = att_man + def get_att_man(): return __ATTESTATION_MANAGER diff --git a/reactivetools/loaders.py b/reactivetools/loaders.py index 5907845..2182dd3 100644 --- a/reactivetools/loaders.py +++ b/reactivetools/loaders.py @@ -3,6 +3,7 @@ from . import tools + class Error(Exception): pass diff --git a/reactivetools/manager.py b/reactivetools/manager.py index ccac6af..4be4c07 100644 --- a/reactivetools/manager.py +++ b/reactivetools/manager.py @@ -6,6 +6,7 @@ from . import glob from .descriptor import DescriptorType + class Manager: lock = asyncio.Lock() @@ -16,7 +17,6 @@ def __init__(self, file, host, port, key): self.key = key self.sp_pubkey = None - @staticmethod def load(man_file, man_dict, config): host = man_dict['host'] @@ -25,7 +25,6 @@ def load(man_file, man_dict, config): return Manager(man_file, host, port, key) - def dump(self): man = { "host": self.host, @@ -36,13 +35,13 @@ def dump(self): DescriptorType.YAML.dump(self.config, man) return self.config - async def get_sp_pubkey(self): async with self.lock: if self.sp_pubkey is not None: return self.sp_pubkey - args = "--config {} --request get-pub-key --data aa".format(self.config).split() + args = "--config {} --request get-pub-key --data aa".format( + self.config).split() out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) self.sp_pubkey = tools.create_tmp(suffix=".pem") diff --git a/reactivetools/modules/__init__.py b/reactivetools/modules/__init__.py index 745f348..cc1ea22 100644 --- a/reactivetools/modules/__init__.py +++ b/reactivetools/modules/__init__.py @@ -5,17 +5,17 @@ from .trustzone import TrustZoneModule module_rules = { - "sancus" : "sancus.yaml", - "sgx" : "sgx.yaml", - "native" : "native.yaml", - "trustzone" : "trustzone.yaml" + "sancus": "sancus.yaml", + "sgx": "sgx.yaml", + "native": "native.yaml", + "trustzone": "trustzone.yaml" } module_funcs = { - "sancus" : SancusModule.load, - "sgx" : SGXModule.load, - "native" : NativeModule.load, - "trustzone" : TrustZoneModule.load + "sancus": SancusModule.load, + "sgx": SGXModule.load, + "native": NativeModule.load, + "trustzone": TrustZoneModule.load } module_cleanup_coros = [ diff --git a/reactivetools/modules/base.py b/reactivetools/modules/base.py index 617dea2..7a7e4a7 100644 --- a/reactivetools/modules/base.py +++ b/reactivetools/modules/base.py @@ -3,9 +3,11 @@ import logging from .. import glob + class Error(Exception): pass + class Module(ABC): def __init__(self, name, node, priority, deployed, nonce, attested, out_dir): """ @@ -38,7 +40,6 @@ def __init__(self, name, node, priority, deployed, nonce, attested, out_dir): logging.error("Failed to create build dir for {}".format(name)) sys.exit(-1) - """ ### Description ### Creates a XXXModule object from a dict @@ -57,7 +58,6 @@ def __init__(self, name, node, priority, deployed, nonce, attested, out_dir): def load(mod_dict, node_obj): pass - """ ### Description ### Creates a dict from the XXXModule object (opposite procedure wrt. load) @@ -76,7 +76,6 @@ def load(mod_dict, node_obj): def dump(self): pass - """ ### Description ### Coroutine. Create the binary file from sources @@ -91,7 +90,6 @@ def dump(self): async def build(self): pass - """ ### Description ### Coroutine. Deploy a module to the corrisponding node @@ -108,7 +106,6 @@ async def build(self): async def deploy(self): pass - """ ### Description ### Coroutine. Attest a deployed module @@ -122,7 +119,6 @@ async def deploy(self): async def attest(self): pass - """ ### Description ### Coroutine. Get the ID of the module @@ -140,7 +136,6 @@ async def attest(self): async def get_id(self): pass - """ ### Description ### Coroutine. Get the ID of the input passed as parameter @@ -158,7 +153,6 @@ async def get_id(self): async def get_input_id(self, input): pass - """ ### Description ### Coroutine. Get the ID of the output passed as parameter @@ -176,7 +170,6 @@ async def get_input_id(self, input): async def get_output_id(self, output): pass - """ ### Description ### Coroutine. Get the ID of the entry point passed as parameter @@ -194,7 +187,6 @@ async def get_output_id(self, output): async def get_entry_id(self, entry): pass - """ ### Description ### Coroutine. Get the module's key @@ -209,7 +201,6 @@ async def get_entry_id(self, entry): async def get_key(self): pass - """ ### Description ### Static method. Get a list of node classes where the module can be deployed @@ -226,7 +217,6 @@ async def get_key(self): def get_supported_nodes(): pass - """ ### Description ### Static method. Get a list of crypto libraries supported by the module @@ -244,13 +234,11 @@ def get_supported_nodes(): def get_supported_encryption(): pass - """ Default implementation of some functions. Override them in the subclasses if you need a different implementation. """ - """ ### Description ### Static coroutine. Cleanup operations to do before the application terminates @@ -263,7 +251,6 @@ def get_supported_encryption(): async def cleanup(): pass - """ ### Description ### Coroutine. Get the ID of the request passed as parameter @@ -279,8 +266,7 @@ async def cleanup(): """ async def get_request_id(self, request): raise Error("Request/handler messages not supported for {}".format( - self.__class__.name)) - + self.__class__.name)) """ ### Description ### @@ -297,4 +283,4 @@ async def get_request_id(self, request): """ async def get_handler_id(self, handler): raise Error("Request/handler messages not supported for {}".format( - self.__class__.name)) + self.__class__.name)) diff --git a/reactivetools/modules/native.py b/reactivetools/modules/native.py index 5f1f10b..e8a3d59 100644 --- a/reactivetools/modules/native.py +++ b/reactivetools/modules/native.py @@ -14,16 +14,18 @@ BUILD_APP = "cargo build {} {} --manifest-path={}/Cargo.toml" + class Object(): pass + class Error(Exception): pass class NativeModule(Module): def __init__(self, name, node, priority, deployed, nonce, attested, features, - id, binary, key, data, folder, port): + id, binary, key, data, folder, port): self.out_dir = os.path.join(glob.BUILD_DIR, "native-{}".format(folder)) super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) @@ -35,7 +37,6 @@ def __init__(self, name, node, priority, deployed, nonce, attested, features, self.port = port or self.node.reactive_port + self.id self.folder = folder - @staticmethod def load(mod_dict, node_obj): name = mod_dict['name'] @@ -53,7 +54,7 @@ def load(mod_dict, node_obj): port = mod_dict.get('port') return NativeModule(name, node, priority, deployed, nonce, attested, - features, id, binary, key, data, folder, port) + features, id, binary, key, data, folder, port) def dump(self): return { @@ -67,7 +68,8 @@ def dump(self): "features": self.features, "id": self.id, "binary": dump(self.binary) if self.deployed else None, - "key": dump(self.key) if self.deployed else None, # For native, key is generated at compile time + # For native, key is generated at compile time + "key": dump(self.key) if self.deployed else None, "data": dump(self.data) if self.deployed else None, "folder": self.folder, "port": self.port @@ -85,25 +87,21 @@ async def inputs(self): data = await self.data return data["inputs"] - @property async def outputs(self): data = await self.data return data["outputs"] - @property async def entrypoints(self): data = await self.data return data["entrypoints"] - @property async def handlers(self): data = await self.data return data["handlers"] - @property async def requests(self): data = await self.data @@ -114,12 +112,10 @@ async def key(self): _data, key = await self.generate_code() return key - @property async def binary(self): return await self.build() - # --- Implement abstract methods --- # async def build(self): @@ -128,11 +124,9 @@ async def build(self): return await self.__build_fut - async def deploy(self): await self.node.deploy(self) - async def attest(self): if glob.get_att_man(): await self.__attest_manager() @@ -141,11 +135,9 @@ async def attest(self): self.attested = True - async def get_id(self): return self.id - async def get_input_id(self, input): if isinstance(input, int): return input @@ -157,7 +149,6 @@ async def get_input_id(self, input): return inputs[input] - async def get_output_id(self, output): if isinstance(output, int): return output @@ -169,7 +160,6 @@ async def get_output_id(self, output): return outputs[output] - async def get_entry_id(self, entry): try: return int(entry) @@ -181,7 +171,6 @@ async def get_entry_id(self, entry): return entrypoints[entry] - async def get_request_id(self, request): if isinstance(request, int): return request @@ -193,7 +182,6 @@ async def get_request_id(self, request): return requests[request] - async def get_handler_id(self, handler): if isinstance(handler, int): return handler @@ -205,21 +193,17 @@ async def get_handler_id(self, handler): return handlers[handler] - async def get_key(self): return await self.key - @staticmethod def get_supported_nodes(): return [NativeNode] - @staticmethod def get_supported_encryption(): return [Encryption.AES, Encryption.SPONGENT] - # --- Static methods --- # # --- Others --- # @@ -230,7 +214,6 @@ async def generate_code(self): return await self.__generate_fut - async def __generate_code(self): try: import rustsgxgen @@ -252,12 +235,12 @@ async def __generate_code(self): return data, key - async def __build(self): await self.generate_code() release = "--release" if glob.get_build_mode() == glob.BuildMode.RELEASE else "" - features = "--features " + " ".join(self.features) if self.features else "" + features = "--features " + \ + " ".join(self.features) if self.features else "" cmd = BUILD_APP.format(release, features, self.out_dir).split() await tools.run_async(*cmd) @@ -268,12 +251,11 @@ async def __build(self): # problems when these SMs are built at the same time. # Find a way to solve this issue. binary = os.path.join(self.out_dir, - "target", glob.get_build_mode().to_str(), self.folder) + "target", glob.get_build_mode().to_str(), self.folder) logging.info("Built module {}".format(self.name)) return binary - async def __attest_manager(self): data = { "id": self.id, @@ -288,12 +270,14 @@ async def __attest_manager(self): json.dump(data, f) args = "--config {} --request attest-native --data {}".format( - self.manager.config, data_file).split() + self.manager.config, data_file).split() out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) - key_arr = eval(out) # from string to array - key = bytes(key_arr) # from array to bytes + key_arr = eval(out) # from string to array + key = bytes(key_arr) # from array to bytes if await self.key != key: - raise Error("Received key is different from {} key".format(self.name)) + raise Error( + "Received key is different from {} key".format(self.name)) - logging.info("Done Remote Attestation of {}. Key: {}".format(self.name, key_arr)) + logging.info("Done Remote Attestation of {}. Key: {}".format( + self.name, key_arr)) diff --git a/reactivetools/modules/sancus.py b/reactivetools/modules/sancus.py index 96fff78..a92edb3 100644 --- a/reactivetools/modules/sancus.py +++ b/reactivetools/modules/sancus.py @@ -17,13 +17,14 @@ from ..dumpers import * from ..loaders import * + class Error(Exception): pass class SancusModule(Module): def __init__(self, name, node, priority, deployed, nonce, attested, files, - cflags, ldflags, binary, id, symtab, key): + cflags, ldflags, binary, id, symtab, key): self.out_dir = os.path.join(glob.BUILD_DIR, "sancus-{}".format(name)) super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) @@ -45,7 +46,7 @@ def load(mod_dict, node_obj): nonce = mod_dict.get('nonce') attested = mod_dict.get('attested') files = load_list(mod_dict['files'], - lambda f: parse_file_name(f)) + lambda f: parse_file_name(f)) cflags = load_list(mod_dict.get('cflags')) ldflags = load_list(mod_dict.get('ldflags')) binary = parse_file_name(mod_dict.get('binary')) @@ -54,8 +55,7 @@ def load(mod_dict, node_obj): key = parse_key(mod_dict.get('key')) return SancusModule(name, node, priority, deployed, nonce, attested, - files, cflags, ldflags, binary, id, symtab, key) - + files, cflags, ldflags, binary, id, symtab, key) def dump(self): return { @@ -75,7 +75,6 @@ def dump(self): "key": dump(self.key) if self.deployed else None } - # --- Properties --- # @property @@ -99,7 +98,6 @@ async def key(self): return await self.__key_fut - # --- Implement abstract methods --- # async def build(self): @@ -108,36 +106,31 @@ async def build(self): return await self.__build_fut - async def deploy(self): if self.__deploy_fut is None: self.__deploy_fut = asyncio.ensure_future(self.node.deploy(self)) return await self.__deploy_fut - async def attest(self): if glob.get_att_man(): await self.__attest_manager() else: if self.__attest_fut is None: - self.__attest_fut = asyncio.ensure_future(self.node.attest(self)) + self.__attest_fut = asyncio.ensure_future( + self.node.attest(self)) await self.__attest_fut - async def get_id(self): return await self.id - async def get_input_id(self, input): return await self.get_io_id(input) - async def get_output_id(self, output): return await self.get_io_id(output) - async def get_entry_id(self, entry): # If it is a number, that is the ID (given by the deployer) if entry.isnumeric(): @@ -145,21 +138,17 @@ async def get_entry_id(self, entry): return await self._get_entry_id(entry) - async def get_key(self): return await self.key - @staticmethod def get_supported_nodes(): return [SancusNode] - @staticmethod def get_supported_encryption(): return [Encryption.SPONGENT] - # --- Static methods --- # @staticmethod @@ -175,8 +164,7 @@ def _get_build_config(verbosity): ldflags = flags + ['--inline-arithmetic'] return _BuildConfig(cc='sancus-cc', cflags=cflags, - ld='sancus-ld', ldflags=ldflags ) - + ld='sancus-ld', ldflags=ldflags) # --- Others --- # @@ -187,17 +175,17 @@ async def get_io_id(self, io): return await self._get_io_id(io) - async def __build(self): logging.info('Building module %s from %s', self.name, ', '.join(map(str, self.files))) config = self._get_build_config(tools.get_verbosity()) - objects = {str(p): tools.create_tmp(suffix='.o', dir=self.out_dir) for p in self.files} + objects = {str(p): tools.create_tmp( + suffix='.o', dir=self.out_dir) for p in self.files} cflags = config.cflags + self.cflags - build_obj = lambda c, o: tools.run_async(config.cc, *cflags, - '-c', '-o', o, c) + def build_obj(c, o): return tools.run_async(config.cc, *cflags, + '-c', '-o', o, c) build_futs = [build_obj(c, o) for c, o in objects.items()] await asyncio.gather(*build_futs) @@ -211,13 +199,12 @@ async def __build(self): '-o', binary, *objects.values()) return binary - async def __prepare_config_file(self, ldflags): # try to get sm config file if present in self.ldflags # otherwise, create empty file try: # fetch the name - flag = next(filter(lambda x : "--sm-config-file" in x, ldflags)) + flag = next(filter(lambda x: "--sm-config-file" in x, ldflags)) config_file = flag.split()[1] # open the file and parse it @@ -226,10 +213,11 @@ async def __prepare_config_file(self, ldflags): except: # we create a new file with empty config config_file = tools.create_tmp(suffix='.yaml', dir=self.out_dir) - config = { self.name : [] } + config = {self.name: []} # remove old flag if present, append new one - ldflags = list(filter(lambda x : "--sm-config-file" not in x, ldflags)) + ldflags = list( + filter(lambda x: "--sm-config-file" not in x, ldflags)) ldflags.append("--sm-config-file {}".format(config_file)) # override num_connections if the value is present and is < self.connections @@ -242,7 +230,6 @@ async def __prepare_config_file(self, ldflags): return ldflags - async def _calculate_key(self): linked_binary = await self.__link() @@ -255,7 +242,6 @@ async def _calculate_key(self): return binascii.unhexlify(key) - async def __link(self): linked_binary = tools.create_tmp(suffix='.elf', dir=self.out_dir) @@ -263,35 +249,33 @@ async def __link(self): # if the addresses of .bss section are not aligned to 2 bytes # using this flag instead, the output file is still generated await tools.run_async('msp430-ld', '-T', await self.symtab, - '-o', linked_binary, '--noinhibit-exec', await self.binary) + '-o', linked_binary, '--noinhibit-exec', await self.binary) return linked_binary - async def _get_io_id(self, io_name): sym_name = '__sm_{}_io_{}_idx'.format(self.name, io_name) symbol = await self.__get_symbol(sym_name) if symbol is None: raise Error('Module {} has no endpoint named {}' - .format(self.name, io_name)) + .format(self.name, io_name)) return symbol - async def _get_entry_id(self, entry_name): sym_name = '__sm_{}_entry_{}_idx'.format(self.name, entry_name) symbol = await self.__get_symbol(sym_name) if symbol is None: raise Error('Module {} has no entry named {}' - .format(self.name, entry_name)) + .format(self.name, entry_name)) return symbol - async def __get_symbol(self, name): if not await self.binary: - raise Error("ELF file not present for {}, cannot extract symbol ID of {}".format(self.name, name)) + raise Error("ELF file not present for {}, cannot extract symbol ID of {}".format( + self.name, name)) with open(await self.binary, 'rb') as f: elf = elffile.ELFFile(f) @@ -302,7 +286,6 @@ async def __get_symbol(self, name): if symbol.name == name and sym_section != 'SHN_UNDEF': return symbol['st_value'] - async def __attest_manager(self): data = { "id": await self.id, @@ -317,15 +300,17 @@ async def __attest_manager(self): json.dump(data, f) args = "--config {} --request attest-sancus --data {}".format( - self.manager.config, data_file).split() + self.manager.config, data_file).split() out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) - key_arr = eval(out) # from string to array - key = bytes(key_arr) # from array to bytes + key_arr = eval(out) # from string to array + key = bytes(key_arr) # from array to bytes if await self.key != key: - raise Error("Received key is different from {} key".format(self.name)) + raise Error( + "Received key is different from {} key".format(self.name)) - logging.info("Done Remote Attestation of {}. Key: {}".format(self.name, key_arr)) + logging.info("Done Remote Attestation of {}. Key: {}".format( + self.name, key_arr)) self.attested = True diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index bf840c8..b489f7d 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -18,7 +18,8 @@ # SGX build/sign SGX_TARGET = "x86_64-fortanix-unknown-sgx" -BUILD_APP = "cargo build {{}} {{}} --target={} --manifest-path={{}}/Cargo.toml".format(SGX_TARGET) +BUILD_APP = "cargo build {{}} {{}} --target={} --manifest-path={{}}/Cargo.toml".format( + SGX_TARGET) CONVERT_SGX = "ftxsgx-elf2sgxs {} --heap-size 0x20000 --stack-size 0x20000 --threads 4 {}" SIGN_SGX = "sgxs-sign --key {} {} {} {} --xfrm 7/0 --isvprodid 0 --isvsvn 0" @@ -26,6 +27,7 @@ class Object(): pass + class Error(Exception): pass @@ -34,8 +36,8 @@ class SGXModule(Module): sp_lock = asyncio.Lock() def __init__(self, name, node, priority, deployed, nonce, attested, vendor_key, - ra_settings, features, id, binary, key, sgxs, signature, data, - folder, port): + ra_settings, features, id, binary, key, sgxs, signature, data, + folder, port): self.out_dir = os.path.join(glob.BUILD_DIR, "sgx-{}".format(folder)) super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) @@ -53,7 +55,6 @@ def __init__(self, name, node, priority, deployed, nonce, attested, vendor_key, self.port = port or self.node.reactive_port + self.id self.folder = folder - @staticmethod def load(mod_dict, node_obj): name = mod_dict['name'] @@ -75,8 +76,8 @@ def load(mod_dict, node_obj): port = mod_dict.get('port') return SGXModule(name, node, priority, deployed, nonce, attested, vendor_key, - settings, features, id, binary, key, sgxs, signature, data, folder, - port) + settings, features, id, binary, key, sgxs, signature, data, folder, + port) def dump(self): return { @@ -112,56 +113,50 @@ async def inputs(self): data = await self.data return data["inputs"] - @property async def outputs(self): data = await self.data return data["outputs"] - @property async def entrypoints(self): data = await self.data return data["entrypoints"] - @property async def handlers(self): data = await self.data return data["handlers"] - @property async def requests(self): data = await self.data return data["requests"] - @property async def binary(self): return await self.build() - @property async def sgxs(self): if self.__convert_sign_fut is None: - self.__convert_sign_fut = asyncio.ensure_future(self.__convert_sign()) + self.__convert_sign_fut = asyncio.ensure_future( + self.__convert_sign()) sgxs, _ = await self.__convert_sign_fut return sgxs - @property async def sig(self): if self.__convert_sign_fut is None: - self.__convert_sign_fut = asyncio.ensure_future(self.__convert_sign()) + self.__convert_sign_fut = asyncio.ensure_future( + self.__convert_sign()) _, sig = await self.__convert_sign_fut return sig - # --- Implement abstract methods --- # async def build(self): @@ -170,11 +165,9 @@ async def build(self): return await self.__build_fut - async def deploy(self): await self.node.deploy(self) - async def attest(self): if glob.get_att_man(): await self.__attest_manager() @@ -184,11 +177,9 @@ async def attest(self): await self.__attest_fut - async def get_id(self): return self.id - async def get_input_id(self, input): if isinstance(input, int): return input @@ -200,7 +191,6 @@ async def get_input_id(self, input): return inputs[input] - async def get_output_id(self, output): if isinstance(output, int): return output @@ -212,7 +202,6 @@ async def get_output_id(self, output): return outputs[output] - async def get_entry_id(self, entry): if entry.isnumeric(): return int(entry) @@ -224,7 +213,6 @@ async def get_entry_id(self, entry): return entrypoints[entry] - async def get_request_id(self, request): if isinstance(request, int): return request @@ -236,7 +224,6 @@ async def get_request_id(self, request): return requests[request] - async def get_handler_id(self, handler): if isinstance(handler, int): return handler @@ -248,28 +235,23 @@ async def get_handler_id(self, handler): return handlers[handler] - async def get_key(self): return self.key - @staticmethod def get_supported_nodes(): return [SGXNode] - @staticmethod def get_supported_encryption(): return [Encryption.AES, Encryption.SPONGENT] - # --- Static methods --- # @staticmethod async def cleanup(): pass - # --- Others --- # async def get_ra_sp_pub_key(self): @@ -277,26 +259,22 @@ async def get_ra_sp_pub_key(self): return pub - async def get_ra_sp_priv_key(self): _, priv, _ = await self.__sp_keys_fut return priv - async def get_ias_root_certificate(self): _, _, cert = await self.__sp_keys_fut return cert - async def generate_code(self): if self.__generate_fut is None: self.__generate_fut = asyncio.ensure_future(self.__generate_code()) return await self.__generate_fut - async def __generate_code(self): try: import rustsgxgen @@ -318,12 +296,12 @@ async def __generate_code(self): return data - async def __build(self): await self.generate_code() release = "--release" if glob.get_build_mode() == glob.BuildMode.RELEASE else "" - features = "--features " + " ".join(self.features) if self.features else "" + features = "--features " + \ + " ".join(self.features) if self.features else "" cmd = BUILD_APP.format(release, features, self.out_dir).split() await tools.run_async(*cmd) @@ -334,19 +312,18 @@ async def __build(self): # problems when these SMs are built at the same time. # Find a way to solve this issue. binary = os.path.join(self.out_dir, "target", SGX_TARGET, - glob.get_build_mode().to_str(), self.folder) + glob.get_build_mode().to_str(), self.folder) logging.info("Built module {}".format(self.name)) return binary - async def __convert_sign(self): binary = await self.binary debug = "--debug" if glob.get_build_mode() == glob.BuildMode.DEBUG else "" sgxs = "{}.sgxs".format(binary, self.name) - + # use this format for the file names to deal with multiple SMs built # from the same source code, but with different vendor keys sig = "{}-{}.sig".format(binary, self.name) @@ -361,7 +338,6 @@ async def __convert_sign(self): return sgxs, sig - async def __attest(self): env = {} env["SP_PRIVKEY"] = await self.get_ra_sp_priv_key() @@ -374,14 +350,14 @@ async def __attest(self): env["AESM_PORT"] = str(self.node.aesm_port) out, _ = await tools.run_async_output(ATTESTER, env=env) - key_arr = eval(out) # from string to array - key = bytes(key_arr) # from array to bytes + key_arr = eval(out) # from string to array + key = bytes(key_arr) # from array to bytes - logging.info("Done Remote Attestation of {}. Key: {}".format(self.name, key_arr)) + logging.info("Done Remote Attestation of {}. Key: {}".format( + self.name, key_arr)) self.key = key self.attested = True - async def __attest_manager(self): data = { "id": self.id, @@ -399,16 +375,16 @@ async def __attest_manager(self): json.dump(data, f) args = "--config {} --request attest-sgx --data {}".format( - self.manager.config, data_file).split() + self.manager.config, data_file).split() out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) - key_arr = eval(out) # from string to array - key = bytes(key_arr) # from array to bytes + key_arr = eval(out) # from string to array + key = bytes(key_arr) # from array to bytes - logging.info("Done Remote Attestation of {}. Key: {}".format(self.name, key_arr)) + logging.info("Done Remote Attestation of {}. Key: {}".format( + self.name, key_arr)) self.key = key self.attested = True - async def __generate_sp_keys(self): async with self.sp_lock: priv = os.path.join(glob.BUILD_DIR, "private_key.pem") @@ -416,13 +392,14 @@ async def __generate_sp_keys(self): ias_cert = os.path.join(glob.BUILD_DIR, "ias_root_ca.pem") # check if already generated in a previous run - if all(map(lambda x : os.path.exists(x), [priv, pub, ias_cert])): + if all(map(lambda x: os.path.exists(x), [priv, pub, ias_cert])): return pub, priv, ias_cert cmd = "openssl" args_private = "genrsa -f4 -out {} 2048".format(priv).split() - args_public = "rsa -in {} -outform PEM -pubout -out {}".format(priv, pub).split() + args_public = "rsa -in {} -outform PEM -pubout -out {}".format( + priv, pub).split() await tools.run_async_shell(cmd, *args_private) await tools.run_async_shell(cmd, *args_public) diff --git a/reactivetools/modules/trustzone.py b/reactivetools/modules/trustzone.py index 0198add..1b857ac 100644 --- a/reactivetools/modules/trustzone.py +++ b/reactivetools/modules/trustzone.py @@ -13,26 +13,31 @@ from ..dumpers import * from ..loaders import * + class Error(Exception): pass -COMPILER = "CROSS_COMPILE=arm-linux-gnueabihf-" -PLATFORM = "PLATFORM=vexpress-qemu_virt" -DEV_KIT = "TA_DEV_KIT_DIR=/optee/optee_os/out/arm/export-ta_arm32" -BUILD_CMD = "make -C {{}}/{{}} {} {} {} {{}} O={{}}".format(COMPILER, PLATFORM, DEV_KIT) + +COMPILER = "CROSS_COMPILE=arm-linux-gnueabihf-" +PLATFORM = "PLATFORM=vexpress-qemu_virt" +DEV_KIT = "TA_DEV_KIT_DIR=/optee/optee_os/out/arm/export-ta_arm32" +BUILD_CMD = "make -C {{}}/{{}} {} {} {} {{}} O={{}}".format( + COMPILER, PLATFORM, DEV_KIT) + class TrustZoneModule(Module): def __init__(self, name, node, priority, deployed, nonce, attested, files_dir, - binary, id, uuid, key, inputs, outputs, entrypoints): - self.out_dir = os.path.join(glob.BUILD_DIR, "trustzone-{}".format(name)) + binary, id, uuid, key, inputs, outputs, entrypoints): + self.out_dir = os.path.join( + glob.BUILD_DIR, "trustzone-{}".format(name)) super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) self.files_dir = files_dir self.id = id self.uuid = uuid - self.inputs = inputs - self.outputs = outputs - self.entrypoints = entrypoints + self.inputs = inputs + self.outputs = outputs + self.entrypoints = entrypoints self.uuid_for_MK = "" @@ -40,7 +45,6 @@ def __init__(self, name, node, priority, deployed, nonce, attested, files_dir, self.__key_fut = tools.init_future(key) self.__attest_fut = tools.init_future(attested if attested else None) - @staticmethod def load(mod_dict, node_obj): name = mod_dict['name'] @@ -58,8 +62,7 @@ def load(mod_dict, node_obj): outputs = mod_dict.get('outputs') entrypoints = mod_dict.get('entrypoints') return TrustZoneModule(name, node, priority, deployed, nonce, attested, files_dir, - binary, id, uuid, key, inputs, outputs, entrypoints) - + binary, id, uuid, key, inputs, outputs, entrypoints) def dump(self): return { @@ -75,9 +78,9 @@ def dump(self): "id": self.id, "uuid": self.uuid, "key": dump(self.key) if self.deployed else None, - "inputs":self.inputs, - "outputs":self.outputs, - "entrypoints":self.entrypoints + "inputs": self.inputs, + "outputs": self.outputs, + "entrypoints": self.entrypoints } # --- Properties --- # @@ -86,7 +89,6 @@ def dump(self): async def binary(self): return await self.build() - @property async def key(self): if self.__key_fut is None: @@ -94,7 +96,6 @@ async def key(self): return await self.__key_fut - # --- Implement abstract methods --- # async def build(self): @@ -103,25 +104,22 @@ async def build(self): return await self.__build_fut - async def deploy(self): await self.node.deploy(self) - async def attest(self): if glob.get_att_man(): await self.__attest_manager() else: if self.__attest_fut is None: - self.__attest_fut = asyncio.ensure_future(self.node.attest(self)) + self.__attest_fut = asyncio.ensure_future( + self.node.attest(self)) await self.__attest_fut - async def get_id(self): return self.id - async def get_input_id(self, input): if isinstance(input, int): return input @@ -133,7 +131,6 @@ async def get_input_id(self, input): return inputs[input] - async def get_output_id(self, output): if isinstance(output, int): return output @@ -145,7 +142,6 @@ async def get_output_id(self, output): return outputs[output] - async def get_entry_id(self, entry): if entry.isnumeric(): return int(entry) @@ -157,16 +153,13 @@ async def get_entry_id(self, entry): return entrypoints[entry] - async def get_key(self): return await self.key - @staticmethod def get_supported_nodes(): return [TrustZoneNode] - @staticmethod def get_supported_encryption(): return [Encryption.AES, Encryption.SPONGENT] @@ -175,10 +168,12 @@ def get_supported_encryption(): async def __build(self): hex = '%032x' % (self.uuid) - self.uuid_for_MK = '%s-%s-%s-%s-%s' % (hex[:8], hex[8:12], hex[12:16], hex[16:20], hex[20:]) + self.uuid_for_MK = '%s-%s-%s-%s-%s' % ( + hex[:8], hex[8:12], hex[12:16], hex[16:20], hex[20:]) binary_name = "BINARY=" + self.uuid_for_MK - cmd = BUILD_CMD.format(self.files_dir, self.name, binary_name, self.out_dir) + cmd = BUILD_CMD.format(self.files_dir, self.name, + binary_name, self.out_dir) await tools.run_async_shell(cmd) @@ -186,7 +181,6 @@ async def __build(self): return binary - async def __calculate_key(self): binary = await self.binary node_key = self.node.node_key @@ -197,11 +191,11 @@ async def __calculate_key(self): key_size = Encryption.AES.get_key_size() if key_size > 32: - raise Error("SHA256 cannot compute digests with length {}".format(key_size)) + raise Error( + "SHA256 cannot compute digests with length {}".format(key_size)) return hashlib.sha256(node_key + module_hash).digest()[:key_size] - async def __attest_manager(self): data = { "id": self.id, @@ -216,13 +210,15 @@ async def __attest_manager(self): json.dump(data, f) args = "--config {} --request attest-trustzone --data {}".format( - self.manager.config, data_file).split() + self.manager.config, data_file).split() out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) - key_arr = eval(out) # from string to array - key = bytes(key_arr) # from array to bytes + key_arr = eval(out) # from string to array + key = bytes(key_arr) # from array to bytes if await self.key != key: - raise Error("Received key is different from {} key".format(self.name)) + raise Error( + "Received key is different from {} key".format(self.name)) - logging.info("Done Remote Attestation of {}. Key: {}".format(self.name, key_arr)) + logging.info("Done Remote Attestation of {}. Key: {}".format( + self.name, key_arr)) self.attested = True diff --git a/reactivetools/nodes/__init__.py b/reactivetools/nodes/__init__.py index e900418..414b989 100644 --- a/reactivetools/nodes/__init__.py +++ b/reactivetools/nodes/__init__.py @@ -5,17 +5,17 @@ from .trustzone import TrustZoneNode node_rules = { - "sancus" : "sancus.yaml", - "sgx" : "sgx.yaml", - "native" : "native.yaml", - "trustzone" : "trustzone.yaml" + "sancus": "sancus.yaml", + "sgx": "sgx.yaml", + "native": "native.yaml", + "trustzone": "trustzone.yaml" } node_funcs = { - "sancus" : SancusNode.load, - "sgx" : SGXNode.load, - "native" : NativeNode.load, - "trustzone" : TrustZoneNode.load + "sancus": SancusNode.load, + "sgx": SGXNode.load, + "native": NativeNode.load, + "trustzone": TrustZoneNode.load } node_cleanup_coros = [ diff --git a/reactivetools/nodes/base.py b/reactivetools/nodes/base.py index 0c1e0e3..f61f7b7 100644 --- a/reactivetools/nodes/base.py +++ b/reactivetools/nodes/base.py @@ -9,9 +9,11 @@ from .. import tools + class Error(Exception): pass + class Node(ABC): def __init__(self, name, ip_address, reactive_port, deploy_port, need_lock=False): """ @@ -36,7 +38,6 @@ def __init__(self, name, ip_address, reactive_port, deploy_port, need_lock=False else: self.__lock = None - """ ### Description ### Creates a XXXNode object from a dict @@ -54,7 +55,6 @@ def __init__(self, name, ip_address, reactive_port, deploy_port, need_lock=False def load(node_dict): pass - """ ### Description ### Creates a dict from the XXXNode object (opposite procedure wrt. load) @@ -73,7 +73,6 @@ def load(node_dict): def dump(self): pass - """ ### Description ### Coroutine. Deploy a module to the node @@ -95,7 +94,6 @@ def dump(self): async def deploy(self, module): pass - """ ### Description ### Coroutine. Sets the key of a specific connection @@ -123,13 +121,11 @@ async def deploy(self, module): async def set_key(self, module, conn_id, conn_io, encryption, key): pass - """ Default implementation of some functions. Override them in the subclasses if you need a different implementation. """ - """ ### Description ### Static coroutine. Cleanup operations to do before the application terminates @@ -142,7 +138,6 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): async def cleanup(): pass - """ ### Description ### Coroutine. Inform the EM of the source module that a new connection has @@ -158,21 +153,20 @@ async def cleanup(): async def connect(self, to_module, conn_id): module_id = await to_module.get_id() - payload = tools.pack_int16(conn_id) + \ - tools.pack_int16(module_id) + \ - tools.pack_int8(int(to_module.node is self)) + \ - tools.pack_int16(to_module.node.reactive_port) + \ - to_module.node.ip_address.packed + payload = tools.pack_int16(conn_id) + \ + tools.pack_int16(module_id) + \ + tools.pack_int8(int(to_module.node is self)) + \ + tools.pack_int16(to_module.node.reactive_port) + \ + to_module.node.ip_address.packed command = CommandMessage(ReactiveCommand.Connect, - Message(payload), - self.ip_address, - self.reactive_port) + Message(payload), + self.ip_address, + self.reactive_port) await self._send_reactive_command( - command, - log='Connecting id {} to {}'.format(conn_id, to_module.name)) - + command, + log='Connecting id {} to {}'.format(conn_id, to_module.name)) """ ### Description ### @@ -192,20 +186,20 @@ async def call(self, module, entry, arg=None, output=None): module_id, entry_id = \ await asyncio.gather(module.get_id(), module.get_entry_id(entry)) - payload = tools.pack_int16(module_id) + \ - tools.pack_int16(entry_id) + \ - (b'' if arg is None else arg) + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(entry_id) + \ + (b'' if arg is None else arg) command = CommandMessage(ReactiveCommand.Call, - Message(payload), - self.ip_address, - self.reactive_port) + Message(payload), + self.ip_address, + self.reactive_port) response = await self._send_reactive_command( - command, - log='Sending call command to {}:{} ({}:{}) on {}'.format( - module.name, entry, module_id, entry_id, self.name) - ) + command, + log='Sending call command to {}:{} ({}:{}) on {}'.format( + module.name, entry, module_id, entry_id, self.name) + ) if not response.ok(): logging.error("Received error code {}".format(str(response.code))) @@ -218,7 +212,6 @@ async def call(self, module, entry, arg=None, output=None): with open(output, "wb") as f: f.write(plaintext) - """ ### Description ### Coroutine. Trigger the 'output' event of a direct connection @@ -241,23 +234,22 @@ async def output(self, connection, arg=None): data = arg cipher = await connection.encryption.encrypt(connection.key, - tools.pack_int16(connection.nonce), data) + tools.pack_int16(connection.nonce), data) - payload = tools.pack_int16(module_id) + \ - tools.pack_int16(connection.id) + \ - cipher + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(connection.id) + \ + cipher command = CommandMessage(ReactiveCommand.RemoteOutput, - Message(payload), - self.ip_address, - self.reactive_port) + Message(payload), + self.ip_address, + self.reactive_port) await self._send_reactive_command( - command, - log='Sending handle_output command of connection {}:{} to {} on {}'.format( - connection.id, connection.name, connection.to_module.name, self.name) - ) - + command, + log='Sending handle_output command of connection {}:{} to {} on {}'.format( + connection.id, connection.name, connection.to_module.name, self.name) + ) """ ### Description ### @@ -281,22 +273,22 @@ async def request(self, connection, arg=None, output=None): data = arg cipher = await connection.encryption.encrypt(connection.key, - tools.pack_int16(connection.nonce), data) + tools.pack_int16(connection.nonce), data) - payload = tools.pack_int16(module_id) + \ - tools.pack_int16(connection.id) + \ - cipher + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(connection.id) + \ + cipher command = CommandMessage(ReactiveCommand.RemoteRequest, - Message(payload), - self.ip_address, - self.reactive_port) + Message(payload), + self.ip_address, + self.reactive_port) response = await self._send_reactive_command( - command, - log='Sending handle_request command of connection {}:{} to {} on {}'.format( - connection.id, connection.name, connection.to_module.name, self.name) - ) + command, + log='Sending handle_request command of connection {}:{} to {} on {}'.format( + connection.id, connection.name, connection.to_module.name, self.name) + ) if not response.ok(): logging.error("Received error code {}".format(str(response.code))) @@ -304,7 +296,7 @@ async def request(self, connection, arg=None, output=None): resp_encrypted = response.message.payload plaintext = await connection.encryption.decrypt(connection.key, - tools.pack_int16(connection.nonce + 1), resp_encrypted) + tools.pack_int16(connection.nonce + 1), resp_encrypted) if output is None: logging.info("Response: \"{}\"".format( @@ -313,8 +305,6 @@ async def request(self, connection, arg=None, output=None): with open(output, "wb") as f: f.write(plaintext) - - """ ### Description ### Coroutine. Register an entry point for periodic tasks @@ -332,21 +322,20 @@ async def register_entrypoint(self, module, entry, frequency): module_id, entry_id = \ await asyncio.gather(module.get_id(), module.get_entry_id(entry)) - payload = tools.pack_int16(module_id) + \ - tools.pack_int16(entry_id) + \ - tools.pack_int32(frequency) + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(entry_id) + \ + tools.pack_int32(frequency) command = CommandMessage(ReactiveCommand.RegisterEntrypoint, - Message(payload), - self.ip_address, - self.reactive_port) + Message(payload), + self.ip_address, + self.reactive_port) await self._send_reactive_command( - command, - log='Sending RegisterEntrypoint command of {}:{} ({}:{}) on {}'.format( - module.name, entry, module_id, entry_id, self.name) - ) - + command, + log='Sending RegisterEntrypoint command of {}:{} ({}:{}) on {}'.format( + module.name, entry, module_id, entry_id, self.name) + ) """ ### Description ### @@ -366,8 +355,6 @@ async def _send_reactive_command(self, command, log=None): else: return await self.__send_reactive_command(command, log) - - """ ### Description ### Static coroutine. Helper function used to send a ReactiveCommand message to the node @@ -386,10 +373,10 @@ async def __send_reactive_command(command, log): logging.info(log) if command.has_response(): - response = await command.send_wait() + response = await command.send_wait() if not response.ok(): raise Error('Reactive command {} failed with code {}' - .format(str(command.code), str(response.code))) + .format(str(command.code), str(response.code))) return response else: diff --git a/reactivetools/nodes/native.py b/reactivetools/nodes/native.py index cb90805..930c758 100644 --- a/reactivetools/nodes/native.py +++ b/reactivetools/nodes/native.py @@ -8,6 +8,7 @@ from ..dumpers import * from ..loaders import * + class NativeNode(SGXBase): type = "native" @@ -20,8 +21,7 @@ def load(node_dict): module_id = node_dict.get('module_id') return NativeNode(name, ip_address, reactive_port, deploy_port, - module_id) - + module_id) def dump(self): return { @@ -33,7 +33,6 @@ def dump(self): "module_id": self._moduleid } - async def deploy(self, module): if module.deployed: return @@ -41,16 +40,16 @@ async def deploy(self, module): async with aiofile.AIOFile(await module.binary, "rb") as f: binary = await f.read() - payload = tools.pack_int32(len(binary)) + \ - binary + payload = tools.pack_int32(len(binary)) + \ + binary command = CommandMessageLoad(payload, - self.ip_address, - self.deploy_port) + self.ip_address, + self.deploy_port) await self._send_reactive_command( command, log='Deploying {} on {}'.format(module.name, self.name) - ) + ) module.deployed = True diff --git a/reactivetools/nodes/sancus.py b/reactivetools/nodes/sancus.py index 50233d0..fc49bf2 100644 --- a/reactivetools/nodes/sancus.py +++ b/reactivetools/nodes/sancus.py @@ -12,15 +12,16 @@ from ..dumpers import * from ..loaders import * + class Error(Exception): pass class SetKeyResultCode(IntEnum): - Ok = 0x0 + Ok = 0x0 IllegalConnection = 0x1 - MalformedPayload = 0x2 - InternalError = 0x3 + MalformedPayload = 0x2 + InternalError = 0x3 class SancusNode(Node): @@ -31,7 +32,6 @@ def __init__(self, name, vendor_id, vendor_key, self.vendor_id = vendor_id self.vendor_key = vendor_key - @staticmethod def load(node_dict): name = node_dict['name'] @@ -44,7 +44,6 @@ def load(node_dict): return SancusNode(name, vendor_id, vendor_key, ip_address, reactive_port, deploy_port) - def dump(self): return { "type": "sancus", @@ -56,7 +55,6 @@ def dump(self): "deploy_port": self.deploy_port } - async def deploy(self, module): assert module.node is self @@ -67,25 +65,24 @@ async def deploy(self, module): file_data = await f.read() # The packet format is [NAME \0 VID ELF_FILE] - payload = module.name.encode('ascii') + b'\0' + \ - tools.pack_int16(self.vendor_id) + \ - file_data + payload = module.name.encode('ascii') + b'\0' + \ + tools.pack_int16(self.vendor_id) + \ + file_data command = CommandMessage(ReactiveCommand.Load, - Message(payload), - self.ip_address, - self.deploy_port) + Message(payload), + self.ip_address, + self.deploy_port) res = await self._send_reactive_command( - command, - log='Deploying {} on {}'.format(module.name, self.name) - ) - + command, + log='Deploying {} on {}'.format(module.name, self.name) + ) sm_id = tools.unpack_int16(res.message.payload[:2]) if sm_id == 0: raise Error('Deploying {} on {} failed' - .format(module.name, self.name)) + .format(module.name, self.name)) symtab = res.message.payload[2:] symtab_file = tools.create_tmp(suffix='.ld', dir=module.out_dir) @@ -93,12 +90,11 @@ async def deploy(self, module): # aiofile for write operations is bugged (version 3.3.3) # I get a "bad file descriptor" error after writes. with open(symtab_file, "wb") as f: - f.write(symtab[:-1]) # Drop last 0 byte + f.write(symtab[:-1]) # Drop last 0 byte module.deployed = True return sm_id, symtab_file - async def attest(self, module): assert module.node is self @@ -108,20 +104,20 @@ async def attest(self, module): # The payload format is [sm_id, entry_id, 16 bit nonce, index, wrapped(key), tag] # where the tag includes the nonce and the index. - payload = tools.pack_int16(module_id) + \ - tools.pack_int16(ReactiveEntrypoint.Attest) + \ - tools.pack_int16(len(challenge)) + \ - challenge + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(ReactiveEntrypoint.Attest) + \ + tools.pack_int16(len(challenge)) + \ + challenge command = CommandMessage(ReactiveCommand.Call, - Message(payload), - self.ip_address, - self.reactive_port) + Message(payload), + self.ip_address, + self.reactive_port) res = await self._send_reactive_command( - command, - log='Attesting {}'.format(module.name) - ) + command, + log='Attesting {}'.format(module.name) + ) # The result format is [tag] where the tag is the challenge's MAC challenge_response = res.message.payload @@ -133,13 +129,12 @@ async def attest(self, module): logging.info("Attestation of {} succeeded".format(module.name)) module.attested = True - async def set_key(self, module, conn_id, conn_io, encryption, key): assert module.node is self assert encryption in module.get_supported_encryption() module_id, module_key, io_id = await asyncio.gather( - module.id, module.key, conn_io.get_index(module)) + module.id, module.key, conn_io.get_index(module)) nonce = tools.pack_int16(module.nonce) io_id = tools.pack_int16(io_id) @@ -152,19 +147,19 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): # The payload format is [sm_id, entry_id, 16 bit nonce, index, wrapped(key), tag] # where the tag includes the nonce and the index. - payload = tools.pack_int16(module_id) + \ - tools.pack_int16(ReactiveEntrypoint.SetKey) + \ - ad + \ - cipher + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(ReactiveEntrypoint.SetKey) + \ + ad + \ + cipher command = CommandMessage(ReactiveCommand.Call, - Message(payload), - self.ip_address, - self.reactive_port) + Message(payload), + self.ip_address, + self.reactive_port) await self._send_reactive_command( - command, - log='Setting key of {}:{} on {} to {}'.format( - module.name, conn_io.name, self.name, - binascii.hexlify(key).decode('ascii')) - ) + command, + log='Setting key of {}:{} on {} to {}'.format( + module.name, conn_io.name, self.name, + binascii.hexlify(key).decode('ascii')) + ) diff --git a/reactivetools/nodes/sgx.py b/reactivetools/nodes/sgx.py index 08f89ce..48a4531 100644 --- a/reactivetools/nodes/sgx.py +++ b/reactivetools/nodes/sgx.py @@ -14,21 +14,21 @@ from ..dumpers import * from ..loaders import * + class Error(Exception): pass + class SGXBase(Node): def __init__(self, name, ip_address, reactive_port, deploy_port, module_id): super().__init__(name, ip_address, reactive_port, deploy_port) self._moduleid = module_id if module_id else 1 - @abstractmethod async def deploy(self, module): pass - async def set_key(self, module, conn_id, conn_io, encryption, key): assert module.node is self assert encryption in module.get_supported_encryption() @@ -37,30 +37,29 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): nonce = module.nonce module.nonce += 1 - ad = tools.pack_int8(encryption) + \ - tools.pack_int16(conn_id) + \ - tools.pack_int16(io_id) + \ - tools.pack_int16(nonce) + ad = tools.pack_int8(encryption) + \ + tools.pack_int16(conn_id) + \ + tools.pack_int16(io_id) + \ + tools.pack_int16(nonce) cipher = await Encryption.AES.encrypt(await module.get_key(), ad, key) - payload = tools.pack_int16(module.id) + \ - tools.pack_int16(ReactiveEntrypoint.SetKey) + \ - ad + \ - cipher + payload = tools.pack_int16(module.id) + \ + tools.pack_int16(ReactiveEntrypoint.SetKey) + \ + ad + \ + cipher command = CommandMessage(ReactiveCommand.Call, - Message(payload), - self.ip_address, - self.reactive_port) + Message(payload), + self.ip_address, + self.reactive_port) await self._send_reactive_command( - command, - log='Setting key of connection {} ({}:{}) on {} to {}'.format( - conn_id, module.name, conn_io.name, self.name, - binascii.hexlify(key).decode('ascii')) - ) - + command, + log='Setting key of connection {} ({}:{}) on {} to {}'.format( + conn_id, module.name, conn_io.name, self.name, + binascii.hexlify(key).decode('ascii')) + ) def get_module_id(self): id = self._moduleid @@ -73,7 +72,7 @@ class SGXNode(SGXBase): type = "sgx" def __init__(self, name, ip_address, reactive_port, deploy_port, module_id, - aesm_host, aesm_port): + aesm_host, aesm_port): super().__init__(name, ip_address, reactive_port, deploy_port, module_id) self.aesm_host = aesm_host or ip_address @@ -90,8 +89,7 @@ def load(node_dict): aesm_port = node_dict.get('aesm_port') return SGXNode(name, ip_address, reactive_port, deploy_port, - module_id, aesm_host, aesm_port) - + module_id, aesm_host, aesm_port) def dump(self): return { @@ -105,7 +103,6 @@ def dump(self): "aesm_port": self.aesm_port } - async def deploy(self, module): if module.deployed: return @@ -116,19 +113,18 @@ async def deploy(self, module): async with aiofile.AIOFile(await module.sig, "rb") as f: sig = await f.read() - - payload = tools.pack_int32(len(sgxs)) + \ - sgxs + \ - tools.pack_int32(len(sig)) + \ - sig + payload = tools.pack_int32(len(sgxs)) + \ + sgxs + \ + tools.pack_int32(len(sig)) + \ + sig command = CommandMessageLoad(payload, - self.ip_address, - self.deploy_port) + self.ip_address, + self.deploy_port) await self._send_reactive_command( command, log='Deploying {} on {}'.format(module.name, self.name) - ) + ) module.deployed = True diff --git a/reactivetools/nodes/trustzone.py b/reactivetools/nodes/trustzone.py index f803710..6e48a66 100644 --- a/reactivetools/nodes/trustzone.py +++ b/reactivetools/nodes/trustzone.py @@ -16,13 +16,13 @@ class Error(Exception): pass + class TrustZoneNode(Node): def __init__(self, name, ip_address, reactive_port, deploy_port, node_key): super().__init__(name, ip_address, reactive_port, deploy_port, need_lock=False) self.node_key = node_key - @staticmethod def load(node_dict): name = node_dict['name'] @@ -33,7 +33,6 @@ def load(node_dict): return TrustZoneNode(name, ip_address, reactive_port, deploy_port, node_key) - def dump(self): return { "type": "trustzone", @@ -44,7 +43,6 @@ def dump(self): "node_key": dump(self.node_key) } - async def deploy(self, module): assert module.node is self @@ -61,17 +59,16 @@ async def deploy(self, module): payload = size + id + uid + file_data command = CommandMessageLoad(payload, - self.ip_address, - self.deploy_port) + self.ip_address, + self.deploy_port) await self._send_reactive_command( command, log='Deploying {} on {}'.format(module.name, self.name) - ) + ) module.deployed = True - async def attest(self, module): assert module.node is self @@ -79,20 +76,20 @@ async def attest(self, module): challenge = tools.generate_key(16) - payload = tools.pack_int16(module_id) + \ - tools.pack_int16(ReactiveEntrypoint.Attest) + \ - tools.pack_int16(len(challenge)) + \ - challenge + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(ReactiveEntrypoint.Attest) + \ + tools.pack_int16(len(challenge)) + \ + challenge command = CommandMessage(ReactiveCommand.Call, - Message(payload), - self.ip_address, - self.reactive_port) + Message(payload), + self.ip_address, + self.reactive_port) res = await self._send_reactive_command( - command, - log='Attesting {}'.format(module.name) - ) + command, + log='Attesting {}'.format(module.name) + ) # The result format is [tag] where the tag is the challenge's MAC challenge_response = res.message.payload @@ -107,7 +104,6 @@ async def attest(self, module): logging.info("Attestation of {} succeeded".format(module.name)) module.attested = True - async def set_key(self, module, conn_id, conn_io, encryption, key): assert module.node is self assert encryption in module.get_supported_encryption() @@ -119,26 +115,26 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): nonce = module.nonce module.nonce += 1 - ad = tools.pack_int8(encryption) + \ - tools.pack_int16(conn_id) + \ - tools.pack_int16(io_id) + \ - tools.pack_int16(nonce) + ad = tools.pack_int8(encryption) + \ + tools.pack_int16(conn_id) + \ + tools.pack_int16(io_id) + \ + tools.pack_int16(nonce) cipher = await encryption.AES.encrypt(module_key, ad, key) - payload = tools.pack_int16(module_id) + \ - tools.pack_int16(ReactiveEntrypoint.SetKey) + \ - ad + \ - cipher + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(ReactiveEntrypoint.SetKey) + \ + ad + \ + cipher command = CommandMessage(ReactiveCommand.Call, - Message(payload), - self.ip_address, - self.reactive_port) + Message(payload), + self.ip_address, + self.reactive_port) await self._send_reactive_command( - command, - log='Setting key of connection {} ({}:{}) on {} to {}'.format( - conn_id, module.name, conn_io.name, self.name, - binascii.hexlify(key).decode('ascii')) - ) + command, + log='Setting key of connection {} ({}:{}) on {} to {}'.format( + conn_id, module.name, conn_io.name, self.name, + binascii.hexlify(key).decode('ascii')) + ) diff --git a/reactivetools/periodic_event.py b/reactivetools/periodic_event.py index 774be30..1a11b44 100644 --- a/reactivetools/periodic_event.py +++ b/reactivetools/periodic_event.py @@ -1,6 +1,7 @@ import asyncio import logging + class PeriodicEvent: def __init__(self, name, id, module, entry, frequency, established): self.name = name @@ -10,7 +11,6 @@ def __init__(self, name, id, module, entry, frequency, established): self.frequency = frequency self.established = established - @staticmethod def load(event_dict, config): id = event_dict.get('id') @@ -20,14 +20,13 @@ def load(event_dict, config): established = event_dict.get('established') if id is None: - id = config.events_current_id # incremental ID + id = config.events_current_id # incremental ID config.events_current_id += 1 name = event_dict.get('name') or "event{}".format(id) return PeriodicEvent(name, id, module, entry, frequency, established) - def dump(self): return { "name": self.name, @@ -36,8 +35,7 @@ def dump(self): "entry": self.entry, "frequency": self.frequency, "established": self.established - } - + } async def register(self): if self.established: diff --git a/reactivetools/rules/evaluators.py b/reactivetools/rules/evaluators.py index 4bdae9c..2678949 100644 --- a/reactivetools/rules/evaluators.py +++ b/reactivetools/rules/evaluators.py @@ -4,6 +4,7 @@ from ..descriptor import DescriptorType + def is_present(dict, key): return key in dict and dict[key] is not None diff --git a/reactivetools/tools.py b/reactivetools/tools.py index fd9ae43..5da5bbc 100644 --- a/reactivetools/tools.py +++ b/reactivetools/tools.py @@ -10,6 +10,7 @@ from . import glob + class ProcessRunError(Exception): def __init__(self, args, result): self.args = args @@ -17,7 +18,7 @@ def __init__(self, args, result): def __str__(self): return 'Command "{}" exited with code {}' \ - .format(' '.join(self.args), self.result) + .format(' '.join(self.args), self.result) class Error(Exception): @@ -59,9 +60,10 @@ async def run_async(*args, output_file=os.devnull, env=None): logging.debug(' '.join(args)) process = await asyncio.create_subprocess_exec(*args, - stdout=open(output_file, 'wb'), - stderr=get_stderr(), - env=env) + stdout=open( + output_file, 'wb'), + stderr=get_stderr(), + env=env) result = await process.wait() if result != 0: @@ -71,9 +73,10 @@ async def run_async(*args, output_file=os.devnull, env=None): async def run_async_background(*args, env=None): logging.debug(' '.join(args)) process = await asyncio.create_subprocess_exec(*args, - stdout=open(os.devnull, 'wb'), - stderr=get_stderr(), - env=env) + stdout=open( + os.devnull, 'wb'), + stderr=get_stderr(), + env=env) return process @@ -82,9 +85,9 @@ async def run_async_output(*args, env=None): cmd = ' '.join(args) logging.debug(cmd) process = await asyncio.create_subprocess_exec(*args, - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - env=env) + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=env) out, err = await process.communicate() result = await process.wait() @@ -98,9 +101,10 @@ async def run_async_shell(*args, env=None): cmd = ' '.join(args) logging.debug(cmd) process = await asyncio.create_subprocess_shell(cmd, - stdout=open(os.devnull, 'wb'), - stderr=get_stderr(), - env=env) + stdout=open( + os.devnull, 'wb'), + stderr=get_stderr(), + env=env) result = await process.wait() if result != 0: @@ -125,7 +129,6 @@ def resolve_ip(host): raise Error("Invalid host: {}".format(host)) - def create_tmp(suffix='', dir=''): dir = os.path.join(glob.BUILD_DIR, dir) fd, path = tempfile.mkstemp(suffix=suffix, dir=dir) @@ -144,17 +147,22 @@ def generate_key(length): def pack_int8(i): return struct.pack('!B', i) + def unpack_int8(i): return struct.unpack('!B', i)[0] + def pack_int16(i): return struct.pack('!H', i) + def unpack_int16(i): return struct.unpack('!H', i)[0] + def pack_int32(i): return struct.pack('!I', i) + def unpack_int32(i): return struct.unpack('!I', i)[0] From a5caffca017b00ac865a3032d336c1e0a0d247a0 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 8 Nov 2021 16:14:02 +0000 Subject: [PATCH 62/81] Fix sancus-crypto command in _calculate_key --- reactivetools/modules/sancus.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reactivetools/modules/sancus.py b/reactivetools/modules/sancus.py index a92edb3..cf2863c 100644 --- a/reactivetools/modules/sancus.py +++ b/reactivetools/modules/sancus.py @@ -234,13 +234,13 @@ async def _calculate_key(self): linked_binary = await self.__link() args = "{} --gen-sm-key {} --key {}".format( - linked_binary, self.name, self.node.vendor_key + linked_binary, self.name, dump(self.node.vendor_key) ).split() key, _ = await tools.run_async_output("sancus-crypto", *args) - logging.info('Module key for %s: %s', self.name, key) + logging.info('Module key for %s: %s', self.name, dump(key)) - return binascii.unhexlify(key) + return key async def __link(self): linked_binary = tools.create_tmp(suffix='.elf', dir=self.out_dir) From 6be939dab2d73c481fbaad673995b7b28323a9b9 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Wed, 10 Nov 2021 16:15:39 +0000 Subject: [PATCH 63/81] code improvements - update CI - remove examples (not used anymore here, we have a separate repo for them) - improve code using autopep8 and pylint - update README --- .dockerignore | 2 - .github/workflows/ci.yml | 75 +- .pylintrc | 605 ++++++++++++++++ README.md | 10 +- examples/README.md | 3 - examples/button-led-native/README.md | 45 -- .../button_driver/Cargo.toml | 9 - .../button_driver/src/lib.rs | 8 - examples/button-led-native/db/Cargo.toml | 9 - examples/button-led-native/db/src/lib.rs | 20 - examples/button-led-native/deploy.sh | 26 - .../button-led-native/descriptor-local.json | 107 --- examples/button-led-native/descriptor.json | 107 --- examples/button-led-native/docker-compose.yml | 60 -- examples/button-led-native/gateway/Cargo.toml | 9 - examples/button-led-native/gateway/src/lib.rs | 13 - examples/button-led-native/init-webserver.sh | 11 - .../button-led-native/led_driver/Cargo.toml | 9 - .../button-led-native/led_driver/src/lib.rs | 16 - examples/button-led-native/manager.yaml | 3 - .../button-led-native/webserver/Cargo.toml | 11 - .../button-led-native/webserver/src/lib.rs | 158 ---- examples/button-led/README.md | 44 -- examples/button-led/button_driver.c | 10 - examples/button-led/cred/ias_root_ca.pem | 31 - examples/button-led/cred/manager.sig | Bin 1808 -> 0 bytes examples/button-led/cred/manager_privkey.pem | 27 - examples/button-led/cred/manager_pubkey.pem | 9 - examples/button-led/cred/modules_privkey.pem | 27 - examples/button-led/cred/modules_pubkey.pem | 9 - examples/button-led/cred/settings.json | 16 - examples/button-led/cred/vendor_key.pem | 39 - examples/button-led/db/Cargo.toml | 9 - examples/button-led/db/src/lib.rs | 20 - examples/button-led/deploy.sh | 38 - examples/button-led/descriptor-local.json | 137 ---- examples/button-led/descriptor.json | 137 ---- examples/button-led/docker-compose.yml | 75 -- examples/button-led/gateway/Makefile | 12 - .../button-led/gateway/authentic_execution.c | 656 ----------------- examples/button-led/gateway/controller.c | 81 --- .../gateway/include/authentic_execution.h | 32 - .../button-led/gateway/include/controller.h | 24 - .../gateway/include/pta_attestation.h | 19 - .../button-led/gateway/include/spongent.h | 141 ---- examples/button-led/gateway/spongent.c | 530 -------------- examples/button-led/gateway/sub.mk | 7 - .../gateway/user_ta_header_defines.h | 21 - examples/button-led/init-webserver.sh | 11 - examples/button-led/init_sgx.yaml | 3 - examples/button-led/manager.yaml | 3 - examples/button-led/run_attester.py | 38 - examples/button-led/webserver/Cargo.toml | 11 - examples/button-led/webserver/src/lib.rs | 158 ---- examples/example_hybrid/input.json | 71 -- examples/example_hybrid/manager.yaml | 3 - examples/example_hybrid/sm1/Cargo.toml | 9 - examples/example_hybrid/sm1/src/lib.rs | 11 - examples/example_hybrid/sm2/Cargo.toml | 9 - examples/example_hybrid/sm2/src/lib.rs | 20 - examples/example_hybrid/sm3.c | 28 - examples/example_hybrid/sm4.c | 16 - examples/example_native/input.json | 38 - examples/example_native/manager.yaml | 3 - examples/example_native/sm1/Cargo.toml | 9 - examples/example_native/sm1/src/lib.rs | 31 - examples/example_native/sm2/Cargo.toml | 9 - examples/example_native/sm2/src/lib.rs | 17 - examples/example_sancus/input.json | 44 -- examples/example_sancus/manager.yaml | 3 - examples/example_sancus/sm1.c | 49 -- examples/example_sancus/sm2.c | 27 - examples/example_sgx/input.json | 42 -- examples/example_sgx/manager.yaml | 3 - examples/example_sgx/sm1/Cargo.toml | 9 - examples/example_sgx/sm1/src/lib.rs | 31 - examples/example_sgx/sm2/Cargo.toml | 9 - examples/example_sgx/sm2/src/lib.rs | 17 - .../example_trustzone/button_driver/Makefile | 12 - .../button_driver/authentic_execution.c | 684 ------------------ .../button_driver/button_driver.c | 34 - .../include/authentic_execution.h | 32 - .../button_driver/include/button_driver.h | 15 - .../button_driver/include/pta_attestation.h | 19 - .../button_driver/include/spongent.h | 141 ---- .../button_driver/spongent.c | 530 -------------- .../example_trustzone/button_driver/sub.mk | 7 - .../button_driver/user_ta_header_defines.h | 21 - .../button_driver_native/Cargo.toml | 9 - .../button_driver_native/src/lib.rs | 11 - .../example_trustzone/led_driver/Makefile | 12 - .../led_driver/authentic_execution.c | 684 ------------------ .../led_driver/include/authentic_execution.h | 32 - .../led_driver/include/led_driver.h | 16 - .../led_driver/include/pta_attestation.h | 19 - .../led_driver/include/spongent.h | 141 ---- .../example_trustzone/led_driver/led_driver.c | 26 - .../example_trustzone/led_driver/spongent.c | 530 -------------- examples/example_trustzone/led_driver/sub.mk | 7 - .../led_driver/user_ta_header_defines.h | 21 - .../led_driver_native/Cargo.toml | 9 - .../led_driver_native/src/lib.rs | 16 - examples/example_trustzone/manager.yaml | 3 - examples/example_trustzone/native-to-tz.json | 45 -- examples/example_trustzone/tz-to-native.json | 46 -- examples/example_trustzone/tz-to-tz.json | 43 -- reactivetools/cli.py | 13 +- reactivetools/config.py | 44 +- reactivetools/connection.py | 30 +- reactivetools/crypto.py | 21 +- reactivetools/descriptor.py | 16 +- reactivetools/dumpers.py | 4 +- reactivetools/glob.py | 10 - reactivetools/loaders.py | 10 +- reactivetools/manager.py | 15 +- reactivetools/modules/base.py | 326 ++++----- reactivetools/modules/native.py | 29 +- reactivetools/modules/sancus.py | 43 +- reactivetools/modules/sgx.py | 41 +- reactivetools/modules/trustzone.py | 28 +- reactivetools/nodes/base.py | 306 ++++---- reactivetools/nodes/native.py | 5 +- reactivetools/nodes/sancus.py | 8 +- reactivetools/nodes/sgx.py | 16 +- reactivetools/nodes/trustzone.py | 13 +- reactivetools/periodic_event.py | 15 +- reactivetools/rules/evaluators.py | 13 +- reactivetools/tools.py | 32 +- 128 files changed, 1127 insertions(+), 7275 deletions(-) create mode 100644 .pylintrc delete mode 100644 examples/README.md delete mode 100644 examples/button-led-native/README.md delete mode 100644 examples/button-led-native/button_driver/Cargo.toml delete mode 100644 examples/button-led-native/button_driver/src/lib.rs delete mode 100644 examples/button-led-native/db/Cargo.toml delete mode 100644 examples/button-led-native/db/src/lib.rs delete mode 100644 examples/button-led-native/deploy.sh delete mode 100644 examples/button-led-native/descriptor-local.json delete mode 100644 examples/button-led-native/descriptor.json delete mode 100644 examples/button-led-native/docker-compose.yml delete mode 100644 examples/button-led-native/gateway/Cargo.toml delete mode 100644 examples/button-led-native/gateway/src/lib.rs delete mode 100644 examples/button-led-native/init-webserver.sh delete mode 100644 examples/button-led-native/led_driver/Cargo.toml delete mode 100644 examples/button-led-native/led_driver/src/lib.rs delete mode 100644 examples/button-led-native/manager.yaml delete mode 100644 examples/button-led-native/webserver/Cargo.toml delete mode 100644 examples/button-led-native/webserver/src/lib.rs delete mode 100644 examples/button-led/README.md delete mode 100644 examples/button-led/button_driver.c delete mode 100644 examples/button-led/cred/ias_root_ca.pem delete mode 100644 examples/button-led/cred/manager.sig delete mode 100644 examples/button-led/cred/manager_privkey.pem delete mode 100644 examples/button-led/cred/manager_pubkey.pem delete mode 100644 examples/button-led/cred/modules_privkey.pem delete mode 100644 examples/button-led/cred/modules_pubkey.pem delete mode 100644 examples/button-led/cred/settings.json delete mode 100644 examples/button-led/cred/vendor_key.pem delete mode 100644 examples/button-led/db/Cargo.toml delete mode 100644 examples/button-led/db/src/lib.rs delete mode 100644 examples/button-led/deploy.sh delete mode 100644 examples/button-led/descriptor-local.json delete mode 100644 examples/button-led/descriptor.json delete mode 100644 examples/button-led/docker-compose.yml delete mode 100644 examples/button-led/gateway/Makefile delete mode 100644 examples/button-led/gateway/authentic_execution.c delete mode 100644 examples/button-led/gateway/controller.c delete mode 100644 examples/button-led/gateway/include/authentic_execution.h delete mode 100644 examples/button-led/gateway/include/controller.h delete mode 100644 examples/button-led/gateway/include/pta_attestation.h delete mode 100644 examples/button-led/gateway/include/spongent.h delete mode 100644 examples/button-led/gateway/spongent.c delete mode 100644 examples/button-led/gateway/sub.mk delete mode 100644 examples/button-led/gateway/user_ta_header_defines.h delete mode 100644 examples/button-led/init-webserver.sh delete mode 100644 examples/button-led/init_sgx.yaml delete mode 100644 examples/button-led/manager.yaml delete mode 100644 examples/button-led/run_attester.py delete mode 100644 examples/button-led/webserver/Cargo.toml delete mode 100644 examples/button-led/webserver/src/lib.rs delete mode 100644 examples/example_hybrid/input.json delete mode 100644 examples/example_hybrid/manager.yaml delete mode 100644 examples/example_hybrid/sm1/Cargo.toml delete mode 100644 examples/example_hybrid/sm1/src/lib.rs delete mode 100644 examples/example_hybrid/sm2/Cargo.toml delete mode 100644 examples/example_hybrid/sm2/src/lib.rs delete mode 100644 examples/example_hybrid/sm3.c delete mode 100644 examples/example_hybrid/sm4.c delete mode 100644 examples/example_native/input.json delete mode 100644 examples/example_native/manager.yaml delete mode 100644 examples/example_native/sm1/Cargo.toml delete mode 100644 examples/example_native/sm1/src/lib.rs delete mode 100644 examples/example_native/sm2/Cargo.toml delete mode 100644 examples/example_native/sm2/src/lib.rs delete mode 100644 examples/example_sancus/input.json delete mode 100644 examples/example_sancus/manager.yaml delete mode 100644 examples/example_sancus/sm1.c delete mode 100644 examples/example_sancus/sm2.c delete mode 100644 examples/example_sgx/input.json delete mode 100644 examples/example_sgx/manager.yaml delete mode 100644 examples/example_sgx/sm1/Cargo.toml delete mode 100644 examples/example_sgx/sm1/src/lib.rs delete mode 100644 examples/example_sgx/sm2/Cargo.toml delete mode 100644 examples/example_sgx/sm2/src/lib.rs delete mode 100644 examples/example_trustzone/button_driver/Makefile delete mode 100644 examples/example_trustzone/button_driver/authentic_execution.c delete mode 100644 examples/example_trustzone/button_driver/button_driver.c delete mode 100644 examples/example_trustzone/button_driver/include/authentic_execution.h delete mode 100644 examples/example_trustzone/button_driver/include/button_driver.h delete mode 100644 examples/example_trustzone/button_driver/include/pta_attestation.h delete mode 100644 examples/example_trustzone/button_driver/include/spongent.h delete mode 100644 examples/example_trustzone/button_driver/spongent.c delete mode 100644 examples/example_trustzone/button_driver/sub.mk delete mode 100644 examples/example_trustzone/button_driver/user_ta_header_defines.h delete mode 100644 examples/example_trustzone/button_driver_native/Cargo.toml delete mode 100644 examples/example_trustzone/button_driver_native/src/lib.rs delete mode 100644 examples/example_trustzone/led_driver/Makefile delete mode 100644 examples/example_trustzone/led_driver/authentic_execution.c delete mode 100644 examples/example_trustzone/led_driver/include/authentic_execution.h delete mode 100644 examples/example_trustzone/led_driver/include/led_driver.h delete mode 100644 examples/example_trustzone/led_driver/include/pta_attestation.h delete mode 100644 examples/example_trustzone/led_driver/include/spongent.h delete mode 100644 examples/example_trustzone/led_driver/led_driver.c delete mode 100644 examples/example_trustzone/led_driver/spongent.c delete mode 100644 examples/example_trustzone/led_driver/sub.mk delete mode 100644 examples/example_trustzone/led_driver/user_ta_header_defines.h delete mode 100644 examples/example_trustzone/led_driver_native/Cargo.toml delete mode 100644 examples/example_trustzone/led_driver_native/src/lib.rs delete mode 100644 examples/example_trustzone/manager.yaml delete mode 100644 examples/example_trustzone/native-to-tz.json delete mode 100644 examples/example_trustzone/tz-to-native.json delete mode 100644 examples/example_trustzone/tz-to-tz.json diff --git a/.dockerignore b/.dockerignore index e7e7b30..ebe4d43 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,3 @@ -examples -reactive_tools.egg-info .gitignore add_new_architectures.md AUTHORS diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index da8f764..3452985 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,88 +3,33 @@ on: push: branches: - master + - main schedule: - cron: '0 0 2 */1 *' # Every month pull_request: workflow_dispatch: # Allow manual triggering -env: - REPO: authexec/reactive-tools - EM_IMAGE: authexec/event-manager-sgx:latest - AM_IMAGE: authexec/attestation-manager:native - jobs: build-test-publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@master + - + name: code-check + run: | + sudo apt update && sudo apt install pylint + pip install -r requirements.txt + cd .. + pylint reactive-tools --rcfile reactive-tools/.pylintrc - name: Build id: build uses: gianlu33/Publish-Docker-Github-Action@main with: - name: ${{ env.REPO }} + name: authexec/reactive-tools username: authexec password: ${{ secrets.DOCKER_TOKEN }} cache: ${{ github.event_name != 'schedule' }} tag_names: true - no_push: true - - - name: Test build - run: | - shopt -s expand_aliases - alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/button-led:/usr/src/app/ -v /usr/local/cargo/git:/usr/local/cargo/git -v /usr/local/cargo/registry:/usr/local/cargo/registry ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" - REACTIVE_TOOLS --verbose build descriptor-local.json - - - name: Test deploy - run: | - docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false --name em-5000 ${{ env.EM_IMAGE }} - docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false --name em-6000 ${{ env.EM_IMAGE }} - docker run --rm --network=host --detach -e EM_PORT=7000 -e EM_SGX=false --name em-7000 ${{ env.EM_IMAGE }} - docker run --rm --network=host --detach -e EM_PORT=8000 -e EM_SGX=false --name em-8000 ${{ env.EM_IMAGE }} - shopt -s expand_aliases - alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/button-led-native:/usr/src/app/ -v /usr/local/cargo/git:/usr/local/cargo/git -v /usr/local/cargo/registry:/usr/local/cargo/registry ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" - REACTIVE_TOOLS --verbose deploy descriptor-local.json --result res.json - REACTIVE_TOOLS --verbose attest res.json - REACTIVE_TOOLS --verbose connect res.json - REACTIVE_TOOLS --verbose request res.json --connection init-server --arg beef --out cert.der - sleep 2 - [ $(curl -k https://localhost:48879) -eq 0 ] - REACTIVE_TOOLS --verbose output res.json --connection trigger-btn - sleep 2 - [ $(curl -k https://localhost:48879) -eq 1 ] - REACTIVE_TOOLS --verbose output res.json --connection trigger-btn - sleep 2 - [ $(curl -k https://localhost:48879) -eq 2 ] - docker stop em-5000 em-6000 em-7000 em-8000 - - - name: Test Attestation Manager - run: | - docker run --rm --network=host --detach -e EM_PORT=5000 -e EM_SGX=false --name em-5000 ${{ env.EM_IMAGE }} - docker run --rm --network=host --detach -e EM_PORT=6000 -e EM_SGX=false --name em-6000 ${{ env.EM_IMAGE }} - docker run --rm --network=host --detach -e EM_PORT=7000 -e EM_SGX=false --name em-7000 ${{ env.EM_IMAGE }} - docker run --rm --network=host --detach -e EM_PORT=8000 -e EM_SGX=false --name em-8000 ${{ env.EM_IMAGE }} - docker run --rm --network=host --detach -e AM_PORT=1234 --name manager ${{ env.AM_IMAGE }} - shopt -s expand_aliases - alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd)/examples/button-led-native:/usr/src/app/ -v /usr/local/cargo/git:/usr/local/cargo/git -v /usr/local/cargo/registry:/usr/local/cargo/registry ${{ env.REPO }}:${{ steps.build.outputs.tag }} reactive-tools" - REACTIVE_TOOLS --verbose --manager deploy descriptor-local.json --result res.json - REACTIVE_TOOLS --verbose --manager attest res.json - REACTIVE_TOOLS --verbose --manager connect res.json - REACTIVE_TOOLS --verbose request res.json --connection init-server --arg beef --out cert.der - sleep 2 - [ $(curl -k https://localhost:48879) -eq 0 ] - REACTIVE_TOOLS --verbose output res.json --connection trigger-btn - sleep 2 - [ $(curl -k https://localhost:48879) -eq 1 ] - REACTIVE_TOOLS --verbose output res.json --connection trigger-btn - sleep 2 - [ $(curl -k https://localhost:48879) -eq 2 ] - docker stop em-5000 em-6000 em-7000 em-8000 manager - - - name: Push - if: ${{ github.event_name != 'pull_request' }} - run: | - docker login -u authexec -p ${{ secrets.DOCKER_TOKEN }} - docker push ${{ env.REPO }}:${{ steps.build.outputs.tag }} - docker logout + diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000..1c89449 --- /dev/null +++ b/.pylintrc @@ -0,0 +1,605 @@ +[MASTER] + +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code. +extension-pkg-whitelist= + +# Add files or directories to the blacklist. They should be base names, not +# paths. +ignore=CVS + +# Add files or directories matching the regex patterns to the blacklist. The +# regex matches against base names, not paths. +ignore-patterns= + +# Python code to execute, usually for sys.path manipulation such as +# pygtk.require(). +#init-hook= + +# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the +# number of processors available to use. +jobs=1 + +# Control the amount of potential inferred values when inferring a single +# object. This can help the performance when dealing with large functions or +# complex, nested conditions. +limit-inference-results=100 + +# List of plugins (as comma separated values of python module names) to load, +# usually to register additional checkers. +load-plugins= + +# Pickle collected data for later comparisons. +persistent=yes + +# Specify a configuration file. +#rcfile= + +# When enabled, pylint would attempt to guess common misconfiguration and emit +# user-friendly hints instead of false-positive error messages. +suggestion-mode=yes + +# Allow loading of arbitrary C extensions. Extensions are imported into the +# active Python interpreter and may run arbitrary code. +unsafe-load-any-extension=no + + +[MESSAGES CONTROL] + +# Only show warnings with the listed confidence levels. Leave empty to show +# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED. +confidence= + +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifiers separated by comma (,) or put this +# option multiple times (only on the command line, not in the configuration +# file where it should appear only once). You can also use "--disable=all" to +# disable everything first and then reenable specific checks. For example, if +# you want to run only the similarities checker, you can use "--disable=all +# --enable=similarities". If you want to run only the classes checker, but have +# no Warning level messages displayed, use "--disable=all --enable=classes +# --disable=W". +disable=print-statement, + parameter-unpacking, + unpacking-in-except, + old-raise-syntax, + backtick, + long-suffix, + old-ne-operator, + old-octal-literal, + import-star-module-level, + non-ascii-bytes-literal, + raw-checker-failed, + bad-inline-option, + locally-disabled, + file-ignored, + suppressed-message, + useless-suppression, + deprecated-pragma, + use-symbolic-message-instead, + apply-builtin, + basestring-builtin, + buffer-builtin, + cmp-builtin, + coerce-builtin, + execfile-builtin, + file-builtin, + long-builtin, + raw_input-builtin, + reduce-builtin, + standarderror-builtin, + unicode-builtin, + xrange-builtin, + coerce-method, + delslice-method, + getslice-method, + setslice-method, + no-absolute-import, + old-division, + dict-iter-method, + dict-view-method, + next-method-called, + metaclass-assignment, + indexing-exception, + raising-string, + reload-builtin, + oct-method, + hex-method, + nonzero-method, + cmp-method, + input-builtin, + round-builtin, + intern-builtin, + unichr-builtin, + map-builtin-not-iterating, + zip-builtin-not-iterating, + range-builtin-not-iterating, + filter-builtin-not-iterating, + using-cmp-argument, + eq-without-hash, + div-method, + idiv-method, + rdiv-method, + exception-message-attribute, + invalid-str-codec, + sys-max-int, + bad-python3-import, + deprecated-string-function, + deprecated-str-translate-call, + deprecated-itertools-function, + deprecated-types-field, + next-method-defined, + dict-items-not-iterating, + dict-keys-not-iterating, + dict-values-not-iterating, + deprecated-operator-function, + deprecated-urllib-function, + xreadlines-attribute, + deprecated-sys-function, + exception-escape, + comprehension-escape, + # gianlu33 + anomalous-backslash-in-string, + invalid-name, + missing-function-docstring, + missing-module-docstring, + missing-class-docstring, + too-many-locals, + broad-except, + too-many-statements, + logging-format-interpolation, + duplicate-code, + bare-except, + too-many-arguments, + fixme, + too-many-public-methods, + unused-wildcard-import, + eval-used, + too-many-instance-attributes, + attribute-defined-outside-init, + too-few-public-methods, + wildcard-import, + global-statement, + dangerous-default-value, + import-outside-toplevel + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +enable=c-extension-no-member + + +[REPORTS] + +# Python expression which should return a score less than or equal to 10. You +# have access to the variables 'error', 'warning', 'refactor', and 'convention' +# which contain the number of messages in each category, as well as 'statement' +# which is the total number of statements analyzed. This score is used by the +# global evaluation report (RP0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details. +#msg-template= + +# Set the output format. Available formats are text, parseable, colorized, json +# and msvs (visual studio). You can also give a reporter class, e.g. +# mypackage.mymodule.MyReporterClass. +output-format=text + +# Tells whether to display a full report or only the messages. +reports=no + +# Activate the evaluation score. +score=yes + + +[REFACTORING] + +# Maximum number of nested blocks for function / method body +max-nested-blocks=5 + +# Complete name of functions that never returns. When checking for +# inconsistent-return-statements if a never returning function is called then +# it will be considered as an explicit return statement and no message will be +# printed. +never-returning-functions=sys.exit + + +[VARIABLES] + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid defining new builtins when possible. +additional-builtins= + +# Tells whether unused global variables should be treated as a violation. +allow-global-unused-variables=yes + +# List of strings which can identify a callback function by name. A callback +# name must start or end with one of those strings. +callbacks=cb_, + _cb + +# A regular expression matching the name of dummy variables (i.e. expected to +# not be used). +dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ + +# Argument names that match this expression will be ignored. Default to name +# with leading underscore. +ignored-argument-names=_.*|^ignored_|^unused_ + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# List of qualified module names which can have objects that can redefine +# builtins. +redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io + + +[STRING] + +# This flag controls whether the implicit-str-concat-in-sequence should +# generate a warning on implicit string concatenation in sequences defined over +# several lines. +check-str-concat-over-line-jumps=no + + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME, + XXX, + TODO + + +[SPELLING] + +# Limits count of emitted suggestions for spelling mistakes. +max-spelling-suggestions=4 + +# Spelling dictionary name. Available dictionaries: none. To make it work, +# install the python-enchant package. +spelling-dict= + +# List of comma separated words that should not be checked. +spelling-ignore-words= + +# A path to a file that contains the private dictionary; one word per line. +spelling-private-dict-file= + +# Tells whether to store unknown words to the private dictionary (see the +# --spelling-private-dict-file option) instead of raising a message. +spelling-store-unknown-words=no + + +[FORMAT] + +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= + +# Regexp for a line that is allowed to be longer than the limit. +ignore-long-lines=^\s*(# )??$ + +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 + +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# tab). +indent-string=' ' + +# Maximum number of characters on a single line. +max-line-length=100 + +# Maximum number of lines in a module. +max-module-lines=1000 + +# List of optional constructs for which whitespace checking is disabled. `dict- +# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. +# `trailing-comma` allows a space between comma and closing bracket: (a, ). +# `empty-line` allows space-only lines. +no-space-check=trailing-comma, + dict-separator + +# Allow the body of a class to be on the same line as the declaration if body +# contains single statement. +single-line-class-stmt=no + +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no + + +[TYPECHECK] + +# List of decorators that produce context managers, such as +# contextlib.contextmanager. Add to this list to register other decorators that +# produce valid context managers. +contextmanager-decorators=contextlib.contextmanager + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members= + +# Tells whether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=yes + +# Tells whether to warn about missing members when the owner of the attribute +# is inferred to be None. +ignore-none=yes + +# This flag controls whether pylint should warn about no-member and similar +# checks whenever an opaque object is returned when inferring. The inference +# can return multiple potential results while evaluating a Python object, but +# some branches might not be evaluated, which results in partial inference. In +# that case, it might be useful to still emit no-member and other checks for +# the rest of the inferred objects. +ignore-on-opaque-inference=yes + +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=optparse.Values,thread._local,_thread._local + +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis). It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules= + +# Show a hint with possible names when a member name was not found. The aspect +# of finding the hint is based on edit distance. +missing-member-hint=yes + +# The minimum edit distance a name should have in order to be considered a +# similar match for a missing member name. +missing-member-hint-distance=1 + +# The total number of similar names that should be taken in consideration when +# showing a hint for a missing member. +missing-member-max-choices=1 + +# List of decorators that change the signature of a decorated function. +signature-mutators= + + +[LOGGING] + +# Format style used to check logging format string. `old` means using % +# formatting, `new` is for `{}` formatting,and `fstr` is for f-strings. +logging-format-style=old + +# Logging modules to check that the string format arguments are in logging +# function parameter format. +logging-modules=logging + + +[SIMILARITIES] + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes + +# Ignore imports when computing similarities. +ignore-imports=no + +# Minimum lines number of a similarity. +min-similarity-lines=4 + + +[BASIC] + +# Naming style matching correct argument names. +argument-naming-style=snake_case + +# Regular expression matching correct argument names. Overrides argument- +# naming-style. +#argument-rgx= + +# Naming style matching correct attribute names. +attr-naming-style=snake_case + +# Regular expression matching correct attribute names. Overrides attr-naming- +# style. +#attr-rgx= + +# Bad variable names which should always be refused, separated by a comma. +bad-names=foo, + bar, + baz, + toto, + tutu, + tata + +# Naming style matching correct class attribute names. +class-attribute-naming-style=any + +# Regular expression matching correct class attribute names. Overrides class- +# attribute-naming-style. +#class-attribute-rgx= + +# Naming style matching correct class names. +class-naming-style=PascalCase + +# Regular expression matching correct class names. Overrides class-naming- +# style. +#class-rgx= + +# Naming style matching correct constant names. +const-naming-style=UPPER_CASE + +# Regular expression matching correct constant names. Overrides const-naming- +# style. +#const-rgx= + +# Minimum line length for functions/classes that require docstrings, shorter +# ones are exempt. +docstring-min-length=-1 + +# Naming style matching correct function names. +function-naming-style=snake_case + +# Regular expression matching correct function names. Overrides function- +# naming-style. +#function-rgx= + +# Good variable names which should always be accepted, separated by a comma. +good-names=i, + j, + k, + ex, + Run, + _ + +# Include a hint for the correct naming format with invalid-name. +include-naming-hint=no + +# Naming style matching correct inline iteration names. +inlinevar-naming-style=any + +# Regular expression matching correct inline iteration names. Overrides +# inlinevar-naming-style. +#inlinevar-rgx= + +# Naming style matching correct method names. +method-naming-style=snake_case + +# Regular expression matching correct method names. Overrides method-naming- +# style. +#method-rgx= + +# Naming style matching correct module names. +module-naming-style=snake_case + +# Regular expression matching correct module names. Overrides module-naming- +# style. +#module-rgx= + +# Colon-delimited sets of names that determine each other's naming style when +# the name regexes allow several styles. +name-group= + +# Regular expression which should only match function or class names that do +# not require a docstring. +no-docstring-rgx=^_ + +# List of decorators that produce properties, such as abc.abstractproperty. Add +# to this list to register other decorators that produce valid properties. +# These decorators are taken in consideration only for invalid-name. +property-classes=abc.abstractproperty + +# Naming style matching correct variable names. +variable-naming-style=snake_case + +# Regular expression matching correct variable names. Overrides variable- +# naming-style. +#variable-rgx= + + +[IMPORTS] + +# List of modules that can be imported at any level, not just the top level +# one. +allow-any-import-level= + +# Allow wildcard imports from modules that define __all__. +allow-wildcard-with-all=no + +# Analyse import fallback blocks. This can be used to support both Python 2 and +# 3 compatible code, which means that the block might have code that exists +# only in one or another interpreter, leading to false positives when analysed. +analyse-fallback-blocks=no + +# Deprecated modules which should not be used, separated by a comma. +deprecated-modules=optparse,tkinter.tix + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled). +ext-import-graph= + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled). +import-graph= + +# Create a graph of internal dependencies in the given file (report RP0402 must +# not be disabled). +int-import-graph= + +# Force import order to recognize a module as part of the standard +# compatibility libraries. +known-standard-library= + +# Force import order to recognize a module as part of a third party library. +known-third-party=enchant + +# Couples of modules and preferred modules, separated by a comma. +preferred-modules= + + +[DESIGN] + +# Maximum number of arguments for function / method. +max-args=5 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Maximum number of boolean expressions in an if statement (see R0916). +max-bool-expr=5 + +# Maximum number of branch for function / method body. +max-branches=12 + +# Maximum number of locals for function / method body. +max-locals=15 + +# Maximum number of parents for a class (see R0901). +max-parents=7 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 + +# Maximum number of return / yield for function / method body. +max-returns=6 + +# Maximum number of statements in function / method body. +max-statements=50 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=2 + + +[CLASSES] + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__, + __new__, + setUp, + __post_init__ + +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict, + _fields, + _replace, + _source, + _make + +# List of valid names for the first argument in a class method. +valid-classmethod-first-arg=cls + +# List of valid names for the first argument in a metaclass class method. +valid-metaclass-classmethod-first-arg=cls + + +[EXCEPTIONS] + +# Exceptions that will emit a warning when being caught. Defaults to +# "BaseException, Exception". +overgeneral-exceptions=BaseException, + Exception diff --git a/README.md b/README.md index 384224e..be8cbb1 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # reactive-tools -Deployment tools for the [Authentic Execution framework](https://github.com/gianlu33/authentic-execution) +Deployment tools for the [Authentic Execution framework](https://github.com/AuthenticExecution) + +Quick hands-on: check out our [examples](https://github.com/AuthenticExecution/examples). ## Support @@ -18,11 +20,11 @@ Currently, the following architectures are supported: ### Limitations - Currently, SGX modules can only be deployed in debug mode -- Trustzone support is experimental, it works on QEMU v7 only, on our custom [optee_os](https://github.com/gianlu33/optee_os/tree/authentic-execution) and [event manager](https://github.com/sepidehpouyan/Authentic-Execution/tree/master/Event) (which should run on the normal world) +- Trustzone support is experimental, it works on QEMU v7 only, on our custom [optee_os](https://github.com/AuthenticExecution/optee_os) and untrusted [event manager](https://github.com/AuthenticExecution/event_manager_trustzone) ## Dependencies & installation -- [Full list of dependencies](https://github.com/gianlu33/authentic-execution/blob/master/docs/install-from-sources.md) +Check the [reactive-base](https://github.com/AuthenticExecution/reactive-base) repository for more info about the dependencies needed for each TEE. ```bash # Install reactive-tools - you must be at the root of this repository @@ -31,7 +33,7 @@ pip install . ## Run reactive-tools with Docker -The [gianlu33/reactive-tools](https://hub.docker.com/repository/docker/gianlu33/reactive-tools) Docker images provide a simple and fast way to run reactive-tools from any Linux-based OS. +The [authexec/reactive-tools](https://hub.docker.com/repository/docker/authexec/reactive-tools) Docker image provide a simple and fast way to run reactive-tools from any Linux-based OS. - the `latest` image contains all the dependencies/toolchains to build and deploy modules (sgx, native, sancus, trustzone), plus some other utilities. It is *not* optimized, therefore it is not really lightweight but it contains everything is needed. diff --git a/examples/README.md b/examples/README.md deleted file mode 100644 index 54ee843..0000000 --- a/examples/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Run the examples - -TODO diff --git a/examples/button-led-native/README.md b/examples/button-led-native/README.md deleted file mode 100644 index e7e15e1..0000000 --- a/examples/button-led-native/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# button-led-native - -This example is analogous to [button-led](../button-led), but all the modules run as normal Linux processes on your machine. - -- No TEE protections and no real I/O devices. -- Instead of having physical Sancus/SGX/Trustzone nodes, we use virtual `Native` nodes - -## Prerequisites - -You only need [Docker](https://docs.docker.com/get-docker/) and [docker-compose](https://docs.docker.com/compose/install/) to run this example. - -## Run the example - -```bash -# Deploy the system -docker-compose up - -# Wait until the "admin" container prints "Setup complete" -# The following commands should be launched from another terminal - -# Open a shell in the "admin" container -docker exec -it button-led-native_admin_1 bash - -# Initialize the web server and retrieve the self-signed certificate -# You can actually use a different port than "beef" if you want -reactive-tools request res.json --connection init-server --arg beef --out cert.der - -# Convert the retrieved certificate in PEM format -openssl x509 -inform der -in cert.der -out cert.pem - -# Try querying the web server to get the number of button presses (check the port) -curl --cacert cert.pem https://node-sgx:48879 # returns 0 - -# Simulate a button press -reactive-tools --verbose output res.json --connection trigger-btn - -# Query the web server again -curl --cacert cert.pem https://node-sgx:48879 # returns 1 - -### Cleanup ### -# Go back on the first terminal, press CTRL-C to stop the containers - -# Delete the network and containers -docker-compose down -``` diff --git a/examples/button-led-native/button_driver/Cargo.toml b/examples/button-led-native/button_driver/Cargo.toml deleted file mode 100644 index e97a330..0000000 --- a/examples/button-led-native/button_driver/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "button_driver" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/examples/button-led-native/button_driver/src/lib.rs b/examples/button-led-native/button_driver/src/lib.rs deleted file mode 100644 index f7c15fc..0000000 --- a/examples/button-led-native/button_driver/src/lib.rs +++ /dev/null @@ -1,8 +0,0 @@ -//@ sm_output(button_pressed) - -//@sm_input -pub fn trigger_button_press(_data : &[u8]) { - info!("Button has been pressed, sending output"); - - button_pressed(&[]); -} diff --git a/examples/button-led-native/db/Cargo.toml b/examples/button-led-native/db/Cargo.toml deleted file mode 100644 index 5b745dc..0000000 --- a/examples/button-led-native/db/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "db" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/examples/button-led-native/db/src/lib.rs b/examples/button-led-native/db/src/lib.rs deleted file mode 100644 index cb48643..0000000 --- a/examples/button-led-native/db/src/lib.rs +++ /dev/null @@ -1,20 +0,0 @@ -use std::sync::Mutex; - -lazy_static! { - static ref BUTTON_PRESSES: Mutex = { - Mutex::new(0) // initially zero - }; -} - -//@sm_input -pub fn increment_presses(_data : &[u8]) { - let mut occ = BUTTON_PRESSES.lock().unwrap(); - *occ += 1; -} - -//@ sm_handler -pub fn get_presses(_data : &[u8]) -> Vec { - info!("Retrieving number of button presses"); - let occ = BUTTON_PRESSES.lock().unwrap(); - (*occ).to_be_bytes().to_vec() -} diff --git a/examples/button-led-native/deploy.sh b/examples/button-led-native/deploy.sh deleted file mode 100644 index c60102b..0000000 --- a/examples/button-led-native/deploy.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -set -e - -# TODO: find a better way -echo "Waiting until all the EMs are ready.." -sleep 10 - -# deploy -echo "Deploying modules.." -reactive-tools --manager deploy descriptor.json --result res.json - -# TODO: is it really necessary? -echo "Waiting until all the modules are up and running.." -sleep 2 - -# attest -echo "Attesting modules.." -reactive-tools --manager attest res.json - -# connect -echo "Establishing connections.." -reactive-tools --manager connect res.json - -echo "Setup complete" -sleep 3600 diff --git a/examples/button-led-native/descriptor-local.json b/examples/button-led-native/descriptor-local.json deleted file mode 100644 index 78f2806..0000000 --- a/examples/button-led-native/descriptor-local.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "manager": "manager.yaml", - "nodes": [ - { - "type": "native", - "name": "node_sgx", - "ip_address": "localhost", - "reactive_port": 5000 - }, - { - "type": "native", - "name": "node_sancus_1", - "ip_address": "localhost", - "reactive_port": 6000 - }, - { - "type": "native", - "name": "node_sancus_2", - "ip_address": "localhost", - "reactive_port": 7000 - }, - { - "type": "native", - "name": "node_trustzone", - "ip_address": "localhost", - "reactive_port": 8000, - } - ], - "modules" : [ - { - "type": "native", - "name": "webserver", - "node": "node_sgx" - }, - { - "type": "native", - "name": "db", - "node": "node_sgx" - }, - { - "type": "native", - "name": "gateway", - "node": "node_trustzone" - }, - { - "type": "native", - "name": "led_driver", - "node": "node_sancus_1" - }, - { - "type": "native", - "name": "button_driver", - "node": "node_sancus_2" - } - ], - "connections": [ - { - "from_module": "button_driver", - "from_output": "button_pressed", - "to_module": "gateway", - "to_input": "button_pressed", - "encryption": "aes" - }, - { - "from_module": "gateway", - "from_output": "toggle_led", - "to_module": "led_driver", - "to_input": "toggle_led", - "encryption": "aes" - }, - { - "from_module": "gateway", - "from_output": "increment_presses", - "to_module": "db", - "to_input": "increment_presses", - "encryption": "aes" - }, - { - "from_module": "webserver", - "from_request": "get_presses", - "to_module": "db", - "to_handler": "get_presses", - "encryption": "aes" - }, - { - "name": "init-server", - "direct": true, - "to_module": "webserver", - "to_handler": "init_server", - "encryption": "aes" - }, - { - "name": "trigger-btn", - "direct": true, - "to_module": "button_driver", - "to_input": "trigger_button_press", - "encryption": "aes" - }, - { - "name": "get-presses", - "direct": true, - "to_module": "db", - "to_handler": "get_presses", - "encryption": "aes" - } - ] -} diff --git a/examples/button-led-native/descriptor.json b/examples/button-led-native/descriptor.json deleted file mode 100644 index c4eb0a2..0000000 --- a/examples/button-led-native/descriptor.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "manager": "manager.yaml", - "nodes": [ - { - "type": "native", - "name": "node_sgx", - "ip_address": "node-sgx", - "reactive_port": 5000 - }, - { - "type": "native", - "name": "node_sancus_1", - "ip_address": "node-sancus-1", - "reactive_port": 5000 - }, - { - "type": "native", - "name": "node_sancus_2", - "ip_address": "node-sancus-2", - "reactive_port": 5000 - }, - { - "type": "native", - "name": "node_trustzone", - "ip_address": "node-trustzone", - "reactive_port": 5000, - } - ], - "modules" : [ - { - "type": "native", - "name": "webserver", - "node": "node_sgx" - }, - { - "type": "native", - "name": "db", - "node": "node_sgx" - }, - { - "type": "native", - "name": "gateway", - "node": "node_trustzone" - }, - { - "type": "native", - "name": "led_driver", - "node": "node_sancus_1" - }, - { - "type": "native", - "name": "button_driver", - "node": "node_sancus_2" - } - ], - "connections": [ - { - "from_module": "button_driver", - "from_output": "button_pressed", - "to_module": "gateway", - "to_input": "button_pressed", - "encryption": "aes" - }, - { - "from_module": "gateway", - "from_output": "toggle_led", - "to_module": "led_driver", - "to_input": "toggle_led", - "encryption": "aes" - }, - { - "from_module": "gateway", - "from_output": "increment_presses", - "to_module": "db", - "to_input": "increment_presses", - "encryption": "aes" - }, - { - "from_module": "webserver", - "from_request": "get_presses", - "to_module": "db", - "to_handler": "get_presses", - "encryption": "aes" - }, - { - "name": "init-server", - "direct": true, - "to_module": "webserver", - "to_handler": "init_server", - "encryption": "aes" - }, - { - "name": "trigger-btn", - "direct": true, - "to_module": "button_driver", - "to_input": "trigger_button_press", - "encryption": "aes" - }, - { - "name": "get-presses", - "direct": true, - "to_module": "db", - "to_handler": "get_presses", - "encryption": "aes" - } - ] -} diff --git a/examples/button-led-native/docker-compose.yml b/examples/button-led-native/docker-compose.yml deleted file mode 100644 index 4d08b79..0000000 --- a/examples/button-led-native/docker-compose.yml +++ /dev/null @@ -1,60 +0,0 @@ -version: "3.9" - -services: - node-sancus-1: - image: gianlu33/reactive-event-manager:latest - expose: - - "5000-5010" - environment: - - EM_PORT=5000 - - EM_LOG=info - - EM_THREADS=16 - - EM_PERIODIC_TASKS=false - - EM_SGX=false - node-sancus-2: - image: gianlu33/reactive-event-manager:latest - expose: - - "5000-5010" - environment: - - EM_PORT=5000 - - EM_LOG=info - - EM_THREADS=16 - - EM_PERIODIC_TASKS=false - - EM_SGX=false - node-sgx: - image: gianlu33/reactive-event-manager:latest - expose: - - "5000-5010" - environment: - - EM_PORT=5000 - - EM_LOG=info - - EM_THREADS=16 - - EM_PERIODIC_TASKS=false - - EM_SGX=false - node-trustzone: - image: gianlu33/reactive-event-manager:latest - expose: - - "5000-5010" - environment: - - EM_PORT=5000 - - EM_LOG=info - - EM_THREADS=16 - - EM_PERIODIC_TASKS=false - - EM_SGX=false - manager: - image: gianlu33/attestation-manager:native - expose: - - "1234" - admin: - image: gianlu33/reactive-tools:latest - command: ./deploy.sh - depends_on: - - node-sancus-1 - - node-sancus-2 - - node-sgx - - node-trustzone - - manager - volumes: - - ".:/usr/src/app" - - "/usr/local/cargo/git:/usr/local/cargo/git" # for caching builds - - "/usr/local/cargo/registry:/usr/local/cargo/registry" # same diff --git a/examples/button-led-native/gateway/Cargo.toml b/examples/button-led-native/gateway/Cargo.toml deleted file mode 100644 index 25b84de..0000000 --- a/examples/button-led-native/gateway/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "gateway" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/examples/button-led-native/gateway/src/lib.rs b/examples/button-led-native/gateway/src/lib.rs deleted file mode 100644 index 810b5d6..0000000 --- a/examples/button-led-native/gateway/src/lib.rs +++ /dev/null @@ -1,13 +0,0 @@ -//@ sm_output(toggle_led) -//@ sm_output(increment_presses) - -//@sm_input -pub fn button_pressed(_data : &[u8]) { - info!("Remote button has been pressed"); - - // toggle LED - toggle_led(&[]); - - // increment occurrences on db - increment_presses(&[]); -} diff --git a/examples/button-led-native/init-webserver.sh b/examples/button-led-native/init-webserver.sh deleted file mode 100644 index cb3f9b9..0000000 --- a/examples/button-led-native/init-webserver.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e - -echo "Initializing web server to listen to port 48879" -reactive-tools request res.json --connection init-server --arg beef --out cert.der > /dev/null 2>&1 - -echo "Converting certificate from DER to PEM" -openssl x509 -inform der -in cert.der -out cert.pem > /dev/null 2>&1 - -echo "All done! You can query the server with 'curl --cacert cert.pem '" diff --git a/examples/button-led-native/led_driver/Cargo.toml b/examples/button-led-native/led_driver/Cargo.toml deleted file mode 100644 index dc2c22e..0000000 --- a/examples/button-led-native/led_driver/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "led_driver" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/examples/button-led-native/led_driver/src/lib.rs b/examples/button-led-native/led_driver/src/lib.rs deleted file mode 100644 index ddaec1d..0000000 --- a/examples/button-led-native/led_driver/src/lib.rs +++ /dev/null @@ -1,16 +0,0 @@ -use std::sync::Mutex; - -lazy_static! { - static ref LED_STATE: Mutex = { - Mutex::new(false) // initially OFF - }; -} - -//@sm_input -pub fn toggle_led(_data : &[u8]) { - // toggling led - let mut led = LED_STATE.lock().unwrap(); - *led = !(*led); - - info!(&format!("New LED state: {}", *led)); -} diff --git a/examples/button-led-native/manager.yaml b/examples/button-led-native/manager.yaml deleted file mode 100644 index 500ec28..0000000 --- a/examples/button-led-native/manager.yaml +++ /dev/null @@ -1,3 +0,0 @@ -host: localhost -key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] -port: 1234 diff --git a/examples/button-led-native/webserver/Cargo.toml b/examples/button-led-native/webserver/Cargo.toml deleted file mode 100644 index b7fe555..0000000 --- a/examples/button-led-native/webserver/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -[package] -name = "webserver" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -mbedtls = { git = "https://github.com/gianlu33/rust-mbedtls.git", branch="psk", features = ["rdrand"] } -anyhow = "1.0.44" diff --git a/examples/button-led-native/webserver/src/lib.rs b/examples/button-led-native/webserver/src/lib.rs deleted file mode 100644 index bc73d2f..0000000 --- a/examples/button-led-native/webserver/src/lib.rs +++ /dev/null @@ -1,158 +0,0 @@ -use std::thread; -use std::sync::Mutex; -use std::net::{TcpListener, TcpStream}; -use std::io::{Read, Write}; - -use mbedtls::pk::Pk; -use mbedtls::ssl::config::{Endpoint, Preset, Transport}; -use mbedtls::ssl::{Config, Context}; -use mbedtls::x509::{Certificate, Time}; -use mbedtls::x509::certificate::Builder; -use mbedtls::alloc::List as CertList; -use mbedtls::hash::Type as MdType; -use mbedtls::rng::Rdrand as Rng; -use std::sync::Arc; - -lazy_static! { - static ref INIT: Mutex = { - Mutex::new(false) - }; - - static ref PRIVATE_KEY: Mutex = { - Mutex::new(Pk::generate_rsa(&mut Rng, 2048, 65537).expect("Failed to generate key")) - }; - - static ref CERTIFICATE: Mutex>> = { - Mutex::new(None) - }; -} - -static HOST_NAME: &str = "node-sgx"; - -//@ sm_request(get_presses) - -//@ sm_handler -pub fn init_server(data : &[u8]) -> Vec { - let mut is_init = INIT.lock().unwrap(); - - if *is_init { - error!("init input was already called"); - return vec!(); - } - - if data.len() != 2 { - error!("wrong data received (expecting 2 bytes for port)"); - return vec!(); - } - - let port = authentic_execution::data_to_u16(data); - let host = format!("0.0.0.0:{}", port); - - let listener = match TcpListener::bind(host) { - Ok(l) => l, - Err(e) => { - error!(&format!("Fatal error: {}", e)); - return vec!(); - } - }; - - let (key, cert) = match init_credentials() { - Ok((k, c)) => (k,c), - Err(e) => { - error!(&format!("Error with credentials: {}", e)); - return vec!(); - } - }; - - info!(&format!("Web server listening on 0.0.0.0:{}", port)); - thread::spawn(move || { start_server(listener, key, cert) }); - *is_init = true; - - let cert = CERTIFICATE.lock().unwrap(); - cert.as_ref().unwrap().clone() -} - -fn start_server(listener : TcpListener, key : Pk, cert : CertList) { - let rng = Arc::new(Rng); - - let mut config = Config::new(Endpoint::Server, Transport::Stream, Preset::Default); - config.set_rng(rng); - - if let Err(_) = config.push_cert(Arc::new(cert), Arc::new(key)) { - error!("Could not push cert in config"); - return; - } - - let rc_config = Arc::new(config); - - for stream in listener.incoming() { - if let Ok(s) = stream { - if let Err(e) = handle_client(s, rc_config.clone()) { - warning!(&format!("Client error: {}", e)); - } - } - } -} - -fn init_credentials() -> anyhow::Result<(Pk, CertList)> { - let mut buf_key = [0u8; 8192]; - let mut key = PRIVATE_KEY.lock().unwrap(); - key.write_private_pem(&mut buf_key)?.unwrap(); - - let key = Pk::from_private_key(&buf_key, None)?; - let key1 = Pk::from_private_key(&buf_key, None)?; - let key2 = Pk::from_private_key(&buf_key, None)?; - - let cert_bytes = generate_cert(key1, key2)?; - let cert = Certificate::from_pem_multiple(&cert_bytes)?; - - let mut certificate = CERTIFICATE.lock().unwrap(); - certificate.replace(cert_bytes); - - Ok((key, cert)) -} - -fn generate_cert(mut key1 : Pk, mut key2 : Pk) -> anyhow::Result> { - let mut builder = Builder::new(); - let mut buf_cert = [0u8; 8192]; - - let common_name = format!("CN={}\0", HOST_NAME); - - let cert = builder - .subject_key(&mut key1) - .subject_with_nul(&common_name)? - .issuer_key(&mut key2) - .issuer_with_nul(&common_name)? - .validity( - Time::new(2020, 1, 1, 0, 0, 0).unwrap(), - Time::new(2030, 12, 31, 23, 59, 59).unwrap(), - )? - .serial(&[5])? - .signature_hash(MdType::Sha256) - .write_pem(&mut buf_cert, &mut Rng)?.unwrap(); - - Ok(cert.to_vec()) -} - -fn handle_client(conn : TcpStream, config : Arc) -> anyhow::Result<()> { - let mut ctx = Context::new(config); - ctx.establish(conn, None)?; - - let mut buffer = [0; 1024]; - ctx.read(&mut buffer)?; - - let response = match get_presses(&[]) { - Ok(r) if r.len() == 4 => { - let num_presses = authentic_execution::data_to_u32(&r); - format!("HTTP/1.1 200 OK\r\n\r\n{}\n", num_presses) - }, - _ => { - "HTTP/1.1 500 Internal Server Error\r\n\r\n".to_string() - } - }; - - ctx.write(response.as_bytes())?; - ctx.flush()?; - - Ok(()) -} diff --git a/examples/button-led/README.md b/examples/button-led/README.md deleted file mode 100644 index f00bb2e..0000000 --- a/examples/button-led/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# button-led - -[Video](https://drive.google.com/file/d/17507pl12mycp1ELxH8cLghydNJlxVawi/view?usp=sharing) - -## Prerequisites - -Check the main [README](../README.md) - -- [Simulated version](../button-led-native) (only Docker and docker-compose needed) - -## Run the example - -```bash -# Deploy the system -docker-compose up - -# Wait until the "admin" container prints "Setup complete" -# The following commands should be launched from another terminal - -# Open a shell in the "admin" container -docker exec -it button-led_admin_1 bash - -# Initialize the web server and retrieve the self-signed certificate -# You can actually use a different port than "beef" if you want -reactive-tools request res.json --connection init-server --arg beef --out cert.der - -# Convert the retrieved certificate in PEM format -openssl x509 -inform der -in cert.der -out cert.pem - -# Try querying the web server to get the number of button presses (check the port) -curl --cacert cert.pem https://node-sgx:48879 # returns 0 - -# Simulate a button press -reactive-tools --verbose output res.json --connection trigger-btn - -# Query the web server again -curl --cacert cert.pem https://node-sgx:48879 # returns 1 - -### Cleanup ### -# Go back on the first terminal, press CTRL-C to stop the containers - -# Delete the network and containers -docker-compose down -``` diff --git a/examples/button-led/button_driver.c b/examples/button-led/button_driver.c deleted file mode 100644 index e00ea2b..0000000 --- a/examples/button-led/button_driver.c +++ /dev/null @@ -1,10 +0,0 @@ -#include - -#include - -SM_OUTPUT(button_driver, button_pressed); - -SM_INPUT(button_driver, trigger_button_press, data, len) { - puts("[button_driver] Button has been pressed, sending output"); - button_pressed(NULL, 0); -} diff --git a/examples/button-led/cred/ias_root_ca.pem b/examples/button-led/cred/ias_root_ca.pem deleted file mode 100644 index 948b4c0..0000000 --- a/examples/button-led/cred/ias_root_ca.pem +++ /dev/null @@ -1,31 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFSzCCA7OgAwIBAgIJANEHdl0yo7CUMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNV -BAYTAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwLU2FudGEgQ2xhcmExGjAYBgNV -BAoMEUludGVsIENvcnBvcmF0aW9uMTAwLgYDVQQDDCdJbnRlbCBTR1ggQXR0ZXN0 -YXRpb24gUmVwb3J0IFNpZ25pbmcgQ0EwIBcNMTYxMTE0MTUzNzMxWhgPMjA0OTEy -MzEyMzU5NTlaMH4xCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEUMBIGA1UEBwwL -U2FudGEgQ2xhcmExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0aW9uMTAwLgYDVQQD -DCdJbnRlbCBTR1ggQXR0ZXN0YXRpb24gUmVwb3J0IFNpZ25pbmcgQ0EwggGiMA0G -CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCfPGR+tXc8u1EtJzLA10Feu1Wg+p7e -LmSRmeaCHbkQ1TF3Nwl3RmpqXkeGzNLd69QUnWovYyVSndEMyYc3sHecGgfinEeh -rgBJSEdsSJ9FpaFdesjsxqzGRa20PYdnnfWcCTvFoulpbFR4VBuXnnVLVzkUvlXT -L/TAnd8nIZk0zZkFJ7P5LtePvykkar7LcSQO85wtcQe0R1Raf/sQ6wYKaKmFgCGe -NpEJUmg4ktal4qgIAxk+QHUxQE42sxViN5mqglB0QJdUot/o9a/V/mMeH8KvOAiQ -byinkNndn+Bgk5sSV5DFgF0DffVqmVMblt5p3jPtImzBIH0QQrXJq39AT8cRwP5H -afuVeLHcDsRp6hol4P+ZFIhu8mmbI1u0hH3W/0C2BuYXB5PC+5izFFh/nP0lc2Lf -6rELO9LZdnOhpL1ExFOq9H/B8tPQ84T3Sgb4nAifDabNt/zu6MmCGo5U8lwEFtGM -RoOaX4AS+909x00lYnmtwsDVWv9vBiJCXRsCAwEAAaOByTCBxjBgBgNVHR8EWTBX -MFWgU6BRhk9odHRwOi8vdHJ1c3RlZHNlcnZpY2VzLmludGVsLmNvbS9jb250ZW50 -L0NSTC9TR1gvQXR0ZXN0YXRpb25SZXBvcnRTaWduaW5nQ0EuY3JsMB0GA1UdDgQW -BBR4Q3t2pn680K9+QjfrNXw7hwFRPDAfBgNVHSMEGDAWgBR4Q3t2pn680K9+Qjfr -NXw7hwFRPDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADANBgkq -hkiG9w0BAQsFAAOCAYEAeF8tYMXICvQqeXYQITkV2oLJsp6J4JAqJabHWxYJHGir -IEqucRiJSSx+HjIJEUVaj8E0QjEud6Y5lNmXlcjqRXaCPOqK0eGRz6hi+ripMtPZ -sFNaBwLQVV905SDjAzDzNIDnrcnXyB4gcDFCvwDFKKgLRjOB/WAqgscDUoGq5ZVi -zLUzTqiQPmULAQaB9c6Oti6snEFJiCQ67JLyW/E83/frzCmO5Ru6WjU4tmsmy8Ra -Ud4APK0wZTGtfPXU7w+IBdG5Ez0kE1qzxGQaL4gINJ1zMyleDnbuS8UicjJijvqA -152Sq049ESDz+1rRGc2NVEqh1KaGXmtXvqxXcTB+Ljy5Bw2ke0v8iGngFBPqCTVB -3op5KBG3RjbF6RRSzwzuWfL7QErNC8WEy5yDVARzTA5+xmBc388v9Dm21HGfcC8O -DD+gT9sSpssq0ascmvH49MOgjt1yoysLtdCtJW/9FZpoOypaHx0R+mJTLwPXVMrv -DaVzWh5aiEx+idkSGMnX ------END CERTIFICATE----- diff --git a/examples/button-led/cred/manager.sig b/examples/button-led/cred/manager.sig deleted file mode 100644 index 331c6d408fa3603218649afe81700f6e7d5097b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1808 zcmb_bX*3&%7EX;sVo41xVpkeP$*5^-scl57=%8v%DAkrJEozxsN`}udMbG<|BF z;{^&xj)wD%K6D30S!bp7tw2pf*c*6!U{$r#Rx_m8?#u;`w=GA|=4_#X(a`jI59ZIo zer}6K$tX%@jAaOx!OA!zht}()Zg^)n~2=8J2*IKyp30m zHt+6ujM%`48YS^*b>004WNMT@kO{BYbcp|H<`g9EsYl~#; zQKae(PMkhYA4;hmxBx;OyainIEkg~7FXF1(yaIoh>YTOu!;hQj@y*w}7|NdQDGi;9 zp`4wgGqsyIUd-?m*iMQ)#q^DxY;OpCD-E^%AY#EB%k=)uKeSqNqT>B8k>}z%0Oi2gF&nSAlMP>Tzp%HlG zYPY`E_}F{!0^3xG`|0rr!^28nk@l+FDc6Z`)3NR{rRJSCCf2>M0DMI?cS&ZBD7pCK z?S9e+v)K;YRWZA~TUj$uy8N(d7%eD*qW~-s?%m;6*BtE4Dl1lVLTnHknkoU&DYf~c z2<4~~D1XxsKF3+dRp$pEP-q$$FF5_fTfU%SAyiDch8zf*+1@B;Uo5q^kAJcj=THEMWlCo^3Ib; zy%mJiopri_YzqxXWIcwIk!+T(_jB_tZ0Vt1A2TvEgapy+>dO##e1xkBp*a-hM%NOtb}2iRDl-ep1Ej2Zi+(&~j&4*43ff1!*n0hi`+4;412wjvIT zTWv7+eUWRD3AtUO%@jX{`rnhB43m~UqNwI2!Q`A-Y_pAF`c&&2G4|1^HgaO>0e<;s z*>KBf>8N{gArBSuLK4rt>9nM(^r|Hx&{f=g^-hkQ^T^i3=*0~FTM4PmmtvnxD?=)E zker>IudCYrN7^@MfWq`jw4-`fQl$hKZeY@WE{c5n3hpzscuyKP9MI{ofDOWNkxTW$ zsnx-(<;Bp7H}1}P!QY-4qn0wwD&6{-kT{U6r~YwSDGT%aKP^CXejeX@ZGL5;b@@nl zUW=)QNdLU6o>OH*ftEUYQ01iSq|RwulDIiF+nv^*LRj3<=C+=(Zch4?pKk0nK{B!# zP6MpO(_Bd2{(g+LU@pt<>4ABUdJeM7p-5EFYQBTF@y+6anb6ET?~X;za%u5=ITx?F z>&#l2^#s4+mrR#|Tr70$YFS-EdU;>v++o7^_wFI*^*4Fj*p3iUm$k^!cczUlZn)^h zEJz=l+5T-eM$qI|8mnIeeMaf@<-TJvu0A8J*8SSyqYNZo;@Nb0Nk_i0i%nLVG;EJs zk{>9^fYsd%T+)r4UA1?Mz6qj+ey)>c9=ox!4h||+$*x{4sxg>ZU#g9v^G+1Y$62Q2 tIR28`UlZ#n=kW8>FeTJu3wIXNpDJ@xw-60`hPSm&Mr1wE1hpAK{{j^zIadGx diff --git a/examples/button-led/cred/manager_privkey.pem b/examples/button-led/cred/manager_privkey.pem deleted file mode 100644 index 8805184..0000000 --- a/examples/button-led/cred/manager_privkey.pem +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEA088zei4LDLCtSpsPiBCn42Um5eNJ6IFbHo91S4qJChw4kAnD -MyptqN4nkRSYSuMz4c49awI0pbZlEAd9e1bYFp8Jw9iz/uhLeZxihcFRah8mgTvj -HmgieMrf7pqYIFkft5kLBlroTy5xeo/0ejksg6tiz005AWs1+OrXudxR+dZ0abVP -gN0jOQOuWQbFGfDUvb9w958EwfsPJdmB4Fk+eGj/zXMs56Fjdars110FPg8h31+A -PeFROSK+mgSbdhkwdDrjuYhvs/wzflWe6ZtnIfUsf8g10PXL/uBhtbqe18TBuRAC -bOa0cM9RBEaOi/cfOmTN5xmSPengv3Yi6d3dMwIDAQABAoIBAQCTeMqAoRo0Zbbi -IQA5Xk9mdgEVQqEs7xPAPWYPiI9NqMSBFSsBruLXFoY57zrxuStgZrZAkTKSxmGr -PWvSum6NoYGtCG6aZqZWL9oxAp5q4vFuPYIuo5aMv8QWXzDYJPV+YWJZtGXW66E7 -EovHpZMmwed0KnIsWLclbm1xDMNOzQtPoZoHLu2H7ftqujtCk2dNdMv/aK96YxvF -g4VyRYKQc794Php2pwejAelhQoao7lAd6mVgZTCuvhsKiso9D9b1TM/9o6t24A+I -CZsrJ2drjSm+ntmgJfjJVbH40GtpsW2FfxYyOPA116H1xvy1Upx9FNUqdHkRn5Zf -YAcgvCWRAoGBAPZJnj2dcBB2fCaw7Ij31IOLEB6ih+INGWTSlFgUNovc22OHlmet -wK7qnTeipzEsoYUvjrB3XkZdRmBmJ0PIcTfn3FIBXoFQ+C/KlVyoC9nbGWEqF7R5 -Lschj4qUnBXrBCH1U7js3A0yiBMuGK1zyZlHu6rOyxXdI8cPMV5rnb7HAoGBANwp -gqfe9HJmdIaWMjxrotTbUex1ZvF/cf8D+j+iT4fm4xnu9eaad+FExQpdRgmBCO8l -djKDV3dofDr3S9nFluSUj9IfpJQOo4aGCvK7FrxJPsxhJHg8v8EEU9FWLgHFX9Pe -R71S8HY3OKq/eXWH/A1iIX0iPSntiJ9JsrR8+bI1AoGAKX/gJRu5PVzpsI9RXAb+ -jSfKkI7sfJ+ebsm461qEkm6lnRDEvDWf6RlpYm2K5JNTqCCKV5vVi9+9sxKjfR1y -TmxISJ0ocnvVRiBJqLI8RPpRPXkdQ3DD/BPgnwZJgrv2F07CS7/FmIeyPCEhUWDY -UHaw3ag4ujdoBuu9ct6JVxMCgYBYzfmgwwLw/ji0bPMYggYtO8Ygzf5XHSQbTDxt -3Ied9tjWBhh0Cwyd9gJQuuzcOosjA4ZYu7fVN3Ucx9F1pwjFbNNSW2ckPX9ibMEP -xb1W92h4QhrW0RI7xgYVI2DtX/LWYAup50GNPZsC7LcOXGqj71g4xE3Nkr2QGscV -nG+PnQKBgET+QaDrh0TS/knLIwwUUxb5sJMCeyoSQaqIadibnnmdVHIa8HKx9mRC -+ok6TEpHlN1L1e/uXRuH3GAw4CkXqef7/eiMBG2KJMnLfvCVjayX9JYWX7fiqQtF -mOk1we+jBlSOFZJtSaay26YveUdazMrAZA+uCnLlmdHmF0LJOGoE ------END RSA PRIVATE KEY----- diff --git a/examples/button-led/cred/manager_pubkey.pem b/examples/button-led/cred/manager_pubkey.pem deleted file mode 100644 index fbc21b7..0000000 --- a/examples/button-led/cred/manager_pubkey.pem +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA088zei4LDLCtSpsPiBCn -42Um5eNJ6IFbHo91S4qJChw4kAnDMyptqN4nkRSYSuMz4c49awI0pbZlEAd9e1bY -Fp8Jw9iz/uhLeZxihcFRah8mgTvjHmgieMrf7pqYIFkft5kLBlroTy5xeo/0ejks -g6tiz005AWs1+OrXudxR+dZ0abVPgN0jOQOuWQbFGfDUvb9w958EwfsPJdmB4Fk+ -eGj/zXMs56Fjdars110FPg8h31+APeFROSK+mgSbdhkwdDrjuYhvs/wzflWe6Ztn -IfUsf8g10PXL/uBhtbqe18TBuRACbOa0cM9RBEaOi/cfOmTN5xmSPengv3Yi6d3d -MwIDAQAB ------END PUBLIC KEY----- diff --git a/examples/button-led/cred/modules_privkey.pem b/examples/button-led/cred/modules_privkey.pem deleted file mode 100644 index 60acd44..0000000 --- a/examples/button-led/cred/modules_privkey.pem +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEA24fMUXKgPwNDJHTS9KCYoXGv5n/loH8iGpjWcbjg8yAhnY3x -LNQnIVVEpptOycm7pkTIzxSFaultTl0rStN8VouH9iLZFc2vZlpFSJ7HFZ/nHUr7 -MFnqKM9/MyoIWWjP9QyrCV+HXRPuRfJKpFQEzJcqUlpEjghCVAw4lTfhr34r2Hkn -Ckdz+khPdu4WMHn13imH6GZX64Y7oobEhM37ValdNoLA4jM8RPwAtidCecmUPY7A -k4FiU2rCkK2AFnWaiM+AG5avATT0O04EMRQ3X8vLDfxLHg/RnEunf+jvFW6OlzQr -bOwc6flEBWQi/JH+3Dnoo+Psxf/nO4y5ETsT+wIDAQABAoIBAQCzxqiOhoUuNRi1 -8SmUhTOY+kXnSBOe9J3UFBeA97rXvxdoNAYuBOqqhG581bCW1Spjhe7AjniXzeLi -iq/aTgiDwy4rZexKy6747bHRP52fWtxkA7Riqy90DkCHgMNnnMq4TZB/U4jBs4Gs -LDfuDJQFi0FwQVXkzmSq+XsYz7N1ByTPksSRsoZswwtVKMKfAzmTOEAQSGPD2gqt -gCUu7XDQFCnLoEpl1PZnPneNNF+jMjCAonjKa5oHWwST2memo/RMzWUtGrd/j6sR -mMfpkBRyICN0wArgVFpzeGgGrOAS66IwsTTMjGy/Lyn9MW+plraqjG3LH8rvO9vx -JrEyZGkJAoGBAO3WS9Vc3t4WXiHsIpdQczrkNsTdVf4IPbx2sdl+UdH70wMFwmM3 -/zbbCa1HvrUICr8AxTwpNMT9Xn+uSpWl04ximqn5SvZrQD/QbCkClCuNER7mHkG1 -pdrRhDoJEwGsowr830g4Icwqt6gCK0gzAzv2u/y8BT467v20nIRPtBHdAoGBAOxL -m6v9bKsD4YPh8SVmosXNVePmq+oKSwINVVPRECMV4SljyPdOJ7uJEkHSdE0+EX0U -XJovmRlcTRXp4BZQY810hrB8pjRk3gLOWynyWJRPc6nu9sB1dDYDpbrniBoCd0yw -dmANUooy1oviMo8XqNUylq5LRzcyvwGNrhZ2IBu3AoGAMPLZyJ/EfpC77t9afynf -jU9KtlmXSSEJE7CaCdklncHmO8kDqMftjqyl4TPS3A87pvPRpAAXDDPZLw3/66yl -TU895Z2Y//4yyu9qU0ZkmFIAJAvYTk3ERLS6MfeMIdwV8jz49zQWQJ7KDZnkrodR -MxYkum835QbcCPsS+2gr90ECgYAe6BTIfjFEfRF2KotcFPydWqotUPKTfh0pe4z5 -lZLCxA3bWA3lKvfPc7JLobdMkx2+endSQ3+G7ae3ggupX4JuURt84hDrMXZIb61E -40nqvCmoxHTJ35L/raJzu+z1WfU4tqwFDDkLknK1gTSTush+ektzKK177stE7L8k -ePbiKQKBgF1vW3q8FVg8HlHLOOc3wquoxiVB7X5h2gP0i5+VcPHvKQbGDcDm9eRu -xgc+mW48hNlURZm+ROUxUE8tSxsMx0eL5sykkkvu5Qf+mrP8MLV5IBAhJUJBas92 -j1xkXrNCGk3hj109/O6hJK9J6+afXC4p6tiOYFz2SaJI7+m6xtBa ------END RSA PRIVATE KEY----- diff --git a/examples/button-led/cred/modules_pubkey.pem b/examples/button-led/cred/modules_pubkey.pem deleted file mode 100644 index 70af8dd..0000000 --- a/examples/button-led/cred/modules_pubkey.pem +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA24fMUXKgPwNDJHTS9KCY -oXGv5n/loH8iGpjWcbjg8yAhnY3xLNQnIVVEpptOycm7pkTIzxSFaultTl0rStN8 -VouH9iLZFc2vZlpFSJ7HFZ/nHUr7MFnqKM9/MyoIWWjP9QyrCV+HXRPuRfJKpFQE -zJcqUlpEjghCVAw4lTfhr34r2HknCkdz+khPdu4WMHn13imH6GZX64Y7oobEhM37 -ValdNoLA4jM8RPwAtidCecmUPY7Ak4FiU2rCkK2AFnWaiM+AG5avATT0O04EMRQ3 -X8vLDfxLHg/RnEunf+jvFW6OlzQrbOwc6flEBWQi/JH+3Dnoo+Psxf/nO4y5ETsT -+wIDAQAB ------END PUBLIC KEY----- diff --git a/examples/button-led/cred/settings.json b/examples/button-led/cred/settings.json deleted file mode 100644 index 4237cd3..0000000 --- a/examples/button-led/cred/settings.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "debug": true, - "linkable": true, - "random_nonce": false, - "use_platform_service": false, - "spid": "", - "primary_subscription_key": "", - "secondary_subscription_key": "", - "quote_trust_options": [ - "GROUP_OUT_OF_DATE", - "CONFIGURATION_NEEDED" - ], - "sp_private_key_pem_path": "", - "ias_root_cert_pem_path": "", - "sigstruct_path": "" -} diff --git a/examples/button-led/cred/vendor_key.pem b/examples/button-led/cred/vendor_key.pem deleted file mode 100644 index 7f24e00..0000000 --- a/examples/button-led/cred/vendor_key.pem +++ /dev/null @@ -1,39 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -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 ------END RSA PRIVATE KEY----- diff --git a/examples/button-led/db/Cargo.toml b/examples/button-led/db/Cargo.toml deleted file mode 100644 index 5b745dc..0000000 --- a/examples/button-led/db/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "db" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/examples/button-led/db/src/lib.rs b/examples/button-led/db/src/lib.rs deleted file mode 100644 index cb48643..0000000 --- a/examples/button-led/db/src/lib.rs +++ /dev/null @@ -1,20 +0,0 @@ -use std::sync::Mutex; - -lazy_static! { - static ref BUTTON_PRESSES: Mutex = { - Mutex::new(0) // initially zero - }; -} - -//@sm_input -pub fn increment_presses(_data : &[u8]) { - let mut occ = BUTTON_PRESSES.lock().unwrap(); - *occ += 1; -} - -//@ sm_handler -pub fn get_presses(_data : &[u8]) -> Vec { - info!("Retrieving number of button presses"); - let occ = BUTTON_PRESSES.lock().unwrap(); - (*occ).to_be_bytes().to_vec() -} diff --git a/examples/button-led/deploy.sh b/examples/button-led/deploy.sh deleted file mode 100644 index da82eb7..0000000 --- a/examples/button-led/deploy.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -set -e - -# TODO: find a better way -echo "Waiting until all the EMs are ready.." -sleep 10 - -# Attesting the Attestation Manager -echo "Attesting AM.." -python3 run_attester.py manager.yaml - -# Initialize the Attestation Manager for the SGX attestation -echo "Initializing AM.." -attman-cli --config manager.yaml --request init-sgx --data init_sgx.yaml - -# deploy -echo "Deploying modules.." -reactive-tools --manager deploy descriptor.json --result res.json - -# TODO: is it really necessary? -echo "Waiting until all the modules are up and running.." -sleep 2 - -# attest -echo "Attesting modules.." -reactive-tools --manager attest res.json - -# connect -echo "Establishing connections.." -reactive-tools --manager connect res.json - -# init LED and attest pmodled -echo "Initializing and attesting MMIO LED.." -reactive-tools output res.json --connection init-led - -echo "Setup complete" -sleep 3600 diff --git a/examples/button-led/descriptor-local.json b/examples/button-led/descriptor-local.json deleted file mode 100644 index b181dd0..0000000 --- a/examples/button-led/descriptor-local.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "manager": "manager.yaml", - "nodes": [ - { - "type": "sgx", - "name": "node_sgx", - "ip_address": "localhost", - "reactive_port": 5000, - "aesm_host": "aesm-client" - }, - { - "type": "sancus", - "name": "node_sancus_1", - "ip_address": "localhost", - "vendor_id": 4660, - "vendor_key": "0b7bf3ae40880a8be430d0da34fb76f0", - "reactive_port": 6000 - }, - { - "type": "sancus", - "name": "node_sancus_2", - "ip_address": "localhost", - "vendor_id": 4660, - "vendor_key": "0b7bf3ae40880a8be430d0da34fb76f0", - "reactive_port": 6000 - }, - { - "type": "trustzone", - "name": "node_trustzone", - "ip_address": "localhost", - "reactive_port": 1236, - "node_key": "9a04aa182d039674708ce807ed914cd153cd9df7805e61742f0ae41294758dd3" - } - ], - "modules" : [ - { - "type": "sgx", - "name": "webserver", - "node": "node_sgx", - "vendor_key": "cred/vendor_key.pem", - "ra_settings": "cred/settings.json" - }, - { - "type": "sgx", - "name": "db", - "node": "node_sgx", - "vendor_key": "cred/vendor_key.pem", - "ra_settings": "cred/settings.json" - }, - { - "type": "trustzone", - "name": "gateway", - "node": "node_trustzone", - "files_dir": ".", - "id": 1, - "uuid": 330315078004237493521607747927864613423, - "inputs": {"button_pressed": 0}, - "outputs": {"toggle_led": 1 , "increment_presses": 2} - }, - { - "type": "sancus", - "name": "led_driver", - "node": "node_sancus_1", - "deployed": true, - "files": [], - "binary": "", - "id": 1, - "symtab": "", - "key": "3ce4fee780e5a4d8580a741466517020", - "nonce": 0 - }, - { - "type": "sancus", - "name": "button_driver", - "node": "node_sancus_2", - "files": ["button_driver.c"] - } - ], - "connections": [ - { - "from_module": "button_driver", - "from_output": "button_pressed", - "to_module": "gateway", - "to_input": "button_pressed", - "encryption": "spongent" - }, - { - "from_module": "gateway", - "from_output": "toggle_led", - "to_module": "led_driver", - "to_input": 1, - "encryption": "spongent" - }, - { - "from_module": "gateway", - "from_output": "increment_presses", - "to_module": "db", - "to_input": "increment_presses", - "encryption": "aes" - }, - { - "from_module": "webserver", - "from_request": "get_presses", - "to_module": "db", - "to_handler": "get_presses", - "encryption": "aes" - }, - { - "name": "init-server", - "direct": true, - "to_module": "webserver", - "to_handler": "init_server", - "encryption": "aes" - }, - { - "name": "init-led", - "direct": true, - "to_module": "led_driver", - "to_input": 0, - "encryption": "spongent" - }, - { - "name": "trigger-btn", - "direct": true, - "to_module": "button_driver", - "to_input": "trigger_button_press", - "encryption": "spongent" - }, - { - "name": "get-presses", - "direct": true, - "to_module": "db", - "to_handler": "get_presses", - "encryption": "aes" - } - ] -} diff --git a/examples/button-led/descriptor.json b/examples/button-led/descriptor.json deleted file mode 100644 index 6527e06..0000000 --- a/examples/button-led/descriptor.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "manager": "manager.yaml", - "nodes": [ - { - "type": "sgx", - "name": "node_sgx", - "ip_address": "node-sgx", - "reactive_port": 5000, - "aesm_host": "aesm-client" - }, - { - "type": "sancus", - "name": "node_sancus_1", - "ip_address": "node-sancus-1", - "vendor_id": 4660, - "vendor_key": "0b7bf3ae40880a8be430d0da34fb76f0", - "reactive_port": 6000 - }, - { - "type": "sancus", - "name": "node_sancus_2", - "ip_address": "node-sancus-2", - "vendor_id": 4660, - "vendor_key": "0b7bf3ae40880a8be430d0da34fb76f0", - "reactive_port": 6000 - }, - { - "type": "trustzone", - "name": "node_trustzone", - "ip_address": "node-trustzone", - "reactive_port": 1236, - "node_key": "9a04aa182d039674708ce807ed914cd153cd9df7805e61742f0ae41294758dd3" - } - ], - "modules" : [ - { - "type": "sgx", - "name": "webserver", - "node": "node_sgx", - "vendor_key": "cred/vendor_key.pem", - "ra_settings": "cred/settings.json" - }, - { - "type": "sgx", - "name": "db", - "node": "node_sgx", - "vendor_key": "cred/vendor_key.pem", - "ra_settings": "cred/settings.json" - }, - { - "type": "trustzone", - "name": "gateway", - "node": "node_trustzone", - "files_dir": ".", - "id": 1, - "uuid": 330315078004237493521607747927864613423, - "inputs": {"button_pressed": 0}, - "outputs": {"toggle_led": 1 , "increment_presses": 2} - }, - { - "type": "sancus", - "name": "led_driver", - "node": "node_sancus_1", - "deployed": true, - "files": [], - "binary": "", - "id": 1, - "symtab": "", - "key": "3ce4fee780e5a4d8580a741466517020", - "nonce": 0 - }, - { - "type": "sancus", - "name": "button_driver", - "node": "node_sancus_2", - "files": ["button_driver.c"] - } - ], - "connections": [ - { - "from_module": "button_driver", - "from_output": "button_pressed", - "to_module": "gateway", - "to_input": "button_pressed", - "encryption": "spongent" - }, - { - "from_module": "gateway", - "from_output": "toggle_led", - "to_module": "led_driver", - "to_input": 1, - "encryption": "spongent" - }, - { - "from_module": "gateway", - "from_output": "increment_presses", - "to_module": "db", - "to_input": "increment_presses", - "encryption": "aes" - }, - { - "from_module": "webserver", - "from_request": "get_presses", - "to_module": "db", - "to_handler": "get_presses", - "encryption": "aes" - }, - { - "name": "init-server", - "direct": true, - "to_module": "webserver", - "to_handler": "init_server", - "encryption": "aes" - }, - { - "name": "init-led", - "direct": true, - "to_module": "led_driver", - "to_input": 0, - "encryption": "spongent" - }, - { - "name": "trigger-btn", - "direct": true, - "to_module": "button_driver", - "to_input": "trigger_button_press", - "encryption": "spongent" - }, - { - "name": "get-presses", - "direct": true, - "to_module": "db", - "to_handler": "get_presses", - "encryption": "aes" - } - ] -} diff --git a/examples/button-led/docker-compose.yml b/examples/button-led/docker-compose.yml deleted file mode 100644 index ac3b55e..0000000 --- a/examples/button-led/docker-compose.yml +++ /dev/null @@ -1,75 +0,0 @@ -version: "3.9" - -services: - node-sancus-1: - image: gianlu33/event-manager-sancus:latest - expose: - - "6000" - environment: - - ELF=reactive_led.elf - - PORT=6000 - devices: - - "/dev/ttyUSB6:/dev/RIOT" - - "/dev/ttyUSB7:/dev/UART" - node-sancus-2: - image: gianlu33/event-manager-sancus:latest - expose: - - "6000" - environment: - - ELF=reactive.elf - - PORT=6000 - devices: - - "/dev/ttyUSB8:/dev/RIOT" - - "/dev/ttyUSB9:/dev/UART" - node-sgx: - image: gianlu33/reactive-event-manager:latest - expose: - - "5000-5010" - environment: - - EM_PORT=5000 - - EM_LOG=info - - EM_THREADS=16 - - EM_PERIODIC_TASKS=false - - EM_SGX=true - devices: - - "/dev/isgx:/dev/isgx" - volumes: - - "/var/run/aesmd:/var/run/aesmd" - node-trustzone: - image: gianlu33/optee-deps:latest - expose: - - "1236" - environment: - - PORT=1236 - volumes: - - "/opt/optee:/opt/optee" - aesm-client: - image: gianlu33/aesm-client:latest - expose: - - "13741" - environment: - - AESM_PORT=13741 - volumes: - - "/var/run/aesmd:/var/run/aesmd" - manager: - image: gianlu33/attestation-manager:sgx - expose: - - "1234" - devices: - - "/dev/isgx:/dev/isgx" - volumes: - - "/var/run/aesmd:/var/run/aesmd" - admin: - image: gianlu33/reactive-tools:latest - command: ./deploy.sh - depends_on: - - node-sancus-1 - - node-sancus-2 - - node-sgx - - node-trustzone - - aesm-client - - manager - volumes: - - ".:/usr/src/app" - - "/usr/local/cargo/git:/usr/local/cargo/git" # for caching builds - - "/usr/local/cargo/registry:/usr/local/cargo/registry" # same diff --git a/examples/button-led/gateway/Makefile b/examples/button-led/gateway/Makefile deleted file mode 100644 index a22c4ed..0000000 --- a/examples/button-led/gateway/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -CFG_TEE_TA_LOG_LEVEL ?= 4 - -# The UUID for the Trusted Application -BINARY=$(BINARY) - --include $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk - -ifeq ($(wildcard $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk), ) -clean: - @echo 'Note: $$(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk not found, cannot clean TA' - @echo 'Note: TA_DEV_KIT_DIR=$(TA_DEV_KIT_DIR)' -endif diff --git a/examples/button-led/gateway/authentic_execution.c b/examples/button-led/gateway/authentic_execution.c deleted file mode 100644 index 8249677..0000000 --- a/examples/button-led/gateway/authentic_execution.c +++ /dev/null @@ -1,656 +0,0 @@ -#include -#include -#include -#include - -#include - -#include -#include -#include -#include - -static const TEE_UUID pta_attestation_uuid = ATTESTATION_UUID; - -void *malloc_aligned(size_t size) { - size += size % 2; - - return malloc(size); -} - -int total_node = 0; - -typedef struct -{ - uint8_t encryption; - uint16_t conn_id; - uint16_t io_id; - uint16_t nonce; - unsigned char connection_key[16]; -} Connection; - -typedef struct Node -{ - Connection connection; - struct Node* next; -} Node; - -static Node* connections_head = NULL; - -int connections_add(Connection* connection) -{ - Node* node = malloc_aligned(sizeof(Node)); - - if (node == NULL) - return 0; - - node->connection = *connection; - node->next = connections_head; - connections_head = node; - return 1; -} - -Connection* connections_get(uint16_t conn_id) -{ - Node* current = connections_head; - - while (current != NULL) { - Connection* connection = ¤t->connection; - - if (connection->conn_id == conn_id) { - return connection; - } - - current = current->next; - } - - return NULL; -} - -void find_connections(uint16_t io_id, int *arr, uint8_t *num) -{ - Node* current = connections_head; - while (current != NULL) { - Connection* connection = ¤t->connection; - if (connection->io_id == io_id) { - arr[*num] = connection->conn_id; - *num = *num + 1; - } - - current = current->next; - } - -} - -//=============================================================== - -char module_key[16] = { 0 }; - -struct aes_cipher { - uint32_t algo; /* AES flavour */ - uint32_t mode; /* Encode or decode */ - uint32_t key_size; /* AES key size in byte */ - TEE_OperationHandle op_handle; /* AES ciphering operation */ - TEE_ObjectHandle key_handle; /* transient object to load the key */ -}; - -//=============================================================== - -static TEE_Result ta2tee_algo_id(uint32_t param, uint32_t *algo) -{ - switch (param) { - case TA_AES_ALGO_ECB: - *algo = TEE_ALG_AES_ECB_NOPAD; - return TEE_SUCCESS; - case TA_AES_ALGO_CBC: - *algo = TEE_ALG_AES_CBC_NOPAD; - return TEE_SUCCESS; - case TA_AES_ALGO_GCM: - *algo = TEE_ALG_AES_GCM; - return TEE_SUCCESS; - default: - EMSG("Invalid algo %u", param); - return TEE_ERROR_BAD_PARAMETERS; - } -} -static TEE_Result ta2tee_key_size(uint32_t param, uint32_t *key_size) -{ - switch (param) { - case 16: - *key_size = param; - return TEE_SUCCESS; - default: - EMSG("Invalid key size %u", param); - return TEE_ERROR_BAD_PARAMETERS; - } -} -static TEE_Result ta2tee_mode_id(uint32_t param, uint32_t *mode) -{ - switch (param) { - case TA_AES_MODE_ENCODE: - *mode = TEE_MODE_ENCRYPT; - return TEE_SUCCESS; - case TA_AES_MODE_DECODE: - *mode = TEE_MODE_DECRYPT; - return TEE_SUCCESS; - default: - EMSG("Invalid mode %u", param); - return TEE_ERROR_BAD_PARAMETERS; - } -} - -static TEE_Result alloc_resources(void *session, uint32_t algo, uint32_t key_size, - uint32_t mode){ - - struct aes_cipher *sess; - TEE_Attribute attr; - TEE_Result res; - char *key; - - /* Get ciphering context from session ID */ - sess = (struct aes_cipher *)session; - - res = ta2tee_algo_id(algo, &sess->algo); - if (res != TEE_SUCCESS) - return res; - - res = ta2tee_key_size(key_size, &sess->key_size); - if (res != TEE_SUCCESS) - return res; - - res = ta2tee_mode_id(mode, &sess->mode); - if (res != TEE_SUCCESS) - return res; - - if (sess->op_handle != TEE_HANDLE_NULL) - TEE_FreeOperation(sess->op_handle); - - /* Allocate operation: AES/CTR, mode and size from params */ - res = TEE_AllocateOperation(&sess->op_handle, - sess->algo, - sess->mode, - sess->key_size * 8); - if (res != TEE_SUCCESS) { - EMSG("Failed to allocate operation"); - sess->op_handle = TEE_HANDLE_NULL; - goto err; - } - - /* Free potential previous transient object */ - if (sess->key_handle != TEE_HANDLE_NULL) - TEE_FreeTransientObject(sess->key_handle); - - /* Allocate transient object according to target key size */ - res = TEE_AllocateTransientObject(TEE_TYPE_AES, - sess->key_size * 8, - &sess->key_handle); - if (res != TEE_SUCCESS) { - EMSG("Failed to allocate transient object"); - sess->key_handle = TEE_HANDLE_NULL; - goto err; - } - - key = TEE_Malloc(sess->key_size, 0); - if (!key) { - res = TEE_ERROR_OUT_OF_MEMORY; - goto err; - } - - TEE_InitRefAttribute(&attr, TEE_ATTR_SECRET_VALUE, key, sess->key_size); - - res = TEE_PopulateTransientObject(sess->key_handle, &attr, 1); - if (res != TEE_SUCCESS) { - EMSG("TEE_PopulateTransientObject failed, %x", res); - goto err; - } - - res = TEE_SetOperationKey(sess->op_handle, sess->key_handle); - if (res != TEE_SUCCESS) { - EMSG("TEE_SetOperationKey failed %x", res); - goto err; - } - - return res; - -err: - if (sess->op_handle != TEE_HANDLE_NULL) - TEE_FreeOperation(sess->op_handle); - sess->op_handle = TEE_HANDLE_NULL; - - if (sess->key_handle != TEE_HANDLE_NULL) - TEE_FreeTransientObject(sess->key_handle); - sess->key_handle = TEE_HANDLE_NULL; - - return res; -} - -static TEE_Result set_aes_key(void *session, char *key, uint32_t key_sz){ - - struct aes_cipher *sess; - TEE_Attribute attr; - TEE_Result res; - - /* Get ciphering context from session ID */ - sess = (struct aes_cipher *)session; - - //--------------------------------------------------------------- - if (key_sz != sess->key_size) { - EMSG("Wrong key size %" PRIu32 ", expect %" PRIu32 " bytes", - key_sz, sess->key_size); - return TEE_ERROR_BAD_PARAMETERS; - } - - TEE_InitRefAttribute(&attr, TEE_ATTR_SECRET_VALUE, key, key_sz); - - TEE_ResetTransientObject(sess->key_handle); - res = TEE_PopulateTransientObject(sess->key_handle, &attr, 1); - if (res != TEE_SUCCESS) { - EMSG("TEE_PopulateTransientObject failed, %x", res); - return res; - } - - TEE_ResetOperation(sess->op_handle); - res = TEE_SetOperationKey(sess->op_handle, sess->key_handle); - if (res != TEE_SUCCESS) { - EMSG("TEE_SetOperationKey failed %x", res); - return res; - } - - return res; -} - -static TEE_Result reset_aes_iv(void *session, char *aad, size_t aad_sz, - char *nonce, size_t nonce_sz, size_t payload_sz){ - - struct aes_cipher *sess; - - /* Get ciphering context from session ID */ - sess = (struct aes_cipher *)session; - - TEE_AEInit(sess->op_handle, nonce, nonce_sz, 16*8/* tag_len in bits */, aad_sz /*aad_len*/, - payload_sz /*plaintext_len*/); - - TEE_AEUpdateAAD(sess->op_handle, aad, aad_sz); - - return TEE_SUCCESS; -} - -static TEE_Result set_key(void *session, uint32_t param_types, - TEE_Param params[4]) -{ - TEE_Result res = TEE_ERROR_OUT_OF_MEMORY; - const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_NONE); - struct aes_cipher *sess; - Connection connection; - - sess = (struct aes_cipher *)session; - char nonce[12] = { 0 }; - size_t nonce_sz = 12; - - alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_DECODE); - set_aes_key(sess, module_key, 16); - reset_aes_iv(sess, params[0].memref.buffer, params[0].memref.size, nonce, nonce_sz, params[1].memref.size); - - char *tag; - tag = params[0].memref.buffer; - char *temp; - - void *decrypted_key = NULL; - void *tag_void = NULL; - - //========================================== - decrypted_key = TEE_Malloc(16, 0); - tag_void = TEE_Malloc(params[2].memref.size, 0); - if (!decrypted_key || !tag_void) - goto out; - - TEE_MemMove(tag_void, params[2].memref.buffer, params[2].memref.size); - - res = TEE_AEDecryptFinal(sess->op_handle, params[1].memref.buffer, - params[1].memref.size, decrypted_key, ¶ms[2].memref.size, tag_void, - params[2].memref.size); - - if (!res) { - temp = decrypted_key; - for (int j = 0; j < 16; j++){ - connection.connection_key[j]= temp[j]; - } - - connection.nonce = 0; - connection.encryption = tag[0] & 0xFF; - - int j = 0; - connection.conn_id = 0; - for(int n=2; n>=1; --n){ - connection.conn_id = connection.conn_id + (( tag[n] & 0xFF ) << (8*j)); - ++j; - } - j = 0; - connection.io_id = 0; - for(int n=4; n>=3; --n){ - connection.io_id = connection.io_id + (( tag[n] & 0xFF ) << (8*j)); - ++j; - } - total_node = total_node + 1; - connections_add(&connection); - } - -out: - TEE_Free(decrypted_key); - TEE_Free(tag_void); - - return res; -} - -//====================================================================== - -static TEE_Result attest(void *session, uint32_t param_types, - TEE_Param params[4]) -{ - TEE_Result res = TEE_ERROR_OUT_OF_MEMORY; - const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_MEMREF_OUTPUT, - TEE_PARAM_TYPE_NONE, - TEE_PARAM_TYPE_NONE); - struct aes_cipher *sess; - - sess = (struct aes_cipher *)session; - - // ------------ Call PTA ---------************************************************** - TEE_TASessionHandle pta_session = TEE_HANDLE_NULL; - uint32_t ret_origin = 0; - uint32_t pta_param_types = TEE_PARAM_TYPES( TEE_PARAM_TYPE_MEMREF_OUTPUT, - TEE_PARAM_TYPE_NONE, TEE_PARAM_TYPE_NONE, - TEE_PARAM_TYPE_NONE); - - TEE_Param pta_params[TEE_NUM_PARAMS]; - - // prepare the parameters for the pta - pta_params[0].memref.buffer = module_key; - pta_params[0].memref.size = 16; - - // ------------ Open Session to PTA --------- - res = TEE_OpenTASession(&pta_attestation_uuid, 0, 0, NULL, &pta_session, - &ret_origin); - if (res != TEE_SUCCESS) - return res; - - // ------------ Invoke command at PTA (get_module key) --------- - res = TEE_InvokeTACommand(pta_session, 0, ATTESTATION_CMD_GET_MODULE_KEY, - pta_param_types, pta_params, &ret_origin); - if (res != TEE_SUCCESS) - return res; - - // ------------ Close Session to PTA --------- - TEE_CloseTASession(pta_session); - - //******************************************************************************* - char nonce[12] = { 0 }; - size_t nonce_sz = 12; - // challenge = param[0] --> aad - alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_ENCODE); - set_aes_key(sess, module_key, 16); - reset_aes_iv(sess, params[0].memref.buffer, params[0].memref.size, nonce, nonce_sz, 0); - - unsigned char challenge[16]={0}; - memcpy(challenge, params[0].memref.buffer, 16); - DMSG("Module key: %x %x", module_key[0], module_key[1]); - DMSG("Challenge: %x %x", challenge[0], challenge[1]); - - void *tag = TEE_Malloc(16, 0); - uint32_t len = 0, tag_len = 16; - - res = TEE_AEEncryptFinal(sess->op_handle, NULL, - 0, NULL, &len, tag, &tag_len); - - if (!res) { - params[1].memref.size = 16; - TEE_MemMove(params[1].memref.buffer, tag, params[1].memref.size); - } - else { - DMSG("MAC generation failed: %d", res); - } - - TEE_Free(tag); - - return res; - -} - -//====================================================================== -void handle_output(void *session, uint8_t *num, uint16_t output_id, unsigned char *conn_id, - unsigned char *data, uint32_t data_len, unsigned char *tag) { - - struct aes_cipher *sess; - sess = (struct aes_cipher *)session; - - const void *text = data; // for AES - - BitSequence output[data_len]; - BitSequence tag_spongent[16]; - BitSequence data_spongent[data_len]; - memcpy(data_spongent, data, data_len); // for spongent - - uint8_t index = 0; - - int arr[total_node]; - find_connections(output_id, arr, num); - - for(int i = 0; i < *num; i++){ - - Connection* connection = connections_get(arr[i]); - char nonce[12] = { 0 }; - size_t nonce_sz = 12; - - unsigned char aad[2] = { 0 }; - int j = 1; - for(int m = 0; m < 2; m++){ - aad[m] = ((connection->nonce) >> (8*j)) & 0xFF; // ######## - j--; - } - - unsigned char conn_id_array[2] = { 0 }; - int c = 1; - for(int m = 0; m < 2; m++){ - conn_id_array[m] = ((connection->conn_id) >> (8*c)) & 0xFF; - c--; - } - - memcpy(conn_id + (2 * i), conn_id_array, 2); - - //*************** ^ ^ ******************************************************* - - if(connection->encryption == AES){ - - alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_ENCODE); - set_aes_key(sess, connection->connection_key, 16); //####### - reset_aes_iv(sess, aad, 2, nonce, nonce_sz, data_len); - - void *encrypt = NULL; - void *tag_void = NULL; - uint32_t sz = 16; - - encrypt = TEE_Malloc(data_len, 0); - tag_void = TEE_Malloc(16, 0); - - TEE_Result res = TEE_AEEncryptFinal(sess->op_handle, text, data_len, - encrypt, &data_len, tag_void, &sz); - - if (!res) { - - data[index] = data_len & 0xFF; - memcpy(data + index + 1, encrypt, data_len); - memcpy(tag + (16 * i), tag_void, 16); - TEE_Free(encrypt); - TEE_Free(tag_void); - } - } // if AES - else { - - SpongentWrap(connection->connection_key, aad, 16, data_spongent, data_len * 8, output, tag_spongent, 0); - - data[index] = data_len & 0xFF; - memcpy(data + index + 1, output, data_len); - memcpy(tag + (16 * i), tag_spongent, 16); - } // if SPONGENT - - index = index + data_len + 1; - connection->nonce = connection->nonce + 1; //###### - - } // for - -} -//========================================================================= -TEE_Result handle_input(void *session, uint32_t param_types, TEE_Param params[4]){ - - const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_VALUE_INOUT, - TEE_PARAM_TYPE_MEMREF_OUTPUT, - TEE_PARAM_TYPE_MEMREF_INOUT, - TEE_PARAM_TYPE_MEMREF_INOUT); - - TEE_Result res; - struct aes_cipher *sess; - sess = (struct aes_cipher *)session; - uint32_t size = params[0].value.a; - unsigned char* data; - data = malloc(size); - - Connection* connection = connections_get(params[0].value.b); - - char nonce[12] = { 0 }; - size_t nonce_sz = 12; - - unsigned char aad[2] = { 0 }; - int j = 1; - for(int m = 0; m < 2; m++){ - aad[m] = ((connection->nonce) >> (8*j)) & 0xFF; // ######## - j--; - } - - //--------------------------------------------------------------- - if(connection->encryption == AES){ - - alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_DECODE); - set_aes_key(sess, connection->connection_key, 16); //####### - reset_aes_iv(sess, aad, 2, nonce, nonce_sz, size); - - void *decrypted_data = NULL; - void *tag_void = NULL; - - decrypted_data = TEE_Malloc(size, 0); - tag_void = TEE_Malloc(16, 0); - - TEE_MemMove(tag_void, params[3].memref.buffer, 16); - - res = TEE_AEDecryptFinal(sess->op_handle, params[2].memref.buffer, size, - decrypted_data, &size, tag_void, 16); - - if (!res) { - memcpy(data, decrypted_data, size); - for(int i = 0; i < size; i++){ - printf("%2X", data[i]); - } - printf("\n"); - TEE_Free(decrypted_data); - TEE_Free(tag_void); - } - }// if AES - else{ - - BitSequence tag_spongent[16]; // TAG length is the same as the key length. 16 bytes. - BitSequence encrypted_data[size]; - - for (int n = 0; n < size; n++){ - encrypted_data[n] = ((uint8_t *)params[2].memref.buffer)[n]; - } - - for (int n = 0; n < 16; n++){ - tag_spongent[n] = ((uint8_t *)params[3].memref.buffer)[n]; - } - - SpongentUnwrap(connection->connection_key, aad, 16, encrypted_data, - size * 8, data, tag_spongent); - - for(int i = 0; i < size; i++){ - printf("%2X", data[i]); - } - printf("\n"); - }// if spongent - - connection->nonce = connection->nonce + 1; - - find_input_func(session, param_types, params, connection->io_id, data, size); - - return TEE_SUCCESS; -} - -// Called when the TA is created ======================================= -TEE_Result TA_CreateEntryPoint(void) { - DMSG("=============== TA_CreateEntryPoint ================"); - return TEE_SUCCESS; -} - -// Called when the TA is destroyed -void TA_DestroyEntryPoint(void) { - DMSG("=============== TA_DestroyEntryPoint ==============="); -} - -// open session -TEE_Result TA_OpenSessionEntryPoint(uint32_t __unused param_types, - TEE_Param __unused params[4], - void __unused **session) -{ - DMSG("=========== TA_OpenSessionEntryPoint ==============="); - - struct aes_cipher *sess; - sess = TEE_Malloc(sizeof(*sess), 0); - if (!sess) - return TEE_ERROR_OUT_OF_MEMORY; - - sess->key_handle = TEE_HANDLE_NULL; - sess->op_handle = TEE_HANDLE_NULL; - - *session = (void *)sess; - - return TEE_SUCCESS; -} - -// close session -void TA_CloseSessionEntryPoint(void *session) -{ - DMSG("========== TA_CloseSessionEntryPoint ==============="); - - struct aes_cipher *sess; - - /* Get ciphering context from session ID */ - sess = (struct aes_cipher *)session; - - /* Release the session resources */ - if (sess->key_handle != TEE_HANDLE_NULL) - TEE_FreeTransientObject(sess->key_handle); - if (sess->op_handle != TEE_HANDLE_NULL) - TEE_FreeOperation(sess->op_handle); - TEE_Free(sess); -} - -// invoke command -TEE_Result TA_InvokeCommandEntryPoint(void *session, uint32_t cmd, uint32_t param_types, - TEE_Param params[4]) -{ - switch (cmd) { - case SET_KEY: - return set_key(session, param_types, params); - case ATTEST: - return attest(session, param_types, params); - case HANDLE_INPUT: - return handle_input(session, param_types, params); - case ENTRY: - return entry(session, param_types, params); - default: - EMSG("Command ID 0x%x is not supported", cmd); - return TEE_ERROR_NOT_SUPPORTED; - } -} diff --git a/examples/button-led/gateway/controller.c b/examples/button-led/gateway/controller.c deleted file mode 100644 index 70c47cf..0000000 --- a/examples/button-led/gateway/controller.c +++ /dev/null @@ -1,81 +0,0 @@ -#include -#include -#include - -#include -#include - -//sm_output -void toggle_led(void *session, uint8_t *num, unsigned char *conn_id, unsigned char *data, - uint32_t data_len, unsigned char *tag){ - - uint16_t output_id = 1; - handle_output(session, num, output_id, conn_id, data, data_len, tag); -} -void increment_presses(void *session, uint8_t *num, unsigned char *conn_id, unsigned char *data, - uint32_t data_len, unsigned char *tag){ - - uint16_t output_id = 2; - handle_output(session, num, output_id, conn_id, data, data_len, tag); -} - -// sm_input -void button_pressed(void *session, uint32_t param_types, TEE_Param params[4], - unsigned char* data_input, uint32_t data_len) { - - uint8_t i = 0; - uint8_t num = 0; - uint8_t index = 0; - unsigned char *data; - unsigned char *conn_id; - unsigned char *tag; - conn_id = malloc(16 * 2); - data = malloc(16 * 16); /* Maximum number of output*/ - tag = malloc(16 * 16); - //--------------------------------------------------------------------------------- - memcpy(data, data_input, data_len); - - toggle_led(session, &num, conn_id, data, data_len, tag); //sm_output - - TEE_MemMove(params[1].memref.buffer, conn_id, (2 * num)); - TEE_MemMove(params[2].memref.buffer, data, ((data_len * num) + num)); - TEE_MemMove(params[3].memref.buffer, tag, (16 * num)); - //------------------------------------------------------------------------------- - i += num; - index = index + (data_len * num) + num; - memcpy(data, data_input, data_len); - num = 0; - increment_presses(session, &num, conn_id, data, data_len, tag); //sm_output - - TEE_MemMove(params[1].memref.buffer + (i * 2), conn_id, (2 * num)); - TEE_MemMove(params[2].memref.buffer + index, data, ((data_len * num) + num)); - TEE_MemMove(params[3].memref.buffer + (i * 16), tag, (16 * num)); - //------------------------------------------------------------------------------- - params[0].value.b = i + num; - - free(data); - free(conn_id); - free(tag); -} - -void find_input_func(void *session, uint32_t param_types, TEE_Param params[4], - uint16_t io_id, unsigned char* data, uint32_t size){ - - switch (io_id) - { - case 0: - button_pressed(session, param_types, params, data, size); - break; - - default: - break; - } -} -//sm_entry -TEE_Result entry(void *session, uint32_t param_types, TEE_Param params[4]){ - - return TEE_SUCCESS; -} - - - diff --git a/examples/button-led/gateway/include/authentic_execution.h b/examples/button-led/gateway/include/authentic_execution.h deleted file mode 100644 index 3653601..0000000 --- a/examples/button-led/gateway/include/authentic_execution.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef TA_H -#define TA_H - -#include - - -#define TA_AES_ALGO_ECB 0 -#define TA_AES_ALGO_CBC 1 -#define TA_AES_ALGO_GCM 2 - -#define TA_AES_SIZE_128BIT (128 / 8) -#define TA_AES_SIZE_256BIT (256 / 8) - -#define TA_AES_MODE_ENCODE 1 -#define TA_AES_MODE_DECODE 0 - -#define AES 0 // aes-gcm-128 -#define SPONGENT 1 // spongent-128 - - -/* The function IDs implemented in this TA */ -#define SET_KEY 0 -#define ATTEST 1 -#define HANDLE_INPUT 2 -#define ENTRY 3 - -void handle_output(void *session, uint8_t *num, uint16_t output_id, unsigned char *conn_id, - unsigned char *data, uint32_t data_len, unsigned char *tag); - -TEE_Result handle_input(void *session, uint32_t param_types, TEE_Param params[4]); - -#endif diff --git a/examples/button-led/gateway/include/controller.h b/examples/button-led/gateway/include/controller.h deleted file mode 100644 index 0ad6209..0000000 --- a/examples/button-led/gateway/include/controller.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef CONTROLLER_H -#define CONTROLLER_H - -#include - -#define CONTROLLER_UUID \ - { 0xf8805eb7, 0x14c6, 0x49bd, { 0x86, 0xe2, 0xe7, 0x71, 0xca, 0xfd, 0x9a, 0x2f} } - - - -TEE_Result entry(void *session, uint32_t param_types, TEE_Param params[4]); -void find_input_func(void *session, uint32_t param_types, TEE_Param params[4], - uint16_t io_id, unsigned char* data, uint32_t size); - -//sm_input -void button_pressed(void *session, uint32_t param_types, TEE_Param params[4], - unsigned char* data_input, uint32_t data_len); -//sm_output -void toggle_led(void *session, uint8_t *num, unsigned char *conn_id, unsigned char *data, - uint32_t data_len, unsigned char *tag); -void increment_presses(void *session, uint8_t *num, unsigned char *conn_id, unsigned char *data, - uint32_t data_len, unsigned char *tag); - -#endif diff --git a/examples/button-led/gateway/include/pta_attestation.h b/examples/button-led/gateway/include/pta_attestation.h deleted file mode 100644 index 2036e3b..0000000 --- a/examples/button-led/gateway/include/pta_attestation.h +++ /dev/null @@ -1,19 +0,0 @@ -/* SPDX-License-Identifier: BSD-2-Clause */ -/* - * Copyright (c) 2018-2019, Linaro Limited - */ -#ifndef __PTA_ATTESTATION_H -#define __PTA_ATTESTATION_H - -#include - -/* - * Interface to the pseudo TA, which provides remote attestation. - */ -#define ATTESTATION_UUID \ - { 0xa2b0b139, 0x82dc, 0x4ffc, \ - { 0xa8, 0xa8, 0x7d, 0x7c, 0x63, 0x66, 0xe9, 0x84 } } - -#define ATTESTATION_CMD_GET_MODULE_KEY 0 - -#endif /* __PTA_ATTESTATION_H */ diff --git a/examples/button-led/gateway/include/spongent.h b/examples/button-led/gateway/include/spongent.h deleted file mode 100644 index 61f9fab..0000000 --- a/examples/button-led/gateway/include/spongent.h +++ /dev/null @@ -1,141 +0,0 @@ -#ifndef _SPONGENT_H_ -#define _SPONGENT_H_ - -//#include -#include -#include - -// #define _PrintState_ - -#define SW_SECURITY 128 - -#define SW_RATE 16 -#define SW_RATE_BYTES (SW_RATE / 8) - -#define MIN_CAPACITY (SW_SECURITY * 2) -#define MIN_WIDTH (MIN_CAPACITY + SW_RATE + 2) - -#if MIN_WIDTH <= 88 -#define WIDTH 88 -#define nRounds 45 -#define version 88808 - -#elif MIN_WIDTH <= 136 -#define WIDTH 136 -#define nRounds 70 -#define version 1281288 - -#elif MIN_WIDTH <= 176 -#define WIDTH 176 -#define nRounds 90 -#define version 16016016 - -#elif MIN_WIDTH <= 240 -#define WIDTH 240 -#define nRounds 120 -#define version 16016080 - -#elif MIN_WIDTH <= 264 -#define WIDTH 264 -#define nRounds 135 -#define version 8817688 - -#elif MIN_WIDTH <= 272 -#define WIDTH 272 -#define nRounds 140 -#define version 25625616 - -#elif MIN_WIDTH <= 336 -#define WIDTH 336 -#define nRounds 170 -#define version 224224112 - -#elif MIN_WIDTH <= 384 -#define WIDTH 384 -#define nRounds 195 -#define version 256256128 - -#elif MIN_WIDTH <= 480 -#define WIDTH 480 -#define nRounds 240 -#define version 160320160 - -#elif MIN_WIDTH <= 672 -#define WIDTH 672 -#define nRounds 340 -#define version 224448224 - -#elif MIN_WIDTH <= 768 -#define WIDTH 768 -#define nRounds 385 -#define version 256512256 - -#else -#error "Security too high" -#endif - -#define rate (SW_RATE + 2) -#define capacity (WIDTH - rate) -#define hashsize SW_SECURITY - -#define BITS_TO_BYTES(x) (x / 8 + (x % 8 != 0)) - -#define R_SizeInBytes BITS_TO_BYTES(rate) -#define nBits (capacity + rate) -#define nSBox nBits/8 -#define KEY_SIZE hashsize -#define TAG_SIZE hashsize -#define TAG_SIZE_BYTES (TAG_SIZE / 8) - -typedef unsigned char BitSequence; -typedef unsigned long long DataLength; - -typedef uint64_t bit64; -typedef uint32_t bit32; -typedef uint16_t bit16; -typedef uint8_t bit8; - -#define GET_BIT(x,y) (x >> y) & 0x1 - -typedef enum { SUCCESS = 0, FAIL = 1, BAD_HASHBITLEN = 2, BAD_TAG = 3 } HashReturn; - -typedef struct { - BitSequence value[nSBox]; /* current Spongent state */ - BitSequence messageblock[R_SizeInBytes]; /* message block to be input/output */ - int remainingbitlen; /* remaining data length */ - int hashbitlen; /* # of hashed bits so far */ -} hashState; - -HashReturn SpongentHash(const BitSequence *data, DataLength databitlen, BitSequence *hashval); -HashReturn Init(hashState *state, BitSequence *hashval); -HashReturn Absorb(hashState *state); -HashReturn Squeeze(hashState *state); -HashReturn Pad(hashState *state); - -int Pi(int i); -void pLayer(hashState *state); -void Permute(hashState *state); - -bit16 lCounter(bit16 lfsr); -bit16 retnuoCl(bit16 lfsr); - - -HashReturn SpongentWrap(const BitSequence* key, - const BitSequence* ad, DataLength adBitLength, - const BitSequence* input, DataLength bitLength, - BitSequence* output, - BitSequence* tag, - bool unwrap); - -HashReturn SpongentUnwrap(const BitSequence* key, - const BitSequence* ad, DataLength adBitLength, - const BitSequence* input, DataLength bitLength, - BitSequence* output, - const BitSequence* expectedTag); - -HashReturn SpongentMac(const BitSequence* key, - const BitSequence* input, DataLength bitLength, - BitSequence* mac); - -#endif /* spongent.h */ - diff --git a/examples/button-led/gateway/spongent.c b/examples/button-led/gateway/spongent.c deleted file mode 100644 index 6041426..0000000 --- a/examples/button-led/gateway/spongent.c +++ /dev/null @@ -1,530 +0,0 @@ -/* - * SPONGENT hash function - Implementation - * This code is placed in the public domain - * For more information, feedback or questions, please refer to our website: - * https://sites.google.com/site/spongenthash/ - -*/ - -#include -#include -#include -#include -#include "spongent.h" - -/* Spongent S-box */ -int S[16] = { 0xe, 0xd, 0xb, 0x0, 0x2, 0x1, 0x4, 0xf, 0x7, 0xa, 0x8, 0x5, 0x9, 0xc, 0x3, 0x6}; - - -/* Spongent eight bit S-box */ -int sBoxLayer[256] = { - 0xee, 0xed, 0xeb, 0xe0, 0xe2, 0xe1, 0xe4, 0xef, 0xe7, 0xea, 0xe8, 0xe5, 0xe9, 0xec, 0xe3, 0xe6, - 0xde, 0xdd, 0xdb, 0xd0, 0xd2, 0xd1, 0xd4, 0xdf, 0xd7, 0xda, 0xd8, 0xd5, 0xd9, 0xdc, 0xd3, 0xd6, - 0xbe, 0xbd, 0xbb, 0xb0, 0xb2, 0xb1, 0xb4, 0xbf, 0xb7, 0xba, 0xb8, 0xb5, 0xb9, 0xbc, 0xb3, 0xb6, - 0x0e, 0x0d, 0x0b, 0x00, 0x02, 0x01, 0x04, 0x0f, 0x07, 0x0a, 0x08, 0x05, 0x09, 0x0c, 0x03, 0x06, - 0x2e, 0x2d, 0x2b, 0x20, 0x22, 0x21, 0x24, 0x2f, 0x27, 0x2a, 0x28, 0x25, 0x29, 0x2c, 0x23, 0x26, - 0x1e, 0x1d, 0x1b, 0x10, 0x12, 0x11, 0x14, 0x1f, 0x17, 0x1a, 0x18, 0x15, 0x19, 0x1c, 0x13, 0x16, - 0x4e, 0x4d, 0x4b, 0x40, 0x42, 0x41, 0x44, 0x4f, 0x47, 0x4a, 0x48, 0x45, 0x49, 0x4c, 0x43, 0x46, - 0xfe, 0xfd, 0xfb, 0xf0, 0xf2, 0xf1, 0xf4, 0xff, 0xf7, 0xfa, 0xf8, 0xf5, 0xf9, 0xfc, 0xf3, 0xf6, - 0x7e, 0x7d, 0x7b, 0x70, 0x72, 0x71, 0x74, 0x7f, 0x77, 0x7a, 0x78, 0x75, 0x79, 0x7c, 0x73, 0x76, - 0xae, 0xad, 0xab, 0xa0, 0xa2, 0xa1, 0xa4, 0xaf, 0xa7, 0xaa, 0xa8, 0xa5, 0xa9, 0xac, 0xa3, 0xa6, - 0x8e, 0x8d, 0x8b, 0x80, 0x82, 0x81, 0x84, 0x8f, 0x87, 0x8a, 0x88, 0x85, 0x89, 0x8c, 0x83, 0x86, - 0x5e, 0x5d, 0x5b, 0x50, 0x52, 0x51, 0x54, 0x5f, 0x57, 0x5a, 0x58, 0x55, 0x59, 0x5c, 0x53, 0x56, - 0x9e, 0x9d, 0x9b, 0x90, 0x92, 0x91, 0x94, 0x9f, 0x97, 0x9a, 0x98, 0x95, 0x99, 0x9c, 0x93, 0x96, - 0xce, 0xcd, 0xcb, 0xc0, 0xc2, 0xc1, 0xc4, 0xcf, 0xc7, 0xca, 0xc8, 0xc5, 0xc9, 0xcc, 0xc3, 0xc6, - 0x3e, 0x3d, 0x3b, 0x30, 0x32, 0x31, 0x34, 0x3f, 0x37, 0x3a, 0x38, 0x35, 0x39, 0x3c, 0x33, 0x36, - 0x6e, 0x6d, 0x6b, 0x60, 0x62, 0x61, 0x64, 0x6f, 0x67, 0x6a, 0x68, 0x65, 0x69, 0x6c, 0x63, 0x66 -}; - -//-------------------------------------------------------------------------------------------- - -DataLength min(DataLength a, DataLength b){ - if(a <= b){ - return a; - } - else{ - return b; - } -} -//-------------------------------------------------------------------------------------------- - -void copy_n(BitSequence *first, int num, BitSequence *result){ - - for(int i = 0; i < num; i++){ - result[i] = first[i]; - } -} -//----------------------------------------------------------------------------------------- - -void PrintState(hashState *state) -{ - int i; - for (i=nSBox-1; i>=0; i--) - printf("%02X", state->value[i]); - printf("\n"); -} - -//-------------------------------------------------------------------------------------------- - -bit16 lCounter(bit16 lfsr) -{ - switch( version ) { - case 88808: - lfsr = (lfsr << 1) | (((0x20 & lfsr) >> 5) ^ ((0x10 & lfsr) >> 4)); - lfsr &= 0x3f; - break; - case 1281288: - case 16016016: - case 16016080: - case 22422416: - lfsr = (lfsr << 1) | (((0x40 & lfsr) >> 6) ^ ((0x20 & lfsr) >> 5)); - lfsr &= 0x7f; - break; - case 8817688: - case 128256128: - case 160320160: - case 224224112: - case 25625616: - case 256256128: - lfsr = (lfsr << 1) | (((0x80 & lfsr) >> 7) ^ ((0x08 & lfsr) >> 3) ^ ((0x04 & lfsr) >> 2) ^ ((0x02 & lfsr) >> 1)); - lfsr &= 0xff; - break; - case 224448224: - case 256512256: - lfsr = (lfsr << 1) | (((0x100 & lfsr) >> 8) ^ ((0x08 & lfsr) >> 3)); - lfsr &= 0x1ff; - break; - default : - printf("ErrorCounter\n"); - break; - } - return lfsr; -} - -//-------------------------------------------------------------------------------------------- - -bit16 retnuoCl(bit16 lfsr) -{ - switch(version) - { - case 88808: - case 8817688: - case 1281288: - case 128256128: - case 16016016: - case 16016080: - case 160320160: - case 22422416: - case 224224112: - case 25625616: - case 256256128: - lfsr = ( ((lfsr & 0x01) <<7) | ((lfsr & 0x02) << 5) | ((lfsr & 0x04) << 3) | ((lfsr & 0x08) << 1) | ((lfsr & 0x10) >> 1) | ((lfsr & 0x20) >> 3) | ((lfsr & 0x40) >> 5) | ((lfsr & 0x80) >> 7) ); - lfsr <<= 8; - break; - case 224448224: - case 256512256: - lfsr = ( ((lfsr & 0x01) <<8) | ((lfsr & 0x02) << 6) | ((lfsr & 0x04) << 4) | ((lfsr & 0x08) << 2) | ((lfsr & 0x10) << 0) | ((lfsr & 0x20) >> 2) | ((lfsr & 0x40) >> 4) | ((lfsr & 0x80) >> 6) | ((lfsr & 0x100) >> 8) ); - lfsr <<= 7; - break; - default : - printf("ErrorInverseCounter\n"); - break; - } - - return lfsr; -} - -//-------------------------------------------------------------------------------------------- - -int Pi(int i) -{ - if (i != nBits-1) - return (i*nBits/4)%(nBits-1); - else - return nBits-1; -} - -//-------------------------------------------------------------------------------------------- - -void pLayer(hashState *state) -{ - int i, j, PermutedBitNo; - bit8 tmp[nSBox], x, y; - - for(i = 0; i < nSBox; i++) tmp[i] = 0; - - for(i = 0; i < nSBox; i++){ - for(j = 0; j < 8; j++){ - x = GET_BIT(state->value[i],j); - PermutedBitNo = Pi(8*i+j); - y = PermutedBitNo/8; - tmp[y] ^= x << (PermutedBitNo - 8*y); - } - } - memcpy(state->value, tmp, nSBox); -} - -//-------------------------------------------------------------------------------------------- - -void Permute(hashState *state) -{ - bit16 i, j, IV, INV_IV; - - switch(version) - { - case 88808: IV = 0x05; break; - case 8817688: IV = 0xC6; break; - case 1281288: IV = 0x7A; break; - case 128256128: IV = 0xFB; break; - case 16016016: IV = 0x45; break; - case 16016080: IV = 0x01; break; - case 160320160: IV = 0xA7; break; - case 22422416: IV = 0x01; break; - case 224224112: IV = 0x52; break; - case 224448224: IV = 0x105; break; - case 25625616: IV = 0x9e; break; - case 256256128: IV = 0xfb; break; - case 256512256: IV = 0x015; break; - } - - for(i = 0; i < nRounds; i++){ -#ifdef _PrintState_ - printf("%3d\t", i); - PrintState(state); -#endif - /* Add counter values */ - state->value[0] ^= IV & 0xFF; - state->value[1] ^= (IV >> 8) & 0xFF; - INV_IV = retnuoCl(IV); - state->value[nSBox-1] ^= (INV_IV >> 8) & 0xFF;; - state->value[nSBox-2] ^= INV_IV & 0xFF; - IV = lCounter(IV); - - /* sBoxLayer layer */ - for ( j=0; j < nSBox; j++) - state->value[j] = sBoxLayer[state->value[j]]; - - /* pLayer */ - pLayer(state);\ - } -#ifdef _PrintState_ - printf("%3d\t", i); - PrintState(state); -#endif -} - -//-------------------------------------------------------------------------------------------- - -HashReturn Init(hashState *state, BitSequence *hashval) -{ - - memset(state->value, 0, nSBox); - state->hashbitlen = 0; - state->remainingbitlen = 0; - - if (hashval != NULL) - memset(hashval, 0, hashsize/8); - - return SUCCESS; -} - -//-------------------------------------------------------------------------------------------- - -HashReturn Absorb(hashState *state) -{ - int i; - for(i = 0; i < R_SizeInBytes; i++) - state->value[i] ^= state->messageblock[i]; - Permute(state); - - return SUCCESS; -} - -//-------------------------------------------------------------------------------------------- - -HashReturn Squeeze(hashState *state) -{ - memcpy(state->messageblock, state->value, R_SizeInBytes); -#ifdef _PrintState_ - printf("h_i\t"); - for(int i = 0; i < R_SizeInBytes; i++) - printf("%02X", state->messageblock[i]); - printf("\n\n"); -#endif - Permute(state); - - return SUCCESS; -} - -//-------------------------------------------------------------------------------------------- - -HashReturn Pad(hashState *state) -{ - int byteind = state->remainingbitlen/8; /* byte index of remaining byte */ - int bitpos = state->remainingbitlen%8; /* bit position in last byte */ - - /* make unoccupied bits 0 */ - if(bitpos) - state->messageblock[byteind] &= 0xff >> (8 - bitpos); - - /* add single 1-bit */ - if(bitpos) - state->messageblock[byteind] |= 0x01 << bitpos; - else - state->messageblock[byteind] = 0x01; - - /* add 0-bits until we have rate bits */ - while(byteind!=R_SizeInBytes) - { - byteind++; - state->messageblock[byteind] = 0; - } - return SUCCESS; -} - -//-------------------------------------------------------------------------------------------- - -HashReturn SpongentHash(const BitSequence *data, DataLength databitlen, BitSequence *hashval) -{ - hashState state; - HashReturn res; - - /* initialize */ - res = Init(&state, hashval); - if(res != SUCCESS) - return res; - - /* Absorb available message blocks */ - while(databitlen >= rate) - { - memcpy(state.messageblock, data, R_SizeInBytes); -#ifdef _PrintState_ - printf("\n"); - printf("m_i\t"); - for(int i = 0; i < R_SizeInBytes; i++) - printf("%02X", state.messageblock[i]); - printf("\n"); -#endif - Absorb(&state); - databitlen -= rate; - data += R_SizeInBytes; - } - - /* Pad the remaining bits before absorbing */ - if(databitlen>0){ - memcpy(state.messageblock, data, databitlen/8 + (databitlen%8?1:0)); - state.remainingbitlen = databitlen; - } - else if(databitlen==0){ - memset(state.messageblock, 0, R_SizeInBytes); - state.remainingbitlen = databitlen; - } - Pad(&state); -#ifdef _PrintState_ - printf("\n"); - printf("m_i\t"); - for(int i = 0; i < R_SizeInBytes; i++) - printf("%02X", state.messageblock[i]); - printf("\n"); -#endif - Absorb(&state); - state.hashbitlen += rate; - - /* Squeeze data blocks */ - while(state.hashbitlen < hashsize) - { - Squeeze(&state); - memcpy(hashval, state.messageblock, R_SizeInBytes); - state.hashbitlen += rate; - hashval += R_SizeInBytes; - } - - memcpy(hashval, state.value, R_SizeInBytes); - hashval += R_SizeInBytes; -#ifdef _PrintState_ - printf("h_i\t"); - for(int i = 0; i < R_SizeInBytes; i++) - printf("%02X", state.value[i]); - printf("\n\n"); -#endif - - return SUCCESS; -} - -HashReturn Duplexing(hashState* state, - BitSequence* block, - DataLength blockBitLength, - BitSequence* out, - DataLength outBitsLength) -{ - copy_n(block, BITS_TO_BYTES(blockBitLength), state->messageblock); - state->remainingbitlen = blockBitLength; - HashReturn ret = Pad(state); - - if (ret != SUCCESS) - return ret; - - ret = Absorb(state); - - if (ret != SUCCESS) - return ret; - - if (out != NULL) - copy_n(state->value, outBitsLength / 8, out); - - return SUCCESS; -} - -HashReturn SpongentWrap(const BitSequence* key, - const BitSequence* ad, DataLength adBitLength, - const BitSequence* input, DataLength bitLength, - BitSequence* output, - BitSequence* tag, - bool unwrap) -{ - if (adBitLength % 8 != 0 || bitLength % 8 != 0) - { - //fprintf(stderr, "Messages containing partial bytes not supported\n"); - return FAIL; - } - - hashState state; - HashReturn ret = Init(&state, NULL); - - if (ret != SUCCESS) - return ret; - - BitSequence block[R_SizeInBytes]; - BitSequence duplexOut[R_SizeInBytes]; - DataLength bitsLeft = KEY_SIZE; - - while (bitsLeft > SW_RATE) - { - copy_n(key, SW_RATE_BYTES, block); - block[SW_RATE_BYTES] = 0x01; - ret = Duplexing(&state, block, SW_RATE + 1, NULL, 16); - - - if (ret != SUCCESS) - return ret; - - bitsLeft -= SW_RATE; - key += SW_RATE_BYTES; - } - - copy_n(key, bitsLeft / 8, block); - block[bitsLeft / 8] = 0x00; - ret = Duplexing(&state, block, bitsLeft + 1, NULL, 16); - - if (ret != SUCCESS) - return ret; - - bitsLeft = adBitLength; - - while (bitsLeft > SW_RATE) - { - copy_n(ad, SW_RATE_BYTES, block); - block[SW_RATE_BYTES] = 0x00; - ret = Duplexing(&state, block, SW_RATE + 1, NULL, 16); - - if (ret != SUCCESS) - return ret; - - bitsLeft -= SW_RATE; - ad += SW_RATE_BYTES; - } - - copy_n(ad, bitsLeft / 8, block); - block[bitsLeft / 8] = 0x01; - ret = Duplexing(&state, block, bitsLeft + 1, duplexOut, 16); - - if (ret != SUCCESS) - return ret; - - DataLength firstBlockLength = min(bitLength, (DataLength)SW_RATE) / 8; - - for (DataLength i = 0; i < firstBlockLength; i++) - output[i] = input[i] ^ duplexOut[i]; - - bitsLeft = bitLength; - - while (bitsLeft > SW_RATE) - { - copy_n(unwrap ? output : input, SW_RATE_BYTES, block); - block[SW_RATE_BYTES] = 0x01; - HashReturn ret = Duplexing(&state, block, SW_RATE + 1, duplexOut, 16); - - if (ret != SUCCESS) - return ret; - - bitsLeft -= SW_RATE; - input += SW_RATE_BYTES; - output += SW_RATE_BYTES; - - DataLength blockLength = min(bitsLeft, (DataLength)SW_RATE) / 8; - - for (DataLength i = 0; i < blockLength; i++) - output[i] = input[i] ^ duplexOut[i]; - } - - copy_n(unwrap ? output : input, bitsLeft / 8, block); - block[bitsLeft / 8] = 0x00; - ret = Duplexing(&state, block, bitsLeft + 1, - tag, min((DataLength)TAG_SIZE, (DataLength)SW_RATE)); - - if (ret != SUCCESS) - return ret; - - DataLength tagBitsDone = SW_RATE; - tag += SW_RATE_BYTES; - for (unsigned int i = 0; i < sizeof(block); i++){ - block[i] = 0x00; - } - //std::fill_n(block, sizeof(block), 0x00); - - while (tagBitsDone < TAG_SIZE) - { - ret = Duplexing(&state, block, 0, tag, - min(TAG_SIZE - tagBitsDone, (DataLength)SW_RATE)); - - if (ret != SUCCESS) - return ret; - - tagBitsDone += SW_RATE; - tag += SW_RATE_BYTES; - } - - return SUCCESS; -} - -HashReturn SpongentUnwrap(const BitSequence* key, - const BitSequence* ad, DataLength adBitLength, - const BitSequence* input, DataLength bitLength, - BitSequence* output, - const BitSequence* expectedTag) -{ - BitSequence tag[TAG_SIZE_BYTES]; - HashReturn ret = SpongentWrap(key, - ad, adBitLength, - input, bitLength, - output, tag, /*unwrap=*/true); - - if (ret != SUCCESS) - return ret; - - //if (!std::equal(std::begin(tag), std::end(tag), expectedTag)) - if (memcmp(tag, expectedTag, TAG_SIZE_BYTES) == 0) - return BAD_TAG; - - return SUCCESS; -} - -HashReturn SpongentMac(const BitSequence* key, - const BitSequence* input, DataLength bitLength, - BitSequence* mac) -{ - return SpongentWrap(key, input, bitLength, NULL, 0, NULL, mac, false); -} - -//-------------------------------------------------------------------------------------------- - diff --git a/examples/button-led/gateway/sub.mk b/examples/button-led/gateway/sub.mk deleted file mode 100644 index 156b302..0000000 --- a/examples/button-led/gateway/sub.mk +++ /dev/null @@ -1,7 +0,0 @@ -global-incdirs-y += include -srcs-y += controller.c -srcs-y += spongent.c -srcs-y +=authentic_execution.c - -# To remove a certain compiler flag, add a line like this -#cflags-template_ta.c-y += -Wno-strict-prototypes diff --git a/examples/button-led/gateway/user_ta_header_defines.h b/examples/button-led/gateway/user_ta_header_defines.h deleted file mode 100644 index 8d4888c..0000000 --- a/examples/button-led/gateway/user_ta_header_defines.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef USER_TA_HEADER_DEFINES_H -#define USER_TA_HEADER_DEFINES_H - -/* To get the TA UUID definition */ -#include - -#define TA_UUID CONTROLLER_UUID - -/* - * TA properties: multi-instance TA, no specific attribute - * TA_FLAG_EXEC_DDR is meaningless but mandated. - */ -#define TA_FLAGS TA_FLAG_EXEC_DDR - -/* Provisioned stack size */ -#define TA_STACK_SIZE (2 * 1024) - -/* Provisioned heap size for TEE_Malloc() and friends */ -#define TA_DATA_SIZE (32 * 1024) - -#endif diff --git a/examples/button-led/init-webserver.sh b/examples/button-led/init-webserver.sh deleted file mode 100644 index cb3f9b9..0000000 --- a/examples/button-led/init-webserver.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e - -echo "Initializing web server to listen to port 48879" -reactive-tools request res.json --connection init-server --arg beef --out cert.der > /dev/null 2>&1 - -echo "Converting certificate from DER to PEM" -openssl x509 -inform der -in cert.der -out cert.pem > /dev/null 2>&1 - -echo "All done! You can query the server with 'curl --cacert cert.pem '" diff --git a/examples/button-led/init_sgx.yaml b/examples/button-led/init_sgx.yaml deleted file mode 100644 index 5da4f63..0000000 --- a/examples/button-led/init_sgx.yaml +++ /dev/null @@ -1,3 +0,0 @@ -sp_privkey: cred/modules_privkey.pem -sp_pubkey: cred/modules_pubkey.pem -ias_certificate: cred/ias_root_ca.pem diff --git a/examples/button-led/manager.yaml b/examples/button-led/manager.yaml deleted file mode 100644 index 431522b..0000000 --- a/examples/button-led/manager.yaml +++ /dev/null @@ -1,3 +0,0 @@ -host: manager -port: 1234 -key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] diff --git a/examples/button-led/run_attester.py b/examples/button-led/run_attester.py deleted file mode 100644 index 4ab5875..0000000 --- a/examples/button-led/run_attester.py +++ /dev/null @@ -1,38 +0,0 @@ -import subprocess -import sys -import yaml - -ATTESTER = "sgx-attester" -manager_config = sys.argv[1] if len(sys.argv) > 1 else "manager.yaml" - - -def attest(manager): - env = { - "AESM_HOST": "aesm-client", - "AESM_PORT": "13741", - "ENCLAVE_HOST": manager["host"], - "ENCLAVE_PORT": str(manager["port"]), - "SP_PRIVKEY": "cred/manager_privkey.pem", - "ENCLAVE_SIG": "cred/manager.sig", - "IAS_CERT": "cred/ias_root_ca.pem", - "ENCLAVE_SETTINGS": "cred/settings.json", - } - - try: - res = subprocess.run([ATTESTER], env=env, stdout=subprocess.PIPE) - res.check_returncode() - except Exception as e: - print(e) - sys.exit(1) - - return eval(res.stdout) - - -if __name__ == "__main__": - with open(manager_config, 'r') as f: - manager = yaml.load(f, Loader=yaml.FullLoader) - - manager["key"] = attest(manager) - - with open(manager_config, "w") as f: - yaml.dump(manager, f) diff --git a/examples/button-led/webserver/Cargo.toml b/examples/button-led/webserver/Cargo.toml deleted file mode 100644 index b7fe555..0000000 --- a/examples/button-led/webserver/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -[package] -name = "webserver" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -mbedtls = { git = "https://github.com/gianlu33/rust-mbedtls.git", branch="psk", features = ["rdrand"] } -anyhow = "1.0.44" diff --git a/examples/button-led/webserver/src/lib.rs b/examples/button-led/webserver/src/lib.rs deleted file mode 100644 index bc73d2f..0000000 --- a/examples/button-led/webserver/src/lib.rs +++ /dev/null @@ -1,158 +0,0 @@ -use std::thread; -use std::sync::Mutex; -use std::net::{TcpListener, TcpStream}; -use std::io::{Read, Write}; - -use mbedtls::pk::Pk; -use mbedtls::ssl::config::{Endpoint, Preset, Transport}; -use mbedtls::ssl::{Config, Context}; -use mbedtls::x509::{Certificate, Time}; -use mbedtls::x509::certificate::Builder; -use mbedtls::alloc::List as CertList; -use mbedtls::hash::Type as MdType; -use mbedtls::rng::Rdrand as Rng; -use std::sync::Arc; - -lazy_static! { - static ref INIT: Mutex = { - Mutex::new(false) - }; - - static ref PRIVATE_KEY: Mutex = { - Mutex::new(Pk::generate_rsa(&mut Rng, 2048, 65537).expect("Failed to generate key")) - }; - - static ref CERTIFICATE: Mutex>> = { - Mutex::new(None) - }; -} - -static HOST_NAME: &str = "node-sgx"; - -//@ sm_request(get_presses) - -//@ sm_handler -pub fn init_server(data : &[u8]) -> Vec { - let mut is_init = INIT.lock().unwrap(); - - if *is_init { - error!("init input was already called"); - return vec!(); - } - - if data.len() != 2 { - error!("wrong data received (expecting 2 bytes for port)"); - return vec!(); - } - - let port = authentic_execution::data_to_u16(data); - let host = format!("0.0.0.0:{}", port); - - let listener = match TcpListener::bind(host) { - Ok(l) => l, - Err(e) => { - error!(&format!("Fatal error: {}", e)); - return vec!(); - } - }; - - let (key, cert) = match init_credentials() { - Ok((k, c)) => (k,c), - Err(e) => { - error!(&format!("Error with credentials: {}", e)); - return vec!(); - } - }; - - info!(&format!("Web server listening on 0.0.0.0:{}", port)); - thread::spawn(move || { start_server(listener, key, cert) }); - *is_init = true; - - let cert = CERTIFICATE.lock().unwrap(); - cert.as_ref().unwrap().clone() -} - -fn start_server(listener : TcpListener, key : Pk, cert : CertList) { - let rng = Arc::new(Rng); - - let mut config = Config::new(Endpoint::Server, Transport::Stream, Preset::Default); - config.set_rng(rng); - - if let Err(_) = config.push_cert(Arc::new(cert), Arc::new(key)) { - error!("Could not push cert in config"); - return; - } - - let rc_config = Arc::new(config); - - for stream in listener.incoming() { - if let Ok(s) = stream { - if let Err(e) = handle_client(s, rc_config.clone()) { - warning!(&format!("Client error: {}", e)); - } - } - } -} - -fn init_credentials() -> anyhow::Result<(Pk, CertList)> { - let mut buf_key = [0u8; 8192]; - let mut key = PRIVATE_KEY.lock().unwrap(); - key.write_private_pem(&mut buf_key)?.unwrap(); - - let key = Pk::from_private_key(&buf_key, None)?; - let key1 = Pk::from_private_key(&buf_key, None)?; - let key2 = Pk::from_private_key(&buf_key, None)?; - - let cert_bytes = generate_cert(key1, key2)?; - let cert = Certificate::from_pem_multiple(&cert_bytes)?; - - let mut certificate = CERTIFICATE.lock().unwrap(); - certificate.replace(cert_bytes); - - Ok((key, cert)) -} - -fn generate_cert(mut key1 : Pk, mut key2 : Pk) -> anyhow::Result> { - let mut builder = Builder::new(); - let mut buf_cert = [0u8; 8192]; - - let common_name = format!("CN={}\0", HOST_NAME); - - let cert = builder - .subject_key(&mut key1) - .subject_with_nul(&common_name)? - .issuer_key(&mut key2) - .issuer_with_nul(&common_name)? - .validity( - Time::new(2020, 1, 1, 0, 0, 0).unwrap(), - Time::new(2030, 12, 31, 23, 59, 59).unwrap(), - )? - .serial(&[5])? - .signature_hash(MdType::Sha256) - .write_pem(&mut buf_cert, &mut Rng)?.unwrap(); - - Ok(cert.to_vec()) -} - -fn handle_client(conn : TcpStream, config : Arc) -> anyhow::Result<()> { - let mut ctx = Context::new(config); - ctx.establish(conn, None)?; - - let mut buffer = [0; 1024]; - ctx.read(&mut buffer)?; - - let response = match get_presses(&[]) { - Ok(r) if r.len() == 4 => { - let num_presses = authentic_execution::data_to_u32(&r); - format!("HTTP/1.1 200 OK\r\n\r\n{}\n", num_presses) - }, - _ => { - "HTTP/1.1 500 Internal Server Error\r\n\r\n".to_string() - } - }; - - ctx.write(response.as_bytes())?; - ctx.flush()?; - - Ok(()) -} diff --git a/examples/example_hybrid/input.json b/examples/example_hybrid/input.json deleted file mode 100644 index 1bebae9..0000000 --- a/examples/example_hybrid/input.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "manager": "manager.yaml", - "nodes": [ - { - "type": "native", - "name": "node1", - "ip_address": "127.0.0.1", - "reactive_port": 5000 - }, - { - "type": "sancus", - "name": "node2", - "ip_address": "127.0.0.1", - "vendor_id": 4660, - "vendor_key": "0b7bf3ae40880a8be430d0da34fb76f0", - "reactive_port": 6000 - } - ], - "modules" : [ - { - "type": "native", - "name": "sm1", - "node": "node1" - }, - { - "type": "native", - "name": "sm2", - "node": "node1" - }, - { - "type": "sancus", - "name": "sm3", - "files": ["sm3.c"], - "node": "node2" - }, - { - "type": "sancus", - "name": "sm4", - "files": ["sm4.c"], - "node": "node2" - } - ], - "connections": [ - { - "from_module": "sm1", - "from_output": "output1", - "to_module": "sm3", - "to_input": "input3", - "encryption": "spongent" - }, - { - "from_module": "sm4", - "from_output": "output4", - "to_module": "sm2", - "to_input": "input2", - "encryption": "spongent" - }, - { - "direct": true, - "to_module": "sm3", - "to_input": "input3", - "encryption": "spongent" - }, - { - "direct": true, - "to_module": "sm2", - "to_input": "input2", - "encryption": "aes" - } - ] -} diff --git a/examples/example_hybrid/manager.yaml b/examples/example_hybrid/manager.yaml deleted file mode 100644 index 2f70fa8..0000000 --- a/examples/example_hybrid/manager.yaml +++ /dev/null @@ -1,3 +0,0 @@ -host: localhost -port: 1234 -key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] diff --git a/examples/example_hybrid/sm1/Cargo.toml b/examples/example_hybrid/sm1/Cargo.toml deleted file mode 100644 index 2e4cf56..0000000 --- a/examples/example_hybrid/sm1/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "sm1" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/examples/example_hybrid/sm1/src/lib.rs b/examples/example_hybrid/sm1/src/lib.rs deleted file mode 100644 index 6a37996..0000000 --- a/examples/example_hybrid/sm1/src/lib.rs +++ /dev/null @@ -1,11 +0,0 @@ -//@ sm_output(output1) - - -//@ sm_entry -pub fn entry(data : &[u8]) -> ResultMessage { - info!("entry"); - - output1(&33u16.to_le_bytes()); - - success(None) -} diff --git a/examples/example_hybrid/sm2/Cargo.toml b/examples/example_hybrid/sm2/Cargo.toml deleted file mode 100644 index f63a259..0000000 --- a/examples/example_hybrid/sm2/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "sm2" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/examples/example_hybrid/sm2/src/lib.rs b/examples/example_hybrid/sm2/src/lib.rs deleted file mode 100644 index 6e832a2..0000000 --- a/examples/example_hybrid/sm2/src/lib.rs +++ /dev/null @@ -1,20 +0,0 @@ -//@ sm_input -pub fn input2(data : &[u8]) { - info!("input"); - - if data.len() < 2 { - error!("Wrong data received"); - return; - } - - let val = u16::from_le_bytes([data[0], data[1]]); - - info!(&format!("Val: {}", val)); -} - -//@ sm_entry -pub fn entry(data : &[u8]) -> ResultMessage { - info!("entry"); - - success(None) -} diff --git a/examples/example_hybrid/sm3.c b/examples/example_hybrid/sm3.c deleted file mode 100644 index 74d4030..0000000 --- a/examples/example_hybrid/sm3.c +++ /dev/null @@ -1,28 +0,0 @@ -#include - -#include - -SM_INPUT(sm3, input3, data, len) -{ - if(len < 2) { - puts("SM3 input3: Wrong data"); - return; - } - - unsigned int val = *(unsigned int*) data; - - if(val == 33) { - puts("SM3 input3: Correct!"); - } - else { - puts("SM3 input3: Wrong"); - } -} - -SM_ENTRY(sm3) void init(uint8_t* input_data, size_t len) - -{ - (void) input_data; - (void) len; - puts("hello from sm3"); -} diff --git a/examples/example_hybrid/sm4.c b/examples/example_hybrid/sm4.c deleted file mode 100644 index 1c79ebf..0000000 --- a/examples/example_hybrid/sm4.c +++ /dev/null @@ -1,16 +0,0 @@ -#include - -#include -#include - -SM_OUTPUT(sm4, output4); - - -SM_ENTRY(sm4) void init(uint8_t* input_data, size_t len) -{ - puts("SM4 init"); - - unsigned int val = 33; - - output4((unsigned char*) &val, sizeof(unsigned int)); -} diff --git a/examples/example_native/input.json b/examples/example_native/input.json deleted file mode 100644 index f9f129c..0000000 --- a/examples/example_native/input.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "manager": "manager.yaml", - "nodes": [ - { - "type": "native", - "name": "node1", - "ip_address": "127.0.0.1", - "reactive_port": 5000 - } - ], - "modules" : [ - { - "type": "native", - "name": "sm1", - "node": "node1" - }, - { - "type": "native", - "name": "sm2", - "node": "node1" - } - ], - "connections" : [ - { - "from_module": "sm1", - "from_output": "output", - "to_module": "sm2", - "to_input": "input", - "encryption": "aes" - }, - { - "direct": true, - "to_module": "sm2", - "to_input": "input", - "encryption": "aes" - } - ] -} diff --git a/examples/example_native/manager.yaml b/examples/example_native/manager.yaml deleted file mode 100644 index 2f70fa8..0000000 --- a/examples/example_native/manager.yaml +++ /dev/null @@ -1,3 +0,0 @@ -host: localhost -port: 1234 -key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] diff --git a/examples/example_native/sm1/Cargo.toml b/examples/example_native/sm1/Cargo.toml deleted file mode 100644 index 2e4cf56..0000000 --- a/examples/example_native/sm1/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "sm1" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/examples/example_native/sm1/src/lib.rs b/examples/example_native/sm1/src/lib.rs deleted file mode 100644 index 4adda42..0000000 --- a/examples/example_native/sm1/src/lib.rs +++ /dev/null @@ -1,31 +0,0 @@ -//@ sm_output(output) -//@ sm_output(output2) - - -//@ sm_entry -pub fn entry(data : &[u8]) -> ResultMessage { - info!("entry"); - - output(data); - - success(None) -} - -//@ sm_entry -pub fn entry2(data : &[u8]) -> ResultMessage { - info!("entry2"); - - output2(data); - - success(None) -} - -//@ sm_entry -pub fn entry3(data : &[u8]) -> ResultMessage { - info!("entry3"); - - output(data); - output2(data); - - success(None) -} diff --git a/examples/example_native/sm2/Cargo.toml b/examples/example_native/sm2/Cargo.toml deleted file mode 100644 index f63a259..0000000 --- a/examples/example_native/sm2/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "sm2" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/examples/example_native/sm2/src/lib.rs b/examples/example_native/sm2/src/lib.rs deleted file mode 100644 index e27aa55..0000000 --- a/examples/example_native/sm2/src/lib.rs +++ /dev/null @@ -1,17 +0,0 @@ - -//@ sm_input -pub fn input(_data : &[u8]) { - info!("input"); -} - -//@ sm_input -pub fn input2(_data : &[u8]) { - info!("input2"); -} - -//@ sm_entry -pub fn entry(data : &[u8]) -> ResultMessage { - info!("entry"); - - success(None) -} diff --git a/examples/example_sancus/input.json b/examples/example_sancus/input.json deleted file mode 100644 index ece25cc..0000000 --- a/examples/example_sancus/input.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "manager": "manager.yaml", - "nodes": [ - { - "type": "sancus", - "name": "node1", - "ip_address": "127.0.0.1", - "vendor_id": 4660, - "vendor_key": "0b7bf3ae40880a8be430d0da34fb76f0", - "reactive_port": 5000 - } - ], - "modules" : [ - { - "type": "sancus", - "name": "sm1", - "files": ["sm1.c"], - "node": "node1" - }, - { - "type": "sancus", - "name": "sm2", - "files": ["sm2.c"], - "node": "node1" - } - ], - "connections": [ - { - "from_module": "sm2", - "from_output": "output", - "to_module": "sm1", - "to_input": "input", - "encryption": "spongent" - }, - { - "direct": true, - "to_module": "sm1", - "to_input": "input", - "encryption": "spongent" - } - ], - "periodic-events": [ - ] -} diff --git a/examples/example_sancus/manager.yaml b/examples/example_sancus/manager.yaml deleted file mode 100644 index 2f70fa8..0000000 --- a/examples/example_sancus/manager.yaml +++ /dev/null @@ -1,3 +0,0 @@ -host: localhost -port: 1234 -key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] diff --git a/examples/example_sancus/sm1.c b/examples/example_sancus/sm1.c deleted file mode 100644 index 00aacd8..0000000 --- a/examples/example_sancus/sm1.c +++ /dev/null @@ -1,49 +0,0 @@ -#include - -#include - -SM_INPUT(sm1, input, data, len) -{ - puts("SM1 input!"); - - if(len != sizeof(unsigned int)) { - puts("Wrong data received!"); - return; - } - - unsigned int val = *(unsigned int*) data; - - if(val == 33) { - puts("SM1 input Correct!"); - } - else { - puts("SM1 input Wrong"); - } -} - -SM_INPUT(sm1, input2, data, len) -{ - puts("SM1 input2!"); - - if(len != sizeof(unsigned int)) { - puts("Wrong data received!"); - return; - } - - unsigned int val = *(unsigned int*) data; - - if(val == 33) { - puts("SM1 input2 Correct!"); - } - else { - puts("SM1 input2 Wrong"); - } -} - -SM_ENTRY(sm1) void init(uint8_t* input_data, size_t len) - -{ - (void) input_data; - (void) len; - puts("hello from sm1"); -} diff --git a/examples/example_sancus/sm2.c b/examples/example_sancus/sm2.c deleted file mode 100644 index d00a827..0000000 --- a/examples/example_sancus/sm2.c +++ /dev/null @@ -1,27 +0,0 @@ -#include - -#include -#include - -SM_OUTPUT(sm2, output); -SM_OUTPUT(sm2, output2); - - -SM_ENTRY(sm2) void init(uint8_t* input_data, size_t len) -{ - puts("SM2 init\n"); - - unsigned int val = 33; - - output((unsigned char*) &val, sizeof(unsigned int)); -} - -SM_ENTRY(sm2) void init2(uint8_t* input_data, size_t len) -{ - puts("SM2 init2\n"); - - unsigned int val = 33; - - output((unsigned char*) &val, sizeof(unsigned int)); - output2((unsigned char*) &val, sizeof(unsigned int)); -} diff --git a/examples/example_sgx/input.json b/examples/example_sgx/input.json deleted file mode 100644 index 67d9eca..0000000 --- a/examples/example_sgx/input.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "manager": "manager.yaml", - "nodes": [ - { - "type": "sgx", - "name": "node1", - "ip_address": "127.0.0.1", - "reactive_port": 5000 - } - ], - "modules" : [ - { - "type": "sgx", - "name": "sm1", - "node": "node1", - "vendor_key": "", - "ra_settings": "" - }, - { - "type": "sgx", - "name": "sm2", - "node": "node1", - "vendor_key": "", - "ra_settings": "" - } - ], - "connections" : [ - { - "from_module": "sm1", - "from_output": "output", - "to_module": "sm2", - "to_input": "input", - "encryption": "aes" - }, - { - "direct": true, - "to_module": "sm2", - "to_input": "input", - "encryption": "aes" - } - ] -} diff --git a/examples/example_sgx/manager.yaml b/examples/example_sgx/manager.yaml deleted file mode 100644 index 2f70fa8..0000000 --- a/examples/example_sgx/manager.yaml +++ /dev/null @@ -1,3 +0,0 @@ -host: localhost -port: 1234 -key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] diff --git a/examples/example_sgx/sm1/Cargo.toml b/examples/example_sgx/sm1/Cargo.toml deleted file mode 100644 index 2e4cf56..0000000 --- a/examples/example_sgx/sm1/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "sm1" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/examples/example_sgx/sm1/src/lib.rs b/examples/example_sgx/sm1/src/lib.rs deleted file mode 100644 index 4adda42..0000000 --- a/examples/example_sgx/sm1/src/lib.rs +++ /dev/null @@ -1,31 +0,0 @@ -//@ sm_output(output) -//@ sm_output(output2) - - -//@ sm_entry -pub fn entry(data : &[u8]) -> ResultMessage { - info!("entry"); - - output(data); - - success(None) -} - -//@ sm_entry -pub fn entry2(data : &[u8]) -> ResultMessage { - info!("entry2"); - - output2(data); - - success(None) -} - -//@ sm_entry -pub fn entry3(data : &[u8]) -> ResultMessage { - info!("entry3"); - - output(data); - output2(data); - - success(None) -} diff --git a/examples/example_sgx/sm2/Cargo.toml b/examples/example_sgx/sm2/Cargo.toml deleted file mode 100644 index f63a259..0000000 --- a/examples/example_sgx/sm2/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "sm2" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/examples/example_sgx/sm2/src/lib.rs b/examples/example_sgx/sm2/src/lib.rs deleted file mode 100644 index e27aa55..0000000 --- a/examples/example_sgx/sm2/src/lib.rs +++ /dev/null @@ -1,17 +0,0 @@ - -//@ sm_input -pub fn input(_data : &[u8]) { - info!("input"); -} - -//@ sm_input -pub fn input2(_data : &[u8]) { - info!("input2"); -} - -//@ sm_entry -pub fn entry(data : &[u8]) -> ResultMessage { - info!("entry"); - - success(None) -} diff --git a/examples/example_trustzone/button_driver/Makefile b/examples/example_trustzone/button_driver/Makefile deleted file mode 100644 index a22c4ed..0000000 --- a/examples/example_trustzone/button_driver/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -CFG_TEE_TA_LOG_LEVEL ?= 4 - -# The UUID for the Trusted Application -BINARY=$(BINARY) - --include $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk - -ifeq ($(wildcard $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk), ) -clean: - @echo 'Note: $$(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk not found, cannot clean TA' - @echo 'Note: TA_DEV_KIT_DIR=$(TA_DEV_KIT_DIR)' -endif diff --git a/examples/example_trustzone/button_driver/authentic_execution.c b/examples/example_trustzone/button_driver/authentic_execution.c deleted file mode 100644 index e36c04c..0000000 --- a/examples/example_trustzone/button_driver/authentic_execution.c +++ /dev/null @@ -1,684 +0,0 @@ -#include -#include -#include -#include - -#include - -#include -#include -#include -#include - -static const TEE_UUID pta_attestation_uuid = ATTESTATION_UUID; - -void *malloc_aligned(size_t size) { - size += size % 2; - - return malloc(size); -} - -int total_node = 0; - -typedef struct -{ - uint8_t encryption; - uint16_t conn_id; - uint16_t io_id; - uint16_t nonce; - unsigned char connection_key[16]; -} Connection; - -typedef struct Node -{ - Connection connection; - struct Node* next; -} Node; - -static Node* connections_head = NULL; - -int connections_add(Connection* connection) -{ - Node* node = malloc_aligned(sizeof(Node)); - - if (node == NULL) - return 0; - - node->connection = *connection; - node->next = connections_head; - connections_head = node; - return 1; -} - -Connection* connections_get(uint16_t conn_id) -{ - Node* current = connections_head; - - while (current != NULL) { - Connection* connection = ¤t->connection; - - if (connection->conn_id == conn_id) { - return connection; - } - - current = current->next; - } - - return NULL; -} - -void find_connections(uint16_t io_id, int *arr, uint8_t *num) -{ - Node* current = connections_head; - while (current != NULL) { - Connection* connection = ¤t->connection; - if (connection->io_id == io_id) { - arr[*num] = connection->conn_id; - *num = *num + 1; - } - - current = current->next; - } - -} - -//=============================================================== - -char module_key[16] = { 0 }; - -struct aes_cipher { - uint32_t algo; /* AES flavour */ - uint32_t mode; /* Encode or decode */ - uint32_t key_size; /* AES key size in byte */ - TEE_OperationHandle op_handle; /* AES ciphering operation */ - TEE_ObjectHandle key_handle; /* transient object to load the key */ -}; - -//=============================================================== - -static TEE_Result ta2tee_algo_id(uint32_t param, uint32_t *algo) -{ - switch (param) { - case TA_AES_ALGO_ECB: - *algo = TEE_ALG_AES_ECB_NOPAD; - return TEE_SUCCESS; - case TA_AES_ALGO_CBC: - *algo = TEE_ALG_AES_CBC_NOPAD; - return TEE_SUCCESS; - case TA_AES_ALGO_GCM: - *algo = TEE_ALG_AES_GCM; - return TEE_SUCCESS; - default: - EMSG("Invalid algo %u", param); - return TEE_ERROR_BAD_PARAMETERS; - } -} -static TEE_Result ta2tee_key_size(uint32_t param, uint32_t *key_size) -{ - switch (param) { - case 16: - *key_size = param; - return TEE_SUCCESS; - default: - EMSG("Invalid key size %u", param); - return TEE_ERROR_BAD_PARAMETERS; - } -} -static TEE_Result ta2tee_mode_id(uint32_t param, uint32_t *mode) -{ - switch (param) { - case TA_AES_MODE_ENCODE: - *mode = TEE_MODE_ENCRYPT; - return TEE_SUCCESS; - case TA_AES_MODE_DECODE: - *mode = TEE_MODE_DECRYPT; - return TEE_SUCCESS; - default: - EMSG("Invalid mode %u", param); - return TEE_ERROR_BAD_PARAMETERS; - } -} - -static TEE_Result alloc_resources(void *session, uint32_t algo, uint32_t key_size, - uint32_t mode){ - - struct aes_cipher *sess; - TEE_Attribute attr; - TEE_Result res; - char *key; - - /* Get ciphering context from session ID */ - DMSG("Session %p: get ciphering resources", session); - sess = (struct aes_cipher *)session; - - res = ta2tee_algo_id(algo, &sess->algo); - if (res != TEE_SUCCESS) - return res; - - res = ta2tee_key_size(key_size, &sess->key_size); - if (res != TEE_SUCCESS) - return res; - - res = ta2tee_mode_id(mode, &sess->mode); - if (res != TEE_SUCCESS) - return res; - - if (sess->op_handle != TEE_HANDLE_NULL) - TEE_FreeOperation(sess->op_handle); - - /* Allocate operation: AES/CTR, mode and size from params */ - res = TEE_AllocateOperation(&sess->op_handle, - sess->algo, - sess->mode, - sess->key_size * 8); - if (res != TEE_SUCCESS) { - EMSG("Failed to allocate operation"); - sess->op_handle = TEE_HANDLE_NULL; - goto err; - } - - /* Free potential previous transient object */ - if (sess->key_handle != TEE_HANDLE_NULL) - TEE_FreeTransientObject(sess->key_handle); - - /* Allocate transient object according to target key size */ - res = TEE_AllocateTransientObject(TEE_TYPE_AES, - sess->key_size * 8, - &sess->key_handle); - if (res != TEE_SUCCESS) { - EMSG("Failed to allocate transient object"); - sess->key_handle = TEE_HANDLE_NULL; - goto err; - } - - key = TEE_Malloc(sess->key_size, 0); - if (!key) { - res = TEE_ERROR_OUT_OF_MEMORY; - goto err; - } - - TEE_InitRefAttribute(&attr, TEE_ATTR_SECRET_VALUE, key, sess->key_size); - - res = TEE_PopulateTransientObject(sess->key_handle, &attr, 1); - if (res != TEE_SUCCESS) { - EMSG("TEE_PopulateTransientObject failed, %x", res); - goto err; - } - - res = TEE_SetOperationKey(sess->op_handle, sess->key_handle); - if (res != TEE_SUCCESS) { - EMSG("TEE_SetOperationKey failed %x", res); - goto err; - } - - return res; - -err: - if (sess->op_handle != TEE_HANDLE_NULL) - TEE_FreeOperation(sess->op_handle); - sess->op_handle = TEE_HANDLE_NULL; - - if (sess->key_handle != TEE_HANDLE_NULL) - TEE_FreeTransientObject(sess->key_handle); - sess->key_handle = TEE_HANDLE_NULL; - - return res; -} - -static TEE_Result set_aes_key(void *session, char *key, uint32_t key_sz){ - - struct aes_cipher *sess; - TEE_Attribute attr; - TEE_Result res; - - /* Get ciphering context from session ID */ - DMSG("Session %p: load key material", session); - sess = (struct aes_cipher *)session; - - //--------------------------------------------------------------- - if (key_sz != sess->key_size) { - EMSG("Wrong key size %" PRIu32 ", expect %" PRIu32 " bytes", - key_sz, sess->key_size); - return TEE_ERROR_BAD_PARAMETERS; - } - - TEE_InitRefAttribute(&attr, TEE_ATTR_SECRET_VALUE, key, key_sz); - - TEE_ResetTransientObject(sess->key_handle); - res = TEE_PopulateTransientObject(sess->key_handle, &attr, 1); - if (res != TEE_SUCCESS) { - EMSG("TEE_PopulateTransientObject failed, %x", res); - return res; - } - - TEE_ResetOperation(sess->op_handle); - res = TEE_SetOperationKey(sess->op_handle, sess->key_handle); - if (res != TEE_SUCCESS) { - EMSG("TEE_SetOperationKey failed %x", res); - return res; - } - - return res; -} - -static TEE_Result reset_aes_iv(void *session, char *aad, size_t aad_sz, - char *nonce, size_t nonce_sz, size_t payload_sz){ - - struct aes_cipher *sess; - - /* Get ciphering context from session ID */ - DMSG("Session %p: reset initial vector", session); - sess = (struct aes_cipher *)session; - - TEE_AEInit(sess->op_handle, nonce, nonce_sz, 16*8/* tag_len in bits */, aad_sz /*aad_len*/, - payload_sz /*plaintext_len*/); - - TEE_AEUpdateAAD(sess->op_handle, aad, aad_sz); - - return TEE_SUCCESS; -} - -static TEE_Result set_key(void *session, uint32_t param_types, - TEE_Param params[4]) -{ - TEE_Result res = TEE_ERROR_OUT_OF_MEMORY; - const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_NONE); - struct aes_cipher *sess; - Connection connection; - - DMSG("Session %p: cipher buffer", session); - sess = (struct aes_cipher *)session; - char nonce[12] = { 0 }; - size_t nonce_sz = 12; - - alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_DECODE); - set_aes_key(sess, module_key, 16); - reset_aes_iv(sess, params[0].memref.buffer, params[0].memref.size, nonce, nonce_sz, params[1].memref.size); - - char *tag; - tag = params[0].memref.buffer; - char *temp; - - void *decrypted_key = NULL; - void *tag_void = NULL; - - //========================================== - decrypted_key = TEE_Malloc(16, 0); - tag_void = TEE_Malloc(params[2].memref.size, 0); - if (!decrypted_key || !tag_void) - goto out; - - TEE_MemMove(tag_void, params[2].memref.buffer, params[2].memref.size); - - res = TEE_AEDecryptFinal(sess->op_handle, params[1].memref.buffer, - params[1].memref.size, decrypted_key, ¶ms[2].memref.size, tag_void, - params[2].memref.size); - - if (!res) { - temp = decrypted_key; - for (int j = 0; j < 16; j++){ - connection.connection_key[j]= temp[j]; - } - - connection.nonce = 0; - connection.encryption = tag[0] & 0xFF; - - int j = 0; - connection.conn_id = 0; - for(int n=2; n>=1; --n){ - connection.conn_id = connection.conn_id + (( tag[n] & 0xFF ) << (8*j)); - ++j; - } - j = 0; - connection.io_id = 0; - for(int n=4; n>=3; --n){ - connection.io_id = connection.io_id + (( tag[n] & 0xFF ) << (8*j)); - ++j; - } - total_node = total_node + 1; - connections_add(&connection); - } - -out: - TEE_Free(decrypted_key); - TEE_Free(tag_void); - - return res; -} - -//====================================================================== - -static TEE_Result attest(void *session, uint32_t param_types, - TEE_Param params[4]) -{ - TEE_Result res = TEE_ERROR_OUT_OF_MEMORY; - const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_MEMREF_OUTPUT, - TEE_PARAM_TYPE_NONE, - TEE_PARAM_TYPE_NONE); - struct aes_cipher *sess; - - DMSG("Session %p: cipher buffer", session); - sess = (struct aes_cipher *)session; - - // ------------ Call PTA ---------************************************************** - TEE_TASessionHandle pta_session = TEE_HANDLE_NULL; - uint32_t ret_origin = 0; - uint32_t pta_param_types = TEE_PARAM_TYPES( TEE_PARAM_TYPE_MEMREF_OUTPUT, - TEE_PARAM_TYPE_NONE, TEE_PARAM_TYPE_NONE, - TEE_PARAM_TYPE_NONE); - - TEE_Param pta_params[TEE_NUM_PARAMS]; - - // prepare the parameters for the pta - pta_params[0].memref.buffer = module_key; - pta_params[0].memref.size = 16; - - // ------------ Open Session to PTA --------- - res = TEE_OpenTASession(&pta_attestation_uuid, 0, 0, NULL, &pta_session, - &ret_origin); - if (res != TEE_SUCCESS) - return res; - - // ------------ Invoke command at PTA (get_module key) --------- - res = TEE_InvokeTACommand(pta_session, 0, ATTESTATION_CMD_GET_MODULE_KEY, - pta_param_types, pta_params, &ret_origin); - if (res != TEE_SUCCESS) - return res; - - // ------------ Close Session to PTA --------- - TEE_CloseTASession(pta_session); - - //******************************************************************************* - char nonce[12] = { 0 }; - size_t nonce_sz = 12; - // challenge = param[0] --> aad - alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_ENCODE); - set_aes_key(sess, module_key, 16); - reset_aes_iv(sess, params[0].memref.buffer, params[0].memref.size, nonce, nonce_sz, 0); - - unsigned char challenge[16]={0}; - memcpy(challenge, params[0].memref.buffer, 16); - DMSG("Module key: %x %x", module_key[0], module_key[1]); - DMSG("Challenge: %x %x", challenge[0], challenge[1]); - - void *tag = TEE_Malloc(16, 0); - uint32_t len = 0, tag_len = 16; - - res = TEE_AEEncryptFinal(sess->op_handle, NULL, - 0, NULL, &len, tag, &tag_len); - - if (!res) { - params[1].memref.size = 16; - TEE_MemMove(params[1].memref.buffer, tag, params[1].memref.size); - } - else { - DMSG("MAC generation failed: %d", res); - } - - TEE_Free(tag); - - return res; - -} - -//====================================================================== - -void handle_output(void *session, uint16_t output_id, uint32_t param_types, - TEE_Param params[4]){ - - const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_VALUE_INOUT, - TEE_PARAM_TYPE_MEMREF_OUTPUT, - TEE_PARAM_TYPE_MEMREF_INOUT, - TEE_PARAM_TYPE_MEMREF_OUTPUT); - - struct aes_cipher *sess; - sess = (struct aes_cipher *)session; - - uint32_t data_len = params[0].value.a; - uint8_t num = 0; - void *conn_id_buf; - void *encrypt_buf; - void *tag_buf; - - int arr[total_node]; - find_connections(output_id, arr, &num); - params[0].value.a = num; - conn_id_buf = TEE_Malloc(num * 2, 0); - encrypt_buf = TEE_Malloc(num * data_len, 0); - tag_buf = TEE_Malloc(num * 16, 0); - - for(int i=0; inonce) >> (8*j)) & 0xFF; // ######## - j--; - } - - unsigned char conn_id_array[2] = { 0 }; - int c = 1; - for(int m = 0; m < 2; m++){ - conn_id_array[m] = ((connection->conn_id) >> (8*j)) & 0xFF; // ######## - c--; - } - memcpy(conn_id_buf+(2*i), conn_id_array, 2); - - //*************** ^ ^ ******************************************************* - - if(connection->encryption == AES){ - alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_ENCODE); - set_aes_key(sess, connection->connection_key, 16); //####### - reset_aes_iv(sess, aad, 2, nonce, nonce_sz, data_len); - - void *encrypt = NULL; - void *tag = NULL; - uint32_t sz = 16; - - encrypt = TEE_Malloc(data_len, 0); - tag = TEE_Malloc(16, 0); - - const void *text = NULL; - text = TEE_Malloc(data_len, 0); - memcpy(text, params[2].memref.buffer, data_len); - - TEE_Result res = TEE_AEEncryptFinal(sess->op_handle, text, data_len, - encrypt, &data_len, tag, &sz); - - if (!res) { - memcpy(encrypt_buf + (data_len * i), encrypt, data_len); - memcpy(tag_buf + (16*i), tag, 16); - TEE_Free(encrypt); - TEE_Free(tag); - TEE_Free(text); - } - } - else { - //SPONGENT for Sancus - BitSequence output[16]; // output length is the same as the input (in this case, 4 bytes) - BitSequence tag_spongent[16]; // TAG length is the same as the key length. 16 bytes. - BitSequence data[data_len]; - memcpy(data, params[2].memref.buffer, data_len); - - SpongentWrap(connection->connection_key, aad, 16, data, data_len * 8, output, tag_spongent, 0); - - memcpy(encrypt_buf + (data_len * i), output, data_len); - memcpy(tag_buf + (16*i), tag_spongent, 16); - } - - connection->nonce = connection->nonce + 1; //###### - - } // for - - params[1].memref.size = 2*num; - TEE_MemMove(params[1].memref.buffer, conn_id_buf, params[1].memref.size); - params[2].memref.size = data_len * num; - TEE_MemMove(params[2].memref.buffer, encrypt_buf, params[2].memref.size); - params[3].memref.size = 16*num; - TEE_MemMove(params[3].memref.buffer, tag_buf, params[3].memref.size); - - TEE_Free(conn_id_buf); - TEE_Free(encrypt_buf); - TEE_Free(tag_buf); -} - -//========================================================================= -TEE_Result handle_input(void *session, uint32_t param_types, TEE_Param params[4]){ - - const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_VALUE_INPUT, - TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_NONE); - - TEE_Result res; - struct aes_cipher *sess; - sess = (struct aes_cipher *)session; - unsigned char* data; - data = malloc(params[1].memref.size); - - Connection* connection = connections_get(params[0].value.a); - - char nonce[12] = { 0 }; - size_t nonce_sz = 12; - - unsigned char aad[2] = { 0 }; - int j = 1; - for(int m = 0; m < 2; m++){ - aad[m] = ((connection->nonce) >> (8*j)) & 0xFF; // ######## - j--; - } - - //--------------------------------------------------------------- - if(connection->encryption == AES){ - alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_DECODE); - set_aes_key(sess, connection->connection_key, 16); //####### - reset_aes_iv(sess, aad, 2, nonce, nonce_sz, params[1].memref.size); - - void *decrypted_data = NULL; - void *tag_void = NULL; - - decrypted_data = TEE_Malloc(params[1].memref.size, 0); - tag_void = TEE_Malloc(params[2].memref.size, 0); - - TEE_MemMove(tag_void, params[2].memref.buffer, params[2].memref.size); - - res = TEE_AEDecryptFinal(sess->op_handle, params[1].memref.buffer, - params[1].memref.size, decrypted_data, ¶ms[1].memref.size, tag_void, - params[2].memref.size); - - if (!res) { - data = decrypted_data; - for(int i = 0; i < params[1].memref.size; i++){ - printf("%2X", data[i]); - } - TEE_Free(decrypted_data); - TEE_Free(tag_void); - } - } - else{ - - BitSequence tag_spongent[16]; // TAG length is the same as the key length. 16 bytes. - BitSequence encrypted_data[params[1].memref.size]; - - for (int n = 0; n < params[1].memref.size; n++){ - encrypted_data[n] = ((uint8_t *)params[1].memref.buffer)[n]; - } - - for (int n = 0; n < 16; n++){ - tag_spongent[n] = ((uint8_t *)params[2].memref.buffer)[n]; - } - - SpongentUnwrap(connection->connection_key, aad, 16, encrypted_data, - (params[1].memref.size) * 8, data, tag_spongent); - - for(int i = 0; i < params[1].memref.size; i++){ - printf("%2X", data[i]); - } - - } - - connection->nonce = connection->nonce + 1; - - find_input_func(connection->io_id, data); - - return TEE_SUCCESS; -} - -// Called when the TA is created ======================================= -TEE_Result TA_CreateEntryPoint(void) { - DMSG("=============== TA_CreateEntryPoint ================"); - return TEE_SUCCESS; -} - -// Called when the TA is destroyed -void TA_DestroyEntryPoint(void) { - DMSG("=============== TA_DestroyEntryPoint ==============="); -} - -// open session -TEE_Result TA_OpenSessionEntryPoint(uint32_t __unused param_types, - TEE_Param __unused params[4], - void __unused **session) -{ - DMSG("=========== TA_OpenSessionEntryPoint ==============="); - - struct aes_cipher *sess; - sess = TEE_Malloc(sizeof(*sess), 0); - if (!sess) - return TEE_ERROR_OUT_OF_MEMORY; - - sess->key_handle = TEE_HANDLE_NULL; - sess->op_handle = TEE_HANDLE_NULL; - - *session = (void *)sess; - DMSG("Session %p: newly allocated", *session); - - return TEE_SUCCESS; -} - -// close session -void TA_CloseSessionEntryPoint(void *session) -{ - DMSG("========== TA_CloseSessionEntryPoint ==============="); - - struct aes_cipher *sess; - - /* Get ciphering context from session ID */ - DMSG("Session %p: release session", session); - sess = (struct aes_cipher *)session; - - /* Release the session resources */ - if (sess->key_handle != TEE_HANDLE_NULL) - TEE_FreeTransientObject(sess->key_handle); - if (sess->op_handle != TEE_HANDLE_NULL) - TEE_FreeOperation(sess->op_handle); - TEE_Free(sess); -} - -// invoke command -TEE_Result TA_InvokeCommandEntryPoint(void *session, uint32_t cmd, uint32_t param_types, - TEE_Param params[4]) -{ - DMSG("^^^^^^^^^^^^^^^^Invoking^^^^^^^^^^^^^^^^^^^\n"); - switch (cmd) { - case SET_KEY: - return set_key(session, param_types, params); - case ATTEST: - return attest(session, param_types, params); - case HANDLE_INPUT: - return handle_input(session, param_types, params); - case ENTRY: - return entry(session, param_types, params); - default: - EMSG("Command ID 0x%x is not supported", cmd); - return TEE_ERROR_NOT_SUPPORTED; - } -} diff --git a/examples/example_trustzone/button_driver/button_driver.c b/examples/example_trustzone/button_driver/button_driver.c deleted file mode 100644 index b1854fd..0000000 --- a/examples/example_trustzone/button_driver/button_driver.c +++ /dev/null @@ -1,34 +0,0 @@ -#include - -//#include - -#include -#include - -void find_input_func(uint16_t io_id, unsigned char* data){ - switch (io_id) - { - default: - break; - } -} - -void button_pressed(void *session, uint32_t param_types, TEE_Param params[4]){ - struct aes_cipher *sess; - sess = (struct aes_cipher *)session; - uint16_t output_id = 0; - handle_output(sess, output_id, param_types, params); -} - -TEE_Result entry(void *session, uint32_t param_types, TEE_Param params[4]){ - struct aes_cipher *sess; - sess = (struct aes_cipher *)session; - printf("***************Button is Pressed inside entry func****************\n"); - //unsigned char data[16] = {0}; - //data[0]= 0x01; - button_pressed(sess, param_types, params); - return TEE_SUCCESS; -} - - - diff --git a/examples/example_trustzone/button_driver/include/authentic_execution.h b/examples/example_trustzone/button_driver/include/authentic_execution.h deleted file mode 100644 index 9c600fa..0000000 --- a/examples/example_trustzone/button_driver/include/authentic_execution.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef TA_H -#define TA_H - -#include - - -#define TA_AES_ALGO_ECB 0 -#define TA_AES_ALGO_CBC 1 -#define TA_AES_ALGO_GCM 2 - -#define TA_AES_SIZE_128BIT (128 / 8) -#define TA_AES_SIZE_256BIT (256 / 8) - -#define TA_AES_MODE_ENCODE 1 -#define TA_AES_MODE_DECODE 0 - -#define AES 0 // aes-gcm-128 -#define SPONGENT 1 // spongent-128 - - -/* The function IDs implemented in this TA */ -#define SET_KEY 0 -#define ATTEST 1 -#define HANDLE_INPUT 2 -#define ENTRY 3 - -void handle_output(void *session, uint16_t output_id, uint32_t param_types, - TEE_Param params[4]); - -TEE_Result handle_input(void *session, uint32_t param_types, TEE_Param params[4]); - -#endif diff --git a/examples/example_trustzone/button_driver/include/button_driver.h b/examples/example_trustzone/button_driver/include/button_driver.h deleted file mode 100644 index e8ac380..0000000 --- a/examples/example_trustzone/button_driver/include/button_driver.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef BUTTON_DRIVER_H -#define BUTTON_DRIVER_H - -#include - -#define BUTTON_DRIVER_UUID \ - { 0xd3bc8433, 0x2eb5, 0x4c00, { 0xa0, 0x05, 0x3f, 0x87, 0xc1, 0xd3, 0xb4, 0x05} } - - -TEE_Result entry(void *session, uint32_t param_types, TEE_Param params[4]); -void find_input_func(uint16_t io_id, unsigned char* data); - -void button_pressed(void *session, uint32_t param_types, TEE_Param params[4]); - -#endif diff --git a/examples/example_trustzone/button_driver/include/pta_attestation.h b/examples/example_trustzone/button_driver/include/pta_attestation.h deleted file mode 100644 index 2036e3b..0000000 --- a/examples/example_trustzone/button_driver/include/pta_attestation.h +++ /dev/null @@ -1,19 +0,0 @@ -/* SPDX-License-Identifier: BSD-2-Clause */ -/* - * Copyright (c) 2018-2019, Linaro Limited - */ -#ifndef __PTA_ATTESTATION_H -#define __PTA_ATTESTATION_H - -#include - -/* - * Interface to the pseudo TA, which provides remote attestation. - */ -#define ATTESTATION_UUID \ - { 0xa2b0b139, 0x82dc, 0x4ffc, \ - { 0xa8, 0xa8, 0x7d, 0x7c, 0x63, 0x66, 0xe9, 0x84 } } - -#define ATTESTATION_CMD_GET_MODULE_KEY 0 - -#endif /* __PTA_ATTESTATION_H */ diff --git a/examples/example_trustzone/button_driver/include/spongent.h b/examples/example_trustzone/button_driver/include/spongent.h deleted file mode 100644 index 61f9fab..0000000 --- a/examples/example_trustzone/button_driver/include/spongent.h +++ /dev/null @@ -1,141 +0,0 @@ -#ifndef _SPONGENT_H_ -#define _SPONGENT_H_ - -//#include -#include -#include - -// #define _PrintState_ - -#define SW_SECURITY 128 - -#define SW_RATE 16 -#define SW_RATE_BYTES (SW_RATE / 8) - -#define MIN_CAPACITY (SW_SECURITY * 2) -#define MIN_WIDTH (MIN_CAPACITY + SW_RATE + 2) - -#if MIN_WIDTH <= 88 -#define WIDTH 88 -#define nRounds 45 -#define version 88808 - -#elif MIN_WIDTH <= 136 -#define WIDTH 136 -#define nRounds 70 -#define version 1281288 - -#elif MIN_WIDTH <= 176 -#define WIDTH 176 -#define nRounds 90 -#define version 16016016 - -#elif MIN_WIDTH <= 240 -#define WIDTH 240 -#define nRounds 120 -#define version 16016080 - -#elif MIN_WIDTH <= 264 -#define WIDTH 264 -#define nRounds 135 -#define version 8817688 - -#elif MIN_WIDTH <= 272 -#define WIDTH 272 -#define nRounds 140 -#define version 25625616 - -#elif MIN_WIDTH <= 336 -#define WIDTH 336 -#define nRounds 170 -#define version 224224112 - -#elif MIN_WIDTH <= 384 -#define WIDTH 384 -#define nRounds 195 -#define version 256256128 - -#elif MIN_WIDTH <= 480 -#define WIDTH 480 -#define nRounds 240 -#define version 160320160 - -#elif MIN_WIDTH <= 672 -#define WIDTH 672 -#define nRounds 340 -#define version 224448224 - -#elif MIN_WIDTH <= 768 -#define WIDTH 768 -#define nRounds 385 -#define version 256512256 - -#else -#error "Security too high" -#endif - -#define rate (SW_RATE + 2) -#define capacity (WIDTH - rate) -#define hashsize SW_SECURITY - -#define BITS_TO_BYTES(x) (x / 8 + (x % 8 != 0)) - -#define R_SizeInBytes BITS_TO_BYTES(rate) -#define nBits (capacity + rate) -#define nSBox nBits/8 -#define KEY_SIZE hashsize -#define TAG_SIZE hashsize -#define TAG_SIZE_BYTES (TAG_SIZE / 8) - -typedef unsigned char BitSequence; -typedef unsigned long long DataLength; - -typedef uint64_t bit64; -typedef uint32_t bit32; -typedef uint16_t bit16; -typedef uint8_t bit8; - -#define GET_BIT(x,y) (x >> y) & 0x1 - -typedef enum { SUCCESS = 0, FAIL = 1, BAD_HASHBITLEN = 2, BAD_TAG = 3 } HashReturn; - -typedef struct { - BitSequence value[nSBox]; /* current Spongent state */ - BitSequence messageblock[R_SizeInBytes]; /* message block to be input/output */ - int remainingbitlen; /* remaining data length */ - int hashbitlen; /* # of hashed bits so far */ -} hashState; - -HashReturn SpongentHash(const BitSequence *data, DataLength databitlen, BitSequence *hashval); -HashReturn Init(hashState *state, BitSequence *hashval); -HashReturn Absorb(hashState *state); -HashReturn Squeeze(hashState *state); -HashReturn Pad(hashState *state); - -int Pi(int i); -void pLayer(hashState *state); -void Permute(hashState *state); - -bit16 lCounter(bit16 lfsr); -bit16 retnuoCl(bit16 lfsr); - - -HashReturn SpongentWrap(const BitSequence* key, - const BitSequence* ad, DataLength adBitLength, - const BitSequence* input, DataLength bitLength, - BitSequence* output, - BitSequence* tag, - bool unwrap); - -HashReturn SpongentUnwrap(const BitSequence* key, - const BitSequence* ad, DataLength adBitLength, - const BitSequence* input, DataLength bitLength, - BitSequence* output, - const BitSequence* expectedTag); - -HashReturn SpongentMac(const BitSequence* key, - const BitSequence* input, DataLength bitLength, - BitSequence* mac); - -#endif /* spongent.h */ - diff --git a/examples/example_trustzone/button_driver/spongent.c b/examples/example_trustzone/button_driver/spongent.c deleted file mode 100644 index 6041426..0000000 --- a/examples/example_trustzone/button_driver/spongent.c +++ /dev/null @@ -1,530 +0,0 @@ -/* - * SPONGENT hash function - Implementation - * This code is placed in the public domain - * For more information, feedback or questions, please refer to our website: - * https://sites.google.com/site/spongenthash/ - -*/ - -#include -#include -#include -#include -#include "spongent.h" - -/* Spongent S-box */ -int S[16] = { 0xe, 0xd, 0xb, 0x0, 0x2, 0x1, 0x4, 0xf, 0x7, 0xa, 0x8, 0x5, 0x9, 0xc, 0x3, 0x6}; - - -/* Spongent eight bit S-box */ -int sBoxLayer[256] = { - 0xee, 0xed, 0xeb, 0xe0, 0xe2, 0xe1, 0xe4, 0xef, 0xe7, 0xea, 0xe8, 0xe5, 0xe9, 0xec, 0xe3, 0xe6, - 0xde, 0xdd, 0xdb, 0xd0, 0xd2, 0xd1, 0xd4, 0xdf, 0xd7, 0xda, 0xd8, 0xd5, 0xd9, 0xdc, 0xd3, 0xd6, - 0xbe, 0xbd, 0xbb, 0xb0, 0xb2, 0xb1, 0xb4, 0xbf, 0xb7, 0xba, 0xb8, 0xb5, 0xb9, 0xbc, 0xb3, 0xb6, - 0x0e, 0x0d, 0x0b, 0x00, 0x02, 0x01, 0x04, 0x0f, 0x07, 0x0a, 0x08, 0x05, 0x09, 0x0c, 0x03, 0x06, - 0x2e, 0x2d, 0x2b, 0x20, 0x22, 0x21, 0x24, 0x2f, 0x27, 0x2a, 0x28, 0x25, 0x29, 0x2c, 0x23, 0x26, - 0x1e, 0x1d, 0x1b, 0x10, 0x12, 0x11, 0x14, 0x1f, 0x17, 0x1a, 0x18, 0x15, 0x19, 0x1c, 0x13, 0x16, - 0x4e, 0x4d, 0x4b, 0x40, 0x42, 0x41, 0x44, 0x4f, 0x47, 0x4a, 0x48, 0x45, 0x49, 0x4c, 0x43, 0x46, - 0xfe, 0xfd, 0xfb, 0xf0, 0xf2, 0xf1, 0xf4, 0xff, 0xf7, 0xfa, 0xf8, 0xf5, 0xf9, 0xfc, 0xf3, 0xf6, - 0x7e, 0x7d, 0x7b, 0x70, 0x72, 0x71, 0x74, 0x7f, 0x77, 0x7a, 0x78, 0x75, 0x79, 0x7c, 0x73, 0x76, - 0xae, 0xad, 0xab, 0xa0, 0xa2, 0xa1, 0xa4, 0xaf, 0xa7, 0xaa, 0xa8, 0xa5, 0xa9, 0xac, 0xa3, 0xa6, - 0x8e, 0x8d, 0x8b, 0x80, 0x82, 0x81, 0x84, 0x8f, 0x87, 0x8a, 0x88, 0x85, 0x89, 0x8c, 0x83, 0x86, - 0x5e, 0x5d, 0x5b, 0x50, 0x52, 0x51, 0x54, 0x5f, 0x57, 0x5a, 0x58, 0x55, 0x59, 0x5c, 0x53, 0x56, - 0x9e, 0x9d, 0x9b, 0x90, 0x92, 0x91, 0x94, 0x9f, 0x97, 0x9a, 0x98, 0x95, 0x99, 0x9c, 0x93, 0x96, - 0xce, 0xcd, 0xcb, 0xc0, 0xc2, 0xc1, 0xc4, 0xcf, 0xc7, 0xca, 0xc8, 0xc5, 0xc9, 0xcc, 0xc3, 0xc6, - 0x3e, 0x3d, 0x3b, 0x30, 0x32, 0x31, 0x34, 0x3f, 0x37, 0x3a, 0x38, 0x35, 0x39, 0x3c, 0x33, 0x36, - 0x6e, 0x6d, 0x6b, 0x60, 0x62, 0x61, 0x64, 0x6f, 0x67, 0x6a, 0x68, 0x65, 0x69, 0x6c, 0x63, 0x66 -}; - -//-------------------------------------------------------------------------------------------- - -DataLength min(DataLength a, DataLength b){ - if(a <= b){ - return a; - } - else{ - return b; - } -} -//-------------------------------------------------------------------------------------------- - -void copy_n(BitSequence *first, int num, BitSequence *result){ - - for(int i = 0; i < num; i++){ - result[i] = first[i]; - } -} -//----------------------------------------------------------------------------------------- - -void PrintState(hashState *state) -{ - int i; - for (i=nSBox-1; i>=0; i--) - printf("%02X", state->value[i]); - printf("\n"); -} - -//-------------------------------------------------------------------------------------------- - -bit16 lCounter(bit16 lfsr) -{ - switch( version ) { - case 88808: - lfsr = (lfsr << 1) | (((0x20 & lfsr) >> 5) ^ ((0x10 & lfsr) >> 4)); - lfsr &= 0x3f; - break; - case 1281288: - case 16016016: - case 16016080: - case 22422416: - lfsr = (lfsr << 1) | (((0x40 & lfsr) >> 6) ^ ((0x20 & lfsr) >> 5)); - lfsr &= 0x7f; - break; - case 8817688: - case 128256128: - case 160320160: - case 224224112: - case 25625616: - case 256256128: - lfsr = (lfsr << 1) | (((0x80 & lfsr) >> 7) ^ ((0x08 & lfsr) >> 3) ^ ((0x04 & lfsr) >> 2) ^ ((0x02 & lfsr) >> 1)); - lfsr &= 0xff; - break; - case 224448224: - case 256512256: - lfsr = (lfsr << 1) | (((0x100 & lfsr) >> 8) ^ ((0x08 & lfsr) >> 3)); - lfsr &= 0x1ff; - break; - default : - printf("ErrorCounter\n"); - break; - } - return lfsr; -} - -//-------------------------------------------------------------------------------------------- - -bit16 retnuoCl(bit16 lfsr) -{ - switch(version) - { - case 88808: - case 8817688: - case 1281288: - case 128256128: - case 16016016: - case 16016080: - case 160320160: - case 22422416: - case 224224112: - case 25625616: - case 256256128: - lfsr = ( ((lfsr & 0x01) <<7) | ((lfsr & 0x02) << 5) | ((lfsr & 0x04) << 3) | ((lfsr & 0x08) << 1) | ((lfsr & 0x10) >> 1) | ((lfsr & 0x20) >> 3) | ((lfsr & 0x40) >> 5) | ((lfsr & 0x80) >> 7) ); - lfsr <<= 8; - break; - case 224448224: - case 256512256: - lfsr = ( ((lfsr & 0x01) <<8) | ((lfsr & 0x02) << 6) | ((lfsr & 0x04) << 4) | ((lfsr & 0x08) << 2) | ((lfsr & 0x10) << 0) | ((lfsr & 0x20) >> 2) | ((lfsr & 0x40) >> 4) | ((lfsr & 0x80) >> 6) | ((lfsr & 0x100) >> 8) ); - lfsr <<= 7; - break; - default : - printf("ErrorInverseCounter\n"); - break; - } - - return lfsr; -} - -//-------------------------------------------------------------------------------------------- - -int Pi(int i) -{ - if (i != nBits-1) - return (i*nBits/4)%(nBits-1); - else - return nBits-1; -} - -//-------------------------------------------------------------------------------------------- - -void pLayer(hashState *state) -{ - int i, j, PermutedBitNo; - bit8 tmp[nSBox], x, y; - - for(i = 0; i < nSBox; i++) tmp[i] = 0; - - for(i = 0; i < nSBox; i++){ - for(j = 0; j < 8; j++){ - x = GET_BIT(state->value[i],j); - PermutedBitNo = Pi(8*i+j); - y = PermutedBitNo/8; - tmp[y] ^= x << (PermutedBitNo - 8*y); - } - } - memcpy(state->value, tmp, nSBox); -} - -//-------------------------------------------------------------------------------------------- - -void Permute(hashState *state) -{ - bit16 i, j, IV, INV_IV; - - switch(version) - { - case 88808: IV = 0x05; break; - case 8817688: IV = 0xC6; break; - case 1281288: IV = 0x7A; break; - case 128256128: IV = 0xFB; break; - case 16016016: IV = 0x45; break; - case 16016080: IV = 0x01; break; - case 160320160: IV = 0xA7; break; - case 22422416: IV = 0x01; break; - case 224224112: IV = 0x52; break; - case 224448224: IV = 0x105; break; - case 25625616: IV = 0x9e; break; - case 256256128: IV = 0xfb; break; - case 256512256: IV = 0x015; break; - } - - for(i = 0; i < nRounds; i++){ -#ifdef _PrintState_ - printf("%3d\t", i); - PrintState(state); -#endif - /* Add counter values */ - state->value[0] ^= IV & 0xFF; - state->value[1] ^= (IV >> 8) & 0xFF; - INV_IV = retnuoCl(IV); - state->value[nSBox-1] ^= (INV_IV >> 8) & 0xFF;; - state->value[nSBox-2] ^= INV_IV & 0xFF; - IV = lCounter(IV); - - /* sBoxLayer layer */ - for ( j=0; j < nSBox; j++) - state->value[j] = sBoxLayer[state->value[j]]; - - /* pLayer */ - pLayer(state);\ - } -#ifdef _PrintState_ - printf("%3d\t", i); - PrintState(state); -#endif -} - -//-------------------------------------------------------------------------------------------- - -HashReturn Init(hashState *state, BitSequence *hashval) -{ - - memset(state->value, 0, nSBox); - state->hashbitlen = 0; - state->remainingbitlen = 0; - - if (hashval != NULL) - memset(hashval, 0, hashsize/8); - - return SUCCESS; -} - -//-------------------------------------------------------------------------------------------- - -HashReturn Absorb(hashState *state) -{ - int i; - for(i = 0; i < R_SizeInBytes; i++) - state->value[i] ^= state->messageblock[i]; - Permute(state); - - return SUCCESS; -} - -//-------------------------------------------------------------------------------------------- - -HashReturn Squeeze(hashState *state) -{ - memcpy(state->messageblock, state->value, R_SizeInBytes); -#ifdef _PrintState_ - printf("h_i\t"); - for(int i = 0; i < R_SizeInBytes; i++) - printf("%02X", state->messageblock[i]); - printf("\n\n"); -#endif - Permute(state); - - return SUCCESS; -} - -//-------------------------------------------------------------------------------------------- - -HashReturn Pad(hashState *state) -{ - int byteind = state->remainingbitlen/8; /* byte index of remaining byte */ - int bitpos = state->remainingbitlen%8; /* bit position in last byte */ - - /* make unoccupied bits 0 */ - if(bitpos) - state->messageblock[byteind] &= 0xff >> (8 - bitpos); - - /* add single 1-bit */ - if(bitpos) - state->messageblock[byteind] |= 0x01 << bitpos; - else - state->messageblock[byteind] = 0x01; - - /* add 0-bits until we have rate bits */ - while(byteind!=R_SizeInBytes) - { - byteind++; - state->messageblock[byteind] = 0; - } - return SUCCESS; -} - -//-------------------------------------------------------------------------------------------- - -HashReturn SpongentHash(const BitSequence *data, DataLength databitlen, BitSequence *hashval) -{ - hashState state; - HashReturn res; - - /* initialize */ - res = Init(&state, hashval); - if(res != SUCCESS) - return res; - - /* Absorb available message blocks */ - while(databitlen >= rate) - { - memcpy(state.messageblock, data, R_SizeInBytes); -#ifdef _PrintState_ - printf("\n"); - printf("m_i\t"); - for(int i = 0; i < R_SizeInBytes; i++) - printf("%02X", state.messageblock[i]); - printf("\n"); -#endif - Absorb(&state); - databitlen -= rate; - data += R_SizeInBytes; - } - - /* Pad the remaining bits before absorbing */ - if(databitlen>0){ - memcpy(state.messageblock, data, databitlen/8 + (databitlen%8?1:0)); - state.remainingbitlen = databitlen; - } - else if(databitlen==0){ - memset(state.messageblock, 0, R_SizeInBytes); - state.remainingbitlen = databitlen; - } - Pad(&state); -#ifdef _PrintState_ - printf("\n"); - printf("m_i\t"); - for(int i = 0; i < R_SizeInBytes; i++) - printf("%02X", state.messageblock[i]); - printf("\n"); -#endif - Absorb(&state); - state.hashbitlen += rate; - - /* Squeeze data blocks */ - while(state.hashbitlen < hashsize) - { - Squeeze(&state); - memcpy(hashval, state.messageblock, R_SizeInBytes); - state.hashbitlen += rate; - hashval += R_SizeInBytes; - } - - memcpy(hashval, state.value, R_SizeInBytes); - hashval += R_SizeInBytes; -#ifdef _PrintState_ - printf("h_i\t"); - for(int i = 0; i < R_SizeInBytes; i++) - printf("%02X", state.value[i]); - printf("\n\n"); -#endif - - return SUCCESS; -} - -HashReturn Duplexing(hashState* state, - BitSequence* block, - DataLength blockBitLength, - BitSequence* out, - DataLength outBitsLength) -{ - copy_n(block, BITS_TO_BYTES(blockBitLength), state->messageblock); - state->remainingbitlen = blockBitLength; - HashReturn ret = Pad(state); - - if (ret != SUCCESS) - return ret; - - ret = Absorb(state); - - if (ret != SUCCESS) - return ret; - - if (out != NULL) - copy_n(state->value, outBitsLength / 8, out); - - return SUCCESS; -} - -HashReturn SpongentWrap(const BitSequence* key, - const BitSequence* ad, DataLength adBitLength, - const BitSequence* input, DataLength bitLength, - BitSequence* output, - BitSequence* tag, - bool unwrap) -{ - if (adBitLength % 8 != 0 || bitLength % 8 != 0) - { - //fprintf(stderr, "Messages containing partial bytes not supported\n"); - return FAIL; - } - - hashState state; - HashReturn ret = Init(&state, NULL); - - if (ret != SUCCESS) - return ret; - - BitSequence block[R_SizeInBytes]; - BitSequence duplexOut[R_SizeInBytes]; - DataLength bitsLeft = KEY_SIZE; - - while (bitsLeft > SW_RATE) - { - copy_n(key, SW_RATE_BYTES, block); - block[SW_RATE_BYTES] = 0x01; - ret = Duplexing(&state, block, SW_RATE + 1, NULL, 16); - - - if (ret != SUCCESS) - return ret; - - bitsLeft -= SW_RATE; - key += SW_RATE_BYTES; - } - - copy_n(key, bitsLeft / 8, block); - block[bitsLeft / 8] = 0x00; - ret = Duplexing(&state, block, bitsLeft + 1, NULL, 16); - - if (ret != SUCCESS) - return ret; - - bitsLeft = adBitLength; - - while (bitsLeft > SW_RATE) - { - copy_n(ad, SW_RATE_BYTES, block); - block[SW_RATE_BYTES] = 0x00; - ret = Duplexing(&state, block, SW_RATE + 1, NULL, 16); - - if (ret != SUCCESS) - return ret; - - bitsLeft -= SW_RATE; - ad += SW_RATE_BYTES; - } - - copy_n(ad, bitsLeft / 8, block); - block[bitsLeft / 8] = 0x01; - ret = Duplexing(&state, block, bitsLeft + 1, duplexOut, 16); - - if (ret != SUCCESS) - return ret; - - DataLength firstBlockLength = min(bitLength, (DataLength)SW_RATE) / 8; - - for (DataLength i = 0; i < firstBlockLength; i++) - output[i] = input[i] ^ duplexOut[i]; - - bitsLeft = bitLength; - - while (bitsLeft > SW_RATE) - { - copy_n(unwrap ? output : input, SW_RATE_BYTES, block); - block[SW_RATE_BYTES] = 0x01; - HashReturn ret = Duplexing(&state, block, SW_RATE + 1, duplexOut, 16); - - if (ret != SUCCESS) - return ret; - - bitsLeft -= SW_RATE; - input += SW_RATE_BYTES; - output += SW_RATE_BYTES; - - DataLength blockLength = min(bitsLeft, (DataLength)SW_RATE) / 8; - - for (DataLength i = 0; i < blockLength; i++) - output[i] = input[i] ^ duplexOut[i]; - } - - copy_n(unwrap ? output : input, bitsLeft / 8, block); - block[bitsLeft / 8] = 0x00; - ret = Duplexing(&state, block, bitsLeft + 1, - tag, min((DataLength)TAG_SIZE, (DataLength)SW_RATE)); - - if (ret != SUCCESS) - return ret; - - DataLength tagBitsDone = SW_RATE; - tag += SW_RATE_BYTES; - for (unsigned int i = 0; i < sizeof(block); i++){ - block[i] = 0x00; - } - //std::fill_n(block, sizeof(block), 0x00); - - while (tagBitsDone < TAG_SIZE) - { - ret = Duplexing(&state, block, 0, tag, - min(TAG_SIZE - tagBitsDone, (DataLength)SW_RATE)); - - if (ret != SUCCESS) - return ret; - - tagBitsDone += SW_RATE; - tag += SW_RATE_BYTES; - } - - return SUCCESS; -} - -HashReturn SpongentUnwrap(const BitSequence* key, - const BitSequence* ad, DataLength adBitLength, - const BitSequence* input, DataLength bitLength, - BitSequence* output, - const BitSequence* expectedTag) -{ - BitSequence tag[TAG_SIZE_BYTES]; - HashReturn ret = SpongentWrap(key, - ad, adBitLength, - input, bitLength, - output, tag, /*unwrap=*/true); - - if (ret != SUCCESS) - return ret; - - //if (!std::equal(std::begin(tag), std::end(tag), expectedTag)) - if (memcmp(tag, expectedTag, TAG_SIZE_BYTES) == 0) - return BAD_TAG; - - return SUCCESS; -} - -HashReturn SpongentMac(const BitSequence* key, - const BitSequence* input, DataLength bitLength, - BitSequence* mac) -{ - return SpongentWrap(key, input, bitLength, NULL, 0, NULL, mac, false); -} - -//-------------------------------------------------------------------------------------------- - diff --git a/examples/example_trustzone/button_driver/sub.mk b/examples/example_trustzone/button_driver/sub.mk deleted file mode 100644 index ac1371a..0000000 --- a/examples/example_trustzone/button_driver/sub.mk +++ /dev/null @@ -1,7 +0,0 @@ -global-incdirs-y += include -srcs-y += button_driver.c -srcs-y += spongent.c -srcs-y +=authentic_execution.c - -# To remove a certain compiler flag, add a line like this -#cflags-template_ta.c-y += -Wno-strict-prototypes diff --git a/examples/example_trustzone/button_driver/user_ta_header_defines.h b/examples/example_trustzone/button_driver/user_ta_header_defines.h deleted file mode 100644 index 0d40373..0000000 --- a/examples/example_trustzone/button_driver/user_ta_header_defines.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef USER_TA_HEADER_DEFINES_H -#define USER_TA_HEADER_DEFINES_H - -/* To get the TA UUID definition */ -#include - -#define TA_UUID BUTTON_DRIVER_UUID - -/* - * TA properties: multi-instance TA, no specific attribute - * TA_FLAG_EXEC_DDR is meaningless but mandated. - */ -#define TA_FLAGS TA_FLAG_EXEC_DDR - -/* Provisioned stack size */ -#define TA_STACK_SIZE (2 * 1024) - -/* Provisioned heap size for TEE_Malloc() and friends */ -#define TA_DATA_SIZE (32 * 1024) - -#endif diff --git a/examples/example_trustzone/button_driver_native/Cargo.toml b/examples/example_trustzone/button_driver_native/Cargo.toml deleted file mode 100644 index e97a330..0000000 --- a/examples/example_trustzone/button_driver_native/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "button_driver" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/examples/example_trustzone/button_driver_native/src/lib.rs b/examples/example_trustzone/button_driver_native/src/lib.rs deleted file mode 100644 index 435e4be..0000000 --- a/examples/example_trustzone/button_driver_native/src/lib.rs +++ /dev/null @@ -1,11 +0,0 @@ -//@ sm_output(button_pressed) - - -//@ sm_entry -pub fn entry(data : &[u8]) -> ResultMessage { - info!("Button has been pressed, sending output"); - - button_pressed(&[]); - - success(None) -} diff --git a/examples/example_trustzone/led_driver/Makefile b/examples/example_trustzone/led_driver/Makefile deleted file mode 100644 index a22c4ed..0000000 --- a/examples/example_trustzone/led_driver/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -CFG_TEE_TA_LOG_LEVEL ?= 4 - -# The UUID for the Trusted Application -BINARY=$(BINARY) - --include $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk - -ifeq ($(wildcard $(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk), ) -clean: - @echo 'Note: $$(TA_DEV_KIT_DIR)/mk/ta_dev_kit.mk not found, cannot clean TA' - @echo 'Note: TA_DEV_KIT_DIR=$(TA_DEV_KIT_DIR)' -endif diff --git a/examples/example_trustzone/led_driver/authentic_execution.c b/examples/example_trustzone/led_driver/authentic_execution.c deleted file mode 100644 index fa55194..0000000 --- a/examples/example_trustzone/led_driver/authentic_execution.c +++ /dev/null @@ -1,684 +0,0 @@ -#include -#include -#include -#include - -#include - -#include -#include -#include -#include - -static const TEE_UUID pta_attestation_uuid = ATTESTATION_UUID; - -void *malloc_aligned(size_t size) { - size += size % 2; - - return malloc(size); -} - -int total_node = 0; - -typedef struct -{ - uint8_t encryption; - uint16_t conn_id; - uint16_t io_id; - uint16_t nonce; - unsigned char connection_key[16]; -} Connection; - -typedef struct Node -{ - Connection connection; - struct Node* next; -} Node; - -static Node* connections_head = NULL; - -int connections_add(Connection* connection) -{ - Node* node = malloc_aligned(sizeof(Node)); - - if (node == NULL) - return 0; - - node->connection = *connection; - node->next = connections_head; - connections_head = node; - return 1; -} - -Connection* connections_get(uint16_t conn_id) -{ - Node* current = connections_head; - - while (current != NULL) { - Connection* connection = ¤t->connection; - - if (connection->conn_id == conn_id) { - return connection; - } - - current = current->next; - } - - return NULL; -} - -void find_connections(uint16_t io_id, int *arr, uint8_t *num) -{ - Node* current = connections_head; - while (current != NULL) { - Connection* connection = ¤t->connection; - if (connection->io_id == io_id) { - arr[*num] = connection->conn_id; - *num = *num + 1; - } - - current = current->next; - } - -} - -//=============================================================== - -char module_key[16] = { 0 }; - -struct aes_cipher { - uint32_t algo; /* AES flavour */ - uint32_t mode; /* Encode or decode */ - uint32_t key_size; /* AES key size in byte */ - TEE_OperationHandle op_handle; /* AES ciphering operation */ - TEE_ObjectHandle key_handle; /* transient object to load the key */ -}; - -//=============================================================== - -static TEE_Result ta2tee_algo_id(uint32_t param, uint32_t *algo) -{ - switch (param) { - case TA_AES_ALGO_ECB: - *algo = TEE_ALG_AES_ECB_NOPAD; - return TEE_SUCCESS; - case TA_AES_ALGO_CBC: - *algo = TEE_ALG_AES_CBC_NOPAD; - return TEE_SUCCESS; - case TA_AES_ALGO_GCM: - *algo = TEE_ALG_AES_GCM; - return TEE_SUCCESS; - default: - EMSG("Invalid algo %u", param); - return TEE_ERROR_BAD_PARAMETERS; - } -} -static TEE_Result ta2tee_key_size(uint32_t param, uint32_t *key_size) -{ - switch (param) { - case 16: - *key_size = param; - return TEE_SUCCESS; - default: - EMSG("Invalid key size %u", param); - return TEE_ERROR_BAD_PARAMETERS; - } -} -static TEE_Result ta2tee_mode_id(uint32_t param, uint32_t *mode) -{ - switch (param) { - case TA_AES_MODE_ENCODE: - *mode = TEE_MODE_ENCRYPT; - return TEE_SUCCESS; - case TA_AES_MODE_DECODE: - *mode = TEE_MODE_DECRYPT; - return TEE_SUCCESS; - default: - EMSG("Invalid mode %u", param); - return TEE_ERROR_BAD_PARAMETERS; - } -} - -static TEE_Result alloc_resources(void *session, uint32_t algo, uint32_t key_size, - uint32_t mode){ - - struct aes_cipher *sess; - TEE_Attribute attr; - TEE_Result res; - char *key; - - /* Get ciphering context from session ID */ - DMSG("Session %p: get ciphering resources", session); - sess = (struct aes_cipher *)session; - - res = ta2tee_algo_id(algo, &sess->algo); - if (res != TEE_SUCCESS) - return res; - - res = ta2tee_key_size(key_size, &sess->key_size); - if (res != TEE_SUCCESS) - return res; - - res = ta2tee_mode_id(mode, &sess->mode); - if (res != TEE_SUCCESS) - return res; - - if (sess->op_handle != TEE_HANDLE_NULL) - TEE_FreeOperation(sess->op_handle); - - /* Allocate operation: AES/CTR, mode and size from params */ - res = TEE_AllocateOperation(&sess->op_handle, - sess->algo, - sess->mode, - sess->key_size * 8); - if (res != TEE_SUCCESS) { - EMSG("Failed to allocate operation"); - sess->op_handle = TEE_HANDLE_NULL; - goto err; - } - - /* Free potential previous transient object */ - if (sess->key_handle != TEE_HANDLE_NULL) - TEE_FreeTransientObject(sess->key_handle); - - /* Allocate transient object according to target key size */ - res = TEE_AllocateTransientObject(TEE_TYPE_AES, - sess->key_size * 8, - &sess->key_handle); - if (res != TEE_SUCCESS) { - EMSG("Failed to allocate transient object"); - sess->key_handle = TEE_HANDLE_NULL; - goto err; - } - - key = TEE_Malloc(sess->key_size, 0); - if (!key) { - res = TEE_ERROR_OUT_OF_MEMORY; - goto err; - } - - TEE_InitRefAttribute(&attr, TEE_ATTR_SECRET_VALUE, key, sess->key_size); - - res = TEE_PopulateTransientObject(sess->key_handle, &attr, 1); - if (res != TEE_SUCCESS) { - EMSG("TEE_PopulateTransientObject failed, %x", res); - goto err; - } - - res = TEE_SetOperationKey(sess->op_handle, sess->key_handle); - if (res != TEE_SUCCESS) { - EMSG("TEE_SetOperationKey failed %x", res); - goto err; - } - - return res; - -err: - if (sess->op_handle != TEE_HANDLE_NULL) - TEE_FreeOperation(sess->op_handle); - sess->op_handle = TEE_HANDLE_NULL; - - if (sess->key_handle != TEE_HANDLE_NULL) - TEE_FreeTransientObject(sess->key_handle); - sess->key_handle = TEE_HANDLE_NULL; - - return res; -} - -static TEE_Result set_aes_key(void *session, char *key, uint32_t key_sz){ - - struct aes_cipher *sess; - TEE_Attribute attr; - TEE_Result res; - - /* Get ciphering context from session ID */ - DMSG("Session %p: load key material", session); - sess = (struct aes_cipher *)session; - - //--------------------------------------------------------------- - if (key_sz != sess->key_size) { - EMSG("Wrong key size %" PRIu32 ", expect %" PRIu32 " bytes", - key_sz, sess->key_size); - return TEE_ERROR_BAD_PARAMETERS; - } - - TEE_InitRefAttribute(&attr, TEE_ATTR_SECRET_VALUE, key, key_sz); - - TEE_ResetTransientObject(sess->key_handle); - res = TEE_PopulateTransientObject(sess->key_handle, &attr, 1); - if (res != TEE_SUCCESS) { - EMSG("TEE_PopulateTransientObject failed, %x", res); - return res; - } - - TEE_ResetOperation(sess->op_handle); - res = TEE_SetOperationKey(sess->op_handle, sess->key_handle); - if (res != TEE_SUCCESS) { - EMSG("TEE_SetOperationKey failed %x", res); - return res; - } - - return res; -} - -static TEE_Result reset_aes_iv(void *session, char *aad, size_t aad_sz, - char *nonce, size_t nonce_sz, size_t payload_sz){ - - struct aes_cipher *sess; - - /* Get ciphering context from session ID */ - DMSG("Session %p: reset initial vector", session); - sess = (struct aes_cipher *)session; - - TEE_AEInit(sess->op_handle, nonce, nonce_sz, 16*8/* tag_len in bits */, aad_sz /*aad_len*/, - payload_sz /*plaintext_len*/); - - TEE_AEUpdateAAD(sess->op_handle, aad, aad_sz); - - return TEE_SUCCESS; -} - -static TEE_Result set_key(void *session, uint32_t param_types, - TEE_Param params[4]) -{ - TEE_Result res = TEE_ERROR_OUT_OF_MEMORY; - const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_NONE); - struct aes_cipher *sess; - Connection connection; - - DMSG("Session %p: cipher buffer", session); - sess = (struct aes_cipher *)session; - char nonce[12] = { 0 }; - size_t nonce_sz = 12; - - alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_DECODE); - set_aes_key(sess, module_key, 16); - reset_aes_iv(sess, params[0].memref.buffer, params[0].memref.size, nonce, nonce_sz, params[1].memref.size); - - char *tag; - tag = params[0].memref.buffer; - char *temp; - - void *decrypted_key = NULL; - void *tag_void = NULL; - - //========================================== - decrypted_key = TEE_Malloc(16, 0); - tag_void = TEE_Malloc(params[2].memref.size, 0); - if (!decrypted_key || !tag_void) - goto out; - - TEE_MemMove(tag_void, params[2].memref.buffer, params[2].memref.size); - - res = TEE_AEDecryptFinal(sess->op_handle, params[1].memref.buffer, - params[1].memref.size, decrypted_key, ¶ms[2].memref.size, tag_void, - params[2].memref.size); - - if (!res) { - temp = decrypted_key; - for (int j = 0; j < 16; j++){ - connection.connection_key[j]= temp[j]; - } - - connection.nonce = 0; - connection.encryption = tag[0] & 0xFF; - - int j = 0; - connection.conn_id = 0; - for(int n=2; n>=1; --n){ - connection.conn_id = connection.conn_id + (( tag[n] & 0xFF ) << (8*j)); - ++j; - } - j = 0; - connection.io_id = 0; - for(int n=4; n>=3; --n){ - connection.io_id = connection.io_id + (( tag[n] & 0xFF ) << (8*j)); - ++j; - } - total_node = total_node + 1; - connections_add(&connection); - } - -out: - TEE_Free(decrypted_key); - TEE_Free(tag_void); - - return res; -} - -//====================================================================== - -static TEE_Result attest(void *session, uint32_t param_types, - TEE_Param params[4]) -{ - TEE_Result res = TEE_ERROR_OUT_OF_MEMORY; - const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_MEMREF_OUTPUT, - TEE_PARAM_TYPE_NONE, - TEE_PARAM_TYPE_NONE); - struct aes_cipher *sess; - - DMSG("Session %p: cipher buffer", session); - sess = (struct aes_cipher *)session; - - // ------------ Call PTA ---------************************************************** - TEE_TASessionHandle pta_session = TEE_HANDLE_NULL; - uint32_t ret_origin = 0; - uint32_t pta_param_types = TEE_PARAM_TYPES( TEE_PARAM_TYPE_MEMREF_OUTPUT, - TEE_PARAM_TYPE_NONE, TEE_PARAM_TYPE_NONE, - TEE_PARAM_TYPE_NONE); - - TEE_Param pta_params[TEE_NUM_PARAMS]; - - // prepare the parameters for the pta - pta_params[0].memref.buffer = module_key; - pta_params[0].memref.size = 16; - - // ------------ Open Session to PTA --------- - res = TEE_OpenTASession(&pta_attestation_uuid, 0, 0, NULL, &pta_session, - &ret_origin); - if (res != TEE_SUCCESS) - return res; - - // ------------ Invoke command at PTA (get_module key) --------- - res = TEE_InvokeTACommand(pta_session, 0, ATTESTATION_CMD_GET_MODULE_KEY, - pta_param_types, pta_params, &ret_origin); - if (res != TEE_SUCCESS) - return res; - - // ------------ Close Session to PTA --------- - TEE_CloseTASession(pta_session); - - //******************************************************************************* - char nonce[12] = { 0 }; - size_t nonce_sz = 12; - // challenge = param[0] --> aad - alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_ENCODE); - set_aes_key(sess, module_key, 16); - reset_aes_iv(sess, params[0].memref.buffer, params[0].memref.size, nonce, nonce_sz, 0); - - unsigned char challenge[16]={0}; - memcpy(challenge, params[0].memref.buffer, 16); - DMSG("Module key: %x %x", module_key[0], module_key[1]); - DMSG("Challenge: %x %x", challenge[0], challenge[1]); - - void *tag = TEE_Malloc(16, 0); - uint32_t len = 0, tag_len = 16; - - res = TEE_AEEncryptFinal(sess->op_handle, NULL, - 0, NULL, &len, tag, &tag_len); - - if (!res) { - params[1].memref.size = 16; - TEE_MemMove(params[1].memref.buffer, tag, params[1].memref.size); - } - else { - DMSG("MAC generation failed: %d", res); - } - - TEE_Free(tag); - - return res; - -} - -//====================================================================== - -void handle_output(void *session, uint16_t output_id, uint32_t param_types, - TEE_Param params[4]){ - - const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_VALUE_INOUT, - TEE_PARAM_TYPE_MEMREF_OUTPUT, - TEE_PARAM_TYPE_MEMREF_INOUT, - TEE_PARAM_TYPE_MEMREF_OUTPUT); - - struct aes_cipher *sess; - sess = (struct aes_cipher *)session; - - uint32_t data_len = params[0].value.a; - uint8_t num = 0; - void *conn_id_buf; - void *encrypt_buf; - void *tag_buf; - - int arr[total_node]; - find_connections(output_id, arr, &num); - params[0].value.a = num; - conn_id_buf = TEE_Malloc(num * 2, 0); - encrypt_buf = TEE_Malloc(num * data_len, 0); - tag_buf = TEE_Malloc(num * 16, 0); - - for(int i=0; inonce) >> (8*j)) & 0xFF; // ######## - j--; - } - - unsigned char conn_id_array[2] = { 0 }; - int c = 1; - for(int m = 0; m < 2; m++){ - conn_id_array[m] = ((connection->conn_id) >> (8*j)) & 0xFF; // ######## - c--; - } - memcpy(conn_id_buf+(2*i), conn_id_array, 2); - - //*************** ^ ^ ******************************************************* - - if(connection->encryption == AES){ - alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_ENCODE); - set_aes_key(sess, connection->connection_key, 16); //####### - reset_aes_iv(sess, aad, 2, nonce, nonce_sz, data_len); - - void *encrypt = NULL; - void *tag = NULL; - uint32_t sz = 16; - - encrypt = TEE_Malloc(data_len, 0); - tag = TEE_Malloc(16, 0); - - const void *text = NULL; - text = TEE_Malloc(data_len, 0); - memcpy(text, params[2].memref.buffer, data_len); - - TEE_Result res = TEE_AEEncryptFinal(sess->op_handle, text, data_len, - encrypt, &data_len, tag, &sz); - - if (!res) { - memcpy(encrypt_buf + (data_len * i), encrypt, data_len); - memcpy(tag_buf + (16*i), tag, 16); - TEE_Free(encrypt); - TEE_Free(tag); - TEE_Free(text); - } - } - else { - //SPONGENT for Sancus - BitSequence output[16]; // output length is the same as the input (in this case, 4 bytes) - BitSequence tag_spongent[16]; // TAG length is the same as the key length. 16 bytes. - BitSequence data[data_len]; - memcpy(data, params[2].memref.buffer, data_len); - - SpongentWrap(connection->connection_key, aad, 16, data, data_len * 8, output, tag_spongent, 0); - - memcpy(encrypt_buf + (data_len * i), output, data_len); - memcpy(tag_buf + (16*i), tag_spongent, 16); - } - - connection->nonce = connection->nonce + 1; //###### - - } // for - - params[1].memref.size = 2*num; - TEE_MemMove(params[1].memref.buffer, conn_id_buf, params[1].memref.size); - params[2].memref.size = data_len * num; - TEE_MemMove(params[2].memref.buffer, encrypt_buf, params[2].memref.size); - params[3].memref.size = 16*num; - TEE_MemMove(params[3].memref.buffer, tag_buf, params[3].memref.size); - - TEE_Free(conn_id_buf); - TEE_Free(encrypt_buf); - TEE_Free(tag_buf); -} - -//========================================================================= -TEE_Result handle_input(void *session, uint32_t param_types, TEE_Param params[4]){ - - const uint32_t exp_param_types = TEE_PARAM_TYPES(TEE_PARAM_TYPE_VALUE_INPUT, - TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_MEMREF_INPUT, - TEE_PARAM_TYPE_NONE); - - TEE_Result res; - struct aes_cipher *sess; - sess = (struct aes_cipher *)session; - unsigned char* data; - data = malloc(params[1].memref.size); - - Connection* connection = connections_get(params[0].value.a); - - char nonce[12] = { 0 }; - size_t nonce_sz = 12; - - unsigned char aad[2] = { 0 }; - int j = 1; - for(int m = 0; m < 2; m++){ - aad[m] = ((connection->nonce) >> (8*j)) & 0xFF; // ######## - j--; - } - - //--------------------------------------------------------------- - if(connection->encryption == AES){ - alloc_resources(sess, TA_AES_ALGO_GCM, 16, TA_AES_MODE_DECODE); - set_aes_key(sess, connection->connection_key, 16); //####### - reset_aes_iv(sess, aad, 2, nonce, nonce_sz, params[1].memref.size); - - void *decrypted_data = NULL; - void *tag_void = NULL; - - decrypted_data = TEE_Malloc(params[1].memref.size, 0); - tag_void = TEE_Malloc(params[2].memref.size, 0); - - TEE_MemMove(tag_void, params[2].memref.buffer, params[2].memref.size); - - res = TEE_AEDecryptFinal(sess->op_handle, params[1].memref.buffer, - params[1].memref.size, decrypted_data, ¶ms[1].memref.size, tag_void, - params[2].memref.size); - - if (!res) { - data = decrypted_data; - for(int i = 0; i < params[1].memref.size; i++){ - printf("%2X", data[i]); - } - TEE_Free(decrypted_data); - TEE_Free(tag_void); - } - } - else{ - - BitSequence tag_spongent[16]; // TAG length is the same as the key length. 16 bytes. - BitSequence encrypted_data[params[1].memref.size]; - - for (int n = 0; n < params[1].memref.size; n++){ - encrypted_data[n] = ((uint8_t *)params[1].memref.buffer)[n]; - } - - for (int n = 0; n < 16; n++){ - tag_spongent[n] = ((uint8_t *)params[2].memref.buffer)[n]; - } - - SpongentUnwrap(connection->connection_key, aad, 16, encrypted_data, - (params[1].memref.size) * 8, data, tag_spongent); - - for(int i = 0; i < params[1].memref.size; i++){ - printf("%2X", data[i]); - } - - } - - connection->nonce = connection->nonce + 1; - - find_input_func(connection->io_id, data); - - return TEE_SUCCESS; -} - -// Called when the TA is created ======================================= -TEE_Result TA_CreateEntryPoint(void) { - DMSG("=============== TA_CreateEntryPoint ================"); - return TEE_SUCCESS; -} - -// Called when the TA is destroyed -void TA_DestroyEntryPoint(void) { - DMSG("=============== TA_DestroyEntryPoint ==============="); -} - -// open session -TEE_Result TA_OpenSessionEntryPoint(uint32_t __unused param_types, - TEE_Param __unused params[4], - void __unused **session) -{ - DMSG("=========== TA_OpenSessionEntryPoint ==============="); - - struct aes_cipher *sess; - sess = TEE_Malloc(sizeof(*sess), 0); - if (!sess) - return TEE_ERROR_OUT_OF_MEMORY; - - sess->key_handle = TEE_HANDLE_NULL; - sess->op_handle = TEE_HANDLE_NULL; - - *session = (void *)sess; - DMSG("Session %p: newly allocated", *session); - - return TEE_SUCCESS; -} - -// close session -void TA_CloseSessionEntryPoint(void *session) -{ - DMSG("========== TA_CloseSessionEntryPoint ==============="); - - struct aes_cipher *sess; - - /* Get ciphering context from session ID */ - DMSG("Session %p: release session", session); - sess = (struct aes_cipher *)session; - - /* Release the session resources */ - if (sess->key_handle != TEE_HANDLE_NULL) - TEE_FreeTransientObject(sess->key_handle); - if (sess->op_handle != TEE_HANDLE_NULL) - TEE_FreeOperation(sess->op_handle); - TEE_Free(sess); -} - -// invoke command -TEE_Result TA_InvokeCommandEntryPoint(void *session, uint32_t cmd, uint32_t param_types, - TEE_Param params[4]) -{ - DMSG("^^^^^^^^^^^^^^^^Invoking^^^^^^^^^^^^^^^^^^^\n"); - switch (cmd) { - case SET_KEY: - return set_key(session, param_types, params); - case ATTEST: - return attest(session, param_types, params); - case HANDLE_INPUT: - return handle_input(session, param_types, params); - case ENTRY: - return entry(session, param_types, params); - default: - EMSG("Command ID 0x%x is not supported", cmd); - return TEE_ERROR_NOT_SUPPORTED; - } -} diff --git a/examples/example_trustzone/led_driver/include/authentic_execution.h b/examples/example_trustzone/led_driver/include/authentic_execution.h deleted file mode 100644 index 9c600fa..0000000 --- a/examples/example_trustzone/led_driver/include/authentic_execution.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef TA_H -#define TA_H - -#include - - -#define TA_AES_ALGO_ECB 0 -#define TA_AES_ALGO_CBC 1 -#define TA_AES_ALGO_GCM 2 - -#define TA_AES_SIZE_128BIT (128 / 8) -#define TA_AES_SIZE_256BIT (256 / 8) - -#define TA_AES_MODE_ENCODE 1 -#define TA_AES_MODE_DECODE 0 - -#define AES 0 // aes-gcm-128 -#define SPONGENT 1 // spongent-128 - - -/* The function IDs implemented in this TA */ -#define SET_KEY 0 -#define ATTEST 1 -#define HANDLE_INPUT 2 -#define ENTRY 3 - -void handle_output(void *session, uint16_t output_id, uint32_t param_types, - TEE_Param params[4]); - -TEE_Result handle_input(void *session, uint32_t param_types, TEE_Param params[4]); - -#endif diff --git a/examples/example_trustzone/led_driver/include/led_driver.h b/examples/example_trustzone/led_driver/include/led_driver.h deleted file mode 100644 index b778b66..0000000 --- a/examples/example_trustzone/led_driver/include/led_driver.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef LED_DRIVER_H -#define LED_DRIVER_H - -#include - -#define LED_DRIVER_UUID \ - { 0xb210f0df, 0x8a68, 0x4b24, { 0x88, 0x0a, 0x87, 0x13, 0x58, 0x6c, 0x4d, 0x10 } } - - -TEE_Result entry(void *session, uint32_t param_types, TEE_Param params[4]); -void find_input_func(uint16_t io_id, unsigned char* data); - -void toggle_led(unsigned char* data); - - -#endif diff --git a/examples/example_trustzone/led_driver/include/pta_attestation.h b/examples/example_trustzone/led_driver/include/pta_attestation.h deleted file mode 100644 index 2036e3b..0000000 --- a/examples/example_trustzone/led_driver/include/pta_attestation.h +++ /dev/null @@ -1,19 +0,0 @@ -/* SPDX-License-Identifier: BSD-2-Clause */ -/* - * Copyright (c) 2018-2019, Linaro Limited - */ -#ifndef __PTA_ATTESTATION_H -#define __PTA_ATTESTATION_H - -#include - -/* - * Interface to the pseudo TA, which provides remote attestation. - */ -#define ATTESTATION_UUID \ - { 0xa2b0b139, 0x82dc, 0x4ffc, \ - { 0xa8, 0xa8, 0x7d, 0x7c, 0x63, 0x66, 0xe9, 0x84 } } - -#define ATTESTATION_CMD_GET_MODULE_KEY 0 - -#endif /* __PTA_ATTESTATION_H */ diff --git a/examples/example_trustzone/led_driver/include/spongent.h b/examples/example_trustzone/led_driver/include/spongent.h deleted file mode 100644 index 61f9fab..0000000 --- a/examples/example_trustzone/led_driver/include/spongent.h +++ /dev/null @@ -1,141 +0,0 @@ -#ifndef _SPONGENT_H_ -#define _SPONGENT_H_ - -//#include -#include -#include - -// #define _PrintState_ - -#define SW_SECURITY 128 - -#define SW_RATE 16 -#define SW_RATE_BYTES (SW_RATE / 8) - -#define MIN_CAPACITY (SW_SECURITY * 2) -#define MIN_WIDTH (MIN_CAPACITY + SW_RATE + 2) - -#if MIN_WIDTH <= 88 -#define WIDTH 88 -#define nRounds 45 -#define version 88808 - -#elif MIN_WIDTH <= 136 -#define WIDTH 136 -#define nRounds 70 -#define version 1281288 - -#elif MIN_WIDTH <= 176 -#define WIDTH 176 -#define nRounds 90 -#define version 16016016 - -#elif MIN_WIDTH <= 240 -#define WIDTH 240 -#define nRounds 120 -#define version 16016080 - -#elif MIN_WIDTH <= 264 -#define WIDTH 264 -#define nRounds 135 -#define version 8817688 - -#elif MIN_WIDTH <= 272 -#define WIDTH 272 -#define nRounds 140 -#define version 25625616 - -#elif MIN_WIDTH <= 336 -#define WIDTH 336 -#define nRounds 170 -#define version 224224112 - -#elif MIN_WIDTH <= 384 -#define WIDTH 384 -#define nRounds 195 -#define version 256256128 - -#elif MIN_WIDTH <= 480 -#define WIDTH 480 -#define nRounds 240 -#define version 160320160 - -#elif MIN_WIDTH <= 672 -#define WIDTH 672 -#define nRounds 340 -#define version 224448224 - -#elif MIN_WIDTH <= 768 -#define WIDTH 768 -#define nRounds 385 -#define version 256512256 - -#else -#error "Security too high" -#endif - -#define rate (SW_RATE + 2) -#define capacity (WIDTH - rate) -#define hashsize SW_SECURITY - -#define BITS_TO_BYTES(x) (x / 8 + (x % 8 != 0)) - -#define R_SizeInBytes BITS_TO_BYTES(rate) -#define nBits (capacity + rate) -#define nSBox nBits/8 -#define KEY_SIZE hashsize -#define TAG_SIZE hashsize -#define TAG_SIZE_BYTES (TAG_SIZE / 8) - -typedef unsigned char BitSequence; -typedef unsigned long long DataLength; - -typedef uint64_t bit64; -typedef uint32_t bit32; -typedef uint16_t bit16; -typedef uint8_t bit8; - -#define GET_BIT(x,y) (x >> y) & 0x1 - -typedef enum { SUCCESS = 0, FAIL = 1, BAD_HASHBITLEN = 2, BAD_TAG = 3 } HashReturn; - -typedef struct { - BitSequence value[nSBox]; /* current Spongent state */ - BitSequence messageblock[R_SizeInBytes]; /* message block to be input/output */ - int remainingbitlen; /* remaining data length */ - int hashbitlen; /* # of hashed bits so far */ -} hashState; - -HashReturn SpongentHash(const BitSequence *data, DataLength databitlen, BitSequence *hashval); -HashReturn Init(hashState *state, BitSequence *hashval); -HashReturn Absorb(hashState *state); -HashReturn Squeeze(hashState *state); -HashReturn Pad(hashState *state); - -int Pi(int i); -void pLayer(hashState *state); -void Permute(hashState *state); - -bit16 lCounter(bit16 lfsr); -bit16 retnuoCl(bit16 lfsr); - - -HashReturn SpongentWrap(const BitSequence* key, - const BitSequence* ad, DataLength adBitLength, - const BitSequence* input, DataLength bitLength, - BitSequence* output, - BitSequence* tag, - bool unwrap); - -HashReturn SpongentUnwrap(const BitSequence* key, - const BitSequence* ad, DataLength adBitLength, - const BitSequence* input, DataLength bitLength, - BitSequence* output, - const BitSequence* expectedTag); - -HashReturn SpongentMac(const BitSequence* key, - const BitSequence* input, DataLength bitLength, - BitSequence* mac); - -#endif /* spongent.h */ - diff --git a/examples/example_trustzone/led_driver/led_driver.c b/examples/example_trustzone/led_driver/led_driver.c deleted file mode 100644 index 2869bad..0000000 --- a/examples/example_trustzone/led_driver/led_driver.c +++ /dev/null @@ -1,26 +0,0 @@ -#include - -#include -#include - -void toggle_led(unsigned char* data){ - printf("\n"); - printf("Button is Pressed in TA1\n"); -} - -void find_input_func(uint16_t io_id, unsigned char* data){ - switch (io_id) - { - case 1: - toggle_led(data); - break; - - default: - break; - } -} - -TEE_Result entry(void *session, uint32_t param_types, TEE_Param params[4]){ - - return TEE_SUCCESS; -} \ No newline at end of file diff --git a/examples/example_trustzone/led_driver/spongent.c b/examples/example_trustzone/led_driver/spongent.c deleted file mode 100644 index 6041426..0000000 --- a/examples/example_trustzone/led_driver/spongent.c +++ /dev/null @@ -1,530 +0,0 @@ -/* - * SPONGENT hash function - Implementation - * This code is placed in the public domain - * For more information, feedback or questions, please refer to our website: - * https://sites.google.com/site/spongenthash/ - -*/ - -#include -#include -#include -#include -#include "spongent.h" - -/* Spongent S-box */ -int S[16] = { 0xe, 0xd, 0xb, 0x0, 0x2, 0x1, 0x4, 0xf, 0x7, 0xa, 0x8, 0x5, 0x9, 0xc, 0x3, 0x6}; - - -/* Spongent eight bit S-box */ -int sBoxLayer[256] = { - 0xee, 0xed, 0xeb, 0xe0, 0xe2, 0xe1, 0xe4, 0xef, 0xe7, 0xea, 0xe8, 0xe5, 0xe9, 0xec, 0xe3, 0xe6, - 0xde, 0xdd, 0xdb, 0xd0, 0xd2, 0xd1, 0xd4, 0xdf, 0xd7, 0xda, 0xd8, 0xd5, 0xd9, 0xdc, 0xd3, 0xd6, - 0xbe, 0xbd, 0xbb, 0xb0, 0xb2, 0xb1, 0xb4, 0xbf, 0xb7, 0xba, 0xb8, 0xb5, 0xb9, 0xbc, 0xb3, 0xb6, - 0x0e, 0x0d, 0x0b, 0x00, 0x02, 0x01, 0x04, 0x0f, 0x07, 0x0a, 0x08, 0x05, 0x09, 0x0c, 0x03, 0x06, - 0x2e, 0x2d, 0x2b, 0x20, 0x22, 0x21, 0x24, 0x2f, 0x27, 0x2a, 0x28, 0x25, 0x29, 0x2c, 0x23, 0x26, - 0x1e, 0x1d, 0x1b, 0x10, 0x12, 0x11, 0x14, 0x1f, 0x17, 0x1a, 0x18, 0x15, 0x19, 0x1c, 0x13, 0x16, - 0x4e, 0x4d, 0x4b, 0x40, 0x42, 0x41, 0x44, 0x4f, 0x47, 0x4a, 0x48, 0x45, 0x49, 0x4c, 0x43, 0x46, - 0xfe, 0xfd, 0xfb, 0xf0, 0xf2, 0xf1, 0xf4, 0xff, 0xf7, 0xfa, 0xf8, 0xf5, 0xf9, 0xfc, 0xf3, 0xf6, - 0x7e, 0x7d, 0x7b, 0x70, 0x72, 0x71, 0x74, 0x7f, 0x77, 0x7a, 0x78, 0x75, 0x79, 0x7c, 0x73, 0x76, - 0xae, 0xad, 0xab, 0xa0, 0xa2, 0xa1, 0xa4, 0xaf, 0xa7, 0xaa, 0xa8, 0xa5, 0xa9, 0xac, 0xa3, 0xa6, - 0x8e, 0x8d, 0x8b, 0x80, 0x82, 0x81, 0x84, 0x8f, 0x87, 0x8a, 0x88, 0x85, 0x89, 0x8c, 0x83, 0x86, - 0x5e, 0x5d, 0x5b, 0x50, 0x52, 0x51, 0x54, 0x5f, 0x57, 0x5a, 0x58, 0x55, 0x59, 0x5c, 0x53, 0x56, - 0x9e, 0x9d, 0x9b, 0x90, 0x92, 0x91, 0x94, 0x9f, 0x97, 0x9a, 0x98, 0x95, 0x99, 0x9c, 0x93, 0x96, - 0xce, 0xcd, 0xcb, 0xc0, 0xc2, 0xc1, 0xc4, 0xcf, 0xc7, 0xca, 0xc8, 0xc5, 0xc9, 0xcc, 0xc3, 0xc6, - 0x3e, 0x3d, 0x3b, 0x30, 0x32, 0x31, 0x34, 0x3f, 0x37, 0x3a, 0x38, 0x35, 0x39, 0x3c, 0x33, 0x36, - 0x6e, 0x6d, 0x6b, 0x60, 0x62, 0x61, 0x64, 0x6f, 0x67, 0x6a, 0x68, 0x65, 0x69, 0x6c, 0x63, 0x66 -}; - -//-------------------------------------------------------------------------------------------- - -DataLength min(DataLength a, DataLength b){ - if(a <= b){ - return a; - } - else{ - return b; - } -} -//-------------------------------------------------------------------------------------------- - -void copy_n(BitSequence *first, int num, BitSequence *result){ - - for(int i = 0; i < num; i++){ - result[i] = first[i]; - } -} -//----------------------------------------------------------------------------------------- - -void PrintState(hashState *state) -{ - int i; - for (i=nSBox-1; i>=0; i--) - printf("%02X", state->value[i]); - printf("\n"); -} - -//-------------------------------------------------------------------------------------------- - -bit16 lCounter(bit16 lfsr) -{ - switch( version ) { - case 88808: - lfsr = (lfsr << 1) | (((0x20 & lfsr) >> 5) ^ ((0x10 & lfsr) >> 4)); - lfsr &= 0x3f; - break; - case 1281288: - case 16016016: - case 16016080: - case 22422416: - lfsr = (lfsr << 1) | (((0x40 & lfsr) >> 6) ^ ((0x20 & lfsr) >> 5)); - lfsr &= 0x7f; - break; - case 8817688: - case 128256128: - case 160320160: - case 224224112: - case 25625616: - case 256256128: - lfsr = (lfsr << 1) | (((0x80 & lfsr) >> 7) ^ ((0x08 & lfsr) >> 3) ^ ((0x04 & lfsr) >> 2) ^ ((0x02 & lfsr) >> 1)); - lfsr &= 0xff; - break; - case 224448224: - case 256512256: - lfsr = (lfsr << 1) | (((0x100 & lfsr) >> 8) ^ ((0x08 & lfsr) >> 3)); - lfsr &= 0x1ff; - break; - default : - printf("ErrorCounter\n"); - break; - } - return lfsr; -} - -//-------------------------------------------------------------------------------------------- - -bit16 retnuoCl(bit16 lfsr) -{ - switch(version) - { - case 88808: - case 8817688: - case 1281288: - case 128256128: - case 16016016: - case 16016080: - case 160320160: - case 22422416: - case 224224112: - case 25625616: - case 256256128: - lfsr = ( ((lfsr & 0x01) <<7) | ((lfsr & 0x02) << 5) | ((lfsr & 0x04) << 3) | ((lfsr & 0x08) << 1) | ((lfsr & 0x10) >> 1) | ((lfsr & 0x20) >> 3) | ((lfsr & 0x40) >> 5) | ((lfsr & 0x80) >> 7) ); - lfsr <<= 8; - break; - case 224448224: - case 256512256: - lfsr = ( ((lfsr & 0x01) <<8) | ((lfsr & 0x02) << 6) | ((lfsr & 0x04) << 4) | ((lfsr & 0x08) << 2) | ((lfsr & 0x10) << 0) | ((lfsr & 0x20) >> 2) | ((lfsr & 0x40) >> 4) | ((lfsr & 0x80) >> 6) | ((lfsr & 0x100) >> 8) ); - lfsr <<= 7; - break; - default : - printf("ErrorInverseCounter\n"); - break; - } - - return lfsr; -} - -//-------------------------------------------------------------------------------------------- - -int Pi(int i) -{ - if (i != nBits-1) - return (i*nBits/4)%(nBits-1); - else - return nBits-1; -} - -//-------------------------------------------------------------------------------------------- - -void pLayer(hashState *state) -{ - int i, j, PermutedBitNo; - bit8 tmp[nSBox], x, y; - - for(i = 0; i < nSBox; i++) tmp[i] = 0; - - for(i = 0; i < nSBox; i++){ - for(j = 0; j < 8; j++){ - x = GET_BIT(state->value[i],j); - PermutedBitNo = Pi(8*i+j); - y = PermutedBitNo/8; - tmp[y] ^= x << (PermutedBitNo - 8*y); - } - } - memcpy(state->value, tmp, nSBox); -} - -//-------------------------------------------------------------------------------------------- - -void Permute(hashState *state) -{ - bit16 i, j, IV, INV_IV; - - switch(version) - { - case 88808: IV = 0x05; break; - case 8817688: IV = 0xC6; break; - case 1281288: IV = 0x7A; break; - case 128256128: IV = 0xFB; break; - case 16016016: IV = 0x45; break; - case 16016080: IV = 0x01; break; - case 160320160: IV = 0xA7; break; - case 22422416: IV = 0x01; break; - case 224224112: IV = 0x52; break; - case 224448224: IV = 0x105; break; - case 25625616: IV = 0x9e; break; - case 256256128: IV = 0xfb; break; - case 256512256: IV = 0x015; break; - } - - for(i = 0; i < nRounds; i++){ -#ifdef _PrintState_ - printf("%3d\t", i); - PrintState(state); -#endif - /* Add counter values */ - state->value[0] ^= IV & 0xFF; - state->value[1] ^= (IV >> 8) & 0xFF; - INV_IV = retnuoCl(IV); - state->value[nSBox-1] ^= (INV_IV >> 8) & 0xFF;; - state->value[nSBox-2] ^= INV_IV & 0xFF; - IV = lCounter(IV); - - /* sBoxLayer layer */ - for ( j=0; j < nSBox; j++) - state->value[j] = sBoxLayer[state->value[j]]; - - /* pLayer */ - pLayer(state);\ - } -#ifdef _PrintState_ - printf("%3d\t", i); - PrintState(state); -#endif -} - -//-------------------------------------------------------------------------------------------- - -HashReturn Init(hashState *state, BitSequence *hashval) -{ - - memset(state->value, 0, nSBox); - state->hashbitlen = 0; - state->remainingbitlen = 0; - - if (hashval != NULL) - memset(hashval, 0, hashsize/8); - - return SUCCESS; -} - -//-------------------------------------------------------------------------------------------- - -HashReturn Absorb(hashState *state) -{ - int i; - for(i = 0; i < R_SizeInBytes; i++) - state->value[i] ^= state->messageblock[i]; - Permute(state); - - return SUCCESS; -} - -//-------------------------------------------------------------------------------------------- - -HashReturn Squeeze(hashState *state) -{ - memcpy(state->messageblock, state->value, R_SizeInBytes); -#ifdef _PrintState_ - printf("h_i\t"); - for(int i = 0; i < R_SizeInBytes; i++) - printf("%02X", state->messageblock[i]); - printf("\n\n"); -#endif - Permute(state); - - return SUCCESS; -} - -//-------------------------------------------------------------------------------------------- - -HashReturn Pad(hashState *state) -{ - int byteind = state->remainingbitlen/8; /* byte index of remaining byte */ - int bitpos = state->remainingbitlen%8; /* bit position in last byte */ - - /* make unoccupied bits 0 */ - if(bitpos) - state->messageblock[byteind] &= 0xff >> (8 - bitpos); - - /* add single 1-bit */ - if(bitpos) - state->messageblock[byteind] |= 0x01 << bitpos; - else - state->messageblock[byteind] = 0x01; - - /* add 0-bits until we have rate bits */ - while(byteind!=R_SizeInBytes) - { - byteind++; - state->messageblock[byteind] = 0; - } - return SUCCESS; -} - -//-------------------------------------------------------------------------------------------- - -HashReturn SpongentHash(const BitSequence *data, DataLength databitlen, BitSequence *hashval) -{ - hashState state; - HashReturn res; - - /* initialize */ - res = Init(&state, hashval); - if(res != SUCCESS) - return res; - - /* Absorb available message blocks */ - while(databitlen >= rate) - { - memcpy(state.messageblock, data, R_SizeInBytes); -#ifdef _PrintState_ - printf("\n"); - printf("m_i\t"); - for(int i = 0; i < R_SizeInBytes; i++) - printf("%02X", state.messageblock[i]); - printf("\n"); -#endif - Absorb(&state); - databitlen -= rate; - data += R_SizeInBytes; - } - - /* Pad the remaining bits before absorbing */ - if(databitlen>0){ - memcpy(state.messageblock, data, databitlen/8 + (databitlen%8?1:0)); - state.remainingbitlen = databitlen; - } - else if(databitlen==0){ - memset(state.messageblock, 0, R_SizeInBytes); - state.remainingbitlen = databitlen; - } - Pad(&state); -#ifdef _PrintState_ - printf("\n"); - printf("m_i\t"); - for(int i = 0; i < R_SizeInBytes; i++) - printf("%02X", state.messageblock[i]); - printf("\n"); -#endif - Absorb(&state); - state.hashbitlen += rate; - - /* Squeeze data blocks */ - while(state.hashbitlen < hashsize) - { - Squeeze(&state); - memcpy(hashval, state.messageblock, R_SizeInBytes); - state.hashbitlen += rate; - hashval += R_SizeInBytes; - } - - memcpy(hashval, state.value, R_SizeInBytes); - hashval += R_SizeInBytes; -#ifdef _PrintState_ - printf("h_i\t"); - for(int i = 0; i < R_SizeInBytes; i++) - printf("%02X", state.value[i]); - printf("\n\n"); -#endif - - return SUCCESS; -} - -HashReturn Duplexing(hashState* state, - BitSequence* block, - DataLength blockBitLength, - BitSequence* out, - DataLength outBitsLength) -{ - copy_n(block, BITS_TO_BYTES(blockBitLength), state->messageblock); - state->remainingbitlen = blockBitLength; - HashReturn ret = Pad(state); - - if (ret != SUCCESS) - return ret; - - ret = Absorb(state); - - if (ret != SUCCESS) - return ret; - - if (out != NULL) - copy_n(state->value, outBitsLength / 8, out); - - return SUCCESS; -} - -HashReturn SpongentWrap(const BitSequence* key, - const BitSequence* ad, DataLength adBitLength, - const BitSequence* input, DataLength bitLength, - BitSequence* output, - BitSequence* tag, - bool unwrap) -{ - if (adBitLength % 8 != 0 || bitLength % 8 != 0) - { - //fprintf(stderr, "Messages containing partial bytes not supported\n"); - return FAIL; - } - - hashState state; - HashReturn ret = Init(&state, NULL); - - if (ret != SUCCESS) - return ret; - - BitSequence block[R_SizeInBytes]; - BitSequence duplexOut[R_SizeInBytes]; - DataLength bitsLeft = KEY_SIZE; - - while (bitsLeft > SW_RATE) - { - copy_n(key, SW_RATE_BYTES, block); - block[SW_RATE_BYTES] = 0x01; - ret = Duplexing(&state, block, SW_RATE + 1, NULL, 16); - - - if (ret != SUCCESS) - return ret; - - bitsLeft -= SW_RATE; - key += SW_RATE_BYTES; - } - - copy_n(key, bitsLeft / 8, block); - block[bitsLeft / 8] = 0x00; - ret = Duplexing(&state, block, bitsLeft + 1, NULL, 16); - - if (ret != SUCCESS) - return ret; - - bitsLeft = adBitLength; - - while (bitsLeft > SW_RATE) - { - copy_n(ad, SW_RATE_BYTES, block); - block[SW_RATE_BYTES] = 0x00; - ret = Duplexing(&state, block, SW_RATE + 1, NULL, 16); - - if (ret != SUCCESS) - return ret; - - bitsLeft -= SW_RATE; - ad += SW_RATE_BYTES; - } - - copy_n(ad, bitsLeft / 8, block); - block[bitsLeft / 8] = 0x01; - ret = Duplexing(&state, block, bitsLeft + 1, duplexOut, 16); - - if (ret != SUCCESS) - return ret; - - DataLength firstBlockLength = min(bitLength, (DataLength)SW_RATE) / 8; - - for (DataLength i = 0; i < firstBlockLength; i++) - output[i] = input[i] ^ duplexOut[i]; - - bitsLeft = bitLength; - - while (bitsLeft > SW_RATE) - { - copy_n(unwrap ? output : input, SW_RATE_BYTES, block); - block[SW_RATE_BYTES] = 0x01; - HashReturn ret = Duplexing(&state, block, SW_RATE + 1, duplexOut, 16); - - if (ret != SUCCESS) - return ret; - - bitsLeft -= SW_RATE; - input += SW_RATE_BYTES; - output += SW_RATE_BYTES; - - DataLength blockLength = min(bitsLeft, (DataLength)SW_RATE) / 8; - - for (DataLength i = 0; i < blockLength; i++) - output[i] = input[i] ^ duplexOut[i]; - } - - copy_n(unwrap ? output : input, bitsLeft / 8, block); - block[bitsLeft / 8] = 0x00; - ret = Duplexing(&state, block, bitsLeft + 1, - tag, min((DataLength)TAG_SIZE, (DataLength)SW_RATE)); - - if (ret != SUCCESS) - return ret; - - DataLength tagBitsDone = SW_RATE; - tag += SW_RATE_BYTES; - for (unsigned int i = 0; i < sizeof(block); i++){ - block[i] = 0x00; - } - //std::fill_n(block, sizeof(block), 0x00); - - while (tagBitsDone < TAG_SIZE) - { - ret = Duplexing(&state, block, 0, tag, - min(TAG_SIZE - tagBitsDone, (DataLength)SW_RATE)); - - if (ret != SUCCESS) - return ret; - - tagBitsDone += SW_RATE; - tag += SW_RATE_BYTES; - } - - return SUCCESS; -} - -HashReturn SpongentUnwrap(const BitSequence* key, - const BitSequence* ad, DataLength adBitLength, - const BitSequence* input, DataLength bitLength, - BitSequence* output, - const BitSequence* expectedTag) -{ - BitSequence tag[TAG_SIZE_BYTES]; - HashReturn ret = SpongentWrap(key, - ad, adBitLength, - input, bitLength, - output, tag, /*unwrap=*/true); - - if (ret != SUCCESS) - return ret; - - //if (!std::equal(std::begin(tag), std::end(tag), expectedTag)) - if (memcmp(tag, expectedTag, TAG_SIZE_BYTES) == 0) - return BAD_TAG; - - return SUCCESS; -} - -HashReturn SpongentMac(const BitSequence* key, - const BitSequence* input, DataLength bitLength, - BitSequence* mac) -{ - return SpongentWrap(key, input, bitLength, NULL, 0, NULL, mac, false); -} - -//-------------------------------------------------------------------------------------------- - diff --git a/examples/example_trustzone/led_driver/sub.mk b/examples/example_trustzone/led_driver/sub.mk deleted file mode 100644 index cc8b02b..0000000 --- a/examples/example_trustzone/led_driver/sub.mk +++ /dev/null @@ -1,7 +0,0 @@ -global-incdirs-y += include -srcs-y += led_driver.c -srcs-y += spongent.c -srcs-y += authentic_execution.c - -# To remove a certain compiler flag, add a line like this -#cflags-template_ta.c-y += -Wno-strict-prototypes diff --git a/examples/example_trustzone/led_driver/user_ta_header_defines.h b/examples/example_trustzone/led_driver/user_ta_header_defines.h deleted file mode 100644 index f69826c..0000000 --- a/examples/example_trustzone/led_driver/user_ta_header_defines.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef USER_TA_HEADER_DEFINES_H -#define USER_TA_HEADER_DEFINES_H - -/* To get the TA UUID definition */ -#include - -#define TA_UUID LED_DRIVER_UUID - -/* - * TA properties: multi-instance TA, no specific attribute - * TA_FLAG_EXEC_DDR is meaningless but mandated. - */ -#define TA_FLAGS TA_FLAG_EXEC_DDR - -/* Provisioned stack size */ -#define TA_STACK_SIZE (2 * 1024) - -/* Provisioned heap size for TEE_Malloc() and friends */ -#define TA_DATA_SIZE (32 * 1024) - -#endif diff --git a/examples/example_trustzone/led_driver_native/Cargo.toml b/examples/example_trustzone/led_driver_native/Cargo.toml deleted file mode 100644 index dc2c22e..0000000 --- a/examples/example_trustzone/led_driver_native/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "led_driver" -version = "0.1.0" -authors = ["Gianluca Scopelliti "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] diff --git a/examples/example_trustzone/led_driver_native/src/lib.rs b/examples/example_trustzone/led_driver_native/src/lib.rs deleted file mode 100644 index ddaec1d..0000000 --- a/examples/example_trustzone/led_driver_native/src/lib.rs +++ /dev/null @@ -1,16 +0,0 @@ -use std::sync::Mutex; - -lazy_static! { - static ref LED_STATE: Mutex = { - Mutex::new(false) // initially OFF - }; -} - -//@sm_input -pub fn toggle_led(_data : &[u8]) { - // toggling led - let mut led = LED_STATE.lock().unwrap(); - *led = !(*led); - - info!(&format!("New LED state: {}", *led)); -} diff --git a/examples/example_trustzone/manager.yaml b/examples/example_trustzone/manager.yaml deleted file mode 100644 index 2f70fa8..0000000 --- a/examples/example_trustzone/manager.yaml +++ /dev/null @@ -1,3 +0,0 @@ -host: localhost -port: 1234 -key: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] diff --git a/examples/example_trustzone/native-to-tz.json b/examples/example_trustzone/native-to-tz.json deleted file mode 100644 index 2d7e594..0000000 --- a/examples/example_trustzone/native-to-tz.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "manager": "manager.yaml", - "nodes": [ - { - "type": "trustzone", - "name": "node_trustzone", - "ip_address": "127.0.0.1", - "reactive_port": 1236, - "node_key": "9a04aa182d039674708ce807ed914cd153cd9df7805e61742f0ae41294758dd3" - }, - { - "type": "native", - "name": "node_native", - "ip_address": "127.0.0.1", - "reactive_port": 5000 - } - ], - "modules": [ - { - "type": "trustzone", - "name": "led_driver", - "files_dir": ".", - "node": "node_trustzone", - "id": 2, - "uuid": 236690545488471714192740514222985465104, - "inputs": {"toggle_led":1} - }, - { - "type": "native", - "name": "button_driver", - "node": "node_native", - "folder": "button_driver_native" - } - ], - "connections": [ - { - "from_module": "button_driver", - "from_output": "button_pressed", - "to_module": "led_driver", - "to_input": "toggle_led", - "encryption": "aes" - } - ] - -} diff --git a/examples/example_trustzone/tz-to-native.json b/examples/example_trustzone/tz-to-native.json deleted file mode 100644 index 5efa12e..0000000 --- a/examples/example_trustzone/tz-to-native.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "manager": "manager.yaml", - "nodes": [ - { - "type": "trustzone", - "name": "node_trustzone", - "ip_address": "127.0.0.1", - "reactive_port": 1236, - "node_key": "9a04aa182d039674708ce807ed914cd153cd9df7805e61742f0ae41294758dd3" - }, - { - "type": "native", - "name": "node_native", - "ip_address": "127.0.0.1", - "reactive_port": 5000 - } - ], - "modules": [ - { - "type": "trustzone", - "name": "button_driver", - "files_dir": ".", - "node": "node_trustzone", - "id": 1, - "uuid": 281445940253181251961359712745212326917, - "outputs": {"button_pressed":0}, - "entrypoints": {"entry":3 } - }, - { - "type": "native", - "name": "led_driver", - "node": "node_native", - "folder": "led_driver_native" - } - ], - "connections": [ - { - "from_module": "button_driver", - "from_output": "button_pressed", - "to_module": "led_driver", - "to_input": "toggle_led", - "encryption": "aes" - } - ] - -} diff --git a/examples/example_trustzone/tz-to-tz.json b/examples/example_trustzone/tz-to-tz.json deleted file mode 100644 index 7557873..0000000 --- a/examples/example_trustzone/tz-to-tz.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "manager": "manager.yaml", - "nodes": [ - { - "type": "trustzone", - "name": "node_trustzone", - "ip_address": "127.0.0.1", - "reactive_port": 1236, - "node_key": "9a04aa182d039674708ce807ed914cd153cd9df7805e61742f0ae41294758dd3" - } - ], - "modules": [ - { - "type": "trustzone", - "name": "button_driver", - "node": "node_trustzone", - "files_dir": ".", - "id": 1, - "uuid": 281445940253181251961359712745212326917, - "outputs": {"button_pressed": 0}, - "entrypoints": {"entry": 3} - }, - { - "type": "trustzone", - "name": "led_driver", - "node": "node_trustzone", - "files_dir": ".", - "id": 2, - "uuid": 236690545488471714192740514222985465104, - "inputs": {"toggle_led": 1} - } - ], - "connections": [ - { - "from_module": "button_driver", - "from_output": "button_pressed", - "to_module": "led_driver", - "to_input": "toggle_led", - "encryption": "aes" - } - - ] -} diff --git a/reactivetools/cli.py b/reactivetools/cli.py index cfcd473..f0a728d 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -4,10 +4,8 @@ import sys import binascii import os -import contextlib from . import config -from . import tools from . import glob @@ -76,13 +74,13 @@ def _parse_args(args): default=None) deploy_parser.add_argument( '--module', - help='Module to deploy (if not specified, deploy all modules not yet deployed)', + help='Module to deploy (if not specified, deploy all modules)', default=None) # build build_parser = subparsers.add_parser( 'build', - help='Build the executables of the SMs as declared in the input configuration file (for debugging)') + help='Build the executables of the SMs as declared in the input configuration file') build_parser.set_defaults(command_handler=_handle_build) build_parser.add_argument( '--mode', @@ -118,7 +116,7 @@ def _parse_args(args): default=None) attest_parser.add_argument( '--module', - help='Module to attest (if not specified, attest all modules not yet attested)', + help='Module to attest (if not specified, attest all modules)', default=None) # connect @@ -138,7 +136,7 @@ def _parse_args(args): default=None) connect_parser.add_argument( '--connection', - help='Connection to establish (if not specified, establish all connections not yet established)', + help='Connection to establish (if unspecified, establish all connections)', default=None) # register @@ -158,7 +156,7 @@ def _parse_args(args): default=None) register_parser.add_argument( '--event', - help='Event to register (if not specified, register all events not yet registered)', + help='Event to register (if not specified, register all events)', default=None) # call @@ -366,7 +364,6 @@ def _handle_request(args): def main(raw_args=None): args = _parse_args(raw_args) _setup_logging(args) - glob.set_att_man(args.manager) # create working directory try: diff --git a/reactivetools/config.py b/reactivetools/config.py index c586c97..d5f72e6 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -1,5 +1,3 @@ -import binascii -import ipaddress import os import asyncio import logging @@ -7,14 +5,12 @@ from .modules import Module from .nodes import Node from .connection import Connection -from .crypto import Encryption from .periodic_event import PeriodicEvent -from . import tools from .dumpers import * from .loaders import * from .rules.evaluators import * from .descriptor import DescriptorType -from .manager import Manager +from .manager import Manager, set_manager, get_manager from .nodes import node_rules, node_funcs, node_cleanup_coros from .modules import module_rules, module_funcs, module_cleanup_coros @@ -32,7 +28,6 @@ def __init__(self): self.connections_current_id = 0 self.events_current_id = 0 self.output_type = None - self.manager = None def get_node(self, name): for n in self.nodes: @@ -48,12 +43,12 @@ def get_module(self, name): raise Error('No module with name {}'.format(name)) - def get_connection_by_id(self, id): + def get_connection_by_id(self, id_): for c in self.connections: - if c.id == id: + if c.id == id_: return c - raise Error('No connection with ID {}'.format(id)) + raise Error('No connection with ID {}'.format(id_)) def get_connection_by_name(self, name): for c in self.connections: @@ -95,14 +90,18 @@ async def deploy_async(self, in_order, module): # If deployment in order is desired, deploy one module at a time if in_order: - for module in self.modules: - if not module.deployed: - await module.deploy() + for m in self.modules: + if not m.deployed: + await m.deploy() # Otherwise, deploy all modules concurrently else: lst = self.modules - def l_filter(x): return not x.deployed - def l_map(x): return x.deploy() + + def l_filter(x): + return not x.deployed + + def l_map(x): + return x.deploy() futures = map(l_map, filter(l_filter, lst)) await asyncio.gather(*futures) @@ -192,7 +191,7 @@ def load(file_name, output_type=None): config.output_type = desc_type or input_type if 'manager' in contents: - config.manager = _load_manager(contents['manager'], config) + _load_manager(contents['manager'], config) config.nodes = load_list(contents['nodes'], lambda n: _load_node(n, config)) @@ -217,7 +216,7 @@ def load(file_name, output_type=None): return config -def _load_node(node_dict, config): +def _load_node(node_dict, _): # Basic rules common to all nodes evaluate_rules(os.path.join("default", "node.yaml"), node_dict) # Specific rules for a specific node type @@ -242,8 +241,6 @@ def _load_module(mod_dict, config): node.name, node.__class__.__name__, module.name, module.__class__.__name__)) - module.manager = config.manager - return module @@ -259,14 +256,15 @@ def _load_periodic_event(events_dict, config): def _load_manager(man_file, config): if man_file is None: - return None + return man_dict, _ = DescriptorType.load_any(man_file) evaluate_rules(os.path.join("default", "manager.yaml"), man_dict) - return Manager.load(man_file, man_dict, config) + man = Manager.load(man_file, man_dict, config) + set_manager(man) -def evaluate_rules(rules_file, dict): +def evaluate_rules(rules_file, dict_): rules = load_rules(rules_file) ok = True @@ -291,9 +289,9 @@ def dump_config(config, file_name): @dump.register(Config) def _(config): - dump(config.nodes) + man = get_manager() return { - 'manager': dump(config.manager) if config.manager is not None else None, + 'manager': dump(man) if man is not None else None, 'nodes': dump(config.nodes), 'modules': dump(config.modules), 'connections_current_id': config.connections_current_id, diff --git a/reactivetools/connection.py b/reactivetools/connection.py index 341e517..95c7e7d 100644 --- a/reactivetools/connection.py +++ b/reactivetools/connection.py @@ -22,8 +22,8 @@ class ConnectionIO(IntEnum): class ConnectionIndex(): - def __init__(self, type, name): - self.type = type + def __init__(self, type_, name): + self.type = type_ self.name = name self.index = None @@ -47,7 +47,7 @@ async def get_index(self, module): class Connection: def __init__(self, name, from_module, from_output, from_request, to_module, - to_input, to_handler, encryption, key, id, nonce, direct, established): + to_input, to_handler, encryption, key, id_, nonce, direct, established): self.name = name self.from_module = from_module self.from_output = from_output @@ -57,7 +57,7 @@ def __init__(self, name, from_module, from_output, from_request, to_module, self.to_handler = to_handler self.encryption = encryption self.key = key - self.id = id + self.id = id_ self.nonce = nonce self.established = established @@ -66,11 +66,11 @@ def __init__(self, name, from_module, from_output, from_request, to_module, self.from_index = None else: self.direct = False # to avoid assigning None - self.from_index = ConnectionIndex(ConnectionIO.OUTPUT, from_output) if from_output is not None \ - else ConnectionIndex(ConnectionIO.REQUEST, from_request) + self.from_index = ConnectionIndex(ConnectionIO.OUTPUT, from_output) \ + if from_output is not None else ConnectionIndex(ConnectionIO.REQUEST, from_request) - self.to_index = ConnectionIndex(ConnectionIO.INPUT, to_input) if to_input is not None \ - else ConnectionIndex(ConnectionIO.HANDLER, to_handler) + self.to_index = ConnectionIndex(ConnectionIO.INPUT, to_input) \ + if to_input is not None else ConnectionIndex(ConnectionIO.HANDLER, to_handler) @staticmethod def load(conn_dict, config): @@ -86,21 +86,21 @@ def load(conn_dict, config): key = parse_key(conn_dict.get('key')) or Connection.generate_key( from_module, to_module, encryption) # auto-generated key nonce = conn_dict.get('nonce') or 0 - id = conn_dict.get('id') + id_ = conn_dict.get('id') established = conn_dict.get('established') - if id is None: - id = config.connections_current_id # incremental ID + if id_ is None: + id_ = config.connections_current_id # incremental ID config.connections_current_id += 1 - name = conn_dict.get('name') or "conn{}".format(id) + name = conn_dict.get('name') or "conn{}".format(id_) if from_module is not None: from_module.connections += 1 to_module.connections += 1 return Connection(name, from_module, from_output, from_request, to_module, - to_input, to_handler, encryption, key, id, nonce, direct, established) + to_input, to_handler, encryption, key, id_, nonce, direct, established) def dump(self): from_module = None if self.direct else self.from_module.name @@ -146,8 +146,8 @@ async def __establish_normal(self): await asyncio.gather(connect, set_key_from, set_key_to) logging.info('Connection %d:%s from %s:%s on %s to %s:%s on %s established', - self.id, self.name, self.from_module.name, self.from_index.name, from_node.name, - self.to_module.name, self.to_index.name, to_node.name) + self.id, self.name, self.from_module.name, self.from_index.name, + from_node.name, self.to_module.name, self.to_index.name, to_node.name) async def __establish_direct(self): to_node = self.to_module.node diff --git a/reactivetools/crypto.py b/reactivetools/crypto.py index e8563df..a59eeee 100644 --- a/reactivetools/crypto.py +++ b/reactivetools/crypto.py @@ -1,11 +1,6 @@ -import base64 -import asyncio from enum import IntEnum from Crypto.Cipher import AES -from . import tools -from . import glob - class Error(Exception): pass @@ -16,15 +11,15 @@ class Encryption(IntEnum): SPONGENT = 0x1 # spongent-128 @staticmethod - def from_str(str): - lower_str = str.lower() + def from_str(str_): + lower_str = str_.lower() if lower_str == "aes": return Encryption.AES if lower_str == "spongent": return Encryption.SPONGENT - raise Error("No matching encryption type for {}".format(str)) + raise Error("No matching encryption type for {}".format(str_)) def to_str(self): if self == Encryption.AES: @@ -32,30 +27,40 @@ def to_str(self): if self == Encryption.SPONGENT: return "spongent" + raise Error("to_str not implemented for {}".format(self.name)) + def get_key_size(self): if self == Encryption.AES: return 16 if self == Encryption.SPONGENT: return 16 + raise Error("get_key_size not implemented for {}".format(self.name)) + async def encrypt(self, key, ad, data): if self == Encryption.AES: return await encrypt_aes(key, ad, data) if self == Encryption.SPONGENT: return await encrypt_spongent(key, ad, data) + raise Error("encrypt not implemented for {}".format(self.name)) + async def decrypt(self, key, ad, data): if self == Encryption.AES: return await decrypt_aes(key, ad, data) if self == Encryption.SPONGENT: return await decrypt_spongent(key, ad, data) + raise Error("decrypt not implemented for {}".format(self.name)) + async def mac(self, key, ad): if self == Encryption.AES: return await encrypt_aes(key, ad) if self == Encryption.SPONGENT: return await encrypt_spongent(key, ad) + raise Error("mac not implemented for {}".format(self.name)) + async def encrypt_aes(key, ad, data=b''): # Note: we set nonce to zero because our nonce is part of the associated data diff --git a/reactivetools/descriptor.py b/reactivetools/descriptor.py index 9113af9..0d26689 100644 --- a/reactivetools/descriptor.py +++ b/reactivetools/descriptor.py @@ -1,7 +1,7 @@ import json -import yaml import os from enum import IntEnum +import yaml class Error(Exception): @@ -13,18 +13,18 @@ class DescriptorType(IntEnum): YAML = 1 @staticmethod - def from_str(type): - if type is None: + def from_str(type_): + if type_ is None: return None - type_lower = type.lower() + type_lower = type_.lower() if type_lower == "json": return DescriptorType.JSON if type_lower == "yaml": return DescriptorType.YAML - raise Error("Bad deployment descriptor type: {}".format(type)) + raise Error("Bad deployment descriptor type: {}".format(type_)) @staticmethod def load_any(file): @@ -48,6 +48,9 @@ def load(self, file): if self == DescriptorType.YAML: return yaml.load(f, Loader=yaml.FullLoader) + raise Error( + "load not implemented for {}".format(self.name)) + def dump(self, file, data): with open(file, 'w') as f: if self == DescriptorType.JSON: @@ -55,3 +58,6 @@ def dump(self, file, data): if self == DescriptorType.YAML: yaml.dump(data, f) + + raise Error( + "dump not implemented for {}".format(self.name)) diff --git a/reactivetools/dumpers.py b/reactivetools/dumpers.py index 4d815a8..1f5dc80 100644 --- a/reactivetools/dumpers.py +++ b/reactivetools/dumpers.py @@ -37,5 +37,5 @@ def _(coro): @dump.register(dict) -def _(dict): - return dict +def _(dict_): + return dict_ diff --git a/reactivetools/glob.py b/reactivetools/glob.py index c800c47..2c802d2 100644 --- a/reactivetools/glob.py +++ b/reactivetools/glob.py @@ -34,7 +34,6 @@ def to_str(self): __BUILD_MODE = BuildMode.DEBUG -__ATTESTATION_MANAGER = False def set_build_mode(mode): @@ -44,12 +43,3 @@ def set_build_mode(mode): def get_build_mode(): return __BUILD_MODE - - -def set_att_man(att_man): - global __ATTESTATION_MANAGER - __ATTESTATION_MANAGER = att_man - - -def get_att_man(): - return __ATTESTATION_MANAGER diff --git a/reactivetools/loaders.py b/reactivetools/loaders.py index 2182dd3..456a0f6 100644 --- a/reactivetools/loaders.py +++ b/reactivetools/loaders.py @@ -1,18 +1,12 @@ import binascii import os -from . import tools - - -class Error(Exception): - pass - def load_list(l, load_func=lambda e: e): if l is None: return [] - else: - return [load_func(e) for e in l] + + return [load_func(e) for e in l] def parse_key(key_str): diff --git a/reactivetools/manager.py b/reactivetools/manager.py index 4be4c07..9f1accf 100644 --- a/reactivetools/manager.py +++ b/reactivetools/manager.py @@ -1,11 +1,20 @@ import asyncio -import logging -import json from . import tools from . import glob from .descriptor import DescriptorType +__manager = None + + +def set_manager(man): + global __manager + __manager = man + + +def get_manager(): + return __manager + class Manager: lock = asyncio.Lock() @@ -18,7 +27,7 @@ def __init__(self, file, host, port, key): self.sp_pubkey = None @staticmethod - def load(man_file, man_dict, config): + def load(man_file, man_dict, _): host = man_dict['host'] port = man_dict['port'] key = man_dict['key'] diff --git a/reactivetools/modules/base.py b/reactivetools/modules/base.py index 7a7e4a7..b368965 100644 --- a/reactivetools/modules/base.py +++ b/reactivetools/modules/base.py @@ -1,6 +1,7 @@ from abc import ABC, abstractmethod import os import logging +import sys from .. import glob @@ -40,247 +41,232 @@ def __init__(self, name, node, priority, deployed, nonce, attested, out_dir): logging.error("Failed to create build dir for {}".format(name)) sys.exit(-1) - """ - ### Description ### - Creates a XXXModule object from a dict - This should take all the information declared in the deployment descriptor - and store it into the class as attributes. - - ### Parameters ### - mod_dict (dict): dictionary containing the definition of the module - node_obj (XXXNode): object where the module belongs to - - ### Returns ### - An instance of the XXXModule class - """ @staticmethod @abstractmethod def load(mod_dict, node_obj): - pass - - """ - ### Description ### - Creates a dict from the XXXModule object (opposite procedure wrt. load) - This dict, saved in the output deployment descriptor, and serves two purposes: - 1) to provide the deployer some information (e.g., keys used) - 2) to give it as an input of subsequent runs of the application - Hence, ideally load() and dump() should involve the same attributes - - ### Parameters ### - self: Module object - - ### Returns ### - `dict`: description of the object - """ - @abstractmethod - def dump(self): - pass + """ + ### Description ### + Creates a XXXModule object from a dict + This should take all the information declared in the deployment descriptor + and store it into the class as attributes. - """ - ### Description ### - Coroutine. Create the binary file from sources + ### Parameters ### + mod_dict (dict): dictionary containing the definition of the module + node_obj (XXXNode): object where the module belongs to - ### Parameters ### - self: Module object + ### Returns ### + An instance of the XXXModule class + """ - ### Returns ### - `str`: path of the created binary file - """ @abstractmethod - async def build(self): - pass + def dump(self): + """ + ### Description ### + Creates a dict from the XXXModule object (opposite procedure wrt. load) + This dict, saved in the output deployment descriptor, and serves two purposes: + 1) to provide the deployer some information (e.g., keys used) + 2) to give it as an input of subsequent runs of the application + Hence, ideally load() and dump() should involve the same attributes + + ### Parameters ### + self: Module object + + ### Returns ### + `dict`: description of the object + """ - """ - ### Description ### - Coroutine. Deploy a module to the corrisponding node + @abstractmethod + async def build(self): + """ + ### Description ### + Coroutine. Create the binary file from sources - Note: this coroutine should call the `deploy` coroutine in self.node, - making sure that it can happen only once (e.g., using a flag) + ### Parameters ### + self: Module object - ### Parameters ### - self: Module object + ### Returns ### + `str`: path of the created binary file + """ - ### Returns ### - """ @abstractmethod async def deploy(self): - pass + """ + ### Description ### + Coroutine. Deploy a module to the corrisponding node + + Note: this coroutine should call the `deploy` coroutine in self.node, + making sure that it can happen only once (e.g., using a flag) - """ - ### Description ### - Coroutine. Attest a deployed module + ### Parameters ### + self: Module object - ### Parameters ### - self: Module object + ### Returns ### + """ - ### Returns ### - """ @abstractmethod async def attest(self): - pass - - """ - ### Description ### - Coroutine. Get the ID of the module + """ + ### Description ### + Coroutine. Attest a deployed module - The ID can be assigned in different ways, depending on the architecture. - Should be unique on the node where the module is deployed. + ### Parameters ### + self: Module object - ### Parameters ### - self: Module object + ### Returns ### + """ - ### Returns ### - `int`: ID of the module - """ @abstractmethod async def get_id(self): - pass + """ + ### Description ### + Coroutine. Get the ID of the module - """ - ### Description ### - Coroutine. Get the ID of the input passed as parameter + The ID can be assigned in different ways, depending on the architecture. + Should be unique on the node where the module is deployed. - This method should raise an error if the input does not exist + ### Parameters ### + self: Module object - ### Parameters ### - self: Module object - input (str): name of the input + ### Returns ### + `int`: ID of the module + """ - ### Returns ### - `int`: ID of the input - """ @abstractmethod - async def get_input_id(self, input): - pass + async def get_input_id(self, input_): + """ + ### Description ### + Coroutine. Get the ID of the input passed as parameter - """ - ### Description ### - Coroutine. Get the ID of the output passed as parameter + This method should raise an error if the input does not exist - This method should raise an error if the output does not exist + ### Parameters ### + self: Module object + input (str): name of the input - ### Parameters ### - self: Module object - output (str): name of the output + ### Returns ### + `int`: ID of the input + """ - ### Returns ### - `int`: ID of the output - """ @abstractmethod async def get_output_id(self, output): - pass + """ + ### Description ### + Coroutine. Get the ID of the output passed as parameter - """ - ### Description ### - Coroutine. Get the ID of the entry point passed as parameter + This method should raise an error if the output does not exist - This method should raise an error if the entry point does not exist + ### Parameters ### + self: Module object + output (str): name of the output - ### Parameters ### - self: Module object - entry (str): name of the entry point + ### Returns ### + `int`: ID of the output + """ - ### Returns ### - `int`: ID of the entry point - """ @abstractmethod async def get_entry_id(self, entry): - pass + """ + ### Description ### + Coroutine. Get the ID of the entry point passed as parameter + + This method should raise an error if the entry point does not exist - """ - ### Description ### - Coroutine. Get the module's key + ### Parameters ### + self: Module object + entry (str): name of the entry point - ### Parameters ### - self: Module object + ### Returns ### + `int`: ID of the entry point + """ - ### Returns ### - `bytes`: byte array of the key - """ @abstractmethod async def get_key(self): - pass - - """ - ### Description ### - Static method. Get a list of node classes where the module can be deployed + """ + ### Description ### + Coroutine. Get the module's key - e.g., SancusModule -> [SancusNode] + ### Parameters ### + self: Module object - ### Parameters ### + ### Returns ### + `bytes`: byte array of the key + """ - ### Returns ### - `list`: list of node classes that are supported by the XXXModule instance - """ @staticmethod @abstractmethod def get_supported_nodes(): - pass + """ + ### Description ### + Static method. Get a list of node classes where the module can be deployed - """ - ### Description ### - Static method. Get a list of crypto libraries supported by the module - The Encryption enum is defined in crypto.py + e.g., SancusModule -> [SancusNode] - e.g., SGXModule -> [Encryption.SPONGENT, Encryption.AES] + ### Parameters ### - ### Parameters ### + ### Returns ### + `list`: list of node classes that are supported by the XXXModule instance + """ - ### Returns ### - `list`: list of Encryption objects - """ @staticmethod @abstractmethod def get_supported_encryption(): - pass + """ + ### Description ### + Static method. Get a list of crypto libraries supported by the module + The Encryption enum is defined in crypto.py + + e.g., SGXModule -> [Encryption.SPONGENT, Encryption.AES] - """ - Default implementation of some functions. - Override them in the subclasses if you need a different implementation. - """ + ### Parameters ### - """ - ### Description ### - Static coroutine. Cleanup operations to do before the application terminates + ### Returns ### + `list`: list of Encryption objects + """ - ### Parameters ### + # Default implementation of some functions. + # Override them in the subclasses if you need a different implementation. - ### Returns ### - """ @staticmethod async def cleanup(): - pass - - """ - ### Description ### - Coroutine. Get the ID of the request passed as parameter + """ + ### Description ### + Static coroutine. Cleanup operations to do before the application terminates. - This method should raise an error if the request does not exist + ### Parameters ### - ### Parameters ### - self: Module object - request (str): name of the request + ### Returns ### + """ - ### Returns ### - `int`: ID of the request - """ async def get_request_id(self, request): - raise Error("Request/handler messages not supported for {}".format( - self.__class__.name)) + """ + ### Description ### + Coroutine. Get the ID of the request passed as parameter - """ - ### Description ### - Coroutine. Get the ID of the handler passed as parameter + This method should raise an error if the request does not exist - This method should raise an error if the handler does not exist + ### Parameters ### + self: Module object + request (str): name of the request - ### Parameters ### - self: Module object - handler (str): name of the handler + ### Returns ### + `int`: ID of the request + """ + raise Error("Request/handler messages not supported for {}".format( + self.__class__.__name__)) - ### Returns ### - `int`: ID of the handler - """ async def get_handler_id(self, handler): + """ + ### Description ### + Coroutine. Get the ID of the handler passed as parameter + + This method should raise an error if the handler does not exist + + ### Parameters ### + self: Module object + handler (str): name of the handler + + ### Returns ### + `int`: ID of the handler + """ raise Error("Request/handler messages not supported for {}".format( - self.__class__.name)) + self.__class__.__name__)) diff --git a/reactivetools/modules/native.py b/reactivetools/modules/native.py index e8a3d59..f01cace 100644 --- a/reactivetools/modules/native.py +++ b/reactivetools/modules/native.py @@ -2,6 +2,7 @@ import logging import os import json +import rustsgxgen from .base import Module @@ -11,6 +12,7 @@ from ..crypto import Encryption from ..dumpers import * from ..loaders import * +from ..manager import get_manager BUILD_APP = "cargo build {} {} --manifest-path={}/Cargo.toml" @@ -25,7 +27,7 @@ class Error(Exception): class NativeModule(Module): def __init__(self, name, node, priority, deployed, nonce, attested, features, - id, binary, key, data, folder, port): + id_, binary, key, data, folder, port): self.out_dir = os.path.join(glob.BUILD_DIR, "native-{}".format(folder)) super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) @@ -33,7 +35,7 @@ def __init__(self, name, node, priority, deployed, nonce, attested, features, self.__build_fut = tools.init_future(binary) self.features = [] if features is None else features - self.id = id if id is not None else node.get_module_id() + self.id = id_ if id_ is not None else node.get_module_id() self.port = port or self.node.reactive_port + self.id self.folder = folder @@ -46,7 +48,7 @@ def load(mod_dict, node_obj): nonce = mod_dict.get('nonce') attested = mod_dict.get('attested') features = mod_dict.get('features') - id = mod_dict.get('id') + id_ = mod_dict.get('id') binary = parse_file_name(mod_dict.get('binary')) key = parse_key(mod_dict.get('key')) data = mod_dict.get('data') @@ -54,7 +56,7 @@ def load(mod_dict, node_obj): port = mod_dict.get('port') return NativeModule(name, node, priority, deployed, nonce, attested, - features, id, binary, key, data, folder, port) + features, id_, binary, key, data, folder, port) def dump(self): return { @@ -128,7 +130,7 @@ async def deploy(self): await self.node.deploy(self) async def attest(self): - if glob.get_att_man(): + if get_manager() is not None: await self.__attest_manager() else: await self.key @@ -138,16 +140,16 @@ async def attest(self): async def get_id(self): return self.id - async def get_input_id(self, input): - if isinstance(input, int): - return input + async def get_input_id(self, input_): + if isinstance(input_, int): + return input_ inputs = await self.inputs - if input not in inputs: + if input_ not in inputs: raise Error("Input not present in inputs") - return inputs[input] + return inputs[input_] async def get_output_id(self, output): if isinstance(output, int): @@ -215,11 +217,6 @@ async def generate_code(self): return await self.__generate_fut async def __generate_code(self): - try: - import rustsgxgen - except: - raise Error("rust-sgx-gen not installed! Check README.md") - args = Object() args.input = self.folder @@ -270,7 +267,7 @@ async def __attest_manager(self): json.dump(data, f) args = "--config {} --request attest-native --data {}".format( - self.manager.config, data_file).split() + get_manager().config, data_file).split() out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) key_arr = eval(out) # from string to array key = bytes(key_arr) # from array to bytes diff --git a/reactivetools/modules/sancus.py b/reactivetools/modules/sancus.py index cf2863c..321bf88 100644 --- a/reactivetools/modules/sancus.py +++ b/reactivetools/modules/sancus.py @@ -1,11 +1,9 @@ import logging import asyncio -import binascii -from enum import Enum from collections import namedtuple import json -import yaml import os +import yaml from elftools.elf import elffile @@ -16,6 +14,7 @@ from ..crypto import Encryption from ..dumpers import * from ..loaders import * +from ..manager import get_manager class Error(Exception): @@ -24,7 +23,7 @@ class Error(Exception): class SancusModule(Module): def __init__(self, name, node, priority, deployed, nonce, attested, files, - cflags, ldflags, binary, id, symtab, key): + cflags, ldflags, binary, id_, symtab, key): self.out_dir = os.path.join(glob.BUILD_DIR, "sancus-{}".format(name)) super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) @@ -33,7 +32,7 @@ def __init__(self, name, node, priority, deployed, nonce, attested, files, self.ldflags = ldflags self.__build_fut = tools.init_future(binary) - self.__deploy_fut = tools.init_future(id, symtab) + self.__deploy_fut = tools.init_future(id_, symtab) self.__key_fut = tools.init_future(key) self.__attest_fut = tools.init_future(attested if attested else None) @@ -45,17 +44,16 @@ def load(mod_dict, node_obj): deployed = mod_dict.get('deployed') nonce = mod_dict.get('nonce') attested = mod_dict.get('attested') - files = load_list(mod_dict['files'], - lambda f: parse_file_name(f)) + files = load_list(mod_dict['files'], parse_file_name) cflags = load_list(mod_dict.get('cflags')) ldflags = load_list(mod_dict.get('ldflags')) binary = parse_file_name(mod_dict.get('binary')) - id = mod_dict.get('id') + id_ = mod_dict.get('id') symtab = parse_file_name(mod_dict.get('symtab')) key = parse_key(mod_dict.get('key')) return SancusModule(name, node, priority, deployed, nonce, attested, - files, cflags, ldflags, binary, id, symtab, key) + files, cflags, ldflags, binary, id_, symtab, key) def dump(self): return { @@ -83,8 +81,8 @@ async def binary(self): @property async def id(self): - id, _ = await self.deploy() - return id + id_, _ = await self.deploy() + return id_ @property async def symtab(self): @@ -113,7 +111,7 @@ async def deploy(self): return await self.__deploy_fut async def attest(self): - if glob.get_att_man(): + if get_manager() is not None: await self.__attest_manager() else: if self.__attest_fut is None: @@ -125,8 +123,8 @@ async def attest(self): async def get_id(self): return await self.id - async def get_input_id(self, input): - return await self.get_io_id(input) + async def get_input_id(self, input_): + return await self.get_io_id(input_) async def get_output_id(self, output): return await self.get_io_id(output) @@ -181,15 +179,17 @@ async def __build(self): config = self._get_build_config(tools.get_verbosity()) objects = {str(p): tools.create_tmp( - suffix='.o', dir=self.out_dir) for p in self.files} + suffix='.o', dir_name=self.out_dir) for p in self.files} cflags = config.cflags + self.cflags - def build_obj(c, o): return tools.run_async(config.cc, *cflags, - '-c', '-o', o, c) + + def build_obj(c, o): + return tools.run_async(config.cc, *cflags, '-c', '-o', o, c) + build_futs = [build_obj(c, o) for c, o in objects.items()] await asyncio.gather(*build_futs) - binary = tools.create_tmp(suffix='.elf', dir=self.out_dir) + binary = tools.create_tmp(suffix='.elf', dir_name=self.out_dir) ldflags = config.ldflags + self.ldflags # prepare the config file for this SM @@ -212,7 +212,8 @@ async def __prepare_config_file(self, ldflags): config = yaml.load(f) except: # we create a new file with empty config - config_file = tools.create_tmp(suffix='.yaml', dir=self.out_dir) + config_file = tools.create_tmp( + suffix='.yaml', dir_name=self.out_dir) config = {self.name: []} # remove old flag if present, append new one @@ -243,7 +244,7 @@ async def _calculate_key(self): return key async def __link(self): - linked_binary = tools.create_tmp(suffix='.elf', dir=self.out_dir) + linked_binary = tools.create_tmp(suffix='.elf', dir_name=self.out_dir) # NOTE: we use '--noinhibit-exec' flag because the linker complains # if the addresses of .bss section are not aligned to 2 bytes @@ -300,7 +301,7 @@ async def __attest_manager(self): json.dump(data, f) args = "--config {} --request attest-sancus --data {}".format( - self.manager.config, data_file).split() + get_manager().config, data_file).split() out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) key_arr = eval(out) # from string to array key = bytes(key_arr) # from array to bytes diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index b489f7d..870699a 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -1,8 +1,8 @@ import asyncio import logging import os -import aiofile import json +import rustsgxgen from .base import Module @@ -12,9 +12,11 @@ from ..crypto import Encryption from ..dumpers import * from ..loaders import * +from ..manager import get_manager # Apps ATTESTER = "sgx-attester" +ROOT_CA_URL = "https://certificates.trustedservices.intel.com/Intel_SGX_Attestation_RootCA.pem" # SGX build/sign SGX_TARGET = "x86_64-fortanix-unknown-sgx" @@ -36,7 +38,7 @@ class SGXModule(Module): sp_lock = asyncio.Lock() def __init__(self, name, node, priority, deployed, nonce, attested, vendor_key, - ra_settings, features, id, binary, key, sgxs, signature, data, + ra_settings, features, id_, binary, key, sgxs, signature, data, folder, port): self.out_dir = os.path.join(glob.BUILD_DIR, "sgx-{}".format(folder)) super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) @@ -51,7 +53,7 @@ def __init__(self, name, node, priority, deployed, nonce, attested, vendor_key, self.vendor_key = vendor_key self.ra_settings = ra_settings self.features = [] if features is None else features - self.id = id if id is not None else node.get_module_id() + self.id = id_ if id_ is not None else node.get_module_id() self.port = port or self.node.reactive_port + self.id self.folder = folder @@ -66,7 +68,7 @@ def load(mod_dict, node_obj): vendor_key = parse_file_name(mod_dict['vendor_key']) settings = parse_file_name(mod_dict['ra_settings']) features = mod_dict.get('features') - id = mod_dict.get('id') + id_ = mod_dict.get('id') binary = parse_file_name(mod_dict.get('binary')) key = parse_key(mod_dict.get('key')) sgxs = parse_file_name(mod_dict.get('sgxs')) @@ -76,7 +78,7 @@ def load(mod_dict, node_obj): port = mod_dict.get('port') return SGXModule(name, node, priority, deployed, nonce, attested, vendor_key, - settings, features, id, binary, key, sgxs, signature, data, folder, + settings, features, id_, binary, key, sgxs, signature, data, folder, port) def dump(self): @@ -169,7 +171,7 @@ async def deploy(self): await self.node.deploy(self) async def attest(self): - if glob.get_att_man(): + if get_manager() is not None: await self.__attest_manager() else: if self.__attest_fut is None: @@ -180,16 +182,16 @@ async def attest(self): async def get_id(self): return self.id - async def get_input_id(self, input): - if isinstance(input, int): - return input + async def get_input_id(self, input_): + if isinstance(input_, int): + return input_ inputs = await self.inputs - if input not in inputs: + if input_ not in inputs: raise Error("Input not present in inputs") - return inputs[input] + return inputs[input_] async def get_output_id(self, output): if isinstance(output, int): @@ -276,19 +278,16 @@ async def generate_code(self): return await self.__generate_fut async def __generate_code(self): - try: - import rustsgxgen - except: - raise Error("rust-sgx-gen not installed! Check README.md") - args = Object() + man = get_manager() args.input = self.folder args.output = self.out_dir args.moduleid = self.id args.emport = self.node.deploy_port args.runner = rustsgxgen.Runner.SGX - args.spkey = await self.manager.get_sp_pubkey() if glob.get_att_man() else await self.get_ra_sp_pub_key() + args.spkey = await man.get_sp_pubkey() \ + if man is not None else await self.get_ra_sp_pub_key() args.print = None data, _ = rustsgxgen.generate(args) @@ -322,7 +321,7 @@ async def __convert_sign(self): binary = await self.binary debug = "--debug" if glob.get_build_mode() == glob.BuildMode.DEBUG else "" - sgxs = "{}.sgxs".format(binary, self.name) + sgxs = "{}.sgxs".format(binary) # use this format for the file names to deal with multiple SMs built # from the same source code, but with different vendor keys @@ -375,7 +374,7 @@ async def __attest_manager(self): json.dump(data, f) args = "--config {} --request attest-sgx --data {}".format( - self.manager.config, data_file).split() + get_manager().config, data_file).split() out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) key_arr = eval(out) # from string to array key = bytes(key_arr) # from array to bytes @@ -392,7 +391,7 @@ async def __generate_sp_keys(self): ias_cert = os.path.join(glob.BUILD_DIR, "ias_root_ca.pem") # check if already generated in a previous run - if all(map(lambda x: os.path.exists(x), [priv, pub, ias_cert])): + if all(map(os.path.exists, [priv, pub, ias_cert])): return pub, priv, ias_cert cmd = "openssl" @@ -405,7 +404,7 @@ async def __generate_sp_keys(self): await tools.run_async_shell(cmd, *args_public) cmd = "curl" - url = "https://certificates.trustedservices.intel.com/Intel_SGX_Attestation_RootCA.pem".split() + url = ROOT_CA_URL.split() await tools.run_async(cmd, *url, output_file=ias_cert) return pub, priv, ias_cert diff --git a/reactivetools/modules/trustzone.py b/reactivetools/modules/trustzone.py index 1b857ac..bb627c9 100644 --- a/reactivetools/modules/trustzone.py +++ b/reactivetools/modules/trustzone.py @@ -1,6 +1,5 @@ import logging import asyncio -import binascii import hashlib import json import os @@ -12,6 +11,7 @@ from ..crypto import Encryption from ..dumpers import * from ..loaders import * +from ..manager import get_manager class Error(Exception): @@ -27,13 +27,13 @@ class Error(Exception): class TrustZoneModule(Module): def __init__(self, name, node, priority, deployed, nonce, attested, files_dir, - binary, id, uuid, key, inputs, outputs, entrypoints): + binary, id_, uuid, key, inputs, outputs, entrypoints): self.out_dir = os.path.join( glob.BUILD_DIR, "trustzone-{}".format(name)) super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) self.files_dir = files_dir - self.id = id + self.id = id_ self.uuid = uuid self.inputs = inputs self.outputs = outputs @@ -55,14 +55,14 @@ def load(mod_dict, node_obj): attested = mod_dict.get('attested') files_dir = mod_dict.get('files_dir') binary = mod_dict.get('binary') - id = mod_dict.get('id') + id_ = mod_dict.get('id') uuid = mod_dict.get('uuid') key = parse_key(mod_dict.get('key')) inputs = mod_dict.get('inputs') outputs = mod_dict.get('outputs') entrypoints = mod_dict.get('entrypoints') return TrustZoneModule(name, node, priority, deployed, nonce, attested, files_dir, - binary, id, uuid, key, inputs, outputs, entrypoints) + binary, id_, uuid, key, inputs, outputs, entrypoints) def dump(self): return { @@ -108,7 +108,7 @@ async def deploy(self): await self.node.deploy(self) async def attest(self): - if glob.get_att_man(): + if get_manager() is not None: await self.__attest_manager() else: if self.__attest_fut is None: @@ -120,16 +120,16 @@ async def attest(self): async def get_id(self): return self.id - async def get_input_id(self, input): - if isinstance(input, int): - return input + async def get_input_id(self, input_): + if isinstance(input_, int): + return input_ inputs = self.inputs - if input not in inputs: + if input_ not in inputs: raise Error("Input not present in inputs") - return inputs[input] + return inputs[input_] async def get_output_id(self, output): if isinstance(output, int): @@ -167,9 +167,9 @@ def get_supported_encryption(): # --- Other methods --- # async def __build(self): - hex = '%032x' % (self.uuid) + hexa = '%032x' % (self.uuid) self.uuid_for_MK = '%s-%s-%s-%s-%s' % ( - hex[:8], hex[8:12], hex[12:16], hex[16:20], hex[20:]) + hexa[:8], hexa[8:12], hexa[12:16], hexa[16:20], hexa[20:]) binary_name = "BINARY=" + self.uuid_for_MK cmd = BUILD_CMD.format(self.files_dir, self.name, @@ -210,7 +210,7 @@ async def __attest_manager(self): json.dump(data, f) args = "--config {} --request attest-trustzone --data {}".format( - self.manager.config, data_file).split() + get_manager().config, data_file).split() out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) key_arr = eval(out) # from string to array key = bytes(key_arr) # from array to bytes diff --git a/reactivetools/nodes/base.py b/reactivetools/nodes/base.py index f61f7b7..6b870ac 100644 --- a/reactivetools/nodes/base.py +++ b/reactivetools/nodes/base.py @@ -3,9 +3,8 @@ import binascii from abc import ABC, abstractmethod -from enum import IntEnum -from reactivenet import * +from reactivenet import ReactiveCommand, Message, CommandMessage from .. import tools @@ -38,119 +37,112 @@ def __init__(self, name, ip_address, reactive_port, deploy_port, need_lock=False else: self.__lock = None - """ - ### Description ### - Creates a XXXNode object from a dict - This should take all the information declared in the deployment descriptor - and store it into the class as attributes. - - ### Parameters ### - node_dict (dict): dictionary containing the definition of the node - - ### Returns ### - An instance of the XXXNode class - """ @staticmethod @abstractmethod def load(node_dict): - pass - - """ - ### Description ### - Creates a dict from the XXXNode object (opposite procedure wrt. load) - This dict, saved in the output deployment descriptor, and serves two purposes: - 1) to provide the deployer some information (e.g., keys used) - 2) to give it as an input of subsequent runs of the application - Hence, ideally load() and dump() should involve the same attributes - - ### Parameters ### - self: Node object - - ### Returns ### - `dict`: description of the object - """ - @abstractmethod - def dump(self): - pass - - """ - ### Description ### - Coroutine. Deploy a module to the node + """ + ### Description ### + Creates a XXXNode object from a dict + This should take all the information declared in the deployment descriptor + and store it into the class as attributes. - How this is done depends on the architecture, in general the binary of the - module must be sent to the Event Manager with a special event on the deploy_port + ### Parameters ### + node_dict (dict): dictionary containing the definition of the node - *NOTE*: this coroutine should check if module has already been deployed - (doing nothing if this is the case), and set module.deployed to True - after deployment + ### Returns ### + An instance of the XXXNode class + """ - ### Parameters ### - self: Node object - module (XXXModule): module object to deploy + @abstractmethod + def dump(self): + """ + ### Description ### + Creates a dict from the XXXNode object (opposite procedure wrt. load) + This dict, saved in the output deployment descriptor, and serves two purposes: + 1) to provide the deployer some information (e.g., keys used) + 2) to give it as an input of subsequent runs of the application + Hence, ideally load() and dump() should involve the same attributes + + ### Parameters ### + self: Node object + + ### Returns ### + `dict`: description of the object + """ - ### Returns ### - """ @abstractmethod async def deploy(self, module): - pass - - """ - ### Description ### - Coroutine. Sets the key of a specific connection + """ + ### Description ### + Coroutine. Deploy a module to the node - How this is done depends on the architecture, in general the key and other args - must be sent to the Event Manager with a special event on the reactive_port + How this is done depends on the architecture, in general the binary of the + module must be sent to the Event Manager with a special event on the deploy_port - conn_io indicates which input/output/request/handler is involved in the connection - encryption indicates which crypto library is used in this connection + *NOTE*: this coroutine should check if module has already been deployed + (doing nothing if this is the case), and set module.deployed to True + after deployment - *NOTE*: this coroutine should use module.nonce as part of associated data - and increment it if everything went well + ### Parameters ### + self: Node object + module (XXXModule): module object to deploy - ### Parameters ### - self: Node object - module (XXXModule): module where the key is being set - conn_id (int): ID of the connection - conn_io (ConnectionIO): object of the ConnectionIO class (see connection.py) - encryption (Encryption): object of the Encryption class (see crypto.py) - key (bytes): connection key + ### Returns ### + """ - ### Returns ### - """ @abstractmethod async def set_key(self, module, conn_id, conn_io, encryption, key): - pass + """ + ### Description ### + Coroutine. Sets the key of a specific connection + + How this is done depends on the architecture, in general the key and other args + must be sent to the Event Manager with a special event on the reactive_port - """ - Default implementation of some functions. - Override them in the subclasses if you need a different implementation. - """ + conn_io indicates which input/output/request/handler is involved in the connection + encryption indicates which crypto library is used in this connection - """ - ### Description ### - Static coroutine. Cleanup operations to do before the application terminates + *NOTE*: this coroutine should use module.nonce as part of associated data + and increment it if everything went well - ### Parameters ### + ### Parameters ### + self: Node object + module (XXXModule): module where the key is being set + conn_id (int): ID of the connection + conn_io (ConnectionIO): object of the ConnectionIO class (see connection.py) + encryption (Encryption): object of the Encryption class (see crypto.py) + key (bytes): connection key + + ### Returns ### + """ + + # Default implementation of some functions. + # Override them in the subclasses if you need a different implementation. - ### Returns ### - """ @staticmethod async def cleanup(): - pass + """ + ### Description ### + Static coroutine. Cleanup operations to do before the application terminates - """ - ### Description ### - Coroutine. Inform the EM of the source module that a new connection has - been established, so that events can be correctly forwared to the recipient + ### Parameters ### - ### Parameters ### - self: Node object - to_module (XXXModule): destination module - conn_id (int): ID of the connection + ### Returns ### + """ - ### Returns ### - """ async def connect(self, to_module, conn_id): + """ + ### Description ### + Coroutine. Inform the EM of the source module that a new connection has + been established, so that events can be correctly forwared to the recipient + + ### Parameters ### + self: Node object + to_module (XXXModule): destination module + conn_id (int): ID of the connection + + ### Returns ### + """ module_id = await to_module.get_id() payload = tools.pack_int16(conn_id) + \ @@ -168,19 +160,19 @@ async def connect(self, to_module, conn_id): command, log='Connecting id {} to {}'.format(conn_id, to_module.name)) - """ - ### Description ### - Coroutine. Call the entry point of a module + async def call(self, module, entry, arg=None, output=None): + """ + ### Description ### + Coroutine. Call the entry point of a module - ### Parameters ### - self: Node object - to_module (XXXModule): target module - entry (str): name of the entry point to call - arg (bytes): argument to pass as a byte array (can be None) + ### Parameters ### + self: Node object + to_module (XXXModule): target module + entry (str): name of the entry point to call + arg (bytes): argument to pass as a byte array (can be None) - ### Returns ### - """ - async def call(self, module, entry, arg=None, output=None): + ### Returns ### + """ assert module.node is self module_id, entry_id = \ @@ -210,20 +202,20 @@ async def call(self, module, entry, arg=None, output=None): binascii.hexlify(response.message.payload).decode('ascii'))) else: with open(output, "wb") as f: - f.write(plaintext) + f.write(response.message.payload) - """ - ### Description ### - Coroutine. Trigger the 'output' event of a direct connection + async def output(self, connection, arg=None): + """ + ### Description ### + Coroutine. Trigger the 'output' event of a direct connection - ### Parameters ### - self: Node object - connection (Connection): connection object - arg (bytes): argument to pass as a byte array (can be None) + ### Parameters ### + self: Node object + connection (Connection): connection object + arg (bytes): argument to pass as a byte array (can be None) - ### Returns ### - """ - async def output(self, connection, arg=None): + ### Returns ### + """ assert connection.to_module.node is self module_id = await connection.to_module.get_id() @@ -251,18 +243,18 @@ async def output(self, connection, arg=None): connection.id, connection.name, connection.to_module.name, self.name) ) - """ - ### Description ### - Coroutine. Trigger the 'request' event of a direct connection + async def request(self, connection, arg=None, output=None): + """ + ### Description ### + Coroutine. Trigger the 'request' event of a direct connection - ### Parameters ### - self: Node object - connection (Connection): connection object - arg (bytes): argument to pass as a byte array (can be None) + ### Parameters ### + self: Node object + connection (Connection): connection object + arg (bytes): argument to pass as a byte array (can be None) - ### Returns ### - """ - async def request(self, connection, arg=None, output=None): + ### Returns ### + """ assert connection.to_module.node is self module_id = await connection.to_module.get_id() @@ -296,7 +288,8 @@ async def request(self, connection, arg=None, output=None): resp_encrypted = response.message.payload plaintext = await connection.encryption.decrypt(connection.key, - tools.pack_int16(connection.nonce + 1), resp_encrypted) + tools.pack_int16(connection.nonce + 1), + resp_encrypted) if output is None: logging.info("Response: \"{}\"".format( @@ -305,19 +298,19 @@ async def request(self, connection, arg=None, output=None): with open(output, "wb") as f: f.write(plaintext) - """ - ### Description ### - Coroutine. Register an entry point for periodic tasks + async def register_entrypoint(self, module, entry, frequency): + """ + ### Description ### + Coroutine. Register an entry point for periodic tasks - ### Parameters ### - self: Node object - module (XXXModule): target module - entry (str): entry point to call - frequency (int): desired frequency of which the entry point will be called + ### Parameters ### + self: Node object + module (XXXModule): target module + entry (str): entry point to call + frequency (int): desired frequency of which the entry point will be called - ### Returns ### - """ - async def register_entrypoint(self, module, entry, frequency): + ### Returns ### + """ assert module.node is self module_id, entry_id = \ await asyncio.gather(module.get_id(), module.get_entry_id(entry)) @@ -337,38 +330,38 @@ async def register_entrypoint(self, module, entry, frequency): module.name, entry, module_id, entry_id, self.name) ) - """ - ### Description ### - Coroutine. Wrapper to __send_reactive_command (see below) + async def _send_reactive_command(self, command, log=None): + """ + ### Description ### + Coroutine. Wrapper to __send_reactive_command (see below) - ### Parameters ### - self: Node object - command (ReactiveCommand): command to send to the node - log (str): optional text message printed to stdout (can be None) + ### Parameters ### + self: Node object + command (ReactiveCommand): command to send to the node + log (str): optional text message printed to stdout (can be None) - ### Returns ### - """ - async def _send_reactive_command(self, command, log=None): + ### Returns ### + """ if self.__lock is not None: async with self.__lock: return await self.__send_reactive_command(command, log) else: return await self.__send_reactive_command(command, log) - """ - ### Description ### - Static coroutine. Helper function used to send a ReactiveCommand message to the node + @staticmethod + async def __send_reactive_command(command, log): + """ + ### Description ### + Static coroutine. Helper function used to send a ReactiveCommand message to the node - ReactiveCommand: defined in reactivenet: https://github.com/gianlu33/reactive-net + ReactiveCommand: defined in reactivenet: https://github.com/gianlu33/reactive-net - ### Parameters ### - command (ReactiveCommand): command to send to the node - log (str): optional text message printed to stdout (can be None) + ### Parameters ### + command (ReactiveCommand): command to send to the node + log (str): optional text message printed to stdout (can be None) - ### Returns ### - """ - @staticmethod - async def __send_reactive_command(command, log): + ### Returns ### + """ if log is not None: logging.info(log) @@ -379,6 +372,5 @@ async def __send_reactive_command(command, log): .format(str(command.code), str(response.code))) return response - else: - await command.send() - return None + await command.send() + return None diff --git a/reactivetools/nodes/native.py b/reactivetools/nodes/native.py index 930c758..2aac646 100644 --- a/reactivetools/nodes/native.py +++ b/reactivetools/nodes/native.py @@ -1,8 +1,7 @@ -import asyncio -import aiofile - from reactivenet import CommandMessageLoad +import aiofile + from .sgx import SGXBase from .. import tools from ..dumpers import * diff --git a/reactivetools/nodes/sancus.py b/reactivetools/nodes/sancus.py index fc49bf2..9d398ff 100644 --- a/reactivetools/nodes/sancus.py +++ b/reactivetools/nodes/sancus.py @@ -1,10 +1,12 @@ import asyncio import logging import binascii -import aiofile from enum import IntEnum -from reactivenet import * +from reactivenet import ReactiveCommand, ReactiveEntrypoint, Message, \ + CommandMessage + +import aiofile from .base import Node from .. import tools @@ -85,7 +87,7 @@ async def deploy(self, module): .format(module.name, self.name)) symtab = res.message.payload[2:] - symtab_file = tools.create_tmp(suffix='.ld', dir=module.out_dir) + symtab_file = tools.create_tmp(suffix='.ld', dir_name=module.out_dir) # aiofile for write operations is bugged (version 3.3.3) # I get a "bad file descriptor" error after writes. diff --git a/reactivetools/nodes/sgx.py b/reactivetools/nodes/sgx.py index 48a4531..24e20e9 100644 --- a/reactivetools/nodes/sgx.py +++ b/reactivetools/nodes/sgx.py @@ -1,14 +1,12 @@ -import asyncio -import aiofile -import logging -from abc import ABC, abstractmethod +from abc import abstractmethod import binascii -from reactivenet import * +from reactivenet import ReactiveCommand, ReactiveEntrypoint, Message, \ + CommandMessage, CommandMessageLoad + +import aiofile from .base import Node -from ..connection import ConnectionIO -from .. import glob from .. import tools from ..crypto import Encryption from ..dumpers import * @@ -62,10 +60,10 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): ) def get_module_id(self): - id = self._moduleid + id_ = self._moduleid self._moduleid += 1 - return id + return id_ class SGXNode(SGXBase): diff --git a/reactivetools/nodes/trustzone.py b/reactivetools/nodes/trustzone.py index 6e48a66..df64c00 100644 --- a/reactivetools/nodes/trustzone.py +++ b/reactivetools/nodes/trustzone.py @@ -1,10 +1,11 @@ -import asyncio import logging import binascii -import aiofile import struct -from reactivenet import * +from reactivenet import ReactiveCommand, ReactiveEntrypoint, Message, \ + CommandMessage, CommandMessageLoad + +import aiofile from .base import Node from .. import tools @@ -52,11 +53,11 @@ async def deploy(self, module): async with aiofile.AIOFile(await module.binary, "rb") as f: file_data = await f.read() - id = tools.pack_int16(module.id) + id_ = tools.pack_int16(module.id) uid = module.uuid.to_bytes(16, 'big') - size = struct.pack('!I', len(file_data) + len(id) + len(uid)) + size = struct.pack('!I', len(file_data) + len(id_) + len(uid)) - payload = size + id + uid + file_data + payload = size + id_ + uid + file_data command = CommandMessageLoad(payload, self.ip_address, diff --git a/reactivetools/periodic_event.py b/reactivetools/periodic_event.py index 1a11b44..acded60 100644 --- a/reactivetools/periodic_event.py +++ b/reactivetools/periodic_event.py @@ -1,11 +1,10 @@ -import asyncio import logging class PeriodicEvent: - def __init__(self, name, id, module, entry, frequency, established): + def __init__(self, name, id_, module, entry, frequency, established): self.name = name - self.id = id + self.id = id_ self.module = module self.entry = entry self.frequency = frequency @@ -13,19 +12,19 @@ def __init__(self, name, id, module, entry, frequency, established): @staticmethod def load(event_dict, config): - id = event_dict.get('id') + id_ = event_dict.get('id') module = config.get_module(event_dict['module']) entry = event_dict['entry'] frequency = event_dict['frequency'] established = event_dict.get('established') - if id is None: - id = config.events_current_id # incremental ID + if id_ is None: + id_ = config.events_current_id # incremental ID config.events_current_id += 1 - name = event_dict.get('name') or "event{}".format(id) + name = event_dict.get('name') or "event{}".format(id_) - return PeriodicEvent(name, id, module, entry, frequency, established) + return PeriodicEvent(name, id_, module, entry, frequency, established) def dump(self): return { diff --git a/reactivetools/rules/evaluators.py b/reactivetools/rules/evaluators.py index 2678949..489b8ec 100644 --- a/reactivetools/rules/evaluators.py +++ b/reactivetools/rules/evaluators.py @@ -1,16 +1,15 @@ -import yaml import os import logging from ..descriptor import DescriptorType -def is_present(dict, key): - return key in dict and dict[key] is not None +def is_present(dict_, key): + return key in dict_ and dict_[key] is not None -def has_value(dict, key, value): - return is_present(dict, key) and dict[key] == value +def has_value(dict_, key, value): + return is_present(dict_, key) and dict_[key] == value def is_positive_number(val, bits=16): @@ -23,8 +22,8 @@ def is_positive_number(val, bits=16): return True -def authorized_keys(dict, keys): - for key in dict: +def authorized_keys(dict_, keys): + for key in dict_: if key not in keys: return False diff --git a/reactivetools/tools.py b/reactivetools/tools.py index 5da5bbc..fb78d4c 100644 --- a/reactivetools/tools.py +++ b/reactivetools/tools.py @@ -2,7 +2,6 @@ import tempfile import os import asyncio -import base64 import struct from enum import Enum import socket @@ -13,6 +12,7 @@ class ProcessRunError(Exception): def __init__(self, args, result): + super().__init__() self.args = args self.result = result @@ -33,17 +33,16 @@ def get_verbosity(): if log_at(logging.DEBUG): return Verbosity.Debug - elif log_at(logging.INFO): + if log_at(logging.INFO): return Verbosity.Verbose - else: - return Verbosity.Normal + return Verbosity.Normal def get_stderr(): if get_verbosity() == Verbosity.Debug: return None - else: - return open(os.devnull, "wb") + + return open(os.devnull, "wb") def init_future(*results): @@ -56,10 +55,11 @@ def init_future(*results): return fut -async def run_async(*args, output_file=os.devnull, env=None): +async def run_async(program, *args, output_file=os.devnull, env=None): logging.debug(' '.join(args)) - process = await asyncio.create_subprocess_exec(*args, + process = await asyncio.create_subprocess_exec(program, + *args, stdout=open( output_file, 'wb'), stderr=get_stderr(), @@ -70,9 +70,10 @@ async def run_async(*args, output_file=os.devnull, env=None): raise ProcessRunError(args, result) -async def run_async_background(*args, env=None): +async def run_async_background(program, *args, env=None): logging.debug(' '.join(args)) - process = await asyncio.create_subprocess_exec(*args, + process = await asyncio.create_subprocess_exec(program, + *args, stdout=open( os.devnull, 'wb'), stderr=get_stderr(), @@ -81,10 +82,11 @@ async def run_async_background(*args, env=None): return process -async def run_async_output(*args, env=None): +async def run_async_output(program, *args, env=None): cmd = ' '.join(args) logging.debug(cmd) - process = await asyncio.create_subprocess_exec(*args, + process = await asyncio.create_subprocess_exec(program, + *args, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE, env=env) @@ -129,9 +131,9 @@ def resolve_ip(host): raise Error("Invalid host: {}".format(host)) -def create_tmp(suffix='', dir=''): - dir = os.path.join(glob.BUILD_DIR, dir) - fd, path = tempfile.mkstemp(suffix=suffix, dir=dir) +def create_tmp(suffix='', dir_name=''): + dir_ = os.path.join(glob.BUILD_DIR, dir_name) + fd, path = tempfile.mkstemp(suffix=suffix, dir=dir_) os.close(fd) return path From da0cd7c50dcc36bf4d64409a25fa6b74599e4575 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Wed, 10 Nov 2021 16:28:07 +0000 Subject: [PATCH 64/81] fix bugs introduced in previous commit --- reactivetools/cli.py | 16 +++---- reactivetools/config.py | 6 +-- reactivetools/descriptor.py | 8 ++-- reactivetools/manager.py | 2 +- reactivetools/rules/default/connection.yaml | 46 +++++++++---------- reactivetools/rules/default/manager.yaml | 12 ++--- reactivetools/rules/default/module.yaml | 28 +++++------ reactivetools/rules/default/node.yaml | 20 ++++---- .../rules/default/periodic_event.yaml | 16 +++---- reactivetools/tools.py | 13 +++--- 10 files changed, 83 insertions(+), 84 deletions(-) diff --git a/reactivetools/cli.py b/reactivetools/cli.py index f0a728d..cc22f23 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -238,7 +238,7 @@ def _handle_deploy(args): glob.set_build_mode(args.mode) os.chdir(args.workspace) - conf = config.load(args.config, args.output) + conf = config.load(args.config, args.manager, args.output) conf.deploy(args.deploy_in_order, args.module) @@ -254,7 +254,7 @@ def _handle_build(args): glob.set_build_mode(args.mode) os.chdir(args.workspace) - conf = config.load(args.config) + conf = config.load(args.config, args.manager) conf.build(args.module) conf.cleanup() @@ -263,7 +263,7 @@ def _handle_build(args): def _handle_attest(args): logging.info('Attesting modules') - conf = config.load(args.config, args.output) + conf = config.load(args.config, args.manager, args.output) conf.attest(args.module) @@ -276,7 +276,7 @@ def _handle_attest(args): def _handle_connect(args): logging.info('Connecting modules') - conf = config.load(args.config, args.output) + conf = config.load(args.config, args.manager, args.output) conf.connect(args.connection) @@ -289,7 +289,7 @@ def _handle_connect(args): def _handle_register(args): logging.info('Registering periodic events') - conf = config.load(args.config, args.output) + conf = config.load(args.config, args.manager, args.output) conf.register_event(args.event) @@ -302,7 +302,7 @@ def _handle_register(args): def _handle_call(args): logging.info('Calling %s:%s', args.module, args.entry) - conf = config.load(args.config) + conf = config.load(args.config, args.manager) module = conf.get_module(args.module) asyncio.get_event_loop().run_until_complete( @@ -314,7 +314,7 @@ def _handle_call(args): def _handle_output(args): logging.info('Triggering output of connection %s', args.connection) - conf = config.load(args.config) + conf = config.load(args.config, args.manager) if args.connection.isnumeric(): conn = conf.get_connection_by_id(int(args.connection)) @@ -339,7 +339,7 @@ def _handle_output(args): def _handle_request(args): logging.info('Triggering request of connection %s', args.connection) - conf = config.load(args.config) + conf = config.load(args.config, args.manager) if args.connection.isnumeric(): conn = conf.get_connection_by_id(int(args.connection)) diff --git a/reactivetools/config.py b/reactivetools/config.py index d5f72e6..e9b299a 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -179,7 +179,7 @@ def cleanup(self): asyncio.get_event_loop().run_until_complete(self.cleanup_async()) -def load(file_name, output_type=None): +def load(file_name, manager, output_type=None): config = Config() desc_type = DescriptorType.from_str(output_type) @@ -190,7 +190,7 @@ def load(file_name, output_type=None): # - the same type of the input file otherwise config.output_type = desc_type or input_type - if 'manager' in contents: + if manager: _load_manager(contents['manager'], config) config.nodes = load_list(contents['nodes'], @@ -256,7 +256,7 @@ def _load_periodic_event(events_dict, config): def _load_manager(man_file, config): if man_file is None: - return + raise Error("Error while parsing manager information") man_dict, _ = DescriptorType.load_any(man_file) evaluate_rules(os.path.join("default", "manager.yaml"), man_dict) diff --git a/reactivetools/descriptor.py b/reactivetools/descriptor.py index 0d26689..33bde47 100644 --- a/reactivetools/descriptor.py +++ b/reactivetools/descriptor.py @@ -55,9 +55,7 @@ def dump(self, file, data): with open(file, 'w') as f: if self == DescriptorType.JSON: json.dump(data, f, indent=4) - - if self == DescriptorType.YAML: + elif self == DescriptorType.YAML: yaml.dump(data, f) - - raise Error( - "dump not implemented for {}".format(self.name)) + else: + raise Error("dump not implemented for {}".format(self.name)) diff --git a/reactivetools/manager.py b/reactivetools/manager.py index 9f1accf..148a846 100644 --- a/reactivetools/manager.py +++ b/reactivetools/manager.py @@ -49,7 +49,7 @@ async def get_sp_pubkey(self): if self.sp_pubkey is not None: return self.sp_pubkey - args = "--config {} --request get-pub-key --data aa".format( + args = "--config {} --request get-pub-key".format( self.config).split() out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) diff --git a/reactivetools/rules/default/connection.yaml b/reactivetools/rules/default/connection.yaml index fad83fe..8ec7879 100644 --- a/reactivetools/rules/default/connection.yaml +++ b/reactivetools/rules/default/connection.yaml @@ -1,52 +1,52 @@ # Connection rules to_module required: - is_present(dict, "to_module") + is_present(dict_, "to_module") encryption required: - is_present(dict, "encryption") + is_present(dict_, "encryption") established must be a bool, if exists: - not is_present(dict, "established") or - (is_present(dict, "established") and isinstance(dict["established"], bool)) + not is_present(dict_, "established") or + (is_present(dict_, "established") and isinstance(dict_["established"], bool)) either direct=True or from_module + from_{output, request}: - has_value(dict, "direct", True) != - (is_present(dict, "from_module") and - (is_present(dict, "from_output") != is_present(dict, "from_request"))) + has_value(dict_, "direct", True) != + (is_present(dict_, "from_module") and + (is_present(dict_, "from_output") != is_present(dict_, "from_request"))) either one between to_input and to_handler: - is_present(dict, "to_input") != is_present(dict, "to_handler") + is_present(dict_, "to_input") != is_present(dict_, "to_handler") direct or from_output->to_input or from_request->to_handler: - has_value(dict, "direct", True) or - (is_present(dict, "from_output") and is_present(dict, "to_input")) or - (is_present(dict, "from_request") and is_present(dict, "to_handler")) + has_value(dict_, "direct", True) or + (is_present(dict_, "from_output") and is_present(dict_, "to_input")) or + (is_present(dict_, "from_request") and is_present(dict_, "to_handler")) key mandatory after establishment: - not has_value(dict, "established", True) or - (has_value(dict, "established", True) and is_present(dict, "key")) + not has_value(dict_, "established", True) or + (has_value(dict_, "established", True) and is_present(dict_, "key")) nonce mandatory after establishment: - not has_value(dict, "established", True) or - (has_value(dict, "established", True) and is_present(dict, "nonce")) + not has_value(dict_, "established", True) or + (has_value(dict_, "established", True) and is_present(dict_, "nonce")) id mandatory after establishment: - not has_value(dict, "established", True) or - (has_value(dict, "established", True) and is_present(dict, "id")) + not has_value(dict_, "established", True) or + (has_value(dict_, "established", True) and is_present(dict_, "id")) name mandatory after establishment: - not has_value(dict, "established", True) or - (has_value(dict, "established", True) and is_present(dict, "name")) + not has_value(dict_, "established", True) or + (has_value(dict_, "established", True) and is_present(dict_, "name")) direct mandatory after establishment: - not has_value(dict, "established", True) or - (has_value(dict, "established", True) and is_present(dict, "direct")) + not has_value(dict_, "established", True) or + (has_value(dict_, "established", True) and is_present(dict_, "direct")) from_module and to_module must be different: - dict.get("from_module") != dict["to_module"] + dict_.get("from_module") != dict_["to_module"] only authorized keys: - authorized_keys(dict, ["name", "from_module", "from_output", + authorized_keys(dict_, ["name", "from_module", "from_output", "from_request", "to_module", "to_input", "to_handler", "encryption", "key", "id", "direct", "nonce", "established"]) diff --git a/reactivetools/rules/default/manager.yaml b/reactivetools/rules/default/manager.yaml index e1d0e2a..9e56cd9 100644 --- a/reactivetools/rules/default/manager.yaml +++ b/reactivetools/rules/default/manager.yaml @@ -2,21 +2,21 @@ ## required keys ## host required: - is_present(dict, "host") + is_present(dict_, "host") port required: - is_present(dict, "port") + is_present(dict_, "port") key required: - is_present(dict, "key") + is_present(dict_, "key") ## type of the required values ## host must be a str: - isinstance(dict["host"], str) + isinstance(dict_["host"], str) port must be a positive u16: - is_positive_number(dict["port"]) + is_positive_number(dict_["port"]) key must be a list: - isinstance(dict["key"], list) + isinstance(dict_["key"], list) diff --git a/reactivetools/rules/default/module.yaml b/reactivetools/rules/default/module.yaml index 28eab17..6a90b8f 100644 --- a/reactivetools/rules/default/module.yaml +++ b/reactivetools/rules/default/module.yaml @@ -2,39 +2,39 @@ ## required keys ## type required: - is_present(dict, "type") + is_present(dict_, "type") name required: - is_present(dict, "type") + is_present(dict_, "type") node required: - is_present(dict, "node") + is_present(dict_, "node") ## type of the required values ## type must be a str: - isinstance(dict["type"], str) + isinstance(dict_["type"], str) name must be a str: - isinstance(dict["name"], str) + isinstance(dict_["name"], str) node must be a str: - isinstance(dict["node"], str) + isinstance(dict_["node"], str) priority must be an int: - not is_present(dict, "priority") or - (is_present(dict, "priority") and isinstance(dict["priority"], int)) + not is_present(dict_, "priority") or + (is_present(dict_, "priority") and isinstance(dict_["priority"], int)) nonce must be an int: - not is_present(dict, "nonce") or - (is_present(dict, "nonce") and isinstance(dict["nonce"], int)) + not is_present(dict_, "nonce") or + (is_present(dict_, "nonce") and isinstance(dict_["nonce"], int)) deployed must be a bool: - not is_present(dict, "deployed") or - (is_present(dict, "deployed") and isinstance(dict["deployed"], bool)) + not is_present(dict_, "deployed") or + (is_present(dict_, "deployed") and isinstance(dict_["deployed"], bool)) attested must be a bool: - not is_present(dict, "attested") or - (is_present(dict, "attested") and isinstance(dict["attested"], bool)) + not is_present(dict_, "attested") or + (is_present(dict_, "attested") and isinstance(dict_["attested"], bool)) ## Other constraints ## diff --git a/reactivetools/rules/default/node.yaml b/reactivetools/rules/default/node.yaml index 0d15302..341da65 100644 --- a/reactivetools/rules/default/node.yaml +++ b/reactivetools/rules/default/node.yaml @@ -2,31 +2,31 @@ ## required keys ## type required: - is_present(dict, "type") + is_present(dict_, "type") name required: - is_present(dict, "type") + is_present(dict_, "type") ip_address required: - is_present(dict, "ip_address") + is_present(dict_, "ip_address") reactive_port required: - is_present(dict, "reactive_port") + is_present(dict_, "reactive_port") ## type of the required values ## type must be a str: - isinstance(dict["type"], str) + isinstance(dict_["type"], str) name must be a str: - isinstance(dict["name"], str) + isinstance(dict_["name"], str) ip_address must be a str: - isinstance(dict["ip_address"], str) + isinstance(dict_["ip_address"], str) reactive_port must be a positive u16: - is_positive_number(dict["reactive_port"]) + is_positive_number(dict_["reactive_port"]) deploy_port must be a positive u16: - not is_present(dict, "deploy_port") or - (is_present(dict, "deploy_port") and is_positive_number(dict["deploy_port"])) + not is_present(dict_, "deploy_port") or + (is_present(dict_, "deploy_port") and is_positive_number(dict_["deploy_port"])) diff --git a/reactivetools/rules/default/periodic_event.yaml b/reactivetools/rules/default/periodic_event.yaml index 4843f33..7a0d63d 100644 --- a/reactivetools/rules/default/periodic_event.yaml +++ b/reactivetools/rules/default/periodic_event.yaml @@ -2,25 +2,25 @@ ## required keys ## module required: - is_present(dict, "module") + is_present(dict_, "module") entry required: - is_present(dict, "entry") + is_present(dict_, "entry") frequency required: - is_present(dict, "frequency") + is_present(dict_, "frequency") ## type of the required values ## module must be a str: - isinstance(dict["module"], str) + isinstance(dict_["module"], str) entry must be a str: - isinstance(dict["entry"], str) + isinstance(dict_["entry"], str) frequency must be a positive u32: - is_positive_number(dict["frequency"], bits=32) + is_positive_number(dict_["frequency"], bits=32) established must be a bool: - not is_present(dict, "established") or - (is_present(dict, "established") and isinstance(dict["established"], bool)) + not is_present(dict_, "established") or + (is_present(dict_, "established") and isinstance(dict_["established"], bool)) diff --git a/reactivetools/tools.py b/reactivetools/tools.py index fb78d4c..8964fce 100644 --- a/reactivetools/tools.py +++ b/reactivetools/tools.py @@ -11,14 +11,15 @@ class ProcessRunError(Exception): - def __init__(self, args, result): + def __init__(self, cmd, args, result): super().__init__() + self.cmd = cmd self.args = args self.result = result def __str__(self): - return 'Command "{}" exited with code {}' \ - .format(' '.join(self.args), self.result) + return 'Command "{} {}" exited with code {}' \ + .format(self.cmd, ' '.join(self.args), self.result) class Error(Exception): @@ -67,7 +68,7 @@ async def run_async(program, *args, output_file=os.devnull, env=None): result = await process.wait() if result != 0: - raise ProcessRunError(args, result) + raise ProcessRunError(program, args, result) async def run_async_background(program, *args, env=None): @@ -94,7 +95,7 @@ async def run_async_output(program, *args, env=None): result = await process.wait() if result != 0: - raise ProcessRunError(args, result) + raise ProcessRunError(program, args, result) return out, err @@ -110,7 +111,7 @@ async def run_async_shell(*args, env=None): result = await process.wait() if result != 0: - raise ProcessRunError(args, result) + raise ProcessRunError("", args, result) def resolve_ip(host): From c32d1b85b509dd5e71a5f14ad9f32b6700526ddb Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 29 Nov 2021 15:32:13 +0100 Subject: [PATCH 65/81] default value for `files_dir` in trustzone modules --- reactivetools/modules/trustzone.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactivetools/modules/trustzone.py b/reactivetools/modules/trustzone.py index bb627c9..6cdaebf 100644 --- a/reactivetools/modules/trustzone.py +++ b/reactivetools/modules/trustzone.py @@ -53,7 +53,7 @@ def load(mod_dict, node_obj): deployed = mod_dict.get('deployed') nonce = mod_dict.get('nonce') attested = mod_dict.get('attested') - files_dir = mod_dict.get('files_dir') + files_dir = mod_dict.get('files_dir', ".") binary = mod_dict.get('binary') id_ = mod_dict.get('id') uuid = mod_dict.get('uuid') From c13c68aecb17a758eaafc6276200831f87606232 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Thu, 2 Dec 2021 14:25:36 +0000 Subject: [PATCH 66/81] Add action for PRs --- .github/workflows/pr.yml | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/pr.yml diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 0000000..302ce47 --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,42 @@ +name: Test +on: + pull_request: + workflow_dispatch: # Allow manual triggering + +env: + SGX_IMAGE: authexec/event-manager-sgx:latest + SANCUS_IMAGE: authexec/event-manager-sancus:latest + TRUSTZONE_IMAGE: authexec/event-manager-trustzone:latest + AESM_CLIENT_IMAGE: authexec/aesm-client:latest + MANAGER_IMAGE: authexec/attestation-manager + ADMIN_IMAGE: authexec/reactive-tools:latest + +jobs: + test-examples: + runs-on: ubuntu-latest + steps: + - + name: Checkout repository + run: git clone https://github.com/AuthenticExecution/examples.git + - + name: Pull images + run: | + docker pull ${{ env.ADMIN_IMAGE }} + ### Uncomment lines below if other Docker images are needed ### + #docker pull ${{ env.SGX_IMAGE }} + #docker pull ${{ env.MANAGER_IMAGE }}:native + #docker pull ${{ env.SANCUS_IMAGE }} + #docker pull ${{ env.TRUSTZONE_IMAGE }} + #docker pull ${{ env.AESM_CLIENT_IMAGE }} + #docker pull ${{ env.MANAGER_IMAGE }}:sgx + - + name: build button-led + timeout-minutes: 10 + run: | + cd examples/button-led + shopt -s expand_aliases + alias REACTIVE_TOOLS="docker run --rm --network=host -v $(pwd):/usr/src/app/ ${{ env.ADMIN_IMAGE }} reactive-tools" + REACTIVE_TOOLS --debug build descriptor-local.json + unalias REACTIVE_TOOLS + touch completed + From b30085e7ae13aa1e22942d1844189e85aaf98432 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Wed, 8 Dec 2021 09:42:05 +0000 Subject: [PATCH 67/81] update CI --- .github/workflows/ci.yml | 1 + .github/workflows/pr.yml | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3452985..ce33890 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,6 +25,7 @@ jobs: - name: Build id: build + if: ${{ github.event_name != 'pull_request' }} uses: gianlu33/Publish-Docker-Github-Action@main with: name: authexec/reactive-tools diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 302ce47..2206da6 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -16,12 +16,17 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout repository + uses: actions/checkout@master + - + name: Build image + run: | + docker build -t ${{ env.ADMIN_IMAGE }} . + - + name: Checkout examples run: git clone https://github.com/AuthenticExecution/examples.git - name: Pull images run: | - docker pull ${{ env.ADMIN_IMAGE }} ### Uncomment lines below if other Docker images are needed ### #docker pull ${{ env.SGX_IMAGE }} #docker pull ${{ env.MANAGER_IMAGE }}:native From 65a00d15fe078b2d44a0881c8573378068f229ff Mon Sep 17 00:00:00 2001 From: Sepideh Pouyanrad <67289122+sepidehpouyan@users.noreply.github.com> Date: Wed, 8 Dec 2021 11:56:37 +0100 Subject: [PATCH 68/81] Tzcodegen integration (#28) * integrating with tzcodegen * upgrade version * fix formatting warning * minor changes Co-authored-by: Gianluca Scopelliti --- reactivetools/modules/trustzone.py | 100 +++++++++++++++++++++-------- reactivetools/nodes/base.py | 3 +- reactivetools/nodes/trustzone.py | 25 +++++--- requirements.txt | 3 +- setup.py | 2 +- 5 files changed, 93 insertions(+), 40 deletions(-) diff --git a/reactivetools/modules/trustzone.py b/reactivetools/modules/trustzone.py index 6cdaebf..157763e 100644 --- a/reactivetools/modules/trustzone.py +++ b/reactivetools/modules/trustzone.py @@ -3,6 +3,7 @@ import hashlib import json import os +import tzcodegen from .base import Module from ..nodes import TrustZoneNode @@ -18,29 +19,30 @@ class Error(Exception): pass +class Object(): + pass + + COMPILER = "CROSS_COMPILE=arm-linux-gnueabihf-" PLATFORM = "PLATFORM=vexpress-qemu_virt" DEV_KIT = "TA_DEV_KIT_DIR=/optee/optee_os/out/arm/export-ta_arm32" -BUILD_CMD = "make -C {{}}/{{}} {} {} {} {{}} O={{}}".format( +BUILD_CMD = "make -C {{}} {} {} {} {{}} O={{}}".format( COMPILER, PLATFORM, DEV_KIT) class TrustZoneModule(Module): - def __init__(self, name, node, priority, deployed, nonce, attested, files_dir, - binary, id_, uuid, key, inputs, outputs, entrypoints): + def __init__(self, name, node, priority, deployed, nonce, attested, + binary, id_, uUID, key, data, folder): self.out_dir = os.path.join( glob.BUILD_DIR, "trustzone-{}".format(name)) super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) - self.files_dir = files_dir - self.id = id_ - self.uuid = uuid - self.inputs = inputs - self.outputs = outputs - self.entrypoints = entrypoints + self.id = id_ if id_ is not None else node.get_module_id() + self.folder = folder self.uuid_for_MK = "" + self.__generate_fut = tools.init_future(data, uUID) self.__build_fut = tools.init_future(binary) self.__key_fut = tools.init_future(key) self.__attest_fut = tools.init_future(attested if attested else None) @@ -53,16 +55,14 @@ def load(mod_dict, node_obj): deployed = mod_dict.get('deployed') nonce = mod_dict.get('nonce') attested = mod_dict.get('attested') - files_dir = mod_dict.get('files_dir', ".") binary = mod_dict.get('binary') id_ = mod_dict.get('id') - uuid = mod_dict.get('uuid') + uUID = mod_dict.get('uuid') key = parse_key(mod_dict.get('key')) - inputs = mod_dict.get('inputs') - outputs = mod_dict.get('outputs') - entrypoints = mod_dict.get('entrypoints') - return TrustZoneModule(name, node, priority, deployed, nonce, attested, files_dir, - binary, id_, uuid, key, inputs, outputs, entrypoints) + data = mod_dict.get('data') + folder = mod_dict.get('folder') or name + return TrustZoneModule(name, node, priority, deployed, nonce, attested, + binary, id_, uUID, key, data, folder) def dump(self): return { @@ -73,18 +73,41 @@ def dump(self): "deployed": self.deployed, "nonce": self.nonce, "attested": self.attested, - "files_dir": self.files_dir, "binary": dump(self.binary) if self.deployed else None, "id": self.id, - "uuid": self.uuid, + "uuid": dump(self.uUID) if self.deployed else None, "key": dump(self.key) if self.deployed else None, - "inputs": self.inputs, - "outputs": self.outputs, - "entrypoints": self.entrypoints + "data": dump(self.data) if self.deployed else None, + "folder": self.folder } # --- Properties --- # + @property + async def uUID(self): + _, uUID = await self.generate_code() + return uUID + + @property + async def data(self): + data, _ = await self.generate_code() + return data + + @property + async def inputs(self): + data = await self.data + return data["inputs"] + + @property + async def outputs(self): + data = await self.data + return data["outputs"] + + @property + async def entrypoints(self): + data = await self.data + return data["entrypoints"] + @property async def binary(self): return await self.build() @@ -124,7 +147,7 @@ async def get_input_id(self, input_): if isinstance(input_, int): return input_ - inputs = self.inputs + inputs = await self.inputs if input_ not in inputs: raise Error("Input not present in inputs") @@ -135,7 +158,7 @@ async def get_output_id(self, output): if isinstance(output, int): return output - outputs = self.outputs + outputs = await self.outputs if output not in outputs: raise Error("Output not present in outputs") @@ -146,7 +169,7 @@ async def get_entry_id(self, entry): if entry.isnumeric(): return int(entry) - entrypoints = self.entrypoints + entrypoints = await self.entrypoints if entry not in entrypoints: raise Error("Entry not present in entrypoints") @@ -164,16 +187,37 @@ def get_supported_nodes(): def get_supported_encryption(): return [Encryption.AES, Encryption.SPONGENT] - # --- Other methods --- # + # --- Other methods --- # + async def generate_code(self): + if self.__generate_fut is None: + self.__generate_fut = asyncio.ensure_future(self.__generate_code()) + + return await self.__generate_fut + + async def __generate_code(self): + args = Object() + + args.input = self.folder + args.output = self.out_dir + + args.print = None + + data, uUID = tzcodegen.generate(args) + logging.info("Generated code for module {}".format(self.name)) + + return data, uUID async def __build(self): - hexa = '%032x' % (self.uuid) + await self.generate_code() + + temp = await self.uUID + + hexa = '%032x' % (temp) self.uuid_for_MK = '%s-%s-%s-%s-%s' % ( hexa[:8], hexa[8:12], hexa[12:16], hexa[16:20], hexa[20:]) binary_name = "BINARY=" + self.uuid_for_MK - cmd = BUILD_CMD.format(self.files_dir, self.name, - binary_name, self.out_dir) + cmd = BUILD_CMD.format(self.out_dir, binary_name, self.out_dir) await tools.run_async_shell(cmd) diff --git a/reactivetools/nodes/base.py b/reactivetools/nodes/base.py index 6b870ac..2a5c8b5 100644 --- a/reactivetools/nodes/base.py +++ b/reactivetools/nodes/base.py @@ -288,7 +288,8 @@ async def request(self, connection, arg=None, output=None): resp_encrypted = response.message.payload plaintext = await connection.encryption.decrypt(connection.key, - tools.pack_int16(connection.nonce + 1), + tools.pack_int16( + connection.nonce + 1), resp_encrypted) if output is None: diff --git a/reactivetools/nodes/trustzone.py b/reactivetools/nodes/trustzone.py index df64c00..1e4230e 100644 --- a/reactivetools/nodes/trustzone.py +++ b/reactivetools/nodes/trustzone.py @@ -19,10 +19,11 @@ class Error(Exception): class TrustZoneNode(Node): - def __init__(self, name, ip_address, reactive_port, deploy_port, node_key): + def __init__(self, name, ip_address, reactive_port, deploy_port, node_key, module_id): super().__init__(name, ip_address, reactive_port, deploy_port, need_lock=False) self.node_key = node_key + self._moduleid = module_id if module_id else 1 @staticmethod def load(node_dict): @@ -31,8 +32,9 @@ def load(node_dict): reactive_port = node_dict['reactive_port'] deploy_port = node_dict.get('deploy_port') or reactive_port node_key = parse_key(node_dict['node_key']) + module_id = node_dict.get('module_id') - return TrustZoneNode(name, ip_address, reactive_port, deploy_port, node_key) + return TrustZoneNode(name, ip_address, reactive_port, deploy_port, node_key, module_id) def dump(self): return { @@ -41,7 +43,8 @@ def dump(self): "ip_address": str(self.ip_address), "reactive_port": self.reactive_port, "deploy_port": self.deploy_port, - "node_key": dump(self.node_key) + "node_key": dump(self.node_key), + "module_id": self._moduleid } async def deploy(self, module): @@ -53,8 +56,9 @@ async def deploy(self, module): async with aiofile.AIOFile(await module.binary, "rb") as f: file_data = await f.read() + temp = await module.uUID id_ = tools.pack_int16(module.id) - uid = module.uuid.to_bytes(16, 'big') + uid = temp.to_bytes(16, 'big') size = struct.pack('!I', len(file_data) + len(id_) + len(uid)) payload = size + id_ + uid + file_data @@ -109,9 +113,6 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): assert module.node is self assert encryption in module.get_supported_encryption() - module_id = await module.get_id() - module_key = await module.get_key() - io_id = await conn_io.get_index(module) nonce = module.nonce module.nonce += 1 @@ -121,9 +122,9 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): tools.pack_int16(io_id) + \ tools.pack_int16(nonce) - cipher = await encryption.AES.encrypt(module_key, ad, key) + cipher = await encryption.AES.encrypt(await module.get_key(), ad, key) - payload = tools.pack_int16(module_id) + \ + payload = tools.pack_int16(module.id) + \ tools.pack_int16(ReactiveEntrypoint.SetKey) + \ ad + \ cipher @@ -139,3 +140,9 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): conn_id, module.name, conn_io.name, self.name, binascii.hexlify(key).decode('ascii')) ) + + def get_module_id(self): + id_ = self._moduleid + self._moduleid += 1 + + return id_ diff --git a/requirements.txt b/requirements.txt index 80331e7..89dd749 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,5 @@ aiofile==3.3.3 pycryptodome==3.10.1 PyYAML==5.4.1 reactive-net -rust-sgx-gen \ No newline at end of file +rust-sgx-gen +tz-codegen \ No newline at end of file diff --git a/setup.py b/setup.py index 47d0716..bb550ce 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="reactive-tools", - version="0.4.0", + version="0.5.0", author="Gianluca Scopelliti", author_email="gianlu.1033@gmail.com", description="Deployment tools for the Authentic Execution framework", From 2adb16b247eee24f209f1d75d1e45efff609c29e Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti <96177233+gianlucascopelliti@users.noreply.github.com> Date: Fri, 17 Dec 2021 11:55:31 +0100 Subject: [PATCH 69/81] Updates for new sgx-attester (#29) * update attester call * removed unused import --- reactivetools/modules/sgx.py | 31 +++++++++++++++++-------------- setup.py | 2 +- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 870699a..936c23c 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -1,7 +1,6 @@ import asyncio import logging import os -import json import rustsgxgen from .base import Module @@ -13,6 +12,7 @@ from ..dumpers import * from ..loaders import * from ..manager import get_manager +from ..descriptor import DescriptorType # Apps ATTESTER = "sgx-attester" @@ -338,17 +338,21 @@ async def __convert_sign(self): return sgxs, sig async def __attest(self): - env = {} - env["SP_PRIVKEY"] = await self.get_ra_sp_priv_key() - env["IAS_CERT"] = await self.get_ias_root_certificate() - env["ENCLAVE_SETTINGS"] = self.ra_settings - env["ENCLAVE_SIG"] = await self.sig - env["ENCLAVE_HOST"] = str(self.node.ip_address) - env["ENCLAVE_PORT"] = str(self.port) - env["AESM_HOST"] = str(self.node.aesm_host) - env["AESM_PORT"] = str(self.node.aesm_port) - - out, _ = await tools.run_async_output(ATTESTER, env=env) + input_arg = {} + input_arg["sp_privkey"] = await self.get_ra_sp_priv_key() + input_arg["ias_cert"] = await self.get_ias_root_certificate() + input_arg["enclave_settings"] = self.ra_settings + input_arg["enclave_sig"] = await self.sig + input_arg["enclave_host"] = str(self.node.ip_address) + input_arg["enclave_port"] = str(self.port) + input_arg["aesm_host"] = str(self.node.aesm_host) + input_arg["aesm_port"] = str(self.node.aesm_port) + + input_file = tools.create_tmp(".yaml") + DescriptorType.YAML.dump(input_file, input_arg) + + args = [input_file] + out, _ = await tools.run_async_output(ATTESTER, *args) key_arr = eval(out) # from string to array key = bytes(key_arr) # from array to bytes @@ -370,8 +374,7 @@ async def __attest_manager(self): "config": self.ra_settings } data_file = tools.create_tmp(suffix=".json") - with open(data_file, "w") as f: - json.dump(data, f) + DescriptorType.JSON.dump(data_file, data) args = "--config {} --request attest-sgx --data {}".format( get_manager().config, data_file).split() diff --git a/setup.py b/setup.py index bb550ce..8e22ca5 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="reactive-tools", - version="0.5.0", + version="0.5.1", author="Gianluca Scopelliti", author_email="gianlu.1033@gmail.com", description="Deployment tools for the Authentic Execution framework", From 6219b567aa134fe0002ea6343fa53f49f69e2953 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti <96177233+gianlucascopelliti@users.noreply.github.com> Date: Fri, 17 Dec 2021 12:36:02 +0100 Subject: [PATCH 70/81] print stderr if run_async_output fails (#30) * print stderr if run_async_output fails * fix sgx attestation --- reactivetools/modules/sgx.py | 4 ++-- reactivetools/tools.py | 1 + setup.py | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 936c23c..36d3b76 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -344,9 +344,9 @@ async def __attest(self): input_arg["enclave_settings"] = self.ra_settings input_arg["enclave_sig"] = await self.sig input_arg["enclave_host"] = str(self.node.ip_address) - input_arg["enclave_port"] = str(self.port) + input_arg["enclave_port"] = self.port input_arg["aesm_host"] = str(self.node.aesm_host) - input_arg["aesm_port"] = str(self.node.aesm_port) + input_arg["aesm_port"] = self.node.aesm_port input_file = tools.create_tmp(".yaml") DescriptorType.YAML.dump(input_file, input_arg) diff --git a/reactivetools/tools.py b/reactivetools/tools.py index 8964fce..6bbbb47 100644 --- a/reactivetools/tools.py +++ b/reactivetools/tools.py @@ -95,6 +95,7 @@ async def run_async_output(program, *args, env=None): result = await process.wait() if result != 0: + logging.error(err) raise ProcessRunError(program, args, result) return out, err diff --git a/setup.py b/setup.py index 8e22ca5..b19309b 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="reactive-tools", - version="0.5.1", + version="0.5.2", author="Gianluca Scopelliti", author_email="gianlu.1033@gmail.com", description="Deployment tools for the Authentic Execution framework", From 87f2154608bdca61116f1ceb9e93b8a3e2593c26 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Thu, 3 Feb 2022 09:51:25 +0000 Subject: [PATCH 71/81] update Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index fdb0855..35ac9bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ FROM authexec/reactive-base:latest COPY . . -RUN pip install . \ +RUN python -m pip install . \ && rm -rf * From fada81ba75834bfd144fa23247770a9b6537f8a0 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 4 Apr 2022 14:19:43 +0000 Subject: [PATCH 72/81] change "ip_address" to "host" in descriptor --- reactivetools/nodes/native.py | 4 ++-- reactivetools/nodes/sancus.py | 4 ++-- reactivetools/nodes/sgx.py | 4 ++-- reactivetools/nodes/trustzone.py | 4 ++-- reactivetools/rules/default/module.yaml | 2 +- reactivetools/rules/default/node.yaml | 6 +++--- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/reactivetools/nodes/native.py b/reactivetools/nodes/native.py index 2aac646..3dcaad4 100644 --- a/reactivetools/nodes/native.py +++ b/reactivetools/nodes/native.py @@ -14,7 +14,7 @@ class NativeNode(SGXBase): @staticmethod def load(node_dict): name = node_dict['name'] - ip_address = tools.resolve_ip(node_dict['ip_address']) + ip_address = tools.resolve_ip(node_dict['host']) reactive_port = node_dict['reactive_port'] deploy_port = node_dict.get('deploy_port') or reactive_port module_id = node_dict.get('module_id') @@ -26,7 +26,7 @@ def dump(self): return { "type": self.type, "name": self.name, - "ip_address": str(self.ip_address), + "host": str(self.ip_address), "reactive_port": self.reactive_port, "deploy_port": self.deploy_port, "module_id": self._moduleid diff --git a/reactivetools/nodes/sancus.py b/reactivetools/nodes/sancus.py index 9d398ff..1548121 100644 --- a/reactivetools/nodes/sancus.py +++ b/reactivetools/nodes/sancus.py @@ -39,7 +39,7 @@ def load(node_dict): name = node_dict['name'] vendor_id = node_dict['vendor_id'] vendor_key = parse_key(node_dict['vendor_key']) - ip_address = tools.resolve_ip(node_dict['ip_address']) + ip_address = tools.resolve_ip(node_dict['host']) reactive_port = node_dict['reactive_port'] deploy_port = node_dict.get('deploy_port') or reactive_port @@ -50,7 +50,7 @@ def dump(self): return { "type": "sancus", "name": self.name, - "ip_address": str(self.ip_address), + "host": str(self.ip_address), "vendor_id": self.vendor_id, "vendor_key": dump(self.vendor_key), "reactive_port": self.reactive_port, diff --git a/reactivetools/nodes/sgx.py b/reactivetools/nodes/sgx.py index 24e20e9..f11f184 100644 --- a/reactivetools/nodes/sgx.py +++ b/reactivetools/nodes/sgx.py @@ -79,7 +79,7 @@ def __init__(self, name, ip_address, reactive_port, deploy_port, module_id, @staticmethod def load(node_dict): name = node_dict['name'] - ip_address = tools.resolve_ip(node_dict['ip_address']) + ip_address = tools.resolve_ip(node_dict['host']) reactive_port = node_dict['reactive_port'] deploy_port = node_dict.get('deploy_port') or reactive_port module_id = node_dict.get('module_id') @@ -93,7 +93,7 @@ def dump(self): return { "type": self.type, "name": self.name, - "ip_address": str(self.ip_address), + "host": str(self.ip_address), "reactive_port": self.reactive_port, "deploy_port": self.deploy_port, "module_id": self._moduleid, diff --git a/reactivetools/nodes/trustzone.py b/reactivetools/nodes/trustzone.py index 1e4230e..6691aba 100644 --- a/reactivetools/nodes/trustzone.py +++ b/reactivetools/nodes/trustzone.py @@ -28,7 +28,7 @@ def __init__(self, name, ip_address, reactive_port, deploy_port, node_key, modul @staticmethod def load(node_dict): name = node_dict['name'] - ip_address = tools.resolve_ip(node_dict['ip_address']) + ip_address = tools.resolve_ip(node_dict['host']) reactive_port = node_dict['reactive_port'] deploy_port = node_dict.get('deploy_port') or reactive_port node_key = parse_key(node_dict['node_key']) @@ -40,7 +40,7 @@ def dump(self): return { "type": "trustzone", "name": self.name, - "ip_address": str(self.ip_address), + "host": str(self.ip_address), "reactive_port": self.reactive_port, "deploy_port": self.deploy_port, "node_key": dump(self.node_key), diff --git a/reactivetools/rules/default/module.yaml b/reactivetools/rules/default/module.yaml index 6a90b8f..1a47966 100644 --- a/reactivetools/rules/default/module.yaml +++ b/reactivetools/rules/default/module.yaml @@ -5,7 +5,7 @@ type required: is_present(dict_, "type") name required: - is_present(dict_, "type") + is_present(dict_, "name") node required: is_present(dict_, "node") diff --git a/reactivetools/rules/default/node.yaml b/reactivetools/rules/default/node.yaml index 341da65..3b4ed32 100644 --- a/reactivetools/rules/default/node.yaml +++ b/reactivetools/rules/default/node.yaml @@ -5,10 +5,10 @@ type required: is_present(dict_, "type") name required: - is_present(dict_, "type") + is_present(dict_, "name") ip_address required: - is_present(dict_, "ip_address") + is_present(dict_, "host") reactive_port required: is_present(dict_, "reactive_port") @@ -22,7 +22,7 @@ name must be a str: isinstance(dict_["name"], str) ip_address must be a str: - isinstance(dict_["ip_address"], str) + isinstance(dict_["host"], str) reactive_port must be a positive u16: is_positive_number(dict_["reactive_port"]) From c21511b12b937838677ac305961b81e79d23a7a7 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Fri, 19 Aug 2022 07:24:27 -0700 Subject: [PATCH 73/81] implement Exit command --- reactivetools/cli.py | 28 ++++++++++++++++++++++ reactivetools/modules/base.py | 16 +++++++++++++ reactivetools/modules/native.py | 4 ++++ reactivetools/modules/sancus.py | 4 ++++ reactivetools/modules/sgx.py | 4 ++++ reactivetools/modules/trustzone.py | 4 ++++ reactivetools/nodes/base.py | 38 +++++++++++++++++++++++++++++- reactivetools/nodes/sancus.py | 2 +- setup.py | 2 +- 9 files changed, 99 insertions(+), 3 deletions(-) diff --git a/reactivetools/cli.py b/reactivetools/cli.py index cc22f23..e70b90c 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -229,6 +229,22 @@ def _parse_args(args): '--out', help='File to write the received result to') + # exit + exit_parser = subparsers.add_parser( + 'exit', + help='Send a request to terminate a module') + exit_parser.set_defaults(command_handler=_handle_exit) + exit_parser.add_argument( + 'config', + help='Specify configuration file to use') + exit_parser.add_argument( + '--module', + help='Name of the module to terminate', + required=True) + exit_parser.add_argument( + '--result', + help='File to write the resulting configuration to') + return parser.parse_args(args) @@ -361,6 +377,18 @@ def _handle_request(args): conf.cleanup() +def _handle_exit(args): + logging.info('Terminating %s', args.module) + + conf = config.load(args.config, args.manager) + module = conf.get_module(args.module) + + asyncio.get_event_loop().run_until_complete( + module.node.exit_module(module)) + + conf.cleanup() + + def main(raw_args=None): args = _parse_args(raw_args) _setup_logging(args) diff --git a/reactivetools/modules/base.py b/reactivetools/modules/base.py index b368965..f8e63b8 100644 --- a/reactivetools/modules/base.py +++ b/reactivetools/modules/base.py @@ -223,6 +223,22 @@ def get_supported_encryption(): `list`: list of Encryption objects """ + @staticmethod + @abstractmethod + def get_default_encryption(): + """ + ### Description ### + Static method. Get the preferred crypto library used by the module + The Encryption enum is defined in crypto.py + + e.g., SGXModule -> Encryption.AES + + ### Parameters ### + + ### Returns ### + `Encryption`: Encryption enum object + """ + # Default implementation of some functions. # Override them in the subclasses if you need a different implementation. diff --git a/reactivetools/modules/native.py b/reactivetools/modules/native.py index f01cace..6284a3f 100644 --- a/reactivetools/modules/native.py +++ b/reactivetools/modules/native.py @@ -206,6 +206,10 @@ def get_supported_nodes(): def get_supported_encryption(): return [Encryption.AES, Encryption.SPONGENT] + @staticmethod + def get_default_encryption(): + return Encryption.AES + # --- Static methods --- # # --- Others --- # diff --git a/reactivetools/modules/sancus.py b/reactivetools/modules/sancus.py index 321bf88..25f79a1 100644 --- a/reactivetools/modules/sancus.py +++ b/reactivetools/modules/sancus.py @@ -147,6 +147,10 @@ def get_supported_nodes(): def get_supported_encryption(): return [Encryption.SPONGENT] + @staticmethod + def get_default_encryption(): + return Encryption.SPONGENT + # --- Static methods --- # @staticmethod diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 36d3b76..49c0cb3 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -248,6 +248,10 @@ def get_supported_nodes(): def get_supported_encryption(): return [Encryption.AES, Encryption.SPONGENT] + @staticmethod + def get_default_encryption(): + return Encryption.AES + # --- Static methods --- # @staticmethod diff --git a/reactivetools/modules/trustzone.py b/reactivetools/modules/trustzone.py index 157763e..2c7eab7 100644 --- a/reactivetools/modules/trustzone.py +++ b/reactivetools/modules/trustzone.py @@ -187,6 +187,10 @@ def get_supported_nodes(): def get_supported_encryption(): return [Encryption.AES, Encryption.SPONGENT] + @staticmethod + def get_default_encryption(): + return Encryption.AES + # --- Other methods --- # async def generate_code(self): if self.__generate_fut is None: diff --git a/reactivetools/nodes/base.py b/reactivetools/nodes/base.py index 2a5c8b5..732bbd4 100644 --- a/reactivetools/nodes/base.py +++ b/reactivetools/nodes/base.py @@ -4,7 +4,7 @@ from abc import ABC, abstractmethod -from reactivenet import ReactiveCommand, Message, CommandMessage +from reactivenet import ReactiveCommand, Message, CommandMessage, ReactiveEntrypoint from .. import tools @@ -331,6 +331,42 @@ async def register_entrypoint(self, module, entry, frequency): module.name, entry, module_id, entry_id, self.name) ) + async def exit_module(self, module): + """ + ### Description ### + Coroutine. Sends a command to terminate the module + + ### Parameters ### + self: Node object + module (XXXModule): target module + + ### Returns ### + """ + assert module.node is self + module_id, module_key = \ + await asyncio.gather(module.get_id(), module.get_key()) + + ad = tools.pack_int16(module.nonce) + module.nonce += 1 + + cipher = await module.get_default_encryption().mac(module_key, ad) + + # The payload format is [sm_id, entry_id, 16 bit nonce, tag] + payload = tools.pack_int16(module_id) + \ + tools.pack_int16(ReactiveEntrypoint.Exit) + \ + ad + \ + cipher + + command = CommandMessage(ReactiveCommand.Call, + Message(payload), + self.ip_address, + self.reactive_port) + + await self._send_reactive_command( + command, + log='Sending exit command to module {}'.format(module.name) + ) + async def _send_reactive_command(self, command, log=None): """ ### Description ### diff --git a/reactivetools/nodes/sancus.py b/reactivetools/nodes/sancus.py index 1548121..c6c1b9c 100644 --- a/reactivetools/nodes/sancus.py +++ b/reactivetools/nodes/sancus.py @@ -145,7 +145,7 @@ async def set_key(self, module, conn_id, conn_io, encryption, key): module.nonce += 1 - cipher = await encryption.SPONGENT.encrypt(module_key, ad, key) + cipher = await Encryption.SPONGENT.encrypt(module_key, ad, key) # The payload format is [sm_id, entry_id, 16 bit nonce, index, wrapped(key), tag] # where the tag includes the nonce and the index. diff --git a/setup.py b/setup.py index b19309b..01dbcec 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="reactive-tools", - version="0.5.2", + version="0.5.3", author="Gianluca Scopelliti", author_email="gianlu.1033@gmail.com", description="Deployment tools for the Authentic Execution framework", From 0c48a95e4e752d4611d52bcab1e2af99aaf50e0e Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Thu, 25 Aug 2022 10:07:10 +0200 Subject: [PATCH 74/81] use default values for sgx-sign --- reactivetools/modules/sgx.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 49c0cb3..2e03496 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -23,7 +23,7 @@ BUILD_APP = "cargo build {{}} {{}} --target={} --manifest-path={{}}/Cargo.toml".format( SGX_TARGET) CONVERT_SGX = "ftxsgx-elf2sgxs {} --heap-size 0x20000 --stack-size 0x20000 --threads 4 {}" -SIGN_SGX = "sgxs-sign --key {} {} {} {} --xfrm 7/0 --isvprodid 0 --isvsvn 0" +SIGN_SGX = "sgxs-sign --key {} {} {} {}" # use default values class Object(): diff --git a/setup.py b/setup.py index 01dbcec..eb7271b 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="reactive-tools", - version="0.5.3", + version="0.5.4", author="Gianluca Scopelliti", author_email="gianlu.1033@gmail.com", description="Deployment tools for the Authentic Execution framework", From 45203088fd000d40548fcd5b8470941ad5d38189 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Thu, 25 Aug 2022 10:31:54 +0200 Subject: [PATCH 75/81] refactor exit -> disable --- reactivetools/cli.py | 24 ++++++++++++------------ reactivetools/nodes/base.py | 8 ++++---- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/reactivetools/cli.py b/reactivetools/cli.py index e70b90c..9b5e45b 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -229,19 +229,19 @@ def _parse_args(args): '--out', help='File to write the received result to') - # exit - exit_parser = subparsers.add_parser( - 'exit', - help='Send a request to terminate a module') - exit_parser.set_defaults(command_handler=_handle_exit) - exit_parser.add_argument( + # disable + disable_parser = subparsers.add_parser( + 'disable', + help='Send a request to disable a module') + disable_parser.set_defaults(command_handler=_handle_disable) + disable_parser.add_argument( 'config', help='Specify configuration file to use') - exit_parser.add_argument( + disable_parser.add_argument( '--module', - help='Name of the module to terminate', + help='Name of the module to disable', required=True) - exit_parser.add_argument( + disable_parser.add_argument( '--result', help='File to write the resulting configuration to') @@ -377,14 +377,14 @@ def _handle_request(args): conf.cleanup() -def _handle_exit(args): - logging.info('Terminating %s', args.module) +def _handle_disable(args): + logging.info('Disabling %s', args.module) conf = config.load(args.config, args.manager) module = conf.get_module(args.module) asyncio.get_event_loop().run_until_complete( - module.node.exit_module(module)) + module.node.disable_module(module)) conf.cleanup() diff --git a/reactivetools/nodes/base.py b/reactivetools/nodes/base.py index 732bbd4..7c7263a 100644 --- a/reactivetools/nodes/base.py +++ b/reactivetools/nodes/base.py @@ -331,10 +331,10 @@ async def register_entrypoint(self, module, entry, frequency): module.name, entry, module_id, entry_id, self.name) ) - async def exit_module(self, module): + async def disable_module(self, module): """ ### Description ### - Coroutine. Sends a command to terminate the module + Coroutine. Sends a command to disable the module ### Parameters ### self: Node object @@ -353,7 +353,7 @@ async def exit_module(self, module): # The payload format is [sm_id, entry_id, 16 bit nonce, tag] payload = tools.pack_int16(module_id) + \ - tools.pack_int16(ReactiveEntrypoint.Exit) + \ + tools.pack_int16(ReactiveEntrypoint.Disable) + \ ad + \ cipher @@ -364,7 +364,7 @@ async def exit_module(self, module): await self._send_reactive_command( command, - log='Sending exit command to module {}'.format(module.name) + log='Sending disable command to module {}'.format(module.name) ) async def _send_reactive_command(self, command, log=None): From 0e04b6567c1352829544e6d7c03f05b746704abc Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Thu, 25 Aug 2022 11:15:38 +0200 Subject: [PATCH 76/81] disable: encrypt instead of mac --- reactivetools/nodes/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactivetools/nodes/base.py b/reactivetools/nodes/base.py index 7c7263a..d59849f 100644 --- a/reactivetools/nodes/base.py +++ b/reactivetools/nodes/base.py @@ -349,7 +349,7 @@ async def disable_module(self, module): ad = tools.pack_int16(module.nonce) module.nonce += 1 - cipher = await module.get_default_encryption().mac(module_key, ad) + cipher = await module.get_default_encryption().encrypt(module_key, ad, ad) # The payload format is [sm_id, entry_id, 16 bit nonce, tag] payload = tools.pack_int16(module_id) + \ From d18a4abdc7cdd781cd6fc9a40447f168b322c0c2 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti <96177233+gianlucascopelliti@users.noreply.github.com> Date: Mon, 29 Aug 2022 13:42:13 +0200 Subject: [PATCH 77/81] Add support for module update & timing (#31) * add old_node parameter and clone function * add rule for old_node * build dir: use fixed file names, sancus: deploy multiple times from the same SM code * write update logic and fix * formatting * formatting pt.2 * disable first, connect later * recording time * upgrade version * fix code-check --- reactivetools/cli.py | 68 +++++++++++-- reactivetools/config.py | 127 ++++++++++++++++++++++-- reactivetools/connection.py | 26 ++++- reactivetools/manager.py | 3 +- reactivetools/modules/base.py | 24 ++++- reactivetools/modules/native.py | 36 +++++-- reactivetools/modules/sancus.py | 76 +++++++++++--- reactivetools/modules/sgx.py | 45 +++++++-- reactivetools/modules/trustzone.py | 32 ++++-- reactivetools/nodes/base.py | 2 +- reactivetools/nodes/sancus.py | 2 +- reactivetools/rules/default/module.yaml | 4 + reactivetools/tools.py | 12 +++ setup.py | 2 +- 14 files changed, 391 insertions(+), 68 deletions(-) diff --git a/reactivetools/cli.py b/reactivetools/cli.py index 9b5e45b..eba14b8 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -39,6 +39,10 @@ def _parse_args(args): '--manager', help='Offload the task to the Attestation Manager, if possible', action='store_true') + parser.add_argument( + '--timing', + help='Measure time between operations, for evaluation', + action='store_true') subparsers = parser.add_subparsers(dest='command') # Workaround a Python bug. See http://bugs.python.org/issue9253#msg186387 @@ -245,6 +249,22 @@ def _parse_args(args): '--result', help='File to write the resulting configuration to') + # update + update_parser = subparsers.add_parser( + 'update', + help='Update a module') + update_parser.set_defaults(command_handler=_handle_update) + update_parser.add_argument( + 'config', + help='Specify configuration file to use') + update_parser.add_argument( + '--module', + help='Name of the module to update', + required=True) + update_parser.add_argument( + '--result', + help='File to write the resulting configuration to') + return parser.parse_args(args) @@ -254,7 +274,7 @@ def _handle_deploy(args): glob.set_build_mode(args.mode) os.chdir(args.workspace) - conf = config.load(args.config, args.manager, args.output) + conf = config.load(args.config, args.manager, args.timing, args.output) conf.deploy(args.deploy_in_order, args.module) @@ -270,7 +290,7 @@ def _handle_build(args): glob.set_build_mode(args.mode) os.chdir(args.workspace) - conf = config.load(args.config, args.manager) + conf = config.load(args.config, args.manager, args.timing) conf.build(args.module) conf.cleanup() @@ -279,7 +299,7 @@ def _handle_build(args): def _handle_attest(args): logging.info('Attesting modules') - conf = config.load(args.config, args.manager, args.output) + conf = config.load(args.config, args.manager, args.timing, args.output) conf.attest(args.module) @@ -292,7 +312,7 @@ def _handle_attest(args): def _handle_connect(args): logging.info('Connecting modules') - conf = config.load(args.config, args.manager, args.output) + conf = config.load(args.config, args.manager, args.timing, args.output) conf.connect(args.connection) @@ -305,7 +325,7 @@ def _handle_connect(args): def _handle_register(args): logging.info('Registering periodic events') - conf = config.load(args.config, args.manager, args.output) + conf = config.load(args.config, args.manager, args.timing, args.output) conf.register_event(args.event) @@ -318,19 +338,23 @@ def _handle_register(args): def _handle_call(args): logging.info('Calling %s:%s', args.module, args.entry) - conf = config.load(args.config, args.manager) + conf = config.load(args.config, args.manager, args.timing) module = conf.get_module(args.module) + t1 = conf.record_time() + asyncio.get_event_loop().run_until_complete( module.node.call(module, args.entry, args.arg, args.out)) + conf.record_time(t1, "Call time for {}:{}".format(args.module, args.entry)) + conf.cleanup() def _handle_output(args): logging.info('Triggering output of connection %s', args.connection) - conf = config.load(args.config, args.manager) + conf = config.load(args.config, args.manager, args.timing) if args.connection.isnumeric(): conn = conf.get_connection_by_id(int(args.connection)) @@ -343,9 +367,13 @@ def _handle_output(args): if conn.to_input is None: raise Error("Not a output-input connection") + t1 = conf.record_time() + asyncio.get_event_loop().run_until_complete( conn.to_module.node.output(conn, args.arg)) + conf.record_time(t1, "Output time for {}".format(conn.name)) + conn.nonce += 1 out_file = args.result or args.config config.dump_config(conf, out_file) @@ -355,7 +383,7 @@ def _handle_output(args): def _handle_request(args): logging.info('Triggering request of connection %s', args.connection) - conf = config.load(args.config, args.manager) + conf = config.load(args.config, args.manager, args.timing) if args.connection.isnumeric(): conn = conf.get_connection_by_id(int(args.connection)) @@ -368,9 +396,13 @@ def _handle_request(args): if conn.to_handler is None: raise Error("Not a request-handler connection") + t1 = conf.record_time() + asyncio.get_event_loop().run_until_complete( conn.to_module.node.request(conn, args.arg, args.out)) + conf.record_time(t1, "Request time for {}".format(conn.name)) + conn.nonce += 2 out_file = args.result or args.config config.dump_config(conf, out_file) @@ -380,12 +412,30 @@ def _handle_request(args): def _handle_disable(args): logging.info('Disabling %s', args.module) - conf = config.load(args.config, args.manager) + conf = config.load(args.config, args.manager, args.timing) module = conf.get_module(args.module) + t1 = conf.record_time() + asyncio.get_event_loop().run_until_complete( module.node.disable_module(module)) + conf.record_time(t1, "Disable time for {}".format(module.name)) + + conf.cleanup() + + +def _handle_update(args): + logging.info('Updating %s', args.module) + + conf = config.load(args.config, args.manager, args.timing) + module = conf.get_module(args.module) + + conf.update(module) + + out_file = args.result or args.config + logging.info('Writing post-deployment configuration to %s', out_file) + config.dump_config(conf, out_file) conf.cleanup() diff --git a/reactivetools/config.py b/reactivetools/config.py index e9b299a..4092887 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -1,6 +1,7 @@ import os import asyncio import logging +import time from .modules import Module from .nodes import Node @@ -43,6 +44,24 @@ def get_module(self, name): raise Error('No module with name {}'.format(name)) + def replace_module(self, module): + for i in range(len(self.modules)): + m = self.modules[i] + if m.name == module.name: + self.modules[i] = module + return + + raise Error('No module with name {}'.format(module.name)) + + def replace_connection(self, conn): + for i in range(len(self.connections)): + c = self.connections[i] + if c.id == conn.id: + self.connections[i] = conn + return + + raise Error('No connection with id {}'.format(conn.id)) + def get_connection_by_id(self, id_): for c in self.connections: if c.id == id_: @@ -64,6 +83,33 @@ def get_periodic_event(self, name): raise Error('No periodic event with name {}'.format(name)) + async def __deploy_module(self, module): + t1 = self.record_time() + await module.build() + t2 = self.record_time(t1, "Build time for {}".format(module.name)) + await module.deploy() + self.record_time(t2, "Deploy time for {}".format(module.name)) + + async def __build_module(self, module): + t1 = self.record_time() + await module.build() + self.record_time(t1, "Build time for {}".format(module.name)) + + async def __attest_module(self, module): + t1 = self.record_time() + await module.attest() + self.record_time(t1, "Attest time for {}".format(module.name)) + + async def __establish_connection(self, conn): + t1 = self.record_time() + await conn.establish() + self.record_time(t1, "Establish time for {}".format(conn.name)) + + async def __register_event(self, event): + t1 = self.record_time() + await event.register() + self.record_time(t1, "Register time for {}".format(event.name)) + async def deploy_priority_modules(self): priority_modules = [ sm for sm in self.modules if sm.priority is not None and not sm.deployed] @@ -72,7 +118,7 @@ async def deploy_priority_modules(self): logging.debug("Priority modules: {}".format( [sm.name for sm in priority_modules])) for module in priority_modules: - await module.deploy() + await self.__deploy_module(module) async def deploy_async(self, in_order, module): # If module is not None, deploy just this one @@ -82,7 +128,7 @@ async def deploy_async(self, in_order, module): raise Error('Module {} already deployed'.format(module)) logging.info("Deploying {}".format(module)) - await mod.deploy() + await self.__deploy_module(mod) return # First, deploy all modules that have a priority (in order of priority) @@ -92,7 +138,7 @@ async def deploy_async(self, in_order, module): if in_order: for m in self.modules: if not m.deployed: - await m.deploy() + await self.__deploy_module(m) # Otherwise, deploy all modules concurrently else: lst = self.modules @@ -101,7 +147,7 @@ def l_filter(x): return not x.deployed def l_map(x): - return x.deploy() + return self.__deploy_module(x) futures = map(l_map, filter(l_filter, lst)) await asyncio.gather(*futures) @@ -112,7 +158,7 @@ def deploy(self, in_order, module): async def build_async(self, module): lst = self.modules if not module else [self.get_module(module)] - futures = [module.build() for module in lst] + futures = [self.__build_module(module) for module in lst] await asyncio.gather(*futures) def build(self, module): @@ -128,7 +174,7 @@ async def attest_async(self, module): logging.info("To attest: {}".format([x.name for x in to_attest])) - futures = map(lambda x: x.attest(), to_attest) + futures = map(self.__attest_module, to_attest) await asyncio.gather(*futures) def attest(self, module): @@ -147,7 +193,7 @@ async def connect_async(self, conn): logging.info("To connect: {}".format([x.name for x in to_connect])) - futures = map(lambda x: x.establish(), to_connect) + futures = map(self.__establish_connection, to_connect) await asyncio.gather(*futures) def connect(self, conn): @@ -164,7 +210,7 @@ async def register_async(self, event): logging.info("To register: {}".format([x.name for x in to_register])) - futures = map(lambda x: x.register(), to_register) + futures = map(self.__register_event, to_register) await asyncio.gather(*futures) def register_event(self, event): @@ -178,8 +224,66 @@ async def cleanup_async(self): def cleanup(self): asyncio.get_event_loop().run_until_complete(self.cleanup_async()) + async def update_async(self, module): + if not module.deployed: + raise Error("Module is not deployed yet.") + + t1 = self.record_time() + + # clone module + new_module = module.clone() + + logging.info("Deploying and attesting new {}".format(module)) + + await self.__deploy_module(new_module) + await self.__attest_module(new_module) + + logging.info("Disabling old module") + await module.old_node.disable_module(module) + + # TODO transfer state? + + # re-establish all connections that involve this module + connections = [conn for conn in self.connections + if module in (conn.from_module, conn.to_module)] + + for conn in connections: + logging.info("Re-establishing connection {} with id {}".format(conn.name, conn.id)) + new_conn = conn.clone() -def load(file_name, manager, output_type=None): + if new_conn.from_module == module: + new_conn.from_module = new_module + if new_conn.to_module == module: + new_conn.to_module = new_module + + await self.__establish_connection(new_conn) + self.replace_connection(new_conn) + + # update in conf + new_module.old_node = new_module.node + self.replace_module(new_module) + + logging.info("Update complete") + self.record_time(t1, "Update time for {}".format(new_module.name)) + + def update(self, module): + asyncio.get_event_loop().run_until_complete(self.update_async(module)) + + def record_time(self, previous=None, msg=None): + if not self.measure_time: + return None + + t = time.time() + + if not previous: + return t + + print("{}: {:.3f}".format(msg, t - previous)) + + return t + + +def load(file_name, manager, measure_time, output_type=None): config = Config() desc_type = DescriptorType.from_str(output_type) @@ -190,6 +294,8 @@ def load(file_name, manager, output_type=None): # - the same type of the input file otherwise config.output_type = desc_type or input_type + config.measure_time = measure_time + if manager: _load_manager(contents['manager'], config) @@ -234,7 +340,8 @@ def _load_module(mod_dict, config): "modules", module_rules[mod_dict['type']]), mod_dict) node = config.get_node(mod_dict['node']) - module = module_funcs[mod_dict['type']](mod_dict, node) + old_node = config.get_node(mod_dict.get('old_node', mod_dict['node'])) + module = module_funcs[mod_dict['type']](mod_dict, node, old_node) if node.__class__ not in module.get_supported_nodes(): raise Error("Node {} ({}) does not support module {} ({})".format( diff --git a/reactivetools/connection.py b/reactivetools/connection.py index 95c7e7d..bafecf2 100644 --- a/reactivetools/connection.py +++ b/reactivetools/connection.py @@ -56,9 +56,9 @@ def __init__(self, name, from_module, from_output, from_request, to_module, self.to_input = to_input self.to_handler = to_handler self.encryption = encryption - self.key = key + self.key = key or Connection.generate_key(from_module, to_module, encryption) self.id = id_ - self.nonce = nonce + self.nonce = nonce or 0 self.established = established if direct: @@ -83,9 +83,8 @@ def load(conn_dict, config): to_input = conn_dict.get('to_input') to_handler = conn_dict.get('to_handler') encryption = Encryption.from_str(conn_dict['encryption']) - key = parse_key(conn_dict.get('key')) or Connection.generate_key( - from_module, to_module, encryption) # auto-generated key - nonce = conn_dict.get('nonce') or 0 + key = parse_key(conn_dict.get('key')) + nonce = conn_dict.get('nonce') id_ = conn_dict.get('id') established = conn_dict.get('established') @@ -121,6 +120,23 @@ def dump(self): "established": self.established } + def clone(self): + return Connection( + self.name, + self.from_module, + self.from_output, + self.from_request, + self.to_module, + self.to_input, + self.to_handler, + self.encryption, + None, + self.id, + self.direct, + None, + False + ) + async def establish(self): if self.established: return diff --git a/reactivetools/manager.py b/reactivetools/manager.py index 148a846..88d1b3f 100644 --- a/reactivetools/manager.py +++ b/reactivetools/manager.py @@ -1,4 +1,5 @@ import asyncio +import os from . import tools from . import glob @@ -53,7 +54,7 @@ async def get_sp_pubkey(self): self.config).split() out, _ = await tools.run_async_output(glob.ATTMAN_CLI, *args) - self.sp_pubkey = tools.create_tmp(suffix=".pem") + self.sp_pubkey = os.path.join(glob.BUILD_DIR, "manager-sp_pubkey.pem") with open(self.sp_pubkey, "wb") as f: f.write(out) diff --git a/reactivetools/modules/base.py b/reactivetools/modules/base.py index f8e63b8..9a7711d 100644 --- a/reactivetools/modules/base.py +++ b/reactivetools/modules/base.py @@ -10,7 +10,8 @@ class Error(Exception): class Module(ABC): - def __init__(self, name, node, priority, deployed, nonce, attested, out_dir): + def __init__(self, name, node, old_node, priority, deployed, nonce, + attested, out_dir): """ Generic attributes common to all Module subclasses @@ -25,6 +26,7 @@ def __init__(self, name, node, priority, deployed, nonce, attested, out_dir): """ self.name = name self.node = node + self.old_node = old_node self.priority = priority self.deployed = deployed self.nonce = 0 if nonce is None else nonce @@ -43,7 +45,7 @@ def __init__(self, name, node, priority, deployed, nonce, attested, out_dir): @staticmethod @abstractmethod - def load(mod_dict, node_obj): + def load(mod_dict, node_obj, old_node_obj): """ ### Description ### Creates a XXXModule object from a dict @@ -53,6 +55,8 @@ def load(mod_dict, node_obj): ### Parameters ### mod_dict (dict): dictionary containing the definition of the module node_obj (XXXNode): object where the module belongs to + old_node_obj (XXXNode): object where the old module belongs to. + only used during module updates! ### Returns ### An instance of the XXXModule class @@ -75,6 +79,22 @@ def dump(self): `dict`: description of the object """ + @abstractmethod + def clone(self): + """ + ### Description ### + Coroutine. Create a copy of the current module, but in a clean state, + i.e., not deployed nor attested + + The + + ### Parameters ### + self: Module object + + ### Returns ### + `Module`: copy of the Module object + """ + @abstractmethod async def build(self): """ diff --git a/reactivetools/modules/native.py b/reactivetools/modules/native.py index 6284a3f..cecf2d1 100644 --- a/reactivetools/modules/native.py +++ b/reactivetools/modules/native.py @@ -26,10 +26,11 @@ class Error(Exception): class NativeModule(Module): - def __init__(self, name, node, priority, deployed, nonce, attested, features, - id_, binary, key, data, folder, port): + def __init__(self, name, node, old_node, priority, deployed, nonce, attested, + features, id_, binary, key, data, folder, port): self.out_dir = os.path.join(glob.BUILD_DIR, "native-{}".format(folder)) - super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) + super().__init__(name, node, old_node, priority, deployed, nonce, + attested, self.out_dir) self.__generate_fut = tools.init_future(data, key) self.__build_fut = tools.init_future(binary) @@ -40,9 +41,10 @@ def __init__(self, name, node, priority, deployed, nonce, attested, features, self.folder = folder @staticmethod - def load(mod_dict, node_obj): + def load(mod_dict, node_obj, old_node_obj): name = mod_dict['name'] node = node_obj + old_node = old_node_obj priority = mod_dict.get('priority') deployed = mod_dict.get('deployed') nonce = mod_dict.get('nonce') @@ -55,14 +57,16 @@ def load(mod_dict, node_obj): folder = mod_dict.get('folder') or name port = mod_dict.get('port') - return NativeModule(name, node, priority, deployed, nonce, attested, - features, id_, binary, key, data, folder, port) + return NativeModule(name, node, old_node, priority, deployed, nonce, + attested, features, id_, binary, key, data, folder, + port) def dump(self): return { "type": "native", "name": self.name, "node": self.node.name, + "old_node": self.old_node.name, "priority": self.priority, "deployed": self.deployed, "nonce": self.nonce, @@ -77,6 +81,24 @@ def dump(self): "port": self.port } + def clone(self): + return NativeModule( + self.name, + self.node, + self.old_node, + self.priority, + None, + None, + None, + self.features, + None, + None, + None, + None, + self.folder, + None + ) + # --- Properties --- # @property @@ -266,7 +288,7 @@ async def __attest_manager(self): "em_port": self.node.reactive_port, "key": list(await self.key) } - data_file = tools.create_tmp(suffix=".json") + data_file = os.path.join(self.out_dir, "attest.json") with open(data_file, "w") as f: json.dump(data, f) diff --git a/reactivetools/modules/sancus.py b/reactivetools/modules/sancus.py index 25f79a1..d3fad63 100644 --- a/reactivetools/modules/sancus.py +++ b/reactivetools/modules/sancus.py @@ -3,6 +3,7 @@ from collections import namedtuple import json import os +import ntpath import yaml from elftools.elf import elffile @@ -22,14 +23,17 @@ class Error(Exception): class SancusModule(Module): - def __init__(self, name, node, priority, deployed, nonce, attested, files, - cflags, ldflags, binary, id_, symtab, key): + def __init__(self, name, node, old_node, priority, deployed, nonce, + attested, files, cflags, ldflags, binary, id_, symtab, key, + deploy_name): self.out_dir = os.path.join(glob.BUILD_DIR, "sancus-{}".format(name)) - super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) + super().__init__(name, node, old_node, priority, deployed, nonce, + attested, self.out_dir) self.files = files self.cflags = cflags self.ldflags = ldflags + self.deploy_name = deploy_name or name self.__build_fut = tools.init_future(binary) self.__deploy_fut = tools.init_future(id_, symtab) @@ -37,9 +41,10 @@ def __init__(self, name, node, priority, deployed, nonce, attested, files, self.__attest_fut = tools.init_future(attested if attested else None) @staticmethod - def load(mod_dict, node_obj): + def load(mod_dict, node_obj, old_node_obj): name = mod_dict['name'] node = node_obj + old_node = old_node_obj priority = mod_dict.get('priority') deployed = mod_dict.get('deployed') nonce = mod_dict.get('nonce') @@ -51,15 +56,18 @@ def load(mod_dict, node_obj): id_ = mod_dict.get('id') symtab = parse_file_name(mod_dict.get('symtab')) key = parse_key(mod_dict.get('key')) + deploy_name = mod_dict.get('deploy_name') - return SancusModule(name, node, priority, deployed, nonce, attested, - files, cflags, ldflags, binary, id_, symtab, key) + return SancusModule(name, node, old_node, priority, deployed, nonce, + attested, files, cflags, ldflags, binary, id_, + symtab, key, deploy_name) def dump(self): return { "type": "sancus", "name": self.name, "node": self.node.name, + "old_node": self.old_node.name, "priority": self.priority, "deployed": self.deployed, "nonce": self.nonce, @@ -70,9 +78,29 @@ def dump(self): "binary": dump(self.binary) if self.deployed else None, "id": dump(self.id) if self.deployed else None, "symtab": dump(self.symtab) if self.deployed else None, - "key": dump(self.key) if self.deployed else None + "key": dump(self.key) if self.deployed else None, + "deploy_name": self.deploy_name } + def clone(self): + return SancusModule( + self.name, + self.node, + self.old_node, + self.priority, + None, + None, + None, + self.files, + self.cflags, + self.ldflags, + None, + None, + None, + None, + tools.increment_value_in_string(self.deploy_name) + ) + # --- Properties --- # @property @@ -181,9 +209,28 @@ async def __build(self): logging.info('Building module %s from %s', self.name, ', '.join(map(str, self.files))) + # clean out_dir first + for f in os.listdir(self.out_dir): + os.remove(os.path.join(self.out_dir, f)) + + # copy files to out_dir, replacing the name if needed + parsed_files = [] + for sf in self.files: + with open(sf, "r") as f: + f_data = f.read() + + f_data = f_data.replace("{name}", self.deploy_name) + pf = os.path.join(self.out_dir, ntpath.basename(sf)) + + with open(pf, "w") as f: + f.write(f_data) + + parsed_files.append(pf) + + # build config = self._get_build_config(tools.get_verbosity()) objects = {str(p): tools.create_tmp( - suffix='.o', dir_name=self.out_dir) for p in self.files} + suffix='.o', dir_name=self.out_dir) for p in parsed_files} cflags = config.cflags + self.cflags @@ -218,7 +265,7 @@ async def __prepare_config_file(self, ldflags): # we create a new file with empty config config_file = tools.create_tmp( suffix='.yaml', dir_name=self.out_dir) - config = {self.name: []} + config = {self.deploy_name: []} # remove old flag if present, append new one ldflags = list( @@ -227,7 +274,7 @@ async def __prepare_config_file(self, ldflags): # override num_connections if the value is present and is < self.connections if "num_connections" not in config or config["num_connections"] < self.connections: - config[self.name].append({"num_connections": self.connections}) + config[self.deploy_name].append({"num_connections": self.connections}) # save changes with open(config_file, "w") as f: @@ -239,7 +286,7 @@ async def _calculate_key(self): linked_binary = await self.__link() args = "{} --gen-sm-key {} --key {}".format( - linked_binary, self.name, dump(self.node.vendor_key) + linked_binary, self.deploy_name, dump(self.node.vendor_key) ).split() key, _ = await tools.run_async_output("sancus-crypto", *args) @@ -258,7 +305,7 @@ async def __link(self): return linked_binary async def _get_io_id(self, io_name): - sym_name = '__sm_{}_io_{}_idx'.format(self.name, io_name) + sym_name = '__sm_{}_io_{}_idx'.format(self.deploy_name, io_name) symbol = await self.__get_symbol(sym_name) if symbol is None: @@ -268,7 +315,7 @@ async def _get_io_id(self, io_name): return symbol async def _get_entry_id(self, entry_name): - sym_name = '__sm_{}_entry_{}_idx'.format(self.name, entry_name) + sym_name = '__sm_{}_entry_{}_idx'.format(self.deploy_name, entry_name) symbol = await self.__get_symbol(sym_name) if symbol is None: @@ -300,7 +347,7 @@ async def __attest_manager(self): "em_port": self.node.reactive_port, "key": list(await self.key) } - data_file = tools.create_tmp(suffix=".json") + data_file = os.path.join(self.out_dir, "attest.json") with open(data_file, "w") as f: json.dump(data, f) @@ -318,5 +365,4 @@ async def __attest_manager(self): self.name, key_arr)) self.attested = True - _BuildConfig = namedtuple('_BuildConfig', ['cc', 'cflags', 'ld', 'ldflags']) diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 2e03496..031206b 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -37,11 +37,12 @@ class Error(Exception): class SGXModule(Module): sp_lock = asyncio.Lock() - def __init__(self, name, node, priority, deployed, nonce, attested, vendor_key, - ra_settings, features, id_, binary, key, sgxs, signature, data, - folder, port): + def __init__(self, name, node, old_node, priority, deployed, nonce, attested, + vendor_key, ra_settings, features, id_, binary, key, sgxs, + signature, data, folder, port): self.out_dir = os.path.join(glob.BUILD_DIR, "sgx-{}".format(folder)) - super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) + super().__init__(name, node, old_node, priority, deployed, nonce, + attested, self.out_dir) self.__generate_fut = tools.init_future(data) self.__build_fut = tools.init_future(binary) @@ -58,9 +59,10 @@ def __init__(self, name, node, priority, deployed, nonce, attested, vendor_key, self.folder = folder @staticmethod - def load(mod_dict, node_obj): + def load(mod_dict, node_obj, old_node_obj): name = mod_dict['name'] node = node_obj + old_node = old_node_obj priority = mod_dict.get('priority') deployed = mod_dict.get('deployed') nonce = mod_dict.get('nonce') @@ -77,15 +79,16 @@ def load(mod_dict, node_obj): folder = mod_dict.get('folder') or name port = mod_dict.get('port') - return SGXModule(name, node, priority, deployed, nonce, attested, vendor_key, - settings, features, id_, binary, key, sgxs, signature, data, folder, - port) + return SGXModule(name, node, old_node, priority, deployed, nonce, + attested, vendor_key, settings, features, id_, binary, + key, sgxs, signature, data, folder, port) def dump(self): return { "type": "sgx", "name": self.name, "node": self.node.name, + "old_node": self.old_node.name, "priority": self.priority, "deployed": self.deployed, "nonce": self.nonce, @@ -103,6 +106,28 @@ def dump(self): "port": self.port } + def clone(self): + return SGXModule( + self.name, + self.node, + self.old_node, + self.priority, + None, + None, + None, + self.vendor_key, + self.ra_settings, + self.features, + None, + None, + None, + None, + None, + None, + self.folder, + None + ) + # --- Properties --- # @property @@ -352,7 +377,7 @@ async def __attest(self): input_arg["aesm_host"] = str(self.node.aesm_host) input_arg["aesm_port"] = self.node.aesm_port - input_file = tools.create_tmp(".yaml") + input_file = os.path.join(self.out_dir, "attest.yaml") DescriptorType.YAML.dump(input_file, input_arg) args = [input_file] @@ -377,7 +402,7 @@ async def __attest_manager(self): "sigstruct": await self.sig, "config": self.ra_settings } - data_file = tools.create_tmp(suffix=".json") + data_file = os.path.join(self.out_dir, "attest.json") DescriptorType.JSON.dump(data_file, data) args = "--config {} --request attest-sgx --data {}".format( diff --git a/reactivetools/modules/trustzone.py b/reactivetools/modules/trustzone.py index 2c7eab7..6fa092a 100644 --- a/reactivetools/modules/trustzone.py +++ b/reactivetools/modules/trustzone.py @@ -31,11 +31,12 @@ class Object(): class TrustZoneModule(Module): - def __init__(self, name, node, priority, deployed, nonce, attested, + def __init__(self, name, node, old_node, priority, deployed, nonce, attested, binary, id_, uUID, key, data, folder): self.out_dir = os.path.join( glob.BUILD_DIR, "trustzone-{}".format(name)) - super().__init__(name, node, priority, deployed, nonce, attested, self.out_dir) + super().__init__(name, node, old_node, priority, deployed, nonce, + attested, self.out_dir) self.id = id_ if id_ is not None else node.get_module_id() self.folder = folder @@ -48,9 +49,10 @@ def __init__(self, name, node, priority, deployed, nonce, attested, self.__attest_fut = tools.init_future(attested if attested else None) @staticmethod - def load(mod_dict, node_obj): + def load(mod_dict, node_obj, old_node_obj): name = mod_dict['name'] node = node_obj + old_node = old_node_obj priority = mod_dict.get('priority') deployed = mod_dict.get('deployed') nonce = mod_dict.get('nonce') @@ -61,14 +63,15 @@ def load(mod_dict, node_obj): key = parse_key(mod_dict.get('key')) data = mod_dict.get('data') folder = mod_dict.get('folder') or name - return TrustZoneModule(name, node, priority, deployed, nonce, attested, - binary, id_, uUID, key, data, folder) + return TrustZoneModule(name, node, old_node, priority, deployed, nonce, + attested, binary, id_, uUID, key, data, folder) def dump(self): return { "type": "trustzone", "name": self.name, "node": self.node.name, + "old_node": self.old_node.name, "priority": self.priority, "deployed": self.deployed, "nonce": self.nonce, @@ -81,6 +84,23 @@ def dump(self): "folder": self.folder } + def clone(self): + return TrustZoneModule( + self.name, + self.node, + self.old_node, + self.priority, + None, + None, + None, + None, + None, + None, + None, + None, + self.folder + ) + # --- Properties --- # @property @@ -253,7 +273,7 @@ async def __attest_manager(self): "em_port": self.node.reactive_port, "key": list(await self.key) } - data_file = tools.create_tmp(suffix=".json") + data_file = os.path.join(self.out_dir, "attest.json") with open(data_file, "w") as f: json.dump(data, f) diff --git a/reactivetools/nodes/base.py b/reactivetools/nodes/base.py index d59849f..cfa38fe 100644 --- a/reactivetools/nodes/base.py +++ b/reactivetools/nodes/base.py @@ -342,7 +342,7 @@ async def disable_module(self, module): ### Returns ### """ - assert module.node is self + assert module.old_node is self module_id, module_key = \ await asyncio.gather(module.get_id(), module.get_key()) diff --git a/reactivetools/nodes/sancus.py b/reactivetools/nodes/sancus.py index c6c1b9c..4ebe35d 100644 --- a/reactivetools/nodes/sancus.py +++ b/reactivetools/nodes/sancus.py @@ -67,7 +67,7 @@ async def deploy(self, module): file_data = await f.read() # The packet format is [NAME \0 VID ELF_FILE] - payload = module.name.encode('ascii') + b'\0' + \ + payload = module.deploy_name.encode('ascii') + b'\0' + \ tools.pack_int16(self.vendor_id) + \ file_data diff --git a/reactivetools/rules/default/module.yaml b/reactivetools/rules/default/module.yaml index 1a47966..fdde7cd 100644 --- a/reactivetools/rules/default/module.yaml +++ b/reactivetools/rules/default/module.yaml @@ -21,6 +21,10 @@ name must be a str: node must be a str: isinstance(dict_["node"], str) +old_node must be a str: + not is_present(dict_, "old_node") or + (is_present(dict_, "old_node") and isinstance(dict_["old_node"], str)) + priority must be an int: not is_present(dict_, "priority") or (is_present(dict_, "priority") and isinstance(dict_["priority"], int)) diff --git a/reactivetools/tools.py b/reactivetools/tools.py index 6bbbb47..3aceaa7 100644 --- a/reactivetools/tools.py +++ b/reactivetools/tools.py @@ -6,6 +6,7 @@ from enum import Enum import socket import ipaddress +import re from . import glob @@ -170,3 +171,14 @@ def pack_int32(i): def unpack_int32(i): return struct.unpack('!I', i)[0] + +def increment_value_in_string(s): + matches = re.findall(r"^(.+)([0-9]+)$", s) + + if not matches: + return s + "_2" + + name = matches[0][0] + val = int(matches[0][1]) + + return "{}{}".format(name, val + 1) diff --git a/setup.py b/setup.py index eb7271b..cfa5780 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="reactive-tools", - version="0.5.4", + version="0.6.0", author="Gianluca Scopelliti", author_email="gianlu.1033@gmail.com", description="Deployment tools for the Authentic Execution framework", From 756da642c7ed0c7795def35b1b989b3656c7afe9 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Mon, 29 Aug 2022 04:49:42 -0700 Subject: [PATCH 78/81] add time measurements for update --- reactivetools/config.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/reactivetools/config.py b/reactivetools/config.py index 4092887..40b9fe5 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -244,6 +244,8 @@ async def update_async(self, module): # TODO transfer state? # re-establish all connections that involve this module + t2 = self.record_time() + connections = [conn for conn in self.connections if module in (conn.from_module, conn.to_module)] @@ -259,6 +261,8 @@ async def update_async(self, module): await self.__establish_connection(new_conn) self.replace_connection(new_conn) + self.record_time(t2, "Connect time for {}".format(new_module.name)) + # update in conf new_module.old_node = new_module.node self.replace_module(new_module) From 40ff76417aafb3447c6393d9786a6e2571ffd7d8 Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Tue, 30 Aug 2022 02:11:04 -0700 Subject: [PATCH 79/81] TZ: three-level hierarchy for keys, like Sancus --- reactivetools/crypto.py | 8 ++++++++ reactivetools/modules/trustzone.py | 13 ++++--------- reactivetools/nodes/trustzone.py | 26 +++++++++++++++++++++----- setup.py | 2 +- 4 files changed, 34 insertions(+), 15 deletions(-) diff --git a/reactivetools/crypto.py b/reactivetools/crypto.py index a59eeee..fc6829a 100644 --- a/reactivetools/crypto.py +++ b/reactivetools/crypto.py @@ -1,3 +1,4 @@ +import hashlib from enum import IntEnum from Crypto.Cipher import AES @@ -109,3 +110,10 @@ async def decrypt_spongent(key, ad, data=[]): raise Error("Decryption failed") return plain + +def hash_sha256(data, size=32): + if size > 32: + raise Error( + "SHA256 cannot compute digests with length {}".format(size)) + + return hashlib.sha256(data).digest()[:size] diff --git a/reactivetools/modules/trustzone.py b/reactivetools/modules/trustzone.py index 6fa092a..2ba6780 100644 --- a/reactivetools/modules/trustzone.py +++ b/reactivetools/modules/trustzone.py @@ -1,6 +1,5 @@ import logging import asyncio -import hashlib import json import os import tzcodegen @@ -9,7 +8,7 @@ from ..nodes import TrustZoneNode from .. import tools from .. import glob -from ..crypto import Encryption +from ..crypto import Encryption, hash_sha256 from ..dumpers import * from ..loaders import * from ..manager import get_manager @@ -223,6 +222,7 @@ async def __generate_code(self): args.input = self.folder args.output = self.out_dir + args.vendor_id = self.node.vendor_id args.print = None @@ -251,18 +251,13 @@ async def __build(self): async def __calculate_key(self): binary = await self.binary - node_key = self.node.node_key + vendor_key = self.node.vendor_key with open(binary, 'rb') as f: # first 20 bytes are the header (struct shdr), next 32 bytes are the hash module_hash = f.read(52)[20:] - key_size = Encryption.AES.get_key_size() - if key_size > 32: - raise Error( - "SHA256 cannot compute digests with length {}".format(key_size)) - - return hashlib.sha256(node_key + module_hash).digest()[:key_size] + return hash_sha256(vendor_key + module_hash, Encryption.AES.get_key_size()) async def __attest_manager(self): data = { diff --git a/reactivetools/nodes/trustzone.py b/reactivetools/nodes/trustzone.py index 6691aba..3a3f162 100644 --- a/reactivetools/nodes/trustzone.py +++ b/reactivetools/nodes/trustzone.py @@ -9,7 +9,7 @@ from .base import Node from .. import tools -from ..crypto import Encryption +from ..crypto import Encryption, hash_sha256 from ..dumpers import * from ..loaders import * @@ -19,10 +19,13 @@ class Error(Exception): class TrustZoneNode(Node): - def __init__(self, name, ip_address, reactive_port, deploy_port, node_key, module_id): + def __init__(self, name, ip_address, reactive_port, deploy_port, + vendor_id, node_key, vendor_key, module_id): super().__init__(name, ip_address, reactive_port, deploy_port, need_lock=False) + self.vendor_id = vendor_id self.node_key = node_key + self.vendor_key = vendor_key self._moduleid = module_id if module_id else 1 @staticmethod @@ -31,10 +34,21 @@ def load(node_dict): ip_address = tools.resolve_ip(node_dict['host']) reactive_port = node_dict['reactive_port'] deploy_port = node_dict.get('deploy_port') or reactive_port - node_key = parse_key(node_dict['node_key']) + vendor_id = node_dict['vendor_id'] + node_key = parse_key(node_dict.get('node_key')) + vendor_key = parse_key(node_dict.get('vendor_key')) module_id = node_dict.get('module_id') - return TrustZoneNode(name, ip_address, reactive_port, deploy_port, node_key, module_id) + if node_key is None and vendor_key is None: + raise Error("At least one between node key and vendor key is needed") + + # generate vendor key right away, if needed + if vendor_key is None: + input_hash = node_key + struct.pack(' Date: Tue, 30 Aug 2022 14:10:29 +0200 Subject: [PATCH 80/81] SGX: wait after attestation to let enclave open the socket --- reactivetools/modules/sgx.py | 6 ++++++ setup.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/reactivetools/modules/sgx.py b/reactivetools/modules/sgx.py index 031206b..65dd65c 100644 --- a/reactivetools/modules/sgx.py +++ b/reactivetools/modules/sgx.py @@ -385,6 +385,9 @@ async def __attest(self): key_arr = eval(out) # from string to array key = bytes(key_arr) # from array to bytes + # wait to let the enclave open the new socket + await asyncio.sleep(0.1) + logging.info("Done Remote Attestation of {}. Key: {}".format( self.name, key_arr)) self.key = key @@ -411,6 +414,9 @@ async def __attest_manager(self): key_arr = eval(out) # from string to array key = bytes(key_arr) # from array to bytes + # wait to let the enclave open the new socket + await asyncio.sleep(0.1) + logging.info("Done Remote Attestation of {}. Key: {}".format( self.name, key_arr)) self.key = key diff --git a/setup.py b/setup.py index 5c63ad4..67c2685 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="reactive-tools", - version="0.6.1", + version="0.6.2", author="Gianluca Scopelliti", author_email="gianlu.1033@gmail.com", description="Deployment tools for the Authentic Execution framework", From ba268e16a6ca5c8922cb4f44705922340035245a Mon Sep 17 00:00:00 2001 From: Gianluca Scopelliti Date: Tue, 30 Aug 2022 07:38:15 -0700 Subject: [PATCH 81/81] update: support for state transfer --- reactivetools/cli.py | 11 ++++++- reactivetools/config.py | 58 ++++++++++++++++++++++++++++++++----- reactivetools/connection.py | 4 +-- setup.py | 2 +- 4 files changed, 63 insertions(+), 12 deletions(-) diff --git a/reactivetools/cli.py b/reactivetools/cli.py index eba14b8..ebabd23 100644 --- a/reactivetools/cli.py +++ b/reactivetools/cli.py @@ -264,6 +264,15 @@ def _parse_args(args): update_parser.add_argument( '--result', help='File to write the resulting configuration to') + update_parser.add_argument( + '--entry', + help='Entry point of the old module to call (for state transfer)') + update_parser.add_argument( + '--output', + help='Output of the old module to connect (for state transfer)') + update_parser.add_argument( + '--input', + help='Input of the new module to connect (for state transfer)') return parser.parse_args(args) @@ -431,7 +440,7 @@ def _handle_update(args): conf = config.load(args.config, args.manager, args.timing) module = conf.get_module(args.module) - conf.update(module) + conf.update(module, args.entry, args.output, args.input) out_file = args.result or args.config logging.info('Writing post-deployment configuration to %s', out_file) diff --git a/reactivetools/config.py b/reactivetools/config.py index 40b9fe5..5451c4c 100644 --- a/reactivetools/config.py +++ b/reactivetools/config.py @@ -110,6 +110,41 @@ async def __register_event(self, event): await event.register() self.record_time(t1, "Register time for {}".format(event.name)) + async def __transfer_state(self, module, new_module, + entry_name, output_name, input_name): + if not all([entry_name, output_name, input_name]): + return + + t1 = self.record_time() + + conn_transfer = Connection( + "__transfer", + module, + output_name, + None, + new_module, + input_name, + None, + module.get_default_encryption(), + None, + self.connections_current_id, + None, + False, + False + ) + + # create new connection + await conn_transfer.establish() + + # call entry point of module + await module.node.call(module, entry_name, None, None) + + # disable both modules + await module.node.disable_module(module) + await new_module.node.disable_module(new_module) + + self.record_time(t1, "Transfer time for {}".format(new_module.name)) + async def deploy_priority_modules(self): priority_modules = [ sm for sm in self.modules if sm.priority is not None and not sm.deployed] @@ -224,14 +259,16 @@ async def cleanup_async(self): def cleanup(self): asyncio.get_event_loop().run_until_complete(self.cleanup_async()) - async def update_async(self, module): + async def update_async(self, module, entry_name, output_name, input_name): if not module.deployed: raise Error("Module is not deployed yet.") t1 = self.record_time() - # clone module + # clone module and update nodes new_module = module.clone() + module.node = module.old_node + new_module.old_node = new_module.node logging.info("Deploying and attesting new {}".format(module)) @@ -239,9 +276,11 @@ async def update_async(self, module): await self.__attest_module(new_module) logging.info("Disabling old module") - await module.old_node.disable_module(module) + await module.node.disable_module(module) - # TODO transfer state? + # transfer state + await self.__transfer_state(module, new_module, + entry_name, output_name, input_name) # re-establish all connections that involve this module t2 = self.record_time() @@ -264,14 +303,14 @@ async def update_async(self, module): self.record_time(t2, "Connect time for {}".format(new_module.name)) # update in conf - new_module.old_node = new_module.node self.replace_module(new_module) logging.info("Update complete") self.record_time(t1, "Update time for {}".format(new_module.name)) - def update(self, module): - asyncio.get_event_loop().run_until_complete(self.update_async(module)) + def update(self, module, entry_name, output_name, input_name): + asyncio.get_event_loop().run_until_complete( + self.update_async(module, entry_name, output_name, input_name)) def record_time(self, previous=None, msg=None): if not self.measure_time: @@ -300,8 +339,11 @@ def load(file_name, manager, measure_time, output_type=None): config.measure_time = measure_time - if manager: + try: _load_manager(contents['manager'], config) + except: + if manager: + raise config.nodes = load_list(contents['nodes'], lambda n: _load_node(n, config)) diff --git a/reactivetools/connection.py b/reactivetools/connection.py index bafecf2..c845452 100644 --- a/reactivetools/connection.py +++ b/reactivetools/connection.py @@ -115,8 +115,8 @@ def dump(self): "encryption": self.encryption.to_str(), "key": dump(self.key), "id": self.id, - "direct": self.direct, "nonce": self.nonce, + "direct": self.direct, "established": self.established } @@ -132,8 +132,8 @@ def clone(self): self.encryption, None, self.id, - self.direct, None, + self.direct, False ) diff --git a/setup.py b/setup.py index 67c2685..5007106 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="reactive-tools", - version="0.6.2", + version="0.6.3", author="Gianluca Scopelliti", author_email="gianlu.1033@gmail.com", description="Deployment tools for the Authentic Execution framework",

    #WWZ&rL^tkFEo& z6;mOvH}mW#L05zBHo#2UJbtB-o;f)9x#V5-Qmd;bvkV5lgC)9#v8epwlJQLQgxDRE#B6jLub+kj>tr zoSiM$61_$hJ)5N0FmkuO$QIv=D6GKeEFQfCwi`{YL-_HE3fN}pqC8VbtMgfCva-=i zRkGuH0?JKt z6ZVjzXDnv`-Op6R)2g2lN&hh$QzYG_Vm5LwyIfTVthDDYLhmT5LxRih(-+!arxFoT z$wk+32<*;!KuA;Ne z{N5O99g3@{%6qMhRnAO(dX-}gzuGa1Ca0@lE(T0E7Xjjk?%2UJ8u!9P&ndCM=SMl{ z&0lX81r|jJ%FmBRhpq>`w|LI^`dm*#h5#K^9&v>tQLdL=B=DxUD)GHPr0jybJgHha% z8(~rfjxANW57~J|nek)YG;qC{|oz+Ra;qJ%u^iFhhY}_fI z8DbLAUZAT$FBlQCpFk(xK-x7sN0-9W0*^Td zpsj(iC=WAe0X<{04&n%eBX*M#p)sM4K+qU%3GwNvIG<`zAz9^SjOZ$!zORj^HI{xl z@+i`OIPi2r#MtD=#&j1kzSKsH8VknwrV5E%8#BgqO5ig{Mlov0jIo_X>|gj}pU_jp zzM+lSH5QEhM_RgN?vW%tc3pbjd;P6)x(MR!~1 zkRRm7I^+MuP9Q({NPM9CX$CfIHCpetd>{(i7*=bJz@Ko=E=YThN{@ATLEP+tzXZ#w z8azGHB`5OSv4$~jhU9uYZa$KS(o0u(1Vk<1JGO1UQ%gfoxIXwr`=o2jh z^G{Hlzls)n6H;7%F;kN+g7hNmK`V!vY82J^#t^hR%+v(5>{oR`>wZgG{6~o!-0=SY zo3~2SDs{2Q`-KonBp*V#E86>h?D@vq0Y!Jm0#n$W1(`Dvo5BynvlR$1XH2Nj-Ups) zc;X*q<=Ex$G}5z$JydMXYN6*yb!tp8nsaW=5{)k+6OK(cwrGjQS3w3b-T2~7nfZ8G zUOV2JGY-q@{`GT$Ifb#ohI=%(XDG+gW>9zk3^2aPjXAq#f=d&q*J6IS9DL3hkBoAD zxEh{xf7=9)?r*dA^Yypo^q{{L8|JIw*+h%$t+R>k^df)h3d!!mOudNm>xzn2^dL;2 z&oI+ueS@EH=wQst;2N{78GddayJ66?&G63$Wf{Fl?`DRtJTA+49~bFE&$5kWxDZ}; z>EX#|;M90rV@@~2`_IiX-oXVL37p&uKRX?QRA%Cbo&5N*W=_M7vigq{Y`uIb>SStb zoHV6i+C$^F++2PdPktY7_BC==di*qekFG_9V=r%}CNFSg#5+X3U!P@kD3fusyvLVi zN3+rHHtZTQ#!u^Gcd4d{Am53JCh+aN;@x;-qSGCLj#Lj)R@?4{LBnPMD-eJlXADB0 zrb4g_V|M|o7eT635O*?yT&aR^u~vL^iEYho3PkRWZTD4%WPHo_@Hxe4lGz5_8NX+K zd=5T0pfOgy=~pEpH{x>ye(d}`@zH=h0+?libef$Sj(qKoW>h>Lee#MdPf*@(Ct^tS6`Mtmr4Jfy<2@11^a zBGMfJ{Mfdi#xVD>`|CJ`ONA6gx#zgZCwSVA^=o8x?NGdv%>NYl%+#a0BqxcI9II}M zlH4{PITLYID~uI${0=c8uyqQfz{c-iA_V5gD6q&-Nc#&FaFhs`FBt8=v*bW9y8kr6 zs2?Mvk@@c%##j}Qg*g6TdH78I@nK_pCo^1rCG-;-K7OQW72N2^dQng_RYsl= ziu&B;(taI3BzoUvm@%MI4$VuPg~+Q&k1mez^Pct&@}V(IXnaZG#)Tg{f14~L{=`X!@x2O&I%|xd zW5$kp==?BswWuD_`{<@=vydk7_lQ_LL74xMl(%|!;fik zoT9?9*t9q@F^VG-qc}1#isK9wANx`*jtoqQLt_DPoU0zDU6U4vAM}d@VT{g|O0h8# zMjh<7&@m3hHU9k0)qxxH(>FRas2hiyeBy1~=ye62cq*F0MzJb17~@|b6zhf|djn{m zV`L;K_h#OCGa6^8Z&ehc3|>e$4DH9nQ*m+9Ou4KMTyGfvL6$gp#`R(8gJ=9;`rw&- z6_WkDJa{I~x9&zL7}Xdo4G?Ey_%Uur5&OCVpgt2L0CM*Z*XuRN){5Iy@Mpxw9uzXB zsI;iv9)s*_jEzY$5iN8N%mB~A5$Wz05Q;yf0C{YZA5310gLimrQUKJ)CIvu! zY?2>LADa{a^|46-P#>G*2lcT@8e{I|R0as?;!_}m1C$V0OUF0&a(~A0L4GWm#CaPu z&i!EbEv=X^){jt6Q(I`Pqaw4Vd_cjXJ%6Xr2*3TaZS?)cHpX9XTKo^M`c;_?_u{jj zuY@8-SG3LJ^UZK}7>E0i9snEW3z|Y%XwAc&RFgirP@6V4USJrfj?XeC_c!woyT+9C zEHkH6%`}i1Gj+{XFkx;z+%hI9n8iPNf3&#Pr1ubSIexCfHF+;H{Oc}R#h|5*nV%^%RZ4|92DpA})jcdU*Y84l3qjf_?Q^eZVF45MyQH|oh z#@*Ix|IhQz%(-*U1zTFN{eJ$x^ZDFl<~eg_dFP#X-g#$p#W+PVArGs<%|DHxJ71Z0 zW}b%RZf0%11-$PE7?_eL8m@Eu#&3zsd7TXxx{+gezx0I(#c}}L=qqCqqMJ61geN&p zd)}q-p7$d}&%qxm#kdi{jqYv&D@bxMA>0<(OV;SQ5a`zF>vr!x;J z*l_W{0<9ENUXO43R6$3D7yAMlA>1_=Vj$f84-6~lITv#_vPT}C zvimV6kxlaS;Do89Y?4QVz$W=D+y4Tc5U1qKaeX#sHqD=+!?A7o$Mt2VVg!AwezQH^ z)SQPEFC5+4VA<5P+B|K8812fUD}#X@#LArEqN@Oi(XXs^Hz0{@t#yA)Cr@_sH;O-@ zL53wL8^vwV-ze_gpNKh)AP9(<%8cCuE2XTG)?DKD%zk-pBmkZ@D4yMN9#mf)kRsyD zY%(z_gq4pZqk>I(qn=ujL_^0Y?@|nO+L>IhSUgE>t_z+K*mO!Qu5_7lQ<<$-?iAO= zHN#y{UQbi35ma6+(AU-yv)*)^{`yT0IRVpT|MI@$9Hudf*@jiVfyegh~2jAVHF?Kb}f8k~m zpFmnXq(RD~_7NyqHZd*cJf~4|B|m?_*fE{KPUdO4oG6ioOt3WG?4Ps6^SSf zmXGLHl6wsnapZ3Kh*b8Y`$1d%eouLy%BCO#494No@lVxccrb;H%^L%Y4^OBFfH{o~gER~+ACpe5M$P2VK`bAIbK4=un&2MiVx2?jnV!=M4>fS_ zo)S!B!E?!ukV>R>H#~hurcz0gId^5072Mz~2`qfChLdkIeDYUKt zSb@UiU{nrvZ`wlO4~rGO1%6tp2shRFtFr{ZVnd7X%KmBwmdgC}(*ktE{F=(jr+;bdpM zbG5azzE%e&;Y@}i=Z{V}vCHsB6vwr0G*zSB=i6t|uR>Sm=4U;uY)%b(xL))QoQr%d z3bMC5(EI!z90o(r$k1I}Td@FhYcpB&BjzC{{m9_s4TPKc;FNyk=r4kx?ne^8g{&}7 zZ#c|dT%~PDb`##kRnPcCcX6>#L7Gq~7ry`-1w-tEY1g+NLr(<{Yhw6M(19y=R?bAw zd9TBN)*jDBFi*9{ct(PGG?wI938mLboKmCpaBt$X61-AWZ8Oqon2V}?2UXinPxU6N z+P`j~YP*^2Cal`r^@#s#tG0-@xU1-&})!cmuVb`w3~jNmfP5n75Jfe{HR|F~p;~ z*1O;_wVu0Cx!Itbw3`jNRlC`MJG7e(w_CYY?cVgQ*KY4$XmPzX;@wXPy&UDbGBVJM z-HT&1ZieUGO;)?lZlHFXnd~O4-8RPmwYA&L5Le?)A&TqTTMD(?tlg~LcI{^Ec4;?j zxAayOp0!)A+)}&EaBpI<4D-~hx5l07+hA}x*o`!P3d_J;{J9Rl25cjG{HwUL8o!1y zt{dCqA93eO{2IF5Sc8L2_V_h??8cVk|Fy(FcVlnEy^Q$Z-RJ`_G2_-iEER_7=&!JTAyR(<>UtjCN9|_=A5rFNLUA$BL!WhLF#oZ z91H(vjfpz5HkJL^TE}@)V^A)fh8N=5pI#lrAc_(n!?tOM1BTEXZObzeJ~z)!TsrS= zk~7?Sb0`qj%ZL@}Wdw`#GJ-}gvpa9G8th*p#I3&u$!@}i-pu$z4PB)V(uHV2T~&0{ z4t^BYQNKA_*gC3Bi&Cn_n~)aujDJJ4h)y4yaA-_!7=fmF*k%d2Ot)bu%)+tiFXPUB z_%+OOV;@5-Y({Y~*^PY)QBcE15BJBO=ZuCKx?wLjG8zA)Gx0~_y8!V$oAjLOchT;z zfajBx=WLlq(2L>Oxdhg5{2H!-rxlJR^jr_mcY5HuH~bow!*drLE9kimo=@Od&iu5) z^I1>NneZ7rcUeob%Y?aahZK1mzlNjS^kHa8=Hcu?0~h~LjxUX4GYje+BfAgD!Ql=R`PoXKurAc-F$f8)+MA;2B;HzQM0yB0Oio!3$Lzwu9&Q zaPY>`h8^G;4+rl9ZI}+vNpSGO&4yjz*#=ix@;b|gIq<_?zICEHo@FI;uIr1~1#3>>D%HQ2vV za=BfyOD9ms-P?%L%|C^liMFvg6389bnlvnl49dI@HNiZG6FfhXDj5$wp%l8Z(G%*$ zt@MOuy0xBQJ|uBAR9{+8FhMDPpc9l(PiSLQ&=1lluQRW4M**D7gcE%fh8PjE?@&^w z(BQNbjy;72QNnfr>3k{v|5m#PVam^h`I+TzMNB?^dct`fKS+Eh^2#xKV!H3!aB&i{ z@hrFR>I-Aa-C9`hO0%$=ABk~8w)cGnDaZP1Ji9D=@2Lec3N|g39sfz8RJ7smjyvP$ zg|PZJy#Y?*5$kISc>=W`zYnKSck>gO_EuKfTw~REQCaqN>ubSgr;1}dl`*2g$6&ex#@qO_4OVkCe$S0{BHpSC;64F;SLC#H$PO#2`~w-Xx!@P~X+d*I;DG@oB7O)N|9{mtOK} zWYxVk?JO)${`E6Vm>wN<7WOI6yaTrh$YwfqOUz%q@p%Z`E7~*t`bW4PLr2NxI`x;a zUg=K}@+)f&eClH{)KL1-S8=Cso}$NbhBGW;b+Y%(#4C-m^F;cI6(KDBY#Me^#M;IT zR#bQ%++A=_y%;k9HzK#CKY-_F(Vm%!c(a3!j!kLm-d?ZFh%mUn+dFgbJE4&0W7*~S zlY-zjTOp5p(oZ7yz4lSLuV%zZ+R1+Woa4;U$+7kqR`kh^d=e{9HAeA10>-?RHx^@8 z-cXFaPa}Wu+YFn@9F37eJ2_rf+KCNHJ4v@7=)O8ALOMI;JeB>d3p3>L`VHH_!hXH7 zQ&3nNV@96>sY000^kn@lTlUnMxFn4<4S`91#{tmfCjgrK*r1;uspH@2h==PeIEgjj#>E;Xk0Y}sPXKFH8Bab9 zk<%vbUdc~zGHNH?xk@jO(;l23V&FL}7SGH=&0MA`hsP%3%tnZmGz)PDy&G$haGH z%$&ILWn2I>GVUfFG9cq_)u6PAf{gplzDi062l+DY=Q=Pef8nU1BI9g~G7hT1i?3o` zx{jclh5H<J1wc(QgE1MOWC2i|kKno3kh6e+n;Xxbpc~DyD^)`KdDLhi6B85j+ zi4@*kW406yW0b;Sj8Zs+i4-2MzYGdLyDS@IzDTSvMq-69A(p`c#InHx zu|8TKv7{+{soxA|uFw>m*tw8Fk5lWZb|d^B>-CYEj$Am5LTTo9P@eMqa{&It4#l6p z9Ed^T7&rFvh{1D zO>V6B9iDR#ek{qTi6<3+SB#)3VHwiQ#eBUV!ssE2&G0!r@hCmIAxU5M>BIP;5- z3gL*!J&e4Z(L4kzpF{u0^>5}8@JW3+qYdiI8J*U0dj3hH{6v?IEatC z$Z}2AwJDA8m}^s7;4ZA5pvPZ5L65#RrSxF9^|dMWaQiF5n&C04BuuWDYqQA2#>^@S zgB7ikFfZ&yCXkA!eqdgxs{~NMEDLKMt{+=5eNxfg7A$<=qDBV%|JU6XPWF?(7&1A| zNFmgW>>~>cSQVUX+}u`S9*TEj+(%#@gK=$!c?`w{66RrV%5S+q!aN!aoYF?Y;4hFc z0Rw9`Y|yMnAm+Egd(bbs`Nz=$@4GkSteBBx3v2^Ju9z8Yc^ou`TOP5ZmPfFtQBe`eV(1WW_VOWFvaSs&d{pxzDu=GKi) z=Pim78~%E{r;|O&3duq6+{t4zd(&v7A4WU;)o5j=@dN{5mXBO@j0Z9?GazeU7c z;XMKFXe4)BAH|73@U+6S-w9Z}cEDWl5IvvbzUW4H%!2|s2bA;-Gx*3XOwOq*XKAqi%D1d%wYpc6x4iYf=y6 zP2-_aXZY@JZ^t9`y5Zw1k7R2-46i^gkL0R7JSs`1NTyDBbW+~ah_U$ye73?Jkvax3 zw!tGYIwi-GKJX$N*$XZ5u*weDdwBA6V&BELcMnMKFtb2DDxkxMMEg3~JFSZ5$YIpI zqtn&=TtDnkhI0YlG^^E8bP-G+zF#5E9sp%aCV1_(SM}%kM)i!uM_tci%c56Ch|YQMj`C4m^F-gm;$^>za#Sj6lERZi1iAvW_!1T(Ol z`6MiwGmo&ttVoIM`?EpQL3szxgrN!<>UK$IiUTo<_suvl| z-@*yEJOmAA!x<>iW&l>q8X71Ov2cloYRoQ?!R!(l%r23^>=J1#&@71+WuBmwd5jf* zoN)HTZ^gE5?7R4XAKe%Z4qTdWw)rsStbmb!m**1BGW=HTtqte?Gy^pjT(I{iOf%eN zHEW8q6}{`yQ_z{4huE+hO`}oTZI3 z_}D=MlD|J2ss;j#tsLa7z?U5iJlU;CUJFk*J?J)PO)nHdq@Q$~r&{PRM7P0iv)0Nc zM+VYuHdx&zhjqH!^d3dJxg(M8_HGaFK6skwL7$X52I;lIBl=C|OuRDBH`jAy7F&gy zkNBmlW6E932D>^YoI460)73S?<9Br}@USBh6{Z~?)77P)v@*Z2=h1K>W@Wbtuz~O17KL?XOv-;pCb#S@;lixkwf!{0p$4Y((^4$>i-Ii$uG7* za%h_1?z7Fe+!Cn!N<04oUJ_ti zo8NMkT9>&ZP3bMqq4?|OuQD%=>bw7W38#B()>%=8_7U0cNSvGf&Z#9%WExz3_rRYv z{O;;kn4ujnF+2tFl~CJSRm7ygUH!|m`+TDO{L8j~*MOes&oDt@9%A(;s|kw8a>O0` z8UDNl1KZs&uC4ij=OlmVId|vWSXZ+rJ6`WDb7OlSgX`k(yL*6^rXjjaz)pTnE8jgi zaoN&{NehdN9Ov#Sl)RCfduN>3w)2$yT-kzXcKi_%-xYuO>b{X~tmIVBIRuxD+y_zq z{6f#UsZY$gZy?0(&UkSGek)IOBgq@ng&E_E5wn}W|IgSUx(z1yJ8($t1EYIqzi&+uXnoldgxc+8P9t}&?+Zt2VIfy?@^l`k-!B_SUe zTOJtC5-S?d3aG}j)2)oLy*#ja%IO>V%yV|c?*UHnwqT&()AqXv0%ieipT=+1pyVra zJg0Q;sI#iFT&}gOhkLtHxIQ8O1yNxR}AD}X&T~~7O%#?>=TyFizBF2qvP3CZE)y^ z*a#?IceEKqjkJip41>0LbT~0+8;n%&=U{EHV9+)w|C>43L}rgd0VrEmjfrQsonF8w zURMpvW=^t*OKibwxIM+DIKh6GlH%Djb}f9*G2yD=BQwug-xFJK1gOVj9Lz)c(=UT@ z4Ucg!55WQE7>598j&ZQTqF#ib7fE3O!%~=FSPGM*mK4ssZWVzI3%RXHb9bhB1Y8J{ zO8RcA4CE{p41}@E%T~K;_=rGpi4_%Bz;JO178O^(aHlC?xVQwv#ii7@iYtfQ0Fq}Q z{;nFnWnf4^jGSpJ&<3*=XoJ}bbZ`Bwtw3umFeG3V6b%X3EQ_>if(5O*m<2};{(me; z7VKxWcXs2eMwZCAD{#s~&RFn8yj;#*(U?QfKX=6j{c~3WV7S5Z^8w#J2P4&DCLX!j z{~ad&i`8Gy9L@e>|LY8?(SqR&_ZJ4U`wNW)`U^_vqW*&5*Y_7m<|&s)Pl#E6=A{vC z4R|QHTKUlPkCRId4g8vZH=W8ufiG&F=oKlSPW)! zpvD5+@Na4?P`i-nSLeQC(Ol37a zoavdp?^W}y<7}a@%&_MR80R;0XJSP|zYs`r+Lkw}55(+l)?hY&7|iAm!!tH>YwVx% z2g_W<9|Q~hfx*SKGqKJQiyl#C?|_$ZR}9>|kTLs=P#wYXu&N)U-c4aA4Q#7!Ggt1~_mM{&0E5>cwts_`9C-F5awebz?`v%>$cOpI$g=ohiBb-(syA z4{Ta}V!yWiScf>aU0#&8rJe8KxBAD4HjKw^*DtAct-h;VuudDhuU}#X!o96AHu%*m zOJtz^SBOkwvEX^TfUC(ud=|rtzO+r4kFu8V_Oq@5EUusMERxyR%F<3w{s#M0VwQzInntX9x)M?_2 znv%phC{K%yfzo&Nl2rC>ysy{gp~ZFek}_%029q*g)KgltjY*4!;&2}Nu=8}BoR#Ys zr)FGi%-=Z~0N+RO>^nF|=q~*^N!&3em-+7TuwPhM*_o+c>HR~XI>#sZ6Nsi(7H>?h zq(4McC)_h|x>a@r<&-WL&sXi(tR%ZN0^1lGMrOP7gW+bxA#1$ifY}-0fPXtM`zRMl zScxFQ^c&|DFb?*8wLGH(a^}I87dBXs7unBHD}!|SVa)yJy``oMMs8WXNY#|V?3%JM zRa1#eQTbcyD4DO-izq{4u`d!h)6R1`dczEH#zi<1w^j4!<#_Gpp9dqB+*TPGt4{XejAOMob@oL*T+(JbPYme57M!z=gfl zf?0!&1?I2*41jv|r@<)A{neiVP_6#N>-4Xt;?T7NRbeUIm@6lH*-+1ULT7f=^yR|M`KAgLV&Q)=9h#^ka?E+Jj<=j2)#3 zAQjrLRF*>?qA|9=M+PQjIi!t&m9tz98Nx&tGgv?uv%$h>;QKlmq~cqTusjiWh(vb9 zA6B6}5PV>*Hn3GUertZ8UHY+k9Z@R*atTlvD=+|fbLe{^#P1+#ycn#m+V|1dSxhbg85&PsOk>Fd#Cawyw1g?pd2 zfIZU9pNluVq-)J`*E{}0ROj(1)Sd1mkM|qY(laYkA(uLs)X0kF3X1@CKs{dYw$>(o zHZ#&M*$I&9(%?v=b~$I|0MAV-COm^!*5HUPd0#?hn-fW6iCuE6OiE z#&#Luk=MZ^9GQ*h|ZSqhs|9}v;L&kb70J*6IT%t=ytrsJ=hul@*gnt$noc?y~wfs^qm9I z_uwtvKjTy`#HRoGu(fndk2#eW!Sez<2j?((GB4(q_Zfmq;2^atXTb9d2Fpdoe9kemA6GPOdnsVE&!_B#f`qcASJWv zl{kh1W#x5YAK?%04FhDx0?ytbkDDI`Djb1d<#$}~w6kzH)*9ETJjBfyPVoa2r+Spr|*NMEo^~SP3FdCK2HojGIb%R%#pE z^UgIyq{k=XZ{YEXNRJ^R-G+#87l;VYCMDwL77=;j&b;#s5s~ucqx&QuCJ`TpdrXP< zEQtvBWqm-z-;#**JYFuOD<)zkh#3707yfNF1$@3MghI!4SR8_1rB? zT913ic-L6XY1S3M_aTdJ{@~AX><~}iZbCKHoUTvbZiUA`eY=AmbNY5SJYninCWTp; zSeS)51~4q_$m!bvN-v}wqLFP8-lhOtaDGe4NWdJm!G+>C7XXxY!`=mTyg8@?7pij#3JBB0_ zi=KmC&ncg|1ZR(+udP8ZELUbm2me}KnOQRu?WD|95=W43z7|ZJp)JNd)E#QdqXWbi z69B~)Bcr$I;lDRAM%{wmdpVMK^Rb>v@2wdgRC=hU*NnibdfusN9xB&0BcpxfPE8vu z8n`iJc;H4%58S*8NZR^`!99pAnS!So9*o;Ex2o<^BBy@F@mu!l5QuSHW(SUF^uvI> zYcntcBgHV{2n^$yg$PVLQIxIoqz^l9)cXNh(A5jih{bJ8f^sB zNuex`({}tWoZq_n{ZSKKWLQ%hE#L16bt_`c1Mz|)#1Gy4Y7=ams5kmcY{4THam}6g z_ih+)>3J|dz&q?*)NY5Xj{3gzJgi=ZXY(gxy_39Vpb4Id2c+bdfmXWpEdx>p{2}SW za*mj3oF*JK9AD1C%|%+r83G?mY+qC+3q6-5$uddzo&UiCBPvCgE*O5(ZUYI82c6 zyuTpBiwn%d`DtEY5SU}slh$&PLGBl>GXir0oJnm|ZaLz+1#W*P#KeY1T9^s3L4PKM z)Rku#{<`^({()Jo8BfMk@%qLJoP4jm|CuS@uvnU5%`*ayn&GiN#f2V;!)<&bT_=$Y z=&gw~AxI=vY0cI+A&0jKnP)t~En~gHO|QCK*Fj^mCCkUa};7{twg zhBu;{>|dz2(ekFdPg+JyH9v`a+*IBUYS!EsPnGa8l`eR=l{NjbwZx8n2}2YLx1Yo` zt0FDqwVFHQ#o>RB#i2!!{5(E5u=7)R1t9}FKM96+esYE}yz`S-(MnkXi+6rfJS1f2 zr_Ysp19J0}Q5ni6^GNH5j4Bcdyq4gF>mBLxm z5wFVZ5(2mBj>OYXSdEZ9GVxGB#wHY4&64o|)%q6Uy^q5Onoky@%d*jW(-^|UbwMg8*S+yA+e?Fug z9;2ceYLLbo)OIt6SX~19;G!E>sUJ*SB0?u{jVilkUvYz59;4044Kz0BD{dJY8q6~d zj+)i+ei>RE%tMfthYT$b=9x^;SRlGlO5XyJgVDmbKs3TrWPzXvDzZQb_-|Mse7UKb zWf_=S^v++!Gi;*fk=FTZ^mG4rnrxxXo`+Jn`HN9Bn#pROj|Ys9EM(0~@w$K!l3;lL zM6mGuiGUm3a01;A zs6((@1=u@1`h3^ zQZ+3*)GJBzqOJgl@vS2Q@gp5nYU2p6Z+i4Ij`OJoMIe6HD{(~bMRdw_h_&XY?f{W{ zHt5T}gbqnw_vKzaa_GywW_pa}wGAF$?oH6&Qq%P1UI6svUQP#v)ylHG4%H|NZ!E8V zW1xoO=5GXNtR;86;Fhm_ECy>U_;|8)94)&QH~%Vv&=6fSB9gf zw+|{$YB-epMtE|&MbIz$Iu->6&V5A=136-cSd=4zML801!#VPM4P|D|^+-F1;8(MI zB#<6!tY!|>H=6+`6+EVwZGy+=wpMx!w{^hda~l)j6W}%lY0&33g9f?Hpfd7B<%(S)^@*$0uzIJ%+UH@c5+dqQ{W76qbh~(u%GUos(sTdo9ucEGRZoLHfcR5F0O zoBS4Z0LbI!kL!sR#Lmb(oQ0@)FczdV!HuId`cw>n`%%bj7BB1%Rrxp#i53sx4vP0H zXf!I|{uog%#jj?`dd7k0$A^U5(#;6_GQ(dLFaI8{CcOo}ng=i&`2DjJVuP=l8wZ`9 zS_AoK3QR$O*`jP(k$5vV^L=Y%A|h&YHyvPHf@O13eFKau9Y>$kD7*`a-V|i2h}-E% zy9;Ui@A-|J{~jzMH{ncqrm63G7d>j#rrdYKY^Kd_$qb#OX&$-cchimsT zs6O3CXb(=r7f;gb$7K_g$d<)y6-~wZqF{W+(om?EMn2@GC?!DoctsK6^QZO z*VlUk?l!ok1`oEzG5kVlXP=^#bgCe!k~i68PQ&Q2CrB&n_TZO?<*&LwRq{u!2SbRe zhbpo!T5GO0=X+q2`l;~zOYH3asZ3R65ThkIanOkca0mk)%6=}n29#-H{12CU^InTP zt#rTRjw-nh*WP!)bM9PZEy+tiyHzl?Gx&5@?F?@HK_S{L;H-M2#OnzrZ$yCJ7ep%3 z5sTx63Rk3XU+&u|N{bGX9c$&6L1;}r(#o!22aIMyerZpK$IbuMRPp0kJ0m;eW!3Le zl9A4To)Kq}%Im+CkxFz6Zhr0un%DjqsKqUrk!Mng>S=K3hkaw!bGdA-h25#J%q`$| z^Q?e_mhmiAfAg@DuX=9ZfOPP?wXE|J2jc3v7XPZAt4k-=83fV6Ic;aRzc(3aH=@+j zX1M(`!>zBTAOtsMq|2?($cqSBD-k7rd#wDIKeWtOJzo+ia}BY-lq7bs%EwYwbqx-L zn@H@X;J1Rk8pI^NH!RC+D?W7di$SXFD2p^~zEvOYkgkKqZXTv9%`QMh3Hia)01^F= z35px@P!?5vf>Q||U6ys?oqtiXX+IG!_v6475pFxX-qmP1jc1_c%yc(TK8=>s0?)a# z=b1$gqh9i-4_NYv-#Tkr}_MGV?eEKqok?A@pb(N}J zaOuGH0I?~^shWX#&!53_q7K2b$rxov47CCv$0(V-j>E7|2bCgoj50F>ihU-14q`o5 z2Nf1W(A13Q!8k~_jKdgjA&T9?Tr{}lNfxOco^yYYlA`=Uf9n?|Gj>PEdCy85pG{6w zg+O(Xa7F!#ia1k{OE-VUN4j~Pe$*vOS&GZ;yex3d#&^r(}Z&xusm0ZG-+vaRJbr6c+&XNpS`ni*(GL&o;*8ATp6_gJ$O0 zVAS)>%(IP|ndcH+7!uaZJj)`nt@R5kss2fEUIl8co5Wb_RwtvI#ho1Hb*DX_N-qYL z_Od=%d~akBl)0e@--sYpFS)srQiN|~_;pYMm*RtNzCldhb|7mGh9dH|$Lq2i;i>wI zyPK>5Yk|kVFT0%{vj(h-9kqjIwBFV?OO{(9q6c9LgEm*_ff-LY)Xl zu>smWq+dXM7ii~rFjYJC$YfQQJ0w{NVzj_B?d?>G#Or{2@oyp++<1S6nCxb_=iEM- zb?}USRdJl(zwd_rJphUg@&+hBlXTD+k}gB1o%z9W==MTj`a2;|b@~URolem~$Mbvk z^NvFnk|&S9ZhnWKDeHIDeE-F6^5O>b;%X=I_noka>>@NgHomGy(ZV9{5sK{`b2xUZ z`Z=L9X9KzbfA%^w=~TT%=(xSGYV}n7xd*?hFWrik=T+Ial7{&pRBax1S5@tLPeWF< zLXWK)hQ;k%6nw4@il**VMbHIvQLqh4PoL&K>>G5@z6_ecVLSwXVS_0MKJLVRQG-@dc?$?xfJY5C%}Tt5)PWGA-4sOkIb2|m&v zvmfwxR@$Jyo&W;=krK4BwTh%7Oq0+6=7P31*!ST?uk5ZNFgYZh?FSv*4w$S|$GqDZ zkEKpqdJfO7Ct zwS$|v<>ILGJN;Ia!o>w9B%i5u)^>d%B;bI~)`f?i8CSk1T&cH_zI z0CwXu5HGn12MFXa0)spKhb69awGK?_?N?g61_PC5gR0W9gOaXuo0SDd$}y9Tl^vbN zh&ppJbeacrP$3*Lmc0Okvq5~HxE6%7vFW23yictj6;LyE^F5)NTssYS2p(Qo{d1VS z*$Hn>!LRCAHB9Q_*leD=h1k4G?O_sv%M%zT8IT=^KTNVgf0)F9jd>Ua5}BA@ue}Q| z)%6s#5SBkaLRko_x5fPDfpfIy1b9a7p*=9<^*2#7BW~WEuXa&Zcls|lWrPFb@PZpG zs{c$qRi5ei>*h~7QO$c)zm)yrI{gO!Sk2Yz;@RHU7cg3Y+eQ(kkYhmA1I$K$BnslaG*f*3;p~oi;-28x(RF7Z%M)|c^e9pU%tNU2DmhLa1 znh{D~MO^Qg5g4=diaOO%OcTG3eG|Ddcq(w|_>`k@btyczZ5=!)pVDmh#XD@w!Gg(U zXGEM9#5Mb(O>*~Q$vJOeV5;Ir?ws=a?Qt9ju7s|}mC(MKe_tv5<0!nm@?7r+BV$e% z%bP&qKSJS4d&4sTh5sQ6Uk}f1+XV~Heq;7ky#j?NROb&vzKnV!ndjT zk(0s%ff7Tt3owC#Uv;|Bo2WOpnm3h&H>xRD;A$Ffh^`)4m_Jf|)9u4z4wVsk6m)+v z^cbMX4{&Tjbof-YakhGX6e=UdVe}^a;fSsJ5(ox@8^Yi5S697@kX-r zRrt*w3)4>15M(x1SdB;(5N2n*;hD$P6|u~jm|8Z^Ksc)V;<$iQIZD?L6}mq6U?KGv z7!8?+yiPNBbe=(A?;&R>#Y;bJd;g z)l1OBd~ZMP+08AmWkk~X8#rp$Gf}WT5`GR2l{YW1)Uov_q@#v9Q|{Mq=EePQ)SG4I z%`>n(yaR#ZlMxy*N_8U|!Snc4|2dN02UEP}AsMQl#)N;5)g+#J$UOuT*u%fMA6MVjb8Ee3_4?2feBy;NMC3Rqq4)ub-1kfw=j;r=%UWrt0IODTeQ)lsXXHi|h@&k+2}b#OnNAJq=Xmz&=OQLzu2x0EbZ4$S-Gq;uQfB(+hIMTp9xe4BxYaTKt@6L5nQ$fHEoi)dM zY%SDT`Ywr%NK)y@Rmhn#SzFnlN;V>-)ELZGYBUy5YBa`tWNl@GBQ?fpD;u=rh0`&Z zosPx=>1d4U@bTG+yzS;s0Xsc`WeL^SM>B_7ZA4h(23#UmB=}Z>R(>Q(>fM7#wwZ}Y zRz@@23u7KO!|MB^gR@UUg*Ok&-Dg$5^p-F|n1|INf+;)5S3MzkRmjX@#-kr%vSH^& znC8txkQ;WEg)nWJPuRVL2=9kL6u%5ZkPkQiHp;NqER^BdsCP2T(1_};#?@-c0T2=` z@bq~kl^oay3-91wad5eJ*mP{fg?m^kIXHPA%;KeeaR&T}spLL*QBU{Wa*qe)cfif7 zX;LS5V>Y`VJbk#BA~}B+Rt3R3YQIuB%D$bic%_iM>5?~9@}{=GdBd~jTi_ejG)QjC z>Eau6TTcA|>!|rQc=S>8NjVySAig?SebofF|5XP({sHy5LH<{YxIUF~@VogOI`O+m zrT3zlbF7+XuU7qjG*!Z*dRh=kpT|;JXNHP{e`R>}SSmB$>J(WO>|Bd^?6G=&<3zp> zL08_4KRiCXda_qg1$7UAKIrGWBRd(-OT{BjJ5sLBdgx}Yq{&=EAH<@_*^AlO)kAy4 z(A5|Mcb-=O*&Bq#3w8euUCEsuGOZv;*emKQ)K6Xqw|=N=F(EL$ftZY&{}uB7*EgZz z<~)wa<@qE2Vm~zGb!LQB0`fQHbdSu#mhdK+UX4v|cZNV&#s5c$FY{1s(APNrFNpsx zR#I5})86Te|5D8L8}VN+Zhd7s-J4SUw;=&$tsop)kuNv@3F_(uSS_m$^Slc1Str9C z?yZNV{)`=e35zQzW&b7iAtNdFanj@8ghxN*KPHu)XfcE+f&dHoJSfS0j)IPHDD{l< zykZ7gylEI{@wcfzr2qPrAq>{>kTmCeqrG~PW-zMc0d| z@q{^;7?^davp(_ZB+9J@@HIMDqSDF+^>4I!Cp+2#w__O&s7~B%MM&v+TXT8h$k}k{ zhdL9m;K$n%Ja{8ME~5Q+O8(87t7g&%2EQgDHeByvE$+6H-1Ta4Svw#ZEgX>82-vS3 zZ@@>WrYdmdW!^yV#Tb^H!874!Se*SNJh>b^hq!TX(Ab#MPR|)`PwyWvp>)AhjjMo@ z6TnTSLtsJ~n-UX9J>0YR3CcINqcC?66YdD!XTc6@_P#p?EHA{0EH46z6qHr?!QVqg&0_g6Hak+>C69aB2{PU zPB_)=<=qA~w;4p5u+SavtwFEe22a_6sZ`0m@N~ix8-V67;hdoew+I&Yi!9xkyp8Zf z<>Oj};KxaR+yoCk&aCxy1$8}8Y*)8mrZWs~hqWsMEsF=^jlDWHutAKNzd_9LK7;wb zm3hLEJjow_5OX@<0VAbY(r&(})%(P~kzlM`HJIcgFxFqeOYQIoW4!}U{V;gQSfjyM zo%9&Sa)#rZM$K5Y@EFEwg8Tn5)<0paRuIW&tPXg5#_EQrz*xBv2=}#&)rb&2W3|Au z$r-Dic`}UE1&?8@(vf&!7%O8BdD+scf9#b6CJYGT(|{1vSU_58452gjaGfk)eMu-z zg5fwd7Kl@02%TE~3I=k>dG!@uFR`vP({l|DhOo7EQBT5JJHaBYo#5AL?P4`)V;W(# zc@Dnx)#grwFlw_iN_z4V4sUAd4ynzgP*`pgQ*!%X?ZNRudWxm2_68tyu#Z8fDYv@K zi_5P4CgcUwmR>5*BUbqDVm1`$61c0ARx0Ot8wBomB z^aPD?7bU~7X;Cr+^{jEK@l_0J@n!YpUN7;q({r(hv0dcKwTZ&WPFY6lU`;&|zv|Y4 zEtA~i=8pk-1K-?Rc%#0#4QQXeQGyp>cwe@gWy@4{nm@n}`!V3^R&0622*f;Mr@06l zt!;IP;L!JihGj`V!7=An8K?SZ@yyh4EbZ7hJIMms*$(~C&8Bbo4jEKE0=~tlaoCi` zWIn;oACG~@H5`0A?Nv6t%>pY6qnp10D9=Ey?vwEC398tC1S*5zk%{!d2NsIOx7DK( z;K;~vpWq0&N^FBrdmmohL(N}~t9N5}VJQ=jcN@2#+pGB#wa`Mvdp0b5eLJ>~iy3{~ zY`3CQzovqWJ!hLKoAS8oNQSEvZu(Sxycv=mHzv|wRw>vZS(d95nlllfecO~<*tZjI zpRZQy*r?L_d}V|FYJ@RAaGW21rqW)(w8utgRseU_&ac>*xC53%fgHqVKNQo5I22Ej|Y@x8V$}NR$g4-|b zCpxx3VQtV9HoX+(8unL}U7BCUZ5J6Pxjf--3Y1(}i}Yy@youJRV=>0<6Y(d)ek|XR z$o)%CQHGkSlJ>rLYfjnEiHx6+b)swf$DFV58#l~#qi28tvCGsM*AJVz=2u}Q6@KHU zViKgsJ8IAIxEOZiOo8WU{KkFhmbGX`oFysNpakAR5C*GwopEt@Sd!zmH?)YYl*I&7Iz+Co(@MgZXcy~ogo{LTRX&^*p2ve#hYkA*wu^0 zn+M>}@A&5}Bo=)du2}~{-_3bg+Syl8g~Hy=|7NGOGiB#AUwJ&Mz3I$|Ghvw5Uk+<; zg@-IO{3o!dYc~&T@7C^_aOciaVR%@3qju+i3frb~%VF*9aQkPi@2k^i^VS?ChqWK1 zarQh&R1QJ3F+YL;sJah)Qr4}%KUB)~0juMZJm!><_Jko`U++86eoN1eIFnAp1oL@m z)D1lT$q&u&n3J&E_`;lo-ANA?3d%_jJ^CryG4K9J!+?~N`lN>pRrUcoFmeB2GaD@E z?C~ZYR#nQOsE}u@N+~_Zs+4+oOr;O?Uobtv7MdaSt+&3txnK~+o$PD zt6+AeJgjlMQf$nRAOQN6LOn#DOI!!c_7%!>>3Tr-Q#2PT@vc)NjT;N(pju*qLCuGE0 z6^o~rY@u?_zXIxEY+w}2@=droUR6Ab1t=$sJBv|}oI2V zyV29Lapw;F#B={napxoaCcKC@&+dYIV`stB*K?y?yT+ZKyXjz`9Tj&*9IfB{?3lRo z27dC*`zObp!KbJ;?M9pCDM`fJ!0D>mkHUjVelO43Tr?}JJ;7!WJ1$fGY-I^Z#4Wd|KPAXWmP z5i0>uixnFyh?RJoj`S!Q$80t|?Hq<5s=%xI98#Qlc{yI1%46|CZUM<1EBE$=6lkR9 z=2-t^13WG8(3W)!-2F-wS=s)?NP1Wpq>=Q+<3b@}B>iIuD=1v4+t32rnc_NhBGVxp zy6AZ&-aB&!-c;!%X*!s6EQG^U3`J~E7B0-29|XB@;fN5X36q)A!*Mp#v7T;Xork{0 z1}|KaNo7w#ZP?(IoAt_04}G0EDdmxXr6)(63y(@xX7@w>T6FXj6I>|A(g!dul=G@U z#zua2bh1y$BxIlkp3EFYVvlF{v;&wl4@xo(?p^Ts>hEfu0{O*Pe+_77A_xTKfLF^EveUzr92`7@xEKYWuW z`M%JJ)5dNEcPQE zl8H~aC03H^yabC`nZT_$MAC_umZ@S)mBw-d8p>L$v9vItX)NvZn8wmYk7+EW3k!|q zBpo5O7{9RuK+{+Ppl&QS7HTZ@NJJXT3aAXN^q{fG+T2cfmQGa~S7{4G<5D%Tbe_%% zc-I$^HYNtjlC@Cc8}Sv)nrf2i4*eOMyIJ0AW4>ezfLbz&RiOpZO?XFZc-~rGOJOFBf+n7&q;hZgXyaCSX zV!p{a-dm5M^`8dc`|*^F&+Fk~N6*f^S-YvQwP`my_fG9*=kA;?;iYr0h1>7kFVzW? zV0PzzxyJRXHqq{F%#R=d8ig(1RIWK)^tB!^J50t89e8HnR~+Yd{Z>j_>y@V)LSPQ3 zzBp=pgUn9Y3Pxy>pjDMZStzud6zJA&QXscTQHB&~)NWFsMY)9n?Qr`ADC?uLN-<(n zpi<+Uqch_h8}lOwfQAB2yj_2<>`{lK_?KBE_)@a|;# zK)Zzrv|E@!yM+mqAxAL*+9#m$M_v=i{{2ruqDg9~LRz39fC>JfKl_KZ7|c5vgZ+W2=QzHsvg!T9%Q z{3adgN`KRxMSpXYw(aCftp27E9%I{S;R|EiX{X27c5c_P2RaV}vQli@&PpAaxNqCB zLBBDVIbTwSI1UcfL$0Z6h>9^t!<0I{ieZDkieZCB#jr80Vt7bJfW9-~h*!&A^F;4$^v$rnaR*!C+$daiBtb1+$hfgBjn z%7LgSNgX&)&o=1Sb7`v;)Xjeg&iv6haOVQItWCc;0@-l$G)hW=oL(r9F-F$H;}@t2 z9#f!JzAy~iL62eB2iI2+1BMIoD=T+C!`fh>Af^9MRO2wl&0m8;^r=Nb&T?aaKOpXW z@je>n2X6G}OXJRoEZ{M)p1%hVcQH+x3{TT#acA2SG}(Q)E;!QXQ%v}rg|bJ_#~Y~<4gfWE|^n|o)Ry0NgtpLwdcQ=Lx(9G2{6aU=&c<^_} zUf`DF6R&;9`cV&SrS3-+S<=}&V+9MQMXHkC_S!aLir#)&{iOrA7-@aFF6PvonEVK7 zwK4A}Rd^*Bcyz-(VO=DZKCB0V>W4{BXaE~L9?IE-*%0$*V98N^IX>If9Td0$oS*T~ z9kDAmBZQot!)q?v;4uaOlL$*%WP}#b7ytqxLq=!@EEoVXPp>n9(TTu`yk*nB34x-_ zq_=;i5R^@4!fqHZa{W>#%d|K4B6Izc(?>KMS-(^Zw^?Q)4WJ1?-ATa;`4=0&c}UUC zKMf&}<(z|grovIzQjz7ROY;!J6hvV9K!n1^ZNAKM^QC#nO8?3xOs={J3kPB{e!~BR z&7Z>o)U{Yge+?9_d!L1*Wy3toeBBv+#IRvwzSd!bM(eOKUE$fcXd}_j`S{OB-{crU zKg7hYF`K-gAA+=N{3Z0UQA*lSslHNTJ|asSr6hofQj$Q4y7(FG8n}+xDXl0dCCPJ8 zzx4p>&a99zYct$S#{}zB1l+%|pR^5e{VV%P*-XOq_^%21PRaSd#p6{{{p;A#amLN* z3mRNpA;!*Hxcv#YW_paVvmG8Y;noeeKZnxKGIr`JV5y3_sgSYL)Rt}Rw6UUYlmUC# z#!eHOsrklE1F}gK=1`DF-`Lp-PgvHGaB0nvB5Br12!EKP{1&e1q>0Hm``M} z>6j?kKl#?cF6LXTfmxfIh9FGc<-s;j`5jj5h=ml54r%jE_S3yR|JU&J6;hHiIIp&&Y$Hf@zEo$*q0jNHYIM+ zZkD)RyIJBc?WS?1bg&A~64xuYl(-r0q6}}S#5BDi(ZKvUv7!hB^o=V8&Hg+DcJsfx z4Shc6$IT;(P1|}Do9%-gAsb(KUBo|WrQecb(^jO|JoeM|DK-dzGE*?f$SaRx;aBxRQzaLb#hBX(5~&S`fmG+D#$cqTLk2?b=Nt+@;+V!ll*ntq9?IxQk@y zH!XzyG1l*d7H5GL(hIK?S~MdIb@y*1E!y~zrbVYJk4$(t!xUXei(2g_Et<5Ov}o0C z(xOATg%;g#Z*p3wIRwyw4mZEkM7099?gY0y26GE-{B_q^rvlw6!LC6td3CDm^>`G^ z{6?er3t`xAtAJHy3_Nq(L7A?l6bkC$aAW&{*aFT|)Xc+*o!(I9csuotJGJ<1`#~@+ zYVBo z9WEMmyn$GAlp70@w7^z!%5s?b;eqaud=0@{l-sL8mfGRo{yn!u%G?Fd%;7mHbLnPQ znd{*xDl=0nDl86QB8v;cRX(MlC#sF`D4^8KV`RA|iboj3Kq% zfz)BiR<+#?kE!ikjgoY%?MAr$+HQfz)OI`EenGn6DJsZ+ueQq%giH`KERH$#cbD8K zRlnyJ+CsZTRek9=PystzMJCkKv+-5mjL-b4Z==V^gid%&)jPEo#cJUxqS&`l^_ivf zSTX9Mb&Z8DmI*l0J?(I_uzr}eI)F-0G$HqO7iiXLg~zZ?hjNRc=!V;8o!s~W>omgc zvrY>yA^J~wmaZ4f}$I4zaY6S)>DxGf!h8l*xSwb z-ZJep<5zdFs_jPPw(b&L+b#5Ld~LVmGha4z(PL`6bjw0**Td}-sTrRCUTwD_^}0)S zZFj_G`Nd9#h+`aQg-6fTyS+|GnDw2X=j=wy7Ki1RpIEq73zY`#?24 zU3WyG`?w35g`58c*h4gj8{NRSRL1IV0;_!WJf`1JZhA8J`Z~N?vOQ%eE)+NdD=f{! zBxRyx$$SH;ken!K31Qk=oH@%f3AExfiFGjtJ^CRi28GM01L=n#4GJfQzNSH80hTc4 zw$cWLc~<^dS)3_(hf}=z5lm)EwnFxs_!$ifyCMUv@c7F&Ry+e6HGnCj+<_h^$epd> z+0pGM6Xmt=n2GWxxWg0WVrmGT3_+~Oz$;*3qP!JxZD68Yw)%A7eb~m#D2iqtSWJMT zKL#eoNYlDQ(Gxz05_coIDbt}1{~n&)HZo++{=?rx2pbDR$37^}F5*G~{m|kN3rz6xCcRk_u+Y$4KB+6X2Z2}-*#uN}@dP(b znTL!#>66mL*;xRL2yhN3nsVsK#-DCX1e8pJrMt-+MM(SRFx+GPbTNMYla6{LCgt$8S}*odqZ z7fOOrl?zBAkzirfjkPDLo3Gn&dx@JLK1u5~_Xb6oL~O)ghwr)AAS;UvG)fSCXyAAl324r^@av^ax|s7&FQSD! z5UdvpmAVH}6`8e|k3goxa|PN?>2_!){oHJl5~-1%pQc41wZRQi1_Tltcvv6_79tw4 zfSxS@kpZrkt(^?2{1j@!@Sk9rFg#QfWI{u^WhXA8kjGx>Yhy)rBLL9zZ{$VRjdF;nqK>_iw zAMb$2@5j6OMlX2F)fe~UOgenR(?7|hnjc17U)PVf;QfErkJD1*_v7t|&hN*&;0ZSy z_WB#!Y|;EU%x6^`FlZ(cTU4vv&BIzq2|Jv~ww_Z)&~+UM#;??${ooCSe^ z0@QsE=Vdqjs=yT#U3H59o_isshkB?$*Xr5B)cT5b)*2T>X;G&SshPV`C>p|fdUYlIuqxB+653WTmS*X1t91bV0~l3e-?l*AuYZ!OiZJ67fR z7M;TdqG0-;6i9wP@0Wa1(iG?O-;gl5X_ka(q{m2@R(N~~(?QSwlQ2OM`E5v;@^jGm zM5NqgHNHOz6O`9!X|p6!%nRplRD1J=T!6;Q>c@Agx0w#la?{(uMEH3`bF= zxAAsGZ_}Z3m3;ms)O&j1+N|nq5*3JMgQAt2AQPg|g{6E@zUGSgFLtmzR7bVAaE$E4g`RIS32MXnr{Y-H_ z{|EY)ik#l9*6fm=$Dn!2a+}Lk^Q_fxMaR8dH_wS06vfr(xHc#{uD2Ge$GX6$b^MN- zl+V)NQA?g+md)B=VcBfy&KN0}P0ID~K+#e*7wx9arA@nOH0jjt$#6R}3PzJ!b>LyRFE_vVAL(1L5v~8>8bC=Pi&nx4UOrC`L|WRkWgl>~(48}Fntod!g5@?fdVTDVPRHqkAW8Q{0gn5$EI z2l$OxnBRzfWBkS}o;p(To0Y}xLKZ)>2$y3PXY@+GO&*+$PdD$Gyqr8pH%{>DfnEPC zaPRq1Dsb}|iK{PDPh7)Mt$s)`#<83#gNiS81>9Y5r$@%f?q5LnDBTs&&+Lb_FR(Jh zz31ib=;F%5weX%OCk%0w+h>Cdt}*fn1>iB8JKbsEHno$ zScqoC{3)lPHqUllcTGr}CrAatwnb?yV2dJFWQ!6oY>N^wY>Ogj*`j=f_Eg|*o|ZnP ze4u{)@pmUY1?6M+|BCVvu<*%Jzp#amC94Zt_z3w$rB2Ta^CYjUv?Ds`c;MJ*>)VqQ{sW?$MD1jNAdxw95c!+NBNp?NW@~e~T!S zZbAP(9Qt=F(q^ubi=cmZ!n5P=mHxe2=VJ(1ZrSHOMIW*;qYv4b(T5C1F>3VhXLNjm zY5m*AwEms?J`|JEJ<%Ju?r@o$?$#et04|HV^tVm5!DBRu zGMzVSFTN%b0F5RQ0ClfuV})K(Hj3}6Bd$iob=WAbO&F?3?H@ z+w9xm3GV=>id3}CUcm4UZ~;R*z=`?VtJ-GY#T2>Co~v3 zjYAoU_ZzV*SXSe7>1b(KD&4POSgKcUF)TI1?c0Trj6AHh!fG5@c+-Y(+=MR+Z@RQc zNSxarZ#J~~ULEhs5Qfw(@PtWCWx0sd0)|N~V2ISjd{S?Cvwb^rA)D>jqp1G$e?n39 zr#IvQ^YeERQ+$7<|@kjT;dz_%%hAdN@|8n*;E&(1d?o zF1mq51YS8JYi4Bl&U+Da>TUEKg-D)+$2?rg!bYCvth;#xgq(5G=f7ew+%p5G$b-zp zwFQ)nTz7OdI3Z3Dttl`F(O6&*Ld=(|CQbo2UUos=&$9Bx4xnxiDU!G@RC!_@-)o~Puec<8e-kCS1SOH4 zCJ&zc%6N{kigmjbt9pCgBTbHaSKb0PJP^g2vc6*B4)=}W$(s>b?f=K#d&g&0WdGxH zpK_meBLPBh0VxXTMi5a@i30W#6^){3XbLvsV!<9!Y$(LGYd7|`YOG+7T~}RWT`L5! zth#D+bzN7~@B2OX%sews*w5$ZuAlGk^T+qTUQaUTeW#o`bLO0xxpU_-Go;fxSx4fx zAgGf~AnZ)0mBjz3ulw(Hn?uj>^GkG_V5x2k=IJ)E4!W(uQr*^Isb3~&{qov$d!JuH zBTBXp?2jd_in+(jhNtPtpvTjOxTSjmVf+8QH&hJ5 zHw^T~w^`8qvkY-B{nqm^uLFjF?7*f2}iOT9DWO>=`lbn)6@sEYGtE`Wg0tB{qRzsfQHI^N_?k zct{PFDys%dm6f1X*0p)ao&Iy1Kv$rzWAHbqmTgi~;{igG+|@(leZ^Q@D~u zrZ}uuvsw|ht66)==Xq(0-EC6S1*h(#P`#?=Vm1R0EN+wHME+(c@A3PIDR)6*FG?^y zk#{lKCT06!E11IBW*ES0>#Jr#x}|dsv)19wH8fZ{;$pTPMqC;!bz&MUbz%gqdU|t> zVayoQ9aV7W8Z>qt<{A?TmdrJX{lB>egdi7ZFB40fM1!SGLeMq|9v7J$_Q7B`sO5+~ zo}*H4N=NG4sL^4huEA2h(W_j)*2^sJQbtj4+>!cEVC?_SNPQ7YDml%OSclUb36`Gb zNX(q(SO)?B8zc25CNrlwwu10R>S{JxO-^&HLipDjsn;Q||JjjxqvrhI9;v6kvg#sBXte_M?Gp1vJGlE9@agog*E&S#=%3#rM8&=OBbknOgd4PlJCT# zLYgypr7qNFu4V6KGa^|lx81lHwfrG)NTfk_Mvtg2=h?;UWv_d zkbS7_f##vM2g*Zj7b|(FU2w!c9%q5-$#<22DU>$8UMAlzXu5O>rn|I@*)HvYMngQ% zXow414RM_0Vc;pK*5lm{B7T+lM*4W_Kx zdaD;&fTipE1dRYq#)5e^k(d>r8?nPEL&q%Tm7wJ{e(0z(VK)nE%eRuJj|-9&*DX%R zZ(SUZ_jZS!Cqy;A@{_8>x4ibiZ~P-cY7#!ka|}Pq^GI>Qay^~dM>r*w-vb)IQ4qdA zJgq8+piwps%CoP7r~xtd`%Z=D5H=Sd_l_MB^p74Y1+Rz-UAmM+Y{HxOgTFOt0%Tq|3m}g~_<>{lX43Es^^r@r65~_IGXvIaS=UGSLRL$Kw zoVwT<2X5+f0qWzE)vAzk{1HKX>S7&Jhe$*#x3P zMcB^zqV;KW-d8_WjE`equ+QreJHx zKv2uW5`Mwq2o<{{3*Dop;yYzFuUJ|;zXEAhj7Y0C>_i!#NR}6}Ak3xB8m0Ba|BSRY zg|y1C1K?MaR&VSfu{DgP#a$u4V6nMkAhOWX8o;l@-F8Y^r5?hc)nij?!Bs&1a#~s? zf50F8ow&t_WD8uTn`ic$D6nO+kzxEI)%eqs*~~p9VE(PVD!7L+Q{@q}k9Qg~he+B! z7Tk`fm&VRcroDrW3F?E5!|S?+s(B8Yba4_Ntpd>oV!=Ohg{vVBb8&fQL8qWH>Q>G| z;!A_edKccrVbtd0Zkh#82R-sHI5p7VdfIgs?sjrzvIXTqd12~5O#1l4Ti|6#;fODM za3bA&t+V4KiTnIieSTIcI2KDgnCu?m;2hsC=z^oN#=cn0mLQB`G||EM+@9F$cLX+~ zV1;N~{1rf`LdmPn7Ub$=kUXz3tv1GQJP4Ki%Tl2bSye2+u!f%`96t=N zfj7yJb~NOLJy96_^t>8Ya#=Eb=Xp#s=A!ABC(~NHK9#6iyDm>=wRRcMYFF3{EvaF; zE0U2`lW!#5P*%sNi3f_B7|c@>4~*3${2Z(`q6n=X2SGgsWV&gIaj<|Ymua1G!HJc4 z*_ArufktNx=;_QL$&&*p883!!L2p}GH4qQJx4U5p;Mz(d_#(0XD6 zdP52qw4Rv5s_&#M%D^1%?qPDcyNlW3R$ieVschT`Gz=7j{;Y9ZER!kvvon>46qmwl zB+RAo1_^U1yjj9r3U8CJ{^G%*I;~y`uSVFeWKWf1DN}bTyiRax6S}Nk3U@J^fd`tU z@bE;KhkBHQnoP--p?Xci01qN>MVR9v-AXq|L42tN<0IWlE@oTF1#K%CkW#bbB^R`< zM6-RrQ(1Eyy^A@=(Jzpw>=P5rar7rR=_l*s=nF@p|11=EFyfBCHrZMC9|KabdTPb~ z9aT-Q9G`TLg*$K&>+UA}oF{xF?=9XaE<{Hei zxh`0=xtB|p$gya1NrW8ksl(9RwIrcY!}D>zo|7;jHA&ly z@L@QK7N#>!Vq-~1Q)iuo2a1z0nCB!sP@F_>w&>xGlQ=+%@SKDTS|{OwM#&B6DftY^ z({&Ob!AVr3VC^I#aM1w5I*AtEF;3#Q4olWa94#QFWt~Jjl36EFInQwtCrETk&NvAd zv*yPIt@$ya=OkRv=#rjyjxEHk>pBS!6DQ$fzLS_FIndl$CsBj?XgkZd2O2@3yX)tr zEfS`aXqPaZL}h&(hfbnK!gLZ1aacQvW`wPczf_8)OkF3@B)ID&T+C+Rfu56SLpjz- zlphg$DLRR2gsqeKND6YDgp1i$azWcl2Bg%ilW;-XN^}z6JC!v~!o?gXv0S2hPU0aa zz2hVv7kDt6&NvAJQn1!Zc%bP&2K4&RQ<7(ilXzBO&q=tTbrLU2OzNd^5+#^+5(e{} zgbNm(#JiFuax8HYoaNS|Rkf4gY`2MoneAR99nm@o&UQUeoP>uNCt*O(sJozP;*hi5 zRupWV!~;&j)=3!9%g+T(ek#x1$L~rWo|8B$io1K!NmOi{$S6)-$1mcvcHn%hC=TbJ zjqxY7CH`E1-Eq{Ut1< zZo}K#1p(VfUrz)I6Ox5P@!=2rwoC^4=-2Yk1GQx&N4VFJFh{sIfG|hDHX~emggfQ% z?;QQwhP?i(qhHIv2<+n%VO??lY#*N(kRCC9e1d77`)y-(9eea^HL|luzt)2&eSMwt z#9w;!D^_=LYI_s2F2kU;^t9H}Bibn{`}783eQ8iXz44BHr#-{5@BV4*oH=jVspMQ( z3Z=sV!2~-LrNQ_?k#`z9-#gnfi__S7?r$q=lf!B3`a}0$78}0`;a{uq>yX#KXngMg z3%0F!hK8WN*sL9tfKRoI62u?6*PQ>7hszyLV@H2b$&YI>BHbIEXdrsjMd)y4GeGnR z(2WucPsE>d@h5dL{6rIC zNxtHksL7>OkA3iG%MZZhc|nh52+tT0swrm#J>JNt^$E*U&Iu%bysQ<}o-r)1-kTSx zDGTjV;D*RIsJ-kx$m+Cgpz6PYtj_F`=YcckV$nESxJRfD@Ii#)Il~~#gHjWl?Ar&W z9%vqvdSJ1{=w@5webz$eVv57vkbIM$M^u1 zuKc2)rkqrKdRC|JOj|F06gOp2prrcz9qry1Bf)J-D3T`R_`hJqzcbQxl-=38dGkO^LLiH;O#hnhv%Tw zQIGF|b>itWjZ|cuI+Nw8Gc6!+;7Q2SX4-iJr_6+VogJvkzk`Ud*I*`yCnZzb4STwb z0V#O*beY#AGI4uuiVK>TM)lD^H7I9Fvm6cdt;@W;G2g%lIPF2dFyAb(^_SJ#L6{fj ztG)}0FU;4IFnbG{L6{fj+YvT<3#$H6bdJ^E#BvrtI4D1GQc5iokmJwTE^6m9gQSa(@sc_=-!i>yWfsfK{g{Pr-sGKRY-!##6q;eZI7sJn&Gt-_HAo z&WjE7l#4(mGErKs)6^b|`%P3fsO^GYHUqyY3-s|&56Mlf)mL@XrzW(*6HP%_ciDD? zo65^7&_q=X-!`C(UnQuI!&w@nW`?gBsO?f4!)JEUCaC-?#{^Y_F!J2!tC%C|td*w+ z8hLu4$kWA&@>KeCw|bN^<(h8#EURXO&FOA!2%EF4HkQ(f z)w=B6v+LEa#b{$$!{CNcJA8$>!RS@$?rhHW$vU` zNL|ck;DIvvjXJ%Hk)PzCt?6Cqh)&(bzlGc_B!t{%N%{ep9{uzAobo@39rWZ6})KtgCKS7W)l7| zQ0t&-`Wgn?AJpE1F#(6gm)scr0rMzxagcV&EoD*eV;|dO>s<6I&a5$)j`!DGbhd-h z3SH7WmubLSp}Cl1%8R+oxei9(1B_9;SN$phTyodo!bIwXT$T8*Ki@Wgfq|4F$j`SO zRDy{KjjrG*Os>)R&rExfJGqE0ou11@$CiM5Z<>pq;vi2hM%?eFTy_V18L9Jx7jmF%Tod;9W#+;t*7x8={b8+qFl9zf!JW$bG z8e98GqZuChY%bka7(}V;mzbZH{}Z{t)Fb;TDpQB>_|v+DpFmzs2y;hvc4x$I1A(2` z+4orEAA;fzY=nQ|4(tpj=q*gf9oStkRc>c~yT=PS*)x~m@UJ!CVo~?(JgmFdAbjy~ z|AlDQbLY!DdtXZpDgiyhed)TCzIH=faCLB;7XIi{MM$#KUOl0`YC zPogqeK+n`A5634_wV?=e5>@$+2+K)S)d-uDs7yLqJ@+Ik7dIzS)iaL`I_ZG!NgSl1m+&Zv*T|ejXDroE%t$0G=ZR6 zdtMoZD*#gwQq;)+6~~7sdV3N0b%-fJHobaS0)m+ zZ`UAf8nFT4f1_`=GMVYyD(Spk!MWa9`+j6~bEXv!N|@AlP|2BT^&6M(!<)bZE9;v~Q_b!Y4&v zJ<@0kGDa}epA_v1n_8Y0x%Wpw)gVmg@eU;A$drC#Q#*7}>S$uC1{4lLLUR!#r_rml z8FCTi`#8^(U{@TPi;kfF%f)zCOe>3yEs0l{pNmG66ny!#T#ntdp6sv8^b4;=q9zh; znQqxVQL$DKmyaBo4KM&N4^gjux<#KjIaAmRN@~W(ofCGiEV<8d_4Z z%SZO=aKiZ|tNS8*xl(y7jB;`GlC6W(N(^ebIC=@zKroQ~6n`rA+%#SS9kpRlTm$8# zC#dCz8NH=Ws@^DmiLpBZ`dWy;LG4?U;-#=rb5ezW>>{`DZ-4wo%}wPByB=NyCnDJS z>TE8YjU$aKk4>nqOA_6qFI}DygCEj$KLTjA9{1uw0|L9^7u4Q+uay3fycr7gGJPky zPwu=Ds^rhTQ)*Nn{I10!#hx>T!sr-=*aWYk>zNT_5j7&((%ZHpR=+%m1Gt@>Ju z_QZF`hUe8G_+7bu5Wc7a)dU52hVZvj^(2&k`1{y+)J(L>3yD3Vq^niK!?mRzl7-Smj1Du;?A?M(j;k3&ko z6wTDma-24K)_icx7}Oqx9>W8xt~|TA!hf^A^CM8Mc3!z82!H+#6FrFY%B4Z8QJQaWLqD{Rt zh5Ng}Hro4tfptxOk3Z|qf%2M{zpE$P8`LnIga(jjNM2oIZ*YJT)ULvfttaBfUiL#l*P769^M`4;?2LjKs^#XJw!gv<_-wwMe zf_Tx{d(clIm+pTc)?s$9LHAJ#BI%16k2*K#ljoBFbLmGZ0KHEs3}nm`g3bkcKXVc6 zU@KWzhuNK;@|~lNMc(~B0mV4##Guj}GHLLnpmTUD+*1pMcXF_i{%UeN2aXfdLrC zbnGW}pse=YB{@+eIHuFu*C>hgC&ydj#QKxtElzB!eI97E&jUsKT&zU<`mGbIjIO28 zJ{L6F=VE%Y1iq6`)979(+6O>i+n{xV+S{OgdR_qS`|&4y>yMR(_IW0&5(#XR#i?O5 z5U@>Vz+Ystye2a_XwWoS<Gfj`ogvWt+?} zqe0VT9#~>97_r!7`rzyu6v7^%56*5BLLUL%N}>^OmkzlO$rk8MvHA$`DhcyJW}Srj zAhS`ze301^hxLQZc7*M7NW&gGo%<&G)DPMwgipx zxtLKtnn8Wd(fan-_W5{h^l2FHSv()I_##}lz-?>h;^SiOU5xbhH9@&Bg*}WBji0%Q z>FsQ%6)}$9|G#WY<0^x(k0w82v3)GrhRE#gHpCk6Y_}mcfGFLD$X-yo4Ux4gogWah z^8;;80q9E)C)&dS9fuPDLq6(hrr`b-cGb^%+Cbo0PnMsSE59J27Dd@Iep0R);rLS) z;l-F})`J}NZ8$Q!7(^2YFdm+Sa4W+P;U&Q@tAzpl(;Q!jVY~il(1nNr0(d+h1dXh^ z>G@zC2sO=fq$0Gix;3`#dY(^b| z-|IVIr%EFNkCPaWaZ6&#rzw>fce*U(CGMXIKl2>^aF#S~0?N8~UXe(*Y!myhQ;{^N z{r;T1iC4I6JEdNbyX-eeyIx_JFMTloIQD^URRV6-o=E2pd9N6g;?{4qE&%wFlp_6ZP8Anrdd8=Y`* zQmvGHx$wKZx_jmVyoTpull$RwfiEFZD-tc=D$3U1fjV!BaKC|t({ID$vTb8gFoP{N z4+_z9rQrLy%<@v~hV2nOvo&U~LnS?zXO{OHqOzEhswx&RsjRRc!qX&z?k%&zviy+7 z5)hiM@^cY&u0*Bex*Qbt$S;EA4i!+Z9nay`(i8Ai`7;IOdcgAS)6o*h!o}bNGFL$s zE;f06##Uh!wtUoq!|_`rMr8+sXauqKKDq3Jc#_=0@L~P3?LT8B4B;tjD@%6>Db8p%1MB^5MbQ{e!an)i|Hu1;pOLWOnx2iylo|e<9RmZTXmf_A-Ef+JYWiVg0au;G> zO(U`c1Ly_$dWuf2f%reRIiO?{V_-s)6YxhH&NQZnO%r2vT2~L4ZZNho9pp}dhShA0 znx}*H3rj%UBT*?p4Gx2ibU`iu-X)-x{|NMSH>P=u`+AtJMkymIV9n)WDdRUNyY#3dPhA}$)?@GNW8FJ3QjnXteWur8W>uCw`?Ozf}oVaXTJ@=+spbQ&;Ad3CKfbm(fe1sqa5E zmwhF|$Z-su$a?GO=Oon#*FKWy3*&!rQXM6!DcV!CZNhMJw^Fu8nW=lmo{ z$6&fc^U#Ui04{R)(W6T}(G)v=S5dyCgLY&+;(?3KNe~9@b@1 zu5*5D2^bF@vlrtHhz8bw%z(^Y3zX_RIhHmD!P_+s%L&J{%oyRz(Dx$0Uitt|N0i z_@7omR|5@dugt?ZpG1Qxur|)L7%#&PyP!4>PnLk%ILv?@HZfUSJ*t`qaJA&=8t26* ztDK`Mlo9?^j)9aRuIvwc3}V1?e0TQd^O2J?cpA`(GjFI|F1UHuv{o(`qjIVI7`)Zd zO_H-w2D}_}&t20S^B5KYBL925bGVDdU?&;y78Y4KbU9E!4n_uigo8{tc5y+YRxT#i z!FlXKg$QadIyYV=AGaFkgNXZtvA~_rafh$-jQb=g%>EWWS?*GR5a0JfMOitB%59Ts{q^v^!IFQ#+=CeRL(o4w1w;b~zK0#|i>}s8g71&s z0@eJBQX+Bew%DD$zOo z_OYa@2C?HFsa#Zs+W#z>WRc0jeWLt&C77;h=FPJbYVh`PzvAF>;Z(Fpc>nd7m@?-e zQI@^zS~MsKv`F?#^sd%89O~m^womF~V{$w;rV2#yt<(vUD>AijrP?PFzXymjt{#$h zJ4Gcn#~dY@fM$%xZ`@(nV|(2;DfJe95Owmv1My}me&fbq7PIe>MWTECXKYKQu7|LK z+C9+TXX7{Slt3Rib*|ji?Y%HqSD!TJg8HS>a4@)U!MI@Dt--Jy52I@b5#QPyRORNl zbxtrM_Z?(d1ETr_YRRYFa25)0-4b*Qzw8mJRuYc{gTtqnCsp|tXpGYm>FjMFszIDw zna-Y#V+86M?wSiP1Kxx%PY=juaS~B0iDkXR=XnCrmI&kIq1=NLAy^XeDFLWy{#if` zU&htub3c}%LNZ#1h~u6P253ebLBx!n55;TYtrb|{x(#jH4uZ{jHNuq>;_yWX*GQP{ z-yq@3u7zGpn9bi7hjsIpS3AvL4MI16t^usn^H!yt5(JfMhO#yR8}|<0IHIuHK^6Z| zxIvU#g>Wmvx*}x{pm(T=xHGCOtI+mU3~yYX>w|C|!dkp>cWDHP+=lAz(gMPCm-aZU zdy_MH{k=^3C>BYWAW3(?FjTe7X;EI_{i7ana~Yv2DKq39=tca*{3ehnJ6N~`p^_sH3)OV|CWP2Il=x^`s1lof=bRdMxh~=9 z$~3lvvwNLj01tsC+Vg-=^)xrQUKG^sxhSvR zI54B`7#iL0WW^!j9m6W}pE@}as~(&vQ`u{1KFPoaW!lxZB5Yl~$)Am4T)m4GUA;kj zFeY6+SnO5juviJj3TiI~i|ns=Y^_f%RU=UF#Mly5A*?M?^f_K2G8gCLcWjf6hTdfm zrHBp1ENcx~!d!y=yGPHlf?|jwIuvu=j=&w0V!u)c25Htk%^iyf9W<9USD|w z>Nnu@yt-q1t$vMEza3)rYgw!Man>$%l^mWp{5# zs&+EAV~^|`dt)2S$fWA~Uia`xgzFLRvtH0U+!^aK%_QarxlHTXsGMBP$-IzhFwFKl zJp7^)jbGT(NeH! zE`ogzttiyuo5j_pAc!aF`vVh=V&{0{bjV5vROScyH*P78zf=)d!1ztkRZdZY*Qg-;xNus=~$ zprbw5>R;G{$h8MtS6VnZ7rj0a0l9|Y|Ec8_`R6&lb+G(v33Nq0eKas zhUf?-L#_YFVGTu@9UPVhe=Uclhgwyd?|7(Hhw!gA)M{kTzi_Bk_}&?h^ne8Jd>Q5| z?F{-m0i-IpgA{|ggA~F3UG+dIRy_(Mjv^Uf)SEkB!&`UU24F6NdOJXOgY1n!P&*IW zauYRXRnRe$_y0vE9bzVFJqx2LCrJXBT-fhnv`V#Ufay38CB)X=B|7wKEj;0(&>!6K5yl&F2y_RBA1}{Xx!0h zdKK@`5d^hwnlyupcgST>yY-oQ)$~+B-8H&+XQaOK9Pa4cHZR^8tnd8hEa70=;++lk zov$B|G((FYh2KWs+4VuW^PAE;cbGd{!}caN!^~03gEmoLtbR~?1yeyJg4XGJu(mA37EMU>+U_f7Gu8? zFm@G6;Nbu66SGevb~_sG?vr}zGlES@_*rF-e>5PCwLbo_4sWhk{w7&G{;`IH`Mf{_ z2=jS?W`uc=V8}Cp+d$X@1Wl&YLVJLq3!2m5^d}a|tB|LBVxgL0`NTp!!g8Er?$ArI z+y)wqaG3Bogx3o4?nOPb<6ehyY?M^X9xBVe{#sI1A$;$MT;{JAQ)%Lhp?i8&L|kSw z7e{CJ^zM}BvY@$$#mhn+lHZG0vu0mh^tjCO-jR5ebT|ZNE)MRNJzS=%RY#r>=5kOY z!l;&aLOSD0^~w(Z5Pb}BSf2;a#u6XHOVZi5(1g{a^pcPMLP8_L_6rHEAj}sM6b?(Z zZBYf{m$yaa9@I{CFo!vs$`Nx8b2PA4Cv)Pj0kt~m6Mr)|{LO&z4ye1&9u)n_QGP1P z-HXc#+przwBDM_c@|hzXi8If82f_wrC@yocFGIu8cg~v^svg(k&nNiZeKQud#cj8%7Bf|G~?G|2-a0|j4G^cWUdrCWr`*YsX1xTY-vOFGHCJwaLYKbtzuiT=rd1*x!*J?=JfXCM{=`O0N$xp%K?toC%x4lf6#; zFJ-@0`(F)4Xz!LemXxi9XJ@$6J_5qqFkx-vuKG?_d3>;pOFD@iXXDSO4Amf%tizvY z@WY{#II!`gP;GK@s0o$G9|<+;jz7oZHx`E~B>3V(@-t979|hz#ESIUoc6bhv+!KGU zz;EnTSoPcJc$~P5-`LB8|z*i~^G=1jlB=QdR0&9hMF5Ai4UCH`y$3o_~UAhFd#NM~FAp=5jPgb*L6?J=Zy z6dVm6d~sM%Et6Afj{&yNuvLQEyYK{1B`!NZt5Qw)b2)x{@ZG({ItSw=%5L~G3%|wp z;C;vk5C{$d@e+uN!%}KL{1!h8;`N>x_0Oa7YVoxoX7|ddi(gEu#kVEE*Z%peO3cEa zb?Pst+G96@E_Xt@png1DskgglTToup2`TkN zZw|_;q?(gehv2ukGxg@{BLN+CTvmV1WN}Zt)vG^BvCk=j3`Qh87+8o{C!8kOSdC4- zDxub?xgu7!*LS3nFM+bLR*UzHe%v6fj+C2wKs1XFD9e=f%UFyWuz2c-%seE#RN`%* zv7Rc*ZJ1Wi2)Gx)y0T1fBsLiL7?{NErHQ*Calb2LwsvO3>1CN=NNg}S@kEKorHsW> zQSv|}K3G7__KdR3#z<^1H}M4$Z@5Xk0TMqf;0^?5mSwg=VuQJfS4+IXCh=xSoVhAy zdosaUWtm-&*kEqr4J6(GlXx-`?je+*R}?>{;yyXjIqDMonqb5Yp|nCF%^q|}U6 z*x)(|k!nE9ez9w~{6g$TXLwR#V4=J*ROd>L1Cisb%Y&|kWGT2q(7W*Vl9HGM;a-{@ zkTsbxI_MVh?9NLiPx`4Db$z0qC73x!&yB}(^zwXh*8_2m9`aCyd8p4-k}GH7Gd4!~ zGfKedszNTmXDN7J84VHg_&enDw&XDhz^taAN8u9(r1H$#TWV`!B0Dt;wGCO@>Qf+6 z)H2Ij)|05~lV$Ci5a#}TzK-0=FlrO(*N_*2FsA{2E~V27n%4_l%)VX_SNIbrx~;Ga z+6sH1R5-ujV;rC^Szs|=R}IhGL)5qmT+N=GsK~KWbs%Q+3A(Am5Aetfx^a_K|I+BrV0|L8a~^9%%ZA2O60ekg9BD zvYX^dvu|YLVn!w&2ASxW+da@|mjPYvawMUXvC*`SL4mGDc-{ET?XV6 zOY5u*$T^8s76W>Mxm5CW1><5yFdk+EF7Z$dwYSHU^}xw`yZR&x0p# zi6yIBO>B&d8MW~+V`DtfwJ{mV)f0gWS`m1ls|#Hui=r-s2SYGTXqee^5(7f|^;Q!1 z7h=b*7CEM;T2ik^0T|QcfyVTBpi!7A@Tqm;*+kl=)F`zLidi+~?x>MmA5>nv? zgiVE;88#JeBVj81J1O1mAud)@;q#s7w!$uGE9`-;dR!w}6x9Qc_!ub2Ng~W0A&A*W zCVK0h*$_izu_%=F<`9tPRzIkX2thS1V@N;y(;^_0d1tzbOR70lQUT}oTrb~M-Q zW5wcDp5<8F8W47{H(gS%%Z_6#t_K>6>w%_=H6Sl*ahpkq8nq#8)TsPyM~$jU7&SUx zO6Q7zvA8Z)qDJ#1x@U1+&`Qe#MOyKS!>f`9SFo(bHK1p44d_|ida!RR+(beu+{${1 zi&2Z63RjUZ75-34cWsJ`l~j0@6Wv-|7qk`jKvzA!k}Qfg1r=A>JHw2s184J|8kl_# z;i_{|YVM`Eum}2-Iv3&YiGJblf5K`6h}mQDcy1)z)xk1G;&RuVvAr{0fgL9pS19Lf zn#+zsq822Yvso^C0K!#E5dOoU@G``0Vz@H~YfG>Y*9v0R89^?~iI`fNQZsk%8FKzr zjW9=sAy>H?NI>26(nt#kN?)%(C9aEoCl~Upa9q#|#{-QvWbOtJtA%;4jLqDAD3)Um z1H#H=_>>6H*=q(7(ItRN|$nyG9KDBXXU4@=Hx|ki@dLXKj=PHj2 zvP#G#b7niv7L{BzN7H+2F2@PRtr|0@57wp65{zAE=7DkPE@n&jKvTL4x}_f`xk3hN z=0RO`>GNHV4(g|ytLi*7*P#`g*?!-kOA4gR^`8vay)n8g0>1CXsV#X)4*&yT4hd8bgwn&>viXY z$OM%kRlSwOYIINPdie#huIu)$0RbJ??cKl|rh7J%Fzww2!nSvx>*Ma}&TL)Gw6}+u z_Vz&2-Uf7yr;8Qa8#2?KX$ zwwCIslEZ->bqFS>Tl&%ReJL_9v1iJ@(YW-xf)^Hy7eSX>o$R~)myQa z>baPyo`;$0d7!D@`;wzuJr^rhPh0<&B|3Ye?aeM|yMhPWuAssk`a&z}H0MibJk?)a z1mevgHuY5?tf`+Vg>gh^OudU){qR7eA1-JGICm`qbTK194>JPvKqEi{x&m~uq5x3~ z-93&F9%xQX_c+p#tMN4rg1Ozp#ccIG&{W?AZS~JuOZ8pMRNuo)^*zv3-+*rQU94mE z&l4V)!Z^E&1k=_*oLwDM!8p4{s)aFrEhJ3$Xa`}dx9WzD#?Qq}^*qc}&jU^M4Cq$R z#fsI_-Q!i40khueg0_2jV6l6s0=q;~vZ;rN=6n?NEYLH!pzR_Cbi0U)Ssn2}qa!Y8 zg_v{eAX6?EGeYz*BSa50LNuT&L>DUx(R7i{!h_pIDg<*qNI${cF5+Ug`W|Si?}E1a zL)TJ$7ceTA?IH~%Oc!YeVXHTF zE!A@|Q#}te)$>48Jp;PcbFpIebQjslWx#Y17qnf(1B+cG9FAv^ZK%_nuYxY&4IDH5 z9<@DBrZm+cW}X<2nHqV+n2k0PkcpnsR9zg)M6*Je4NH2sKGw-& z=0Z$q3f4`*W5A>*777C$aIT9xQQ8SZKK&uj}6yv$P50 zL^%Ip?jP`ekbolq4#n%~M*(X=Du%~h5UBPzoS(8dP|GDQ>ohu%7^)BXXcdrix6#Q& z_sm@EkjWkD03kz!_`qpJ;^2OE7)yn;4Lf`e)Q0 zcf>I`Nt-(;(KkOBgWl%_hxT);pS0iapdbv#*13QZco)B6}DnbFC2C)K~gup1~5w){;43wcp6js%)px z2wjEN8g z6$CYRlf>ZML@bgvfSCPYHp;JF6RNp)#mYf9IQzwHRpHMtBufRPEM~uu?H&EG1f&Un zxD=xazq1si34b4|W3n_R{EZUKn()G0^tjRY#$2&;&weU9AoDC1R$Oq#w>j*h`3K&C zkeJlO*-vCU7w#eC4B!d6Wely_xR{^|EIV~~8gMmTpyqPGUS-WRi_ z!2=V$b3?GpubHwv9Ou70_Yj;0iGve^^rG6n61^OGOy8+@#6`731RFza=UjpNo30Ry zZ7`!Eh_`XMpz)X%xGyf6WE0ef2=&Y(qZ3Yi9MZZ!P3Tn>G@7BBd){ew9=4Y7nfr-lx_;LRO8N5k^Jz zgUL3AQ9=DAyS&L+HGX$ltWa*nT&$#GZ#vQKD8dD8#XK;sSbovRO6@B-pquK}Q#o#4 zs|HW3pKMyI2RVJ6bT2)OX#!E)wDygNb_CV8Jl#WYT600WY0U%a`M5S}KnzHV`jQr& zTzzpdqc0w2^u+^>z8KIItBaM0wTH`q885n^6{`mtebM`kzJ9c5v8H!V_tlGnE@dElGPSGyQM`bzXrr|tV`0ORFg0k zrJjVTQ4CD+Sd3PNO~rVymaW)s!YMtYshEqE zRBRWCu3d{!Z5Ol^^FYU9JS^JeTZ}636k80Hr(3&F%Ap&cJ~W-vec~zsIZ~UxetNj> z6E0}`ga;a9VZe>pDCS|qeUhiE+%9I6+rx}lif>tmdXpDscy(b83Bu`I;UC{F7frc+_ZR*gf)5oL-Xlv8R zCN|clg@oyw?I3J}{N|~m3p3Wn#Y}^Em}w9XG!5c`GInvXVuL_@;VZBr>E1e7`HfC>t4WyZ)`PIs-S@e;x~{WwF;iU+ zGu8D#Q(XhP&dSA#)zzlzFkyf_&FY^E+IIFp)6QD|PLn)1>7G6@-AC)63tIj2K%;*K z)bm%!Q}cC}5L`s_0_Hwo&=_@z%&l;egw8rtg#(x$bD)WwWQJq#k%n`1l>A_c2pmhPgJ1)hRIA*VkNNEy0Indy%UnnFCx6ykxV zkOEhCUYC67`=;-fuFxOlbV0866xN`HR!Ge48FNayb0L=u)L#VT5ncL)!O!u+pa<#~ z2D>Bbw@wZ8yMb?EYMFjM)<#Yi^;>}XE}vnJDk$$w-y6!X{dox80%bTaozCtFq8bF3 z+g6^Bca!6APGPyN4Pm>?cJ2#t=ClHKnau@dnN4rbsJs=~?*sG5b*mZ>cDWGV@zINCUrWm{<9P9G2wLL`$$3Mdx{0;`*aCsDiC#eywa4N7H)jXx zdWSdLR4oE}P33~7slJElth^0PH8tHmHwuHMIuQISX92H}s$E|!s#9$t(Lb}^HznX> z(6sOk%;p=J$-e2~xgGjq5skzHVb}ZsXx~|qiC&R-FzlA!4l7Z&3CP9b=?~%f$+LDu z=yoJ~EX>9oB=x7b@Ut0ZU+Ez02*_KugLt6rAnQt0maE^WtvwniDhWuBp?l4aC1CtU zE&EcfMCE`f?n~>U+ub0jwzjj=SnUPlRb>32bgz8tgQ0p?Vqmdcil{g!(VO`KPEZ2}*kaGHQ z(g#(u(+8_Tm_FFV8>SDcJDomQ2g3HjRBK$a+Xr3D^g$0Zeb56HOpw|cgEG=XEpmv~hC1>qG=ZOPtfk37ok&Yc`J4Iz2XysiHm2sdo zB*cL>B5WP#t&R+f4zx9nt{tel+i{>(AdCa8L)Z#LJJ3cT)`7NwunzQ5rx;@{UCcC< zhZ*1IfyTFK2ind8jRSp4%J3Yh3z|Ya%oO5*rV#Bwzma^k1O2TyP#2^F&3}&tq)so# z3aK6FQR#t&dwx{vd;yPQH#-VO<1v7j3#cstU&B9YN#KLpX#5FL{~%FWEp0UFVILk6 zFe6}oRtXpzjrzBgdP1UZ%BXw|zd(cDD7rg=T(Q5?pjX~gH0U*PSR3?Ed2E7@C{>*Yn`LyxY3F*#xR(8u*V+mRd$;uumAQv*Vg=A%2 zuvponBoJ@0+o3C~3tDM!78-98sT4K*N( zGfzWZtoSsvOxAhlGp0NZH5dm1_G#!)iMT64^EA|eV*r|`p&lkrLk&g^GfzVsAs_QJ zbW_PZkNfs%XbU6Qr=j~x6q+vcG}Oh4PeTuqm~^jGg=6!k$&#!g8I2k*$0@=0lHw%tY1&jUVZ9P&h&e)#WVhh}Kka@+m|!%uKN@1fL?a5d!ELgL|6=dfx3 zPNE@kU#fHVcC1KMJ_O>+ZuzSbKEugfj{+aXjCiSloZ0H}-h+ra=$Tj)cFF2hELnM= z9`B*aS^6}Iy@0LLk}4~Zi$erFm>{@`$c+bn*{#5`PF!1A9;gTMtibsamAYjsaH)Xf zr2_b;xk^17*I^nNcwD&hK*N;>3Rm4FwI=}&v|Npls2*3N1>|y%o-^Qo7U!R-8aBvx zWrf!fen%qdu{!54Z4k2uvXH`-7_9$IqS_Jss1h(9!M}hOO~^Vowlm3e<#?P2w%OaU zI9S#^I32AK2Gp$ckgsru`vcWL77-Y`t<-;I)rMhSDN2jX+vG>4S zeh5~WE|c8pv1*UQO4HMbaHD{9+qEYo24;TzsswzdJ8p#yD5ilq_fB;#e1sYtF9|tO zn12-ZIo%AdT#z2S@Y?b~JtHyME#~i-?3w3smj})a2CDqm$n*_~%DKh-{gb1@Ca~Db zVh>Ap*B@n5kC<5%v#tU)|L|nDcm<6Fvr>f|G|`A;ZF4G4Zj@%itu4db1- zRrS(QOJ(8260Gj*pt7*z*Gf&3h~&6#-Jo}V%Mx(o&$w+vW%HM8;F_~JbcDS;B~W2eK%%X zH`}OGg>E(vq^xz+8zib0_2|@kI;saUsxGe?MaOmr~D5CI^r`#K`{) zg=iCSbAZupiOwoK7&R$>44G_~$`y_Q@x_XmPiqC<#=O@9wG}uGQGbxA)(Uie8_KdW zPOm$-UOAvMCuTT3=Vm19g?yE$Yb4Bp5HIE0ZETW%od))5<1104a=>Hg+UFTe_?WP{=^bc8#W!aLZZ^1AZnG4>Vn0nJ4jTv z#{8#}8|kPn7)NE*k92c=IXOtTh6idNdX*S2d>2SOI0`zT6T*l)Ns~oZ|KFkM;1Yr)ulGwC*Pw4)NE<=c2^;%rTeJx zoeVy%g9e$ubE;=}25eD1h%US5a%IPZXaa#@4-6FJwKCo=sa`ssdeVtk1tN|&5cRGD zHGj8M?<_lh6L0m-MYMcBx5ZL{D^aO6JtGR$!#*6LYwu#3dBiV_M2A`}vVtL2^G`_y z(Th(g^_hSWl7ccu4`F|K36_5Wi|z)~#?tIF|GOmSq}49Mxu7h<6^>g5o>#~GkC5WC z2iyZYf(oM8>=YDR{*(^q4@Gg2L}qujYkq?T)I6AN?Jg+Ap}zFmzme$LYllG>?X?YP zy>@OdEaOz8=y`||9x6cQtP~lv9O*E-}qr%hrwXW%!cm~jH^@H zxAts<(G>7*Ml8p^{{6zhf+xo@^Czq+M%4Tqmfy1Q$ztrsm(=qRvCCokvh242o52Z1 z#aVe<94`9+;mT)Xi;&GOg!aTlb`5Sc#^JJdgj*z%%8o>=c8OJqaOJZ)d07R*HE|fF z!m0=7U?t+CVtuI{%ke0t1k1mRXKn`bnyX$Cd)ncGu6CRxk*OUNnAVPlm>;bj&2d<3 z$LSK;EAC1GJ?(Hos~y=DJ41xX59d$juH6wbcrK;#N8lrUna^A;Tx;Bno&~mI2qh{j-)=lwe5q^tP zIRCd9hq>y*R@dMlaE01zrT!A}R;Ivkr*t&QVjFXdp!C9{x&jocnj#94rByP~( zB^1tUeGTWeK63_YRGTPVy*jNX%iT)Wa_>ZWH2H6U=ODy+pouYtr**dV+Eh-MIa)Yl)QzBUpZ^>yJ8@cDSu$MM-h;fPkj ze3jkB%y`Yi%y_ME064f(au|vn7XOTK=`0j(Kp1MZ_=JF~;o;ymSQZow-pjI^gQy3= zZd8Tv$CAq>h)L{BSS*7b7Gs6&5bq0#cOWp@f@liBUZ2Lz$axzRe|&5aGnV|FwO}uG z#IipFYl<1m9*q9o8i#ZB=-286=TYl$DU_zlT6-6?>KfJDr_?BkJ}BlfyC1MBf<#N$>B@y@ACzt;NeD==YA@mY~;->SC}v5(;Timd5mso7qk4kplN8OdqFEDdU{XY3sf&i)bxTYByZhGZ7;Y^P_Gxb zpy>r3CcVJLY%g%ZVlQ|Io$CoH3+ka(o)PKJWiXb%;>wIx_)Ku%j3H(q9QI$ISz3+}&>f;ggCdG_EaJu9Qu z2*x46ir;n8HBw?%sI4molnc zKRT?e(Bp4Dw((qWl`tkGRsiZ9Kq;FRxZn`=rz>-CINMK zJE(WIGiqN2^)j`-SMIyDb}?IP7c{lbY=UB+l^m!ED-T^yv$skx&EDZ zFJH)a9rj5C>DJHUk!5)`{d#x!b$$;5Dw}O_w?r<) zs6sU}28ir4nD(`SfPoBehE|pTDW#T9&*icY;6^nF`0;QCx<);3z<)=-hszuI*SL6! zHN2>Q<`@i4J#5fCSzdibd{b78o5nj4)t}VR>Dtv=J^$;YDvXG#p0off%s>xa5u=g6>%5OP4vt^1h$Wm$Xd>0 z6J5je!AnysVt~k<4x$x=-cxrI%aQ0>gxr)KK8H-y%ZR^CqF1;X1Y89|FH>y*q7H;! zekxqFTT(qEsk?%o#oH#7nlu<+ zK9EGiS&jPg{CDez>L7w7!&aZi`b{2WoF2_W zf^7xoI1%##eTsvN*$h1J%h)nN!N#J_^(biZ5uL)_JL7A+2p|7Oe&!CUu>*3HUzh;yy9+pkF{i*qeTk8r0d?}}I0}=KLl-Q2IUcpSm>v-4cS4?n zBu|dw-kXW(;64CH3dpYc-YgD=vhxAAQIaEjh6f^C^;Sx~*B$=m0T4S&`~u_S$!6F9 zu%0p6gKqg}Kunhybb9aIi0{gr3-FE3ac>_;@Rnfx!a0!gDgkwUmZCnKbh_Y*8{)O*DfxhyBftqdR3DddD$y^Ve8m zc2}o}50<@nRpt7*vWv-cW!T$G!F3%v{f~l^< zozErqWB{u+?@^#k4MyM8c0P`w`&8SQTxQfxm=`$M>TQs(Ucjh9W3Jk&k5=dggtf4# z(9;|StU|A9ja9D8|P8U zlS|}QpIy*2j)zI(xR`Am7c4doEy`C?mS<61&{z}?6N} zqPSSmqC}F~wJ0uDv?z6GOk+_R5w;d(u)~10DBBEMn?>1CP|u>cplJaQlNN9>+X60V zTR>ZsGo`G}sX<~on{MJ`RD;4Um|40JJM|38GUaeV2ITx_<+cMd{eayk zIa1qJZcm@1vb(3T=KvyW>@z5wjBp!e`2cqN4&@8WZ6LV+pf`wW5Zraj{RfXqPSg^! z|G>q}{sRv)`wud&uEMxoa^NJdv0u071vF}}b>mKaC9xs7=m7BJVq?1G3T#$`ZH;(c zp31GO+tq+W0h)GoG1IOtX4};TFPC;T80%=;b%?O&wyTHPc3od$c4*iC!`^p5$5CW! zS5IiobdPMwmMu9law6CmIRXZQz&1g~AWRrC0!$7T*&qxe+cMY!6BZ1MSaMt~!Ndnz z;Z@Dn)~$3aZLA&0e^ahD7M80G zhUIENYCcT4&e9*aUeZGld?AVc_KU5V;L>f zAV(Jf%e^x|dA$a?_}J&kEIPN6rGW3SXj`j9wsJe6Oh3>#%lY+fvmPU}u|C{%o*Rt8 zL2^V;`r`shKMRA6<#x+vy-8mbLDWaJ`A><}@K0s>Yz_SwBor!^?9Qk?Z7>HKn|JTP zq?ayRr86(VtlkK;Yfr*l6PRgCX1eeNp8f(C7f>r9LsvKMu^XLB3aCa%c?X(E#+7Gw_mj z{!L`@utc@H9xUoDY-Bwchk2jF0?<3UoS3z_BXG9tesIKqY?Fh(aJlV&L2RBiacYC3p@~)P?I6RMXHZRRVBzB9AUHI@ zEQ^m*(N?s=a_R1+nZJYg9Wd{-UbgfyG`rm}U)(h$Qwk6HcVK>_U&*F8jWzVspn{S~ zmu^#$c@jd^2=`0tN4ujZBMg{j!EqZ9m%SS-IJ!R~#|^N|-2&SayJ2aC1v#$tUIgQJ zvBDI_yQdl_4aRJnbMl=?usJ8clMbBS zba+l)ePW-JKT(rV{>(Xf8!MiZKT}gue9bv|gR$_#bMiJAo|Cu1*g5%SI$&}&JST61 za!%gkIr*D4Da&YXMY2Nf{Jvd-5N9>Ff3iBu1MoG-B`renwM{WqQ#6tS7MEw_+i2M+ zxtg5DUG0mY@Hp$0L-IaJ7HKrkXeu@7(m1Khv-6z{ZLQ?ma(G^?v<}bL(t<;Za*VeX z7IS$1$uEOA$%OD2uML_FVG+!12#bJbLs$gV8^UZX+z=KVp6_64J|833bib!l!Mq2K2g1cwi zXfcQ8ztM@N(1wTR4ajN{HX(_xtO78H=4~)+LLy+$gvjO6%YO($;M|vS1(!>A>f|Un zL0_k1k@Vc@!UxtxH4J|nC?Wz<;G_*`g4)7l6QtJ0Q;e!x}9Dgqb z#mH}h+)y~=Lb_>~c|<@NLJtJ#I+~R2D37G$pU>!z()j)WrQFq#-&U5%6l8uPEH`Q@nIkdt^~ih#lvo!2 zpwvT}l-(v{@ozo`2R<~&9zdf0LktYgLq3HBb!yUDlF9+ySAg!RM`B}u&fOuI&b$w> z14-o6{(2nA=nl-@?nu}iO-u<0r`pXLr2Z|OYTKZmYWrUxEU*o)K^gd=;A%D%AnBE4WSA;@p;uL$EU4I5oa4Z^5}Kjc!vXtcxl zToY4*L-hpAXlp-OhMD*Gfjs8{z<;hU^dT|KtARemU=e-DK<$}bNLWZVXbQ>0w03ig zcL{=s_SiKy6 zZ4en!{u?-={FJ7oK!>*+L_j(CokO6nTFDG=IZ$6AT66Hb2A1I9H-m1VlR5a^N(+Nh zK5u*Yoeql%K;HV0a-m7pM+K^gW zc(1}Jq_>e4-mB0bF72>LoAD_6yTcMe^4R~%y$bilz~HU|k{+u`IY*Iu6-a7>MbiJ! zq^#+3uL4PJFd(G}eyK^>FCJ;`RfvGXbtYivWPcDrwNFystH4lguo&u6o7CK^5CJ9B znPA6_npCO_?^R%^5wLi#!k3!wW0?YTuYv((9AWNNut7o31OQV^uBt0d%}qL8>Y&yjOuO;NDgV@?HfpHG<(@ z1?JwyB=N|u+^eu|sy~c4r+{C0ufoO}L{mVyl6w_mnB1#iFd6Kadll-m=Sb&jgQj!k zfNLjBJYGjH1FlwN5Yftjt0OSWfU7|hM+RIcX)rS2vcYih;2wb9pc~=Mot><5cZDVY zBTD8k$x?SQdV_je7AH&nlVQ0=hsxpdgwvcV_xD)+YzD=IXR)z-&L15dE)E#S3O}{l zSxt7mzpFvEB2%lJa@jWjp$5qiNsM>zyI2&{C?{eJRCzlhii$Ohp(0+^VfPfIv>j2; z-44k<8kR1T>}!$IvY&Lam%-9E9eCf0fg;&HlRZX*&~6u#KTd;eZ^GnnrNKz@x7A>n z{2-+xdZrZp!t*oHQD_f)A?U_|rT*K%uF%-}z`R2-h#LQfQcr1+Lp<;LB#YI146J!Y zzzCwR9rRMgAeh?VMPkLqPZ z!9t>%*?YbgN_d?VG6x`TT7Dep=Ne`AL;p(d@%mn)WbeNB@EEDr_kE=*dIel3E0{*D zhR!?4@kz=4qK0mUB~(Lqz!IvVRU#d#q3dA|)zEFUKqDj1MRdbL9g)iV*$sAohseVPt~QdZPW*Fx$--So|RXEk|XbkjB_y6FsGv}}eq zqm$lEZ{3aPq)*Zyr6ANv8*nl}qmzzcS|@EVmXOg&wZJdyDJeNdCv7k$Ak<0QV5pO}!I(~3^$kRag%;|hZ7|SD^ZM03nv@xu zdn#^Tqx!il1sQ`yl*_fWoR;jHqKjKy7tW2=3bf{>AebYnFd)XbAO*4 z>5s!q?ngVC+fdo3{H#KdauLkrpa#YD`iKuC?w>jEN~hJ4Qy{HR!qQ0#XL6UL1#8y3 zTxGP*`|2KqUmN78%smER-i0^ZQ*1_l!&l765` zSxIFQM^YOsk`5jkgv$KMB#xvuD5O%>^+*jTZz6K7v`AUg!)7`ZiSX~qF&@FXC|E1G zxW$f-(>qeyU@^WgOt&5M-DvL^N(AI|PDsDCN$=I95ilf8uGSx1 z;Lr`c;3ScuM!@1E@d#bMGD|U&L<5oy;pKZaD4CN<;xXF4$W=H=tYI$AB(VXO@bbM@ zSc;Rx4$_&+_quJmd@n=CT3ipCOcGg(Tj_*JA{*Cdw1lv-ags=>iC~x{GWRwni3hz* z5)aqB8ckl|^1Tc%-|IvSkk{F>lyYWCSWpd*yuV&MZi9%W4rk?G0^ly?&(nDbb?Kb=HecR zPiHE1L?+4(4s;|FicNFw^SJ&(qxIQ!v-bUb(@eU1-T7NQYgL1b7b87maD87Tb zwcW>b4i?OkN@l{tH99`Bb&E#^m8?W=Z?Lh4AYbmA2(Obt3`h^j-oUwG-?W^!R_5JrJd>r|rx!qqneueHJd<3Ah6fhZ zxXjmZ=+Nd5VeZ!EG2mUkLTKFAf!D*lMH=^$dn1KP>10MB-| zU_jgtt-aAIU!W5d>EdkAuD?NUXLtc?si2#i$4m1*TD7e-C@cWzosZmZr$N>W$*l<2 zovbqWhT%8&lT==W%LYT?vcXWe3}^|LaxYzwR<+32q9YSSa+P4j{W@xv|Lec2^p>zj zTM3t$L+(K|6@Sy{lz`G-9>Zi`^BU+49i48Lf4HwX0tWkFCj{o+dRq!U1ExAjU;UV{bgOxm7M;-$eu$C8{O624ufv zvTHDwQ!%@{Y44K*O3AK`h1oqz6GpNd0j=y_U=f?_+E_8WomO@gF66Va`-u)@I&*dw zvbz(Sh6b%b<=k^o6Yl(y3S)unomg*dLSn2xag6mSjQ`o4)S104Q=yb1c`<|6l9kiT?Ta?;)nrXQrn{%Q5 zyIjXM0kIwV^Z@V@a~#gb%yR$rIubTIMoCn%;#iz4uL*c2 zJ3(HcGe7Tcj4fZ(eyE*Vv>09R+Q|7E8l5D?SZXT_0Eo;t(cxt^`NNU#i`6L z-GnCv0}F!M8^LzMy69qOkb4Bgt!!{QIF@+|da8O@TRXz1US3e~?tucX6QqTR|eaC0A^hlA8#pZ$X?C$vMm10NS1YF42}f;2y?+ z_8txCJvVu3&^4Z#?l|r-Z{Zfh^ANu43@KfAOj@YtCHS?-<6t_jrR1TaTJJ;t+$fm7-w{* z3YHF7%nsilEb5fm;Tr+X4&Ml^IB7s~nN)s3a-T8Dy(LI)Hxsj5CpRDr)Hq>s zYfrF}+X#zEu1y^#Hv*dEMnIih8?%zD61@&W6o=!_9Q>xg2ErzeGbJH z7WhqH;q+=hDkz7y5tLJCLNR}LG>ZAD+*&BM`?TX<;W)iBn{B9r=%cU~U7bLimAYX7 zo<{pyT1|h(QK@4ub=4*gZkoub7W}5~?>LE1_Q8GF-{DW)93V%6bSD@tpyg~W zpOuTZbkvC(rq$Ma2N#VpUn3<&9Tcg=fXlr=k}FD%4k%}jcAV7L7vj;xaY;3MV9^^z z%qgr8Z>fF3g>w9%{LdbP*bX@W$cgy#IDWIQc2cK8=>LY_Y+TO$A@Z}yz!Ek4uTFA1 z{J)y!l;iYjJ33&}G*n-wFzjYeoq*r$+cTTJomO37$ZR~8cK;Dr$Ui0^oP9 z2Q>xW*=o3gKq6ZkC{ z>!hB-|KWSWj9aEtWjm+Tyd7ZK*^y?e^6K4F>f?c)TCk10QiTYVItD+d@ccVzRmx`+ zx{e3^w&kTa!CZ!FxL|g9?k!O@4!#1I}zjxKy%W|qN1Lx7{5|x^WKfLX>?i)uok4hwmNF3*X zi0RABF9nf599q|Xo%J^TDvH%U;SN-pVHK{*wbH zWC0@=f|35XI3pFJIx+^O=(8b;4kgIuQYbI^o^70%{Z;6RNh< z303kfgm(vxhQeD}p24k&klnhUF;44+vpr}J>b}AgIzONlVY^ayiQ^3IXbAd|X_CdM zS9z)~=*J$?4s4t2Fdi6MwwF!04JoHdk5{1`gmQXXRl$dRo6C6h08m~?>LYS%TJ@iS z)g77f|9~oFK4LRpPNe;vthz6RmpZOL;!8t^88M7?y>KmJpBPyCOqv~o%8b4THgh7G$Ccis=R~qTFv~=;8Rl>v zIPHKSMJ#Q5BDtl;S(_1vOeAeA3?KrUiDd2(2<1W@1gHOXPgi(*eqF>EUG41{g-OmY z)Ra>B@Hjbh-i}n(J>Oq)-mP=ODRlnKAXm(Jy*4xF&DzYIw`((V-W8aG<6H}@od5Vw za-KXe;0POglXDvja~=Ur&NDmz4kCqk>N>~gt~)oW`sv^}654QhzuXCMk6?Y%B};KP zw2jRef@+uB7nEyh-`mpnh^%mHy2dCc8;-*u=!D~yI$49P^Bay#=N7}WjUgu`mmwM( zo3SRTGe={T(I_ci+a>4QU|#=(WRpWxu^|AYGjD$oQRFu_GN-PipT8`Im92-{Dwo8;mofUyJaQ+xi}?uZ(LR}*V6KJvqU7>{<5~ePIVNU*$M@Bb~@w)A@1gFo!dr=zXctNfd8~#l)3SNvgzP6H71RPtMoD2`jo7#@UjXH=F0LDy*%m%+p zs%~cL?rd(auh0bU9b}5}YPQ@8{S^#zmJsz8{>;S{*y7nA-MI<|MRLSZ;OFLUc#~~?=-i=9P$rr`{jdIHduV+ zhmYIUBaIv0i~benR+!mJ@b0iqZRR6(WhVzX?+mLC%yMT~E6m}dOpC4(kws7&3>RgD z9mi;L){hPEs1$bCSjY|=4B26WLP>VmV91ULXxL$cAv-YjS|0^?zE0QxChXQhxx*kk zH*1V@(+%%SdnxpRHdgxyM|!y@P@Uh?#ms)E?tx0bBZf)6zby{3-sfH|#cRq|4XJx@ zfGnijSmh3SA>Du+5z4}(D*13roF35rDP^eQnSEbKsZJDA-Kzur8^2WQ9_`NFe1kKR zgS=-fkY!PO0=jemGN2D@Qg(S8v?SBs*)gydD+J2D60K7Hl%(2V5q5`N$R-LFw2AKJ zkEK*Q&1|Cjp^56E1+B=&FGxsjJ_-#z~b;Vwbk#Xvsxe4o$Wv7CN zul4i0P_2hpF>gEwcU!XKuht-WIAg0mxKkZZmDR%6#)F+wcgn>{)kw>;&S05(tggw~ zaBR8SD4BZLSUB~t!Egv|Kr$p8LffDjLgzL^#7FA5nEx&Fxg6ynf{n?F7}%JI0qF6R z%T*XlF!ygcxw~NgNr%RfIvR`IvMYLGD>1!@(TQrpV4P-chKJllHDQCIn(&&Dz_hM% zOv7e*ydaCOM1iNxI(~Klb+1)q=A$q>rF3RwO5v_flg7#&i=5ZMyzwV^k&m;JS{)*5 z=9VM#!g3o6S#E>@7!?O4YG3sXBN{9@2EV&JW9SW>T1A9b$v~TDPW)~^AAVKPtvuO(m1aVHW;k? zwS%|3Z8FV6|28)QO4HiXoLmfAw4n8Hk_Cl?MFa8+BaB4%M}5&JX2lycO4U39Fb?LD{T;OBnRqB8w^#y z5zwf9ZP0W-!PMd{9h>BV{f|lx=wG5{;#YSx)??4ADpB|2SGNdi!NK`YStBsw#m_0c z07mzQ!oKb%$4mX7)Hv-r07G2$HTSm6KAlu?$2rUtp-a8 ze(J2Q*Pa<>@m=Rgj37He-2N7ZdM010WFWA zW4#^m0*wY95@1Tb>Ap4?VbEo_ELPzDX zXQ=LZXHcdQb+aCpweQOMyxaO!9SFx_Q#W+{++%U@&1}h?aV)sp+UrKh$wLC(a=3#S zO2KW7oCm}yl!4Q-X7f_O?PjLrWiXiBZl}d?yBn5}+uP|tBHT7$l-q}CQj6QFf0qUW zaa@2zNRhwkxIdB|XCvOX3_D;k?D#}`i?AaCYIa00iyhvf7CYVoJNngVggu;7$lzf` zVaL0UQUe=wH5w~!r^0PHesxYFaZV2JFV||Xqr~|ya2jwuoJ$gk6+qIB+IdfL9u24K z=-fZyZwKBQSEi?KaAK%`9c0D^Wh3V$F;E0)CIrb)_JVgA+wKJLL@Rf?aS?ttlb=Hp zgGIdBEq=CW4-tMwK+VqxX7TfCE5^EfqEwZ2YJ_?Pr*J27JnjbMdN@?3gS)lce}K78 zVFTdD(rsMA=W1Z~u%K-AAx9=B`pD{_0i~DFtAjQstAjbN4))XD3-ta?Hp5lIF67np z5ym~zM?^r~M;I*9M?^r~M{sp;Zyl?LSlLI&>fnJIWD{*x2W>3uA|jyaB5W|)MNHM< zj$~x)B4ow=2#rb=-zYIqdVqE-U3JqERqkqcLNBoxaxfkD**?X^2w3WI7;EO22yJe_ zdNy|3PAm=9U@c6zEXxaLXq2t`wrgWV5G6``V1D4z6fYZ zpTW%tC9*ax6Q$VNG_g?nY~MZBrb!uCF^avsfLq%2CiJG*l?IB;xwx3Imgar4 zZZph{FpnRI3modkx~h$qs~kLjh}UKDc93e?7cV}KKNKuJ#!*!pVq5SH8=Qfzlv#;;ynAuM7*;lU`1dE>w(#>`lAlky*MH6vNjfUAt&DwcWzYxQEt(HoA zXT`yfcndr}kGrnF(b2JZ$KT)#^0@n2>2OgK1zn^9LWzI~#XI$-D5#s?xZdXQAVKf}Q7op!3|XIjye7Pb}M@<6OedlP)Kt zx$I^Ho;__)&_oZbIr@x!U5=7Z?j^dn6 zYC|n7GFM}5I8uiwLn;n*SR0x&$j-==rQ09jG{Wn=l0>Q0jy8sa#eAt9XKOEp$*di5 zjI|?@itgw{CPS#F~&>NbBdMad2XUqnjRYr1w8^9LAOD}oOGKG zlby0txCMo>QWwm9D40&NjRkWv3Pv5T3uZVNS_6v|3@b$gEK)G66j$gFSsepy3=Y=R zz)LIrvkX{CI_QOEz)JFf_F~F_l_ZX_lEg7qk~qdn6319c;utGQ43n}lSfs3Muvk`) z>14;s3aei1D3)ti3TRkbHW-#x1T>{(gQm1p;zMi;PJV$u>#v6z=%Jo{dvaQBbP8%9 zEU77{rq!mjeBmTdJ2R~w!%wKLSYlareA`va@DnfYJFdEnmM@&t?_pl!T`?zLhj|3e zjARTpAs>#P__zXwqiI1TSEX>s-8ig(#W*a+ro_ z^TqDK0VB`{Ct|7cMf{n7!TO2Y7Pocp4SqU>*`H(;NlqM*ISM+7Ziv%~*y6(ho%twD zC*q}Hj$F-0p$rFh2Beo@V25}=z;%Bd@XE(=pi{U4aq)D+%z>iT6c>!4;PMZ+@GQs7 zbshhl4snn_gYkDJ_N3%qxu^)THyMRKlp6xfXE1IIFdrx9q~itw^J&a$#Q8+?Q9{EF z0|unVEj-0(gW-mOV(x;*II%LTuKpT2@vW_0(Dm@@6joNc%I5|e^HJS6^EAxkxs%3x z1hJzg#~n516Ra;TbhhY5!BN%`xWmSL0%DdfJ8d*buFEnucifmyz+jdR$oq@sGzb7w zRXjq(@SVc?$l1UtDK+!@g!e~``prkznKyvGq8+Z+lOmri7VQf0ydONDi{H$z64@8N z!>qW;Q8T|z`0g|PF<1*MY4;uk+e%9{ZpgTGqKN^gKwxaXY=}Q6hRLkp>NqH~0-0i& z5Lmd)SLN}SBM15ZioZ^Q(Mzryt<3CQ`0*eYYo$VQ;)AtMCiG9p+^MkqHuWJJK2j0`0qPZ`)UBH(`_BmS#@ zE{g6JOe->w`y4Y_^O5zZtex}Th+)$3m)yOuC`bcIIUWyjeP#SYGKozr^9IGR+7ob2 zK>6&R%t!BteUz;F+u$hFe)do1BOx&9pA5!Sh9hkoEcQOs(x=LpZm?) z1NQ@zb(>Cj&obWRpOkUVE@P(rlo{FFvsQz{)u&U-D!j)nSs=zOf0!_rT1C&k<&-UQ z-WoBiHrqoSdV>@k9v2Y@f^l)s*smcD#n$C%MC24$>{8sFt19jZOkuqFCm1ho!T!gK z+h=i`ufViIUjK{5zA3!Ni+v4X@nR?TzpvO63pch#Ih0YS@H%RKpKjFtpOeXPn+E4O zXTE_~_e6ag9B;udgi6LRFRuu%_pGQ4BLJZ+8eVOwhNYUGpr$JH3&Du8j!Jtn_(lM*$iugkz&N~;REg)H5%1rrrvlfa zNp}hZz$h6`u9b4%WUDeCIUR$WH&a8==EB1CyEkFqZbRTQ(BJ+W+z6oq;b>><5~spj z*^S#DZ14n}&~@*IzgGAINpN$}51ND>)7Yg>wcH$JK=vZRm6fBngMOO+mO8yNKcZpl zhUJXG>D;6vF`9Xa1J&SU-s!na$r>@NVs)+6{O(O?`d9@gAdP~2J z1zY;v>+ZlE6+s#*Ty6>IfMv6-oB^^YV4;+MR} zysETO4t~?LRcx_YN`3o5TFu-ykD2t%+^e zsMWcGGtyUyOU}($OegqiM@!a!`lF}M;%3&tw59C)VAt(u zP>y_|3E2+HQ1s9`oaD7ZGZYP5$}tk=`Ue!>1X}%-y0|x z{?9+auPn)1U@y3z^$-guoT}2`6mCM$Y?S6N@k5uORoc2eXs+h(1|GcGh^GWh96_R( zkbfiMif#nKR&4(MyuAXG~SuW3K0IQeRlYz)9r?#=LPy3Fwp!Ag$#c7ma)4Gmk>;wV_Wo9i(s5T+*UE0}_P@OdYDHG8luzfU(Lnb(4 z)FEI|jEgwt6ViJImB<>72APHv?qQ1^ia?OTZIHS7%;0^Fe_T9+_alQN;u-9X41R(1 ztEc}-274!0&pK{G)qtR?x5;3GkOvuTrTI6{U|;Fv&P3*JWd`4J+%u5D4#eH`HtuNp z^erq;z*03iS?*Rdz0Y88(l&`f?gn6H11xY^+Z_u_D=h2aK(%`kwl8(il6FSOcAIWk z%=RV2f0lCCaz{Yjaz`-TaszW~!0P<7hmLrGAAV00ih%|a1ywS(pu zS2LiFiw&_=hz$oU5Rp=fO*eyrxOgXkN#3tTbug2XE zvGDf<{c0bAeqz%5IZi*RC;fS#fB2#t_>lB+ePik0yeIvmpkMqs!rwpX4T#epK>F@a zf}N_m70!9 zOmmB!@~34SHC?-G441K|I^})~E=IG#KGVExZU^jMv%yI_^zpZ_FzQPBw7FS-MP`Q$kBu|YEfI!6<-$ulz`8#6N?x9|5jDT63bXye@TUd9B5@s;D^GwS_YVHt%( zfzUb>*f%(Z&(Z30Fx#|yA{?ylCNA9SBU^kr z(Hw?beAEkIJGS`9_8id3$Ntr9&(RQ$K530Ox96BoK+%ZH7NHshhAl!RuUP#ZB`n_f z{ula^(gi4}h9G=|7`9bA!{QXC4f53Yc)YvmfP{M!+J;sTHXVpvO#7g}>tGgZV_9Sp zX6;ihJCI~7WT~!t@`S-Kf&LsTqx65Kz5I(ZluS>V^L67z&viQzH$l@8rzHv6loWhL3 zp868+oHw17a34kH%U(j}&&Jzl_LM~i00-i&?=3KFs0BsUfywfc_kVp^%$^TfY}650 z1+}N7bt%#+{rI^Fscvmd>r%a=u9Logt?H&;{%xyUO%T2m3>ctIm@f7X3@CU>R1^$+#MR zb1PT@S0dOmtq=rs)6rlFR$Ukbdz}?5$7M~Yrm8*vZJ6{Y37eS0Wv|QQq^GTlv_R4a zEmBdFou0~PuR*%HIQlvkw~8=|vNr>Za+9xM3PIbM`cB?PSVrkvZQ8VX+?6;EuFbsF zM!gl#Ooh2dn|Z5ELtvI$ZCYUt$Al(J%)fn=lEJC8L8LOMw6Pumh<3-^Y9op7Ks;gM zyLDnlB4PQrgG4g%_1etDH)}H!->%Ja8&Y5nZbN$KeZBP=23wOKf?&BA${ zogvF!>D5X$bxTkfPuFi{6VRfcVJB4fDviv0sbIwU6O0LJ5 z$t2$6<=SD>^t83nXrU0_zahr+6K7yfge-s{>(@?U!h>%({&7vrt9si&cuNUJQ1V|m zy1XA2r!aYhZZ4ik`=@PP42EO!b_&3tMi_Hh-qlc=K64i3iz5zM@2iQk>w_6!w!7;bko$@)RrRL*m zY}1qJbdDF>n2#XDFvkmS%x5rrUz^5cp4@=1o2I3UE4hJ&@#b5#z|0$9k`XvKw`qr~V-7nR zhg)I}e>4tvg$}`Laq@N@REJ6qy8_FC_%-E9oL86ozm1zgssk8JUR3l}7gG6BGoZPBb4+}&qxXMqPr4`g>X$7CO zT0w1=RxmIJtsu-{D>%|huigKQ);I+QkxKt#V_^Uh(DXm5 z)#xlK&m}0!e$Az->7(3ql;;iFaS*+H9GrIQ&=^@Nr=3dndS9vMHA;4aGDnTy_Zr)r z*e3&gD*kMY3P5?*!hmalFnrd+28}|{U~EB+LeR#HLQv_sEk`DyLa^jAXka(BX1z@- zvy%4RG}fExT$z;(uLo-^Pwdllpa9b)Cp!R&&uv9Mq?7%3R#-iVT^2N#>FuzI#B6w}SH zjDHJLg8SfNz6=cGXW>re)7bdvkA*gVYiF=rmSux@v$8VMC$U}!eUkq?s)PB+MFf!Z z{u%@GYdd&b@oftoOww&|-N)Bx49v$KVEm4_eCEPWi%BJjdg@*9gCRq2MZy|fH-Ilv zVj_3Qxo_{jt_D@pKm==dQv})OP#xP27ST*;>};p?Uwrh~p&3-_{bx5eTAbG7cp55Xb$|Zo12G4|*+}&M~(ag=Qlxn48O)$99-a^KDX3X<+jmS)}83j$i>SqEz(& z&x+{>i1pAo3Md*!xXPJF{FhIJ@7nZg!I?)5QtdS!pgcd(g+z|OCS5JhPn2PCKK`Bq zC9TJM4g$vCa}Y50o&&Msdk+4wFX=SkA9LNbE@b8IOQRs39t0H?rd zd1M;S8ru|~h6@WNqkR2PTE7l9fgonc$u;{ z+f(*-ZBZ3Rf1Og-;Ma6-(y90p3?fwjfTar-5vosMDfLe<+*2c1q}QapyDd>*U1_=&DGu8+PBrkR4CwQue=OxaYSA-e zO@9SFV!^a8%;&b^i<7d*By1eX|94Nq*dbsN^$R9pY%~7VBrIexmHkfPa7^gK09KO|9T84(eEW@`}n0sg$$h>ee zAt}Hg8AFFtJe3`fG_ z%P&{Z_J4=iUqLiqEew1OF~`>s%|{TgBKmw4(R{@CI-<|l5zQwcUP;XH zl|=Iict!A9qQOSPU|vhKv2a>xgYntR063ayrJ*AhpS^InV5XJwTB0GQ=o}fomZ&Q3 z!r{!TUqWxZABP<8+DA1xo^%Smq4D9a)TV7RVHY2`Yy_7n7ox=WF1iHcrX%6<5I6gr zn4wt8cR6~0T(t<7H}GpZCFAag)}uL-kr(rZ}#*v$X+?NdgF7_>D4u31a;d%7UTz^DXdHfJ=7GWxXX9$g#$f zlXK<%tQmn<{$(${WL_>`vPlf&tMvTjsmDensA*wlkUaI+p)LN3M}dB6XJxWE zYSYa}5Opv|m5lkOXiQWy8XT#ysTQ5af^4ehKwe{c0D+i89RAgC%SdY94Xxc3Q zDNC!n2QzzirngV=G~YTf47{>rfKM?sAGN|1*NB8tV6=qpY)Ml!;j3{+&4&=0HStcF4?ijEjLssTL3Yu}UuwI)fCe7MRO}=}K3vc@-=-l{m@GU^s#n zkg3EYY0ODWaD0k}GX^=S*AKgCpK%a{J%xG__ zzRapSXS%9oZ02$tTF;;5sFroo8S0qoVXj`#S2p`K!yIn*Yp2C*_UnShG{Vbu&=e8V z2-}!xgbl{V&@{p-({vQnvu7jDv&u_(+NTy~?r|&O!@ZyBpgG*EK6_9JwKCsp4B1xI zi_0@VBGHWuU`e@q;1X;~gt^b+WU0FwES<1SI1TDIo@dX!8}NW7JE7C5aesdkxUm=% z&tg;ZoIg5hsHWhiwyD*)>F0P-ycc+r&ZEjHFF7y{vR-)AZz;8&9RmYh6Y-a8|IEaM zmoTICc0>RhX;N|nDTJdaOlpvv>T`!=d6z%~%%bNm-E$Up^wDK$h47$RdlnunE6s7w zX(p?lLFG(T|O> zHKP(Mh6%3?#_Ao8ir&)!ilihH{e_b@Xj)Un&Rf2<@E2Q|Ag>4E*K!o6gYxZ)cEu^o z1$ZGH7G>@R$2!2Hmb3b~H^JOZetnPYU5>posq&D8>M!t8JTFqLho%0|Qn^R5nPzj3 zq7Iq`72cz0Va0nCH7MFSxknM@UkNUnkIAq85n9_J^9&T6X{-JTSB3MPYV)ymy%IT}538Dw!+`4Y z#F{xiuxdVnaZQ(C=AqRHVO-Ni;Yr0bUBp67m(Ojl=40JK0{Y6fR~t0jUJb_Nn{BT) z7HoTUubPexjm&l*XdYh!587anV~lG+sJiG7W1gLf^6ea?+lkeYG{6XfXi*q4KRl-VJj@AB{T^h34>_~ZOpWU z2Kyz$QIBsZnUBL%B)nYImK}(>x*u{Yg}St-+LHcys4WGI7p8!*!Xy?Jrm(FRaWFz* zTQe*n+d60o*>+x$ZM8IOwl%^WvaJo4INR9H#Mwsdzrr?nb4Q>?b|Ri?C(+LzXH`!& zO7bT5F{oqa6Hwm7o@?p;*}}@3*h|q*nUA%Epm$~r4Bo^(%vxj^MpC|s?N81W<6@(a zBT0jOJ5+*wPS2J{LM0e%EBBkMV5z&QF2VgMtKY$L3O<5tlX+9C`H0n@*+(vFjbQqs zR)aAfb5W~}1$R;Oc$$tEwem}>z@N&g%_&*(Zn@HtEf}ftQ-UoRElV+mxkH;vl9+aj zFZ}6+Bszu5&~$UHyye{7ExQ(53)Y{OrPn601g!S~AIMQP~J> z(OO+{ro}GSn=Q^Aguj_v(1NJ*5#`dX`yk@1g_#XVruvJdY8HnzGe=|VLrpub_>f%lWy(b}tqVbJcP|Hn*o$ID%c9^$&;_4%&p0O{~J9IBv0we~Vo_r%_Jf zD8$CScP*EMUDQNzpkQPu30+L|Rauu3Q1&}i>t9mx5}}lQ7;KO`X6e71hj5e(=A4nm-6s@tr*Iwu$$#RjmdfHG*8dQf zmvNc2)S_iL#A=nw#SH!u=w8Z;rKbp1KakCQJrEP9D;(wHcGDC@v>WC#7dXAM`@$iA zrK8-T&PcyM>x}+b<=xdVmOgZnfr1q*c*8I)GT>k(Jo7BZZoI{$pe=YCOp=x^oAe8N7nvl@ng=G`YB5Q`31CvQ z#UxhI#bdH1yI4$;rYC6YDkk2Ol6Ak9^{vP$MNVPcAF_c{S<-*TiX7EYwUi_B`>n_Y zoPx;DXP2fwMznZ*G(p79Jz(fROOUEK;NFya1HYCHtrW2gox+1ikvR2D`upuuWCwMD zEfqL8cexcg>txGRp1G=c?7oz`AHSAqNhd)=viW}9_YXqf&m_sWqe$kIAF~1Vz@&ed z70YU%X&HokKW^n)!0E{MSr*d?E?#dHlKD_nGFf4^c!b<`)eI>1DHMpneH^it-DXK< zJuGlpLnN~m79*LRFvok~sAQ_!d-lLF$*ciMD47kgFe)S}yIsWty=(iaVUU5WQa)ELk0D`D$0=eiMXH-wf+%GuO8Mo;(k~Dp z89<5%#Y(H>CtX@~t0=9R$??BQX${Dqz`|3C(+{U`kG^rE<=X%SI7b}H{uJy5ZMoS| zmHif^)KvUhx}DSv{6B=|kDLUt)OQPYMg0t8^k%KFS}FCk3geEw&H-&_W}p2rUdG6) zo>Z0cG& z%%-kAt5d?3r`QX0YYO%Pd%quqJ_;08FOa`DsB0yAvlq}bQiJ|cQ55!<;K?cQ5m9+P zv>u+!>!EOw?@as+v!XGzE(}3dLTR`z$)G+5ubylLuQqYqkD;AtW{8_QX*prt0Za85 zTuUn_te45*;EKq;zI6~TPg+Oz^%3l`uWvBH_`W`Z@i{dU7@t!U`&V=7-~={^l4)4^Lo6Kyw1yfE-g;C$J5ih9NwGZ9vk7C$McWdIGy9U~;yH zDk?mIZTxcZ`R}Qs(3$WAb_1e7p{_0`uv;0QIf2~)%P76&uUngCXZj_A%bIaL%%OJF zq=ns8k2Pb0p>|ZnsTqE&*Vf|H0SoWy`v2l&xcD20Q+L4R-%_0Nmr9`q;#3byC{E3= z7;$RXX4yd+n1dapzh8wo{pVW{t+bdcQ957=S4q2RF{`Bc%X=!hnSlRiJLGyWMDB}> zuMPcr9da|GK%uQA9dbM4GaYglERaLlgJ1TCz|0o3HZV&I+6Z%x4*5TCL4!68eyi6v zZ5k|Ln+DZd*rvf8wrMc`;x>&l|LQ5fpiQGDKi;OX?dY-P{-3mI9BVV8o^9F&{{wBB zWOKt<_rtzC-m2*K>%ZNmsq8|wDkuupdzD~o5Vk63BVwn}YFd>;SJA2*>R^bQy78iv zdKy1WsKORzb!lOqg`TebVz`V=xFvgFN&u~8%Q}g)d)rYsQ2|T!tVB*`Q{8mYv#FY^ zVAiv#Mwoj{K{zYWvnlt9>6qhyh#|S75Jx90-uPrccK|HvYH``Xov9pEL(9I2N_Qhz z8eoxzYYCRYT4`a!bt)_!u>4nN64GK{y(Q9z&!759VBlYJrh31`8vbV=MnO44*mhJD zlrw~zeIEt&8NwciO{))24Dsy^ikmPlg7ywYf?TtV>`)XC>lBe4iUMBof9VcI|4wVP zAxu36HS@+8$O_YXqZ9H^R~T=ZwdP4d@6p_`!|yTwutouJ&b|nd>!vJ0nL0`u2En0M47-vCSXv_x7&zKt$gr@6(T#JhhP_`Dgs1Z*OE-fjw2tCCmAOebsTL#Q6%%B{n{QZY2#|^#fh|6H4_N9!fU84gK6Oj%AbYKNNytcP@V0`>QTVldn{Y3H zzO5cXw0xK7mzj(61I@53u1aV2fw`UL1^siprrCVV_TsaHTbgZ*w>0PW`pQ69{l%@NZhZzV9n4GIlB~N&4viZuefG;{Gs9rXV@Q0?h-`+ZGn-*< zT_>M;9U|QUGnRF-J5NAJP@felDCn7e(QMYj+FDcX?gVo)%+iG3%2tyWHlf$Biv2Mt z{M>iNM6-k@bmaZ{-$t>97ANn|{HzGF3>$_!1HFx6;KUCd_K+FAE?vtQ9$P!}7|gt8 zI3CE;SrT!C3q8PV}dG}i&3n|dgWTt|>T?lK^ zTIKE}FfQK?_GX|`t${-WEdKFX_apGDjSh!ohIqn89VG)QWWi2%CH!`iAY!wSG5um(^Et@7JU?R`YI(VWBEa;vlleriR z{k;0ze8kYPlw5W&>bm}j1y`Tvc1K+^9|a55+qcuol94Sgc47&JiLJQofGkF1=sYe; zU?1y{3Qr}*jn63($wx*wg;f&tRI;gAE+C;ESu+($>&QeF+s$JO_FZB^NBQzi*tbC^=IJO-DO@s!t zBE-uCkr?ku>KMx%{~ZMWv>js~9issy#*a$|N){uaiP3;|j2M((|7ViVk7rT*(oeEE|S!+}D0;<1X`z%N9i!j+&jq3gc2=9R7|MmtAsb>aRzE zW5Z493_$wh*l%ejS>>HtYoK8FRB)grOzj-F;t6)Wa=Y}$M6$4YNzg`Y;-E*&4Azgf za{waWSo}pdW_(-)YhqI@>L%XZ8Km-B0y~s2hLq4>zdtUGIKWfaZCT`D;4%#80=jHf zbm2r1=j?%gNtbPkE`gsPfbMf3TxJ(t0zU@>eVQ&i6kP&8uK?ZjAh_%lci9r?AL+7d z(Ip6NInW^o!)1@S%SfPS(Pgi=%XvV5pv#=NOZpH`9f{v{`^Q~Q2KoVA4vM>c2DIT& zxEvaHISlA?bZLycybg5MVQ@Jz?y@V;N9b})+~w~;r_6=RanjZ&F3goEE~d&CjCH2N z`DpyEe*%xo_b*Y8<9GedA|zK?H-ZEMh|HCqs>Sc&8pprg8vC(#eR!Oc_SXAa2abOP zYrp1G0R0VE1%p%A0U<1AC{rB&fp{nzIAz|9cqsjGoq>P!(I%MS7{tRHI>FmM24>GK zTl~}Qdjx{Io5Xh|;_7028waYlC$#HixISF#l&O5#o&o)Eq5qb&n>+qfNLz(=ksNM; zw9Q7^Y*2>0lD0vbl*xFw&dJHULpCUBOU(JoRn@hccBVv_0H+^raQyWzN~q1X3l$X) z@9UK24g$EF21f$Cw|{A_ZX$MPXp94_d-oXNtrx?3y}(P-Feh)-gh8Xzi*X&~cry^J z?eg%U7~fR4Y1#|m5uE{P569&%puJ7I90Qk!n~<)%pG&IeG`KCmd-1d&Ghnbaf!(ua zUrE1>ne@M={o3ibF`a(7$tBYeln+bcp3xO@)2oezH@QSWxyhx386B$qlOgx4&A-*P z8sc6%r?3`t+U)qdgSbw+><5>JPe)FftAjK+2H?H(wQ4bVwm zrfJ!#-#d&`y9C?VSetxr(wD7V51$J6ZTy_7$~Okwz|s|x{N}B za;BykW)9Uw&CyPa(KmL{V$>XE=fI-%jkPqJGc_=W`o=a`jOyZXoixtyjOxP1jOxN* z6ndj95@pKUIsi63p}sLQ=}f%Ujc6X7Fu?84r|Zv6s_Xyg^z#4mQ(6r_vdE6Qg45Ug zdJ?YBw81844dp!x(vyw~NLimr3YFGy++kUR;2xcn&Ai$#jZ;=hbysuR?b9c%T4A1| zoSaKp?4accTu?}O1#M_7=rQoy~H(r@aW!c_>=0upQ^stingnh`e-Bq z83pr(PU^ZG$VyXc?`iPE)*(3!R6;o(PgLyWDpF}cyRV3A% z!HD`07_OoPK9Yk5CDktY%{c>>k%N=!0Q}}Gf@MS=2L9;h0T_OuWdm4dRVUQ~{N^l& zL%9?fZmWhi*GGk$Z9g=O>cNwo;SIZrrFpW4%c>C5rRrc=1#JZwT;yu?*|XqX$^ z=Ungf@lTF}WB(6Z*8v_!k#u`@SDR(aIU6}+V;fl8=S8%FH1QF z_m4UhNL}0fnbDvky>Pjdb<&(`etrDM&r z?r=7M#)$c|VCwubu(+a-%kNSS-dRa45qpsjfrArS2R&cC@Olt)M>)756Jt^eF#^)# zh=G{1dm%<+LX5$L7y}A10%~G3Rz}Pfy%D3qK#T!}m~>Seezvkt)IkUZZ#*G(KJ5`2lY$#e3T{9txPZFg8Y?UKL2Ljms)I*pFcjQ? zq2NED@>{8RH=^L5KVj*mtl(#`0j4Qv zFcjQ?al!K^e1sVR`wY$UsCHfMFrc+4C6yl?`kl2&_dUYGYtZL>Ju>Uo9hG$pFMzP& zdRcb_!oq(;ScynxHiTIazTYwH)~Ml!QY{qx*Qwi zB+wnYY6x8rFkSNZ(%hSVn&j`L)gUg@quji>2FL?sdW6qpq7~F5Rl{ZJ>h$ta8P^73 z;oq@yOyf!?gavbkrfE2-ehVj14Zf3TB?0v3sFUc1K%Io|wd*+>+T;kO)?g^L0j1QL z+hD^XO2>l#n}}`FYhXYPra=wYq^G1WLXuVp3s1wN4rJ#0oSv3N3+e}Y@6lNB9s`Q^ zXfX73Kd?&eJsK15F&MnZzx-!Fcn{2?zsyNJc$sXsxEjbS7Bmd^$qUy1rH*?w&=wrfmmH<;LNK(^gG<%6s>Pg%)SLW9964Jb|t z2iyehuLssQT$ipaY!Bf(Rc`+R{(5MK2J|oB?}ns5>!kFq{hF^~eZ70BImU0*w-@o% z6@@ljn(m*UFw=tmZgai~eRne_rG+~6nI7zBkgA@VbYa4ou$#fv3G7H$WH$m>+wIp2 z+2`@tU`rg&e|JjczURbLpW%6$%D=?M(i$Q>PoqIzSa=(@<-|lbwO8jV+8BBf9*$q@ zLhpYhLc>pKKS}H0v($Yzq%uSNBu#@0Ws+tva_KkGueEoBkWDhf)6YWag0PTodeJP#?GabVme9WN zZai{9vl#)Yo@rF~6Mg~55h#=iSPd{x){k{+$}}dF8B8cMpim~Drc7gHlvT3l9SQ%SeumNT=tiiyR0mZ@4r_tE&R>8%#$_(>ke+`5%_SZv@vA>;8$k^Xa z0=V%Dgz9&d2c5y}d!OeeqsD|2g9#@F6iy7tUv<$~87JrU=0O?^oET6z@dMfd*5L;< zntXT{x|30AMh!XiQRG4zr1g_`Ap?pF320pCan`9_NMk~m!GtaY3S9zf7t&Z6T`%`W zmj(k}1{At{=lzi;W=LkJ@4Ph_I&T9CF#;N5e(Hr7jR`RZ6JiV~#0aQ~(O4NVnLXnU z!}LTN48#~P5JR2LYOI4gorV!0hCD`t!D9?4#0Y4JsbQVkV>Bkj7)*#Upb#UVCPrgr z#B9O_m`+E7ffxe{F=-mR>d|F1td<$-SKw_B!V0{T1nF6NAcV1LX)nF4#-!i|lY$#i z3ND~7xW>u~emEOoJVJw^;0BBf?pNT8nL4`yuYNBsze|sTd(=T{SQpO+eS~Gzt9${i zY8D=ipPaa_44hxU`sXGr-rwPr6OeNLMmhi8lUAsr@1Ep;##KF>fciB0?g{-%qbfQm z_tt2D@5;L&%pbwKe?KpXTL94`yMG!J!VLz({rbm%ARIc7;Q(Y<^*%B@29p@tVH~h9 z&cl22K>ost1|<`NNhSuAO!8-85|G&|)=T%Yh)qAx)gtGHKA9nYplcyBWRcqrK?XYa z0Zzz3S5JbtV<&{*j!QU)6mk%DG$w`{Ox)3c;*JL7flgy(?%2WxB*_3-&}cBYqXDHI z`hjjU)4Ti??&QyqkbXY#gKD})6{#rqpw zbV7QJYVa*v_0Qi1#y$mwi==`l1IYTAHO z)4s>3XC1!BICdgNq&FQxUrD2sS;OYd*DpkO71d3+}SPd`` z`6TPqo}n=z(qKZQ0fk5bwP$FojL6q|BT|EbNCPsFewDh4RZ!b2ty1sjDaKerWtD0` zSz;Ja*b>mNwX&Calg5NCg9%#(6t)D^Y-y~Ft+&{K1l6JRyc!H_8Bp8~E=H@=>W|@K zlh71thq?|z7`$5{$l%>cC!{I5PauFBKeefa5Iksu`nb>2O;KaQiNS;u0}3Ywx zGEO#S158uYVBo}n!ijH+16W5GynRz_ML8R0a#QRe2Baw-!|69A=aLO00ml<4O;JGV z&O=iaa3ocu4C~8TXO=+j(=;YT8cc{Zpb#mbb}o&T5qW8EL~1Y)X+Yf+uVfXrDJFRK zYnq|~r70RvnxcT!nymq>Q?sQpVas5`mH~w=0X171D`RUc8(^BE1_N6L6t_cDq$NW) zx!5>t7}1@ds!vh#vSiq*mjY@`3TQAXpaG?T0_p;4tW>~wB&vlu4V$t1w?ZKI_iN5h z65#fJ&Dlc&+&#YC{aNhhzC3jhf_q<}mnZDr8k6!EOv+l9SQ%R@ z*nkW*IvHs+7}zpk$-Vt7fA5BPaF_xu4cp;YA83}Z!7!OMpim>AndLXLPTle~Ce#>A zs4<{WBcP^6V`bF*jSZmNH-Q=r25Jl_)cAeAvsj0p+kjH{elV;> zi5mLyVAw*%lfiJ8#{ZpUYD|h}Fe#n^rFaJ9Nv6h1#dCfa>__hU{Vo`6bctv>9>i&3 z!@iH`R_u$o4g0`(co1j9w4Z3VQ-L;0ujVJ(T@b=V+kH`*XxAYgCfe;JNEP=$2m|OX zy>Os0;lN{VIX@fxIdE2WN#SWC#%~FHGb^{vQ z$FUA;`$3FWlI>(J*-p=#H*As~=qujgIhA004Fs{hl}?E5T_i}wSAQMbo~eeiXrI`2 z->vRBF@Bu0QyCKmAq|EC8PF8yd8NZ|S^CPT=InfdPzIO$>eZw>AE99%{3cPydr9{P zLc>mJd3yQHBk_RkQGimZD0w3yUbq;)S+o+5s(WE_I!YaXY0^!)49U)m636E75#V8S zvhEawhJ7l~d=e+&@$uwkIDCiD&;cy5)meCqx(>bZR98V@E_Jxo< z2#4zs8qQ4OQQvcu?*9-PmM5ZQ|MQb>TZD#5IMW~Rs_%r*@Dzl>7vjNZgoaxn+;n-; zeT&f01!2c4lJ0bbh9Br9^UI(rc{2_vYSaq|+7q$lemMAcei1#XxA9Ye>TpGld9^S3nrC7T85-yc)uthXAxgrEUzR@K23>#WqljlBdSLVa&JghVlMMxIY-9hl23*n4i6BEEL~> zQhW`D;%67fjae68V^VyBN%0LR#TQT)Ut|AU{Gn_EU9o^4JR8ZFFaAEGeDP}-8$;># zjf=0bP<#VQ@dYIELh)z!Qhbd`@eL-$H=q<>KwW%|m5T2Nf^D<`GKgs~^qU5hev^05 z>d`+p9+@5G`}Z~op?~j$ApN`hM)mKtBuM|>3L$XvB%4Gfkc}UW2`2^R^&0qrzPZ|t78PM>QWE~}*Xw$#?JMgr7cC>#q ztqwxiY21O+n@xWKX;~e18U>s{pfo}OY3nTzSozv+J%s~Er(#LpEqH^nY8o>1BJH=u0A7*N;}(6Dt3>(p#%OxQA*uw_7D zOF+$*#>&__lMOISD-8y=3@C1gN3Q5Ok#m@^KY^OYHM3*Z#ZjhgIdea~UG&~Au zcofj^_PLPVBpb!n#aMc!Zyf54(g>r8c-Uf z0i{6-XxKW5b?OGGF=5MK!j=JrEde!K8Y^S#0ye-jNDT(I3|Q76XE0&DL2k+oQb6NK z0vbmW&``5E>(ta}OsFxKP-8%$MnFxC#>%Mqb8n8M!9a}xwIl6O?nr(n(M=8V9G*#3 z;r-q)lcztZ2hx}@V=!UH zfWnM`+JQ7y#!Q|EyCPMM%+EC#m@yzT;~y@rR+E6n(?9|3qiQfbDr!LKa|ATJ%;;qj zpfTaaV8V+5g%<%eFB&W3Wz*g!0U8Xv7*IUM4{Eh&1C2ZIpw zc%!%8UxT403@9~$FO=SZEzgITacaGdU73;jy8*t+V2;7U5BH_rDh6ptXnZv@%HKaS z;ANS<{{E2$!~G)z3bO(lX20c(blcaMFl#Vj)_}sSfSOs2l`)G?3ZRVmTmwRA`x*?) z8ZaeIE@mB+W#gBbfdyKppTHpPjW>Rs8C#%N z$u#JDRPs0j%1YFL()Ae-y!swhgWRK{;~=}v(supAcHPY2c4XJ@Y?lT@Pj5hZa!Eil z>lDz;It4WK{UGPAI}VLWeH%>b+kjHv0_ytKSXq5P#|D`C)?lb_19E-){e;(8MOeOI zr;pwtXs0pr|FWa~I|TpbMAWy0cL+2X-XTcr7k6c}bt>-=bU{^khoFiRPzm)r1nx(u zmUjqhAcT9MR~#Cvq$_07sxe{NU|`w5LtsF#3?0aq-XW-`43FV=2=3uLd`-$b1R9h~ z3?`WvP%`lY+e9vHKjcbmrmN6Xw;|`o?#!ror;vneGJXAyY7f~Ib_#zg&F@s6|!66MO9gv^j@5nkz z^Lu(=tm&}W3x*Pt*JdjGjTQ|Ce>sR#YJbs~kYF$&!GJ=70ht7il}Nz+Zxq!q7onPr zeGy|ZeO|zT7h)`?XM!{sZYvm2MjQc0L1(D&OF1Lm18GdkYA`9Q0i~=0>K;gArLy|l z3ODvv;TjATZa}H<_`5@2u@ZVGqVau<#l(yT12YB`W(4$ojx+_gznW9=EJb6&jKPE% z0}3+&YGyQ6#!M9((1+?v7IYd6%otFZ@h&r(bx_F~2WMCF#Aq-OV?ZHBgTZCi?1dPO z2{8r}Vhkw62&jqCScw=E!@mm3S=-TkO8GY2ITgxu~LD28#s#%FrA(TLroh{YT9>t3s{Hm^ujw4?icX1 zD=%DYAcW~mC#N^Nu>zXujDTi3BcPeiJkL6HXQDA7(qKZQ0fk5bwP$FojL3I;BT|Eb zNCPsFeme6hs|eE>zYH32aNHS;hXaP&BLZT{b>n#P0^g9#@F6iy7tO;KZIoNUVmn5L+~z=;8c6W90 zG*(8;5;lMwB8=o348#~P5JPt%|He9K0kZHp5JO*DF`#TT8W6c!9a`wg&02)_D~N$GdsqQgw^=qRu~EEAjnAAMkiz>>>>fo#4GXN)kt_O8$|ZY zN?c>Yh{1#r0}3Ms{c%Tl0!v+l216IYpzR_UG+l(kq*!A$CdD$K6iYzUMex;xm5Sw8X*2kg?IIKy>Q<*L zO5OSwHLCG5agAxXzW=B#givdb_p%z$m=w=oQal4n@dVVx(^#o^@mq_nWZPcyUX00e74Vu(M{U)1$raF&dow_l9SQ%T@ zY=Cio4F=A?eG=q49! zlV@4*3PBhwY9YvA(Ml&|gzY3j1`E70fiU=H8C11Bjz18z__Od z12F~+#L!ydYt}KI9Pu!IqDX^bB49uvMnFSMa@qg(g&GrL3?{@FP>2yw6Qi**Vg|4Q zrZ3cBAjW`!7`m4;o^?zmVp_Q=X)rV;0}3$$nx?dNFT`j}h%uNDV?ZHBKuwIs%81#5 z4Jc5LDjPr=48#~P5JSuEI@aNv((&AsG#Hwa0fiU=jmOOIg&2(qF$NQ23@F41sEN^7 z88HX40j4QwFc4!vAtp`FC)Q%@YCH*JAHCPz0)d`K^z+DeJ*w^8%S=IIQdWaWSq&&< z6;PK|V`XJszy_G-5H%ReYCtZl-)(^VgMm&1 zGM#>!x*4k|O;hQKoV|FOI+A*zjj%6GPvmGYO#c^iO274ZcNBl**?_Y3Xh5kB4RUqh zi5z-r?@#P1ewu>mAbyv47T(*e#o+>k#$EAt<|S+6B~ygP8VH}RgCF==7s5yguOTvR zJqQysc;oY1y7D(1wxYxz;*HQbNPHebK(u<)lrlX2(-dG)k z8AvpD9^UwDrq@J|PNhG_Z_~BG85)mB_sib|q4|i?jIr^fbj}sN2YNE2{t=DMEBfW{ zEeGE~Qm?I(v>nCT9x2zBPW*^ZWKxn%D*C0LfR^eMglE&a9I31$VN_-`?z@m>tt4)P z?8vh0U&|~@_l2$wO0qL_y@Vv)B)r7Bs_;f_<0R7Mi?BUk?u&2^7r}tO2xMO^U3nwh z*Fu8W*G_`B&+9y2>--n%G$85pNuSV3@8hHf3`sxHN&n4B4H%N9 zi%frt3+332Hm8l2RCq14rAH;p@{V^^yqL8`Kqgp#Xuka#G&?IuT+yBd|Z zo06Q&Np>qw;%j*sqrN`sxIPRREUUtgo;U8vG}n?KmbH*js*iRO|H=uwbV8Ri32R8a zoD#Qn>PT$;XNqmS2{+%-j4wWX;TPVq+>Dcsk5-1ydAK+6QDq7oOqtX~jqPcDF z<^1;r8gEVJr=sJ(oX>iV_>slJNBB|PfoH0!{w!JPQ)+Pky^~{I{zg1ZF+nH&GMV>D zFFs3MKQo0HL1Nse=%%ORa2P`4j9ipl|BIwM1)*^>2!p=H52+zE?gHW9yRzX&1tPVdL%0LN-MA|I4TSR`H1tckyAT@hhA_B)$}L7{d>O)n zhzuM6VLZNbaQtfcfB-_{IuIsJ$-09P8h^x&LE9M0GfI-kJT2F}Ls5UoUL z+%SRPc^jQ|2OuJ<)$E&QHaGzK_s&0Y0hlcL<*%G^QYIF)i!b5gK>J0FgL&Iuaj^ zgE#LUIKE5FnTa1c`ZEs6CLA6{Slo^h&mD(C;x~>KzYAdngf9>lzXG8iM!(fubc>Ir z5})`bzSeLK4yRuX=+Y?lYc*eZEzZvT3TJC^I1yp-dr|6a{C|bwpG3(G#&AmdExp4b z+>5aI%P3VjHtTjnSo~9zydD34r+A8TdjaI7-oary_+LDe?4P(}5nrajFYl!e#^GNG zOJ^ZvW_=(-a9E766hAnZcyR+Dt8nmXo~LX7zJAsvCZVeOxMO3VTNkUdXzoQA&btwo zJYT%|cl_1@pWF-$V#!OhGUWM!(FVlQwTBn!(avd{j^?mS*NMLpy$)l3A|_9GYEY(v z29v3v0c9#^K;AFXSZOL)q$g@;vjw#MvUJ^?f3Q|#;lWxBh6ig6$RFqKLMIU(tgU19 z)CKT^wfJFBqHSM3vmwqbd3jw=n_!x@gE*b0?I^|!Z5kBX3?{T0P-rtC)26X9+FIFy z)fH_T3$$r4&}KlU%@q}GZLHqVmVFSk)galD*G7A~?&DORuGZmM^0HQ(UwTaJUC;DJ zlLmz*g9%Lr6q*dkG-<3vQ{|g@JiddhIc}=AtefJ;#+L1RT-=~c1!_<%GniOrK(Wk# zY?;PNmSt(BQdJ3SPRRLJ{A&@Xg^6F#wUB@XiT|2nI|;I&>morGAbWEOXe*f(Ab$J* z8C@*dtI%LrR~ax~SNRX=H?juWIHbJdpR#lG8-_3=evj(`PScmt+=ZnR-3T+F+zT+E zST0~*TmA&=q)qg&%c8+xxdCM}0asN%hQ(J6425?VUx25kSmow8x#X4gyvGXWJ@$pT zUo3Ju-@spt{bLYg#y>PD{$Vij4+DyS7?Ax#V6Zgf;^TZ3bl8 zG*(92?`*+fqK$_WjRo2?7-%yf)7GYGt2n+i`3u8|OYY)Q?h1q@qcB(a4Uwx!_%%va zW>W4lge7U5H~@2xn-P{=i1B{RE11*tL@Bpc0;dnfTy1~M;BG@$avp@Wk&ZrHwPXIga)vE*eq(EO-rI!yvMNxB6H zO`{!VAvHl zAi4{Gqg6n9x-0Bp6<8-ZpWNosnE08&#Lo;UekLF_2>HW-!_;dZi(xPaJf3&6+Lb&nQ3PEoCb<+vC@mD(_9s>L)?b;!PuD^~ABKt!Js=;88 z0mUGH->s2#P$wMUcN>YyJcH3%piOh5QT~P1c9pbg&BP!NKA^#x!~mC{jO(9elt!wi zdC}!dgbKUzw4X)v&3K*P=ttRt}F&Fn-rP5ZH#J!F79DO^3cWM&KE!OTt);NHFx ztA;2u|8#OMW@<2)X+UGG5D(n7 zlOP__10i_G-lxX4o8Cx+!At`hGh0}Pb>!NSFmr#d;uZ+O%ytM;#XWRFs(5EM>S|axDd*=X=ks~L?75C#T`(YO$-lZ_K-8AMIVYfRs1{Aye;<*lW8h(Jjl?1tq_YiBRclD{2`Fa!3*zq){ zG+nF)gB=Ep?eL4}Pr0qxMRW(70|Q+C1q^lva5JNO2Q;bn;JMs6`?g1|jhbFJE^YcC z8snQ@^%&LkwmCiSXm!(TK>}%dd+~YG^fV|<&tTH@3@A;{fZX&nR@U?y*#erXOVev7 z3%Ti?!RP&rSZR6&l%{7usX_rw)4PCmdQe754TdT-ptzE6dRH%xnKez%fYS5~D0T_x zXPnX{+{ikOT^bB_8Bpx<--GW4cMH+v{P*Ci#zH_-^UqJzk|6ot$ypiKUUEiUCetNp zFywE*kUu?!*Fw46i2UjCyLJ-7{*=!Dncni>pYu0OOM@YQ1FEL=3ahnE%Z-c8pr+*; zObvjhPr1Rgk|1N%t?U}Q!E_^mG?>TvylF5Rlm=rkX)p$q24g^OFd8dsFe{bwN`t8y zUurPtG6kl=7*HCF0mU%{G!5o5)@dA5gP~#!D30M9%;&7bKanA0l>w!}7*OmI&^YW5 zz1gL~V3z@dT{Kqxq4|=r%78Lf8BpvJ(Abq@NA~*<(!ppj*kwSmD;}#*r=cOWk{}JK zg9ORHA7^Fqf3vrSq`{EC0XcvF0L}ZXf_enMw~POU`Iy=jm@j%Mqv`8tP=4Mw&JAaf znnlwViNPMM*5HGwgrVpdl{0LSxfg2=E&CX^!$o0hCYmq?4 zhx_kac*z#N7=j?ruP_OF(1SXx5oQ9fYZ@27_G&40h4DF@bf^hBmpq ze|%d&PohlK1T<4M0gYX2vQ9IeXfW7iK-~=1Wfi&^V8itS+C^>KH0fSMXxc1+z0xhP zS(~cE0k@G|(`vFY7)-@Ml^E zWZkt0URVdujWr{9!41i}*$7^^b7N??-3Ra zj#5wKp^8d86|o4nzY>qGj$7=n;jmzG)-C-PkdqKeU4#Q6Z#I)vAI!jRxhLu?#7Of# z8%3$-@ECx^KV2sq;;(KU;#5bc9*&E*Yeei^#8Q{x@BspD%cW-Co^?kcP<)r3th)q( zZr8<`B~Cg5K64HZRO8JLM=);34*~6ogNMeUZZ7+Xg;^+U^7v%ReTUF|MJh_HoyD(U zY>vZC2+gkdd;$_z;k*}S;mL}N$L3<;c6d$VSm;Te zj)On{C6GZkz-g*+@W?uNaN_41S=f{eUvwwVAA*BFpQVcFS_SAW96Yoe>CIe+GBkY5 z&>t}3+D}-hh8rhle~n9a#=&2*Cuv#y6QHAU@X(kPu{Rp`LMp1xi|3{t1BAvt7bZck*SLOA_%Q~E!__6KOr|Fy&O%t1t}op z(%VDmfUxW>*fIh_4+;OsWhWrpnl%xBVOVx( z>Y%V;BKT>Aa2zKJ{9FtcT9Lx@GY>*11kcYT2yU&IpVOhgmg3-NCs5LgxaVgJ2%Qj! zpIY#92J6@SXe{t^CMPufXi)RxW|a7;L0tH`gOwP5y1-Ar3u5A^n8eRTuzwU|nji9? zdMIp|%>FY$T^RhQ9VvqU^gsyyQ;Wxh#DCf-&i>Plc<`SZ^q1m4Yq5UKkH!K&GdZE* zM}wN5R?30>rvq`}=P#_p@I(G{CZEv$a|L6XAN&}N>xROH>EP!g2-k6<;6K;EOKR3; ze(*ejYlGnVnF*nX1hlWK!GGO4F+WS-GVO?ae)fdW1A+LN2>-d0^=p1K7Wlb~6B>Rr zsQIZ~x5Q5i;=<3DtivoIuVF24GGUH$dooBZ zioy(lhcQUM%hRwfz+2I8wKKRb>06Z=mG4B6A7qfGXALvcw7Pfc_bD|jr7kb`BZM9Z z4YyR_7HtyWk*!`2ryh@{W(Ps&fY9(mEmi7l9dts>bQ>!(>mUR(>w7a(gTYJ#8Z!^> z)yy_z)9_j})|=T$2FQJ^9tdJ)?Iz01HWGx*ZV185&fd(_U@+5w#>|&`HM6=FX8wb3 z5Y<5lX0}2QGrQ=7uvz^lWo8S6U}o!Oai#msM%j+gU@+5w#?13sN2qlFg@%7Ix*lAi z;h)i1-xM_%-t~WyQ~LMh_;#trq$wH*m5naUz(ESTv?w8qYs>Z}rgNdmIWK(@tP*@RH0udOx0u6>rFrZXI zn(j$;pjI2MkH-0;@5u^j@CZ8}29yrdfGE1Zxgj8pZ^2U*u})uf@e~aPBMm4<`kjxf z{t*|HYH6YDd>Bx6J`5;!37FS*b+Arjmj;7f1{AyehFTA`580Wn-V}mtsMV1m`QOD^ znfxDO&{UoVL;ePg^Y=G>5_iR{(7;Z4#ZOMQvKjG{lOJ&|G+fahzQ1i|K-rrypja-T zvHa`aEZ1PL+T!#K~u1|Rf}vIo{c8>FJ!hr2w%u-hag|bbXzDh>q!tZJ0XOo zP}kl|r>VhUrU8wai&=;7H0cACevWq`qqO{N_$HcOpncA38Kik{!?$=~mwKXG88mkr zG$>t>!DIqsK$*Z8knc8VOif^@f4xK7`du{M_pcfZ{i^}RB?UB{%mb{`Y!_-UFl#_z z)=!G6wnSC`6ixCTSqmX}WD5itA3N!UjE_}Ysj9Ar5UTnsHpqCS27^Hc6oW7n(OcYW zTpl|N%|IL8M<-1mM9^S(i`#&p$`3^Xnzy*uW}SK{(wNl0!KD5TDD^L(p1^8M)qgYQ z?Q_@w)A4CAP-8%$CVq4XTsPb=j}B2SNbljcF4a{X;-RkENdPncv8x^kR9F77r)U2a zv+Nn!b7K7awtrVgOvspD}9%8hAL^?rO^8)HQT`UTcXMS#goT5$yDl}kB$Zu z?!#;88VpYg8<3wAZiTAwfc5JtH-1vscLRO@85eJL%HkNf26Y2N8T4hA*Kjl_ZeTE( zkr+@WPrhP0sBpjIHYiQm-L|S?>L5rX>Yx*$5p5S&jPKT4AcRKruPb89O(W7^r~?C< zI_P2@G*R_+P-sVgIF^Sn-!=XgP0UZ2Spq5P+*|@*(5XXno6bq`lCNus5~K1zf8^XY zOy61r-WpAa??WxUCbrivs`pRybJ;bqB<)0z8h#&|-w^S)c#xrQUNp>2R_D*@aqfKv z{pxnNq^( z&4I2*lLK-G;<8!@2MnZrJfBYsotw@19L{7>-x~7KAm!s#c4(E|L1p3JSoYt<H64+49hF}m&2e_^^Ze=v4d3|LI&Tz(~ze#%LyT>bY+56QQ@ z=G-?7PA7128fwzJg1V|5P^1~jexBSzuN;W8&Utd*OiuKLuB8-jCUc(LHcmla77DGw zK<+u5(tC}N+d{g8+ztqyT(9|2t@#nIHVp>N|KXIr+8#*~AuhiFWqD1VXnrCZn!Y`Q z%_rp2{GVug{tYnmlS-Y=YMC*f&4&Uh3U?1C`+ z)4Z_Uh zqoMg@Ay^9yf|+^(F0mKqz4iB>BdffO^YjxC@qtc`|7 z{W41cuFD`zb2s{mUbDbo;X&|lF6;1{?r%ra@(FzFP(be~BXd(-{v7aeB`2kyEoes4 zLSH0(lfi8X{0I}IkpMqrFgWEkD31ZXQ&Lvna?;?G=Yz#0n~O|ir%X>q(jJt(`I%@` zVI2r9oFrs%2eL4r&*Bw)2=fF^Dp?frXh5ekNV6T^7=B-7!GZfH`n&u;Va++5lo<6* zB!3Ig3%R4BA-LHkDhu}myo|va3}*iWuzIJ+P3(-ahunZo`8e(?_$sAgW+E}sSKp%y z(t>gx%mco+cNo{y%J`?tsTg$+fDkjs1-(BDhv@B~(q|Gs9v- ziszn6+OF5dC8X|e?h%P%;V~qb&mi@9 zbB|1n$^7xi# zkU*+jVJ@aMi&z&8;jnsaaoaL5H9S|?s2tk?z1CXg;D&xrC{15kZKq7erv{`qgU}73 z|2^P+B^qt@E__emAqe#l=$^ow|2p?O8$z`@lkd4{EZh@t*T)q^7T3!?Hx2500_~Io z-!th#T!kRqRc-MMN8YXBB+#AGSG z6!zAWlC4v@!l4kpx+%Vnb|3uw;B~NUK;KUukEB0yQtHusmpA}fByWzdr%vB@e!fVz zbH=_%>!l|9A{j6gshzCZJT=-Eshf-Bn??0pf2PuFoWYrUKE>G$NE*GfZ^B7^3le9q zBW2?3tq}a|(>r?yof2p7Cc#$?HO3CDN*bdEsWH0T`)Hz7^KjwzsZr@g_n`fdP?zeL zt_DRdB>a?&Du1Q64#BtJ{6ToT^_G}C>e-f^lN_I?K}Lgqkn!WuP)_R0e@?Q-C)Hpn z=}ubfqsg^=QVqsQeHX$>sY;hUmmC{+AsX~lkgXqStv9k(4VJWyzcnrvb%@LEW~~PF zTGs+mTXRxhtOt@ay{!g(CyDW)a3=h3IlI~vQadkISr`Yi1SAFh=T?l!4=Dq^Ssp!$ zuc!W^|DF{iT>1@+4P8__b5cXof2a1f8~U36%jGKnO6>~*mT2gtDP29JWjmyX`E+eM zU1vx~O|*y7?UWjx^-Xkl-$aYl^QDF9a@7SMyMvNV}!=QvF!y5hK>OjP|vO(url7JJtJPA1mmGr|K+ zCdx2BnGnqIus&aGc+g;&xa2Q`BW}&fY0sy*CmK_@1gnUp42~o4n`lUWgUy^fl0mBT zhPN@o--NFEI0mW9ZFoObnLiuep~2!zS{UThA3Jx8O56M`HXZM*jNA(h(jubyyJ+>o zxA$0Z$fR5@Gro@n4}J;R6z+okJ$yaJcDjC4;d%x72`?=aKf*vDDLv>1g8MOZ`jM~q z6^w;qVMDlb=JvR1h*&>5)Rcj7LtGDz+@F)ux+ESm$g0g4rS(3FI?h`qps~t;!K!Wf zdSlh@y;-Hfl2whIlm>WjRhq1-gZnlAgmnv*@toeYX|SYi1t%p^NSiOs-|mPxBKP%! zEpcqXP?}RYsg%ZfCwrE)?n)f}h?*yVdY3`c+OR6s&-;@Gy+8S+zv!gmdK&aez3W!9 z0W>s_>&E`LDWl}OprtzfJUD74j()@2nvX*0fZ$iJ(HU43kU*=~?@-XHJ>u1?U#QlS zAPdz`Su3#<7OJn^8Iv`DKv}51%^_7VxwoeBuTGv>+Wfik4DzuQ_)WgJf;~x}^Vi0?K?np@G1?YfB*MtKKm& zBJ&Gg2#}Nn_I;0z6`l9QE$->0!^4`Je3)~s2+a!<`8}{n`#GQWs+$s(>B7C(Zvs=z zB+wA#_KMsgn?~cZxx4Z37leafnx6jkF3g<}Up6I~OMeBSjRg8GP78!i66mSRO(67; z@Q++EjUURm_ukkRTDsurxxz_kIvS&=#EM6jfwVHD=O!iLXk3i7T#=ri)R?U49_38@ z2AMoZ`RSp~t$tseJBbiVlBu@ANHGLR%W2^TD3oVJU>1#0&Xo1kMIGrop zi@td}=RnibhHEj_ufQOz!MJbU1s*Yjlagcmq+6GP`8g>p_DJigTI*Hl@ky%&OIpv+ zS}7@M)u7j!qvzE+$?$)q`sL;$Ne>I?NY}zdVlP(XJ#fE7W&US$2Lcj(L-vn`xcq>R zF=b(js3|rtOZ4;3^Sa`Vz``1E9(RAtGBt3Ya&#Gpwuln%gpPbXC#|NWhbH>?u6Qzo zbT5En)*!6gbEqDXbnnJcli_G3OjIe>dBgqN=);V zG&ATaITCw;G>}}#;8aR^T%y98uR-dK$o!i6(nwMt$NfmshIlaZ4wXePQ-flruZ|}< zHMwy!8AR35!=SGYfO)D84VJ27-~(~ZRnzsYiM+3lVGQc(D95Ng+4L`kx&(fr!d30h#ej30#81yv-uapQVpU{ zFT7f`*pPm>AJYd@Af0f?CD}Fd(=i7U&@ZLwE{Fe14!tAm_C#n-<3)!%5J}+$g66Fg zcnU3^+`WDnkr_-`_*aGfzL=b-0|=I#f&Zzal~Os3EH72gG>61_sp}K?G$wek3!V_W|40lisXzrlC#5!mgj_+bm#<$MukWJ$@xxvNLzHx5KgQc=A zUNJ0xbQw15QQU7Vj>i)-uW`zyP`3EWT>eP-j$qW5#*au0E3|GKxi2^&`StjbiN3{y z6i6Pt`|RPx#pT$2LoIt2Q67QA9#$7#a)>!+@q?+|4>d!zfV0NIxBCcLdQZ4Mad{htfba zR%#%_`0{-yB{vYkOaqz52~7hLP&W{RaRU)dH;`^rnlzAFR&E+d)neU17I6~YKr~ir zAkCaoHxR*01JPh;AQ~(+kODQ3R#xo0STvLjH53i{29u{Yat0@*y_)81YLss)wI~n? zzOCHODSTVWrAGL+ayNsat+@1^d*Y*XbYXXLm{&cQ+rL-6y);8g0l}+2@Zs1cyy`jJ z3=d^6s4kql8Qvvf)DQgoq(){=E(7zgCf3k}E?YOG|T|Ke&rS@?bY#npDi!xvY(Nw_Xd2s=Gd@=?Dry(iX_e`b*O z0R8stpONwto=*BLY}x`}8#`GBr0rRk{tvpRddlL2R4)Bbl(U0`dsAb5q3>ta)a@>* z#G^PgAuu2nI(<60?8bFV3TXMqK&aXep8Q~??*(cp{$||9p8ikC{?H3(P}-Qmq>UL+ z+L!^kjcKgZ#$54PnD#Q8K!ZTj!e&uL*sM$Wz2<;~oJsAKng=BuMp4CpHbcVV|ekL~tH zCikT#cw1^oc!+IjAwg_uCqZmE?a30s!Im=^l>6ERvgMiHY%w6);VH?K+Yb!hcqC6$)hGU-{voqXg-*{)>GaP{HQrh zkD6a4$9Z2JT|R2MWGCMCrZ3MnABwlor~HU-4xyfUeAF+pH^F+tfNx~S;avWyTIY69iJPxYj4O1Z6=M~H^UiIG(0p@Z zNFk5kfz;rV^AowkZ)nW|&Opk>DTz^q9tEyR;44vOffl)vk~U2n?}4YF_km>_)Le?OyBw*)>t(VX*At45vtp{|l$o(|p0m zfUpkMV3_7>uxy$?;Q11(v>x`;d=19a{6C|M9n3aR&q&QAPv9H|Nej7`?|;U!Qa^pZ zD}i5oLI2ZAx(g7R$Kb0MpCK~!3QW00-YgRiX#m zuRH#^mgXFUb@B0wzalixO(O9o?;`OwIMC;~n?FH!<`Tc|h|jhR#dI+d)ummsh{NUx zHzlJe@!@V6m)c{qjJp)!rf;LvpeXBhLO|RluLbxXofv>Gg+IPIl5P>FdK>=-ZyCpD zZisopPmbPzQ!T-Jr3i~ z%euFRMTwq;IhR@t;XDG)jZ!b-f5rKTUlpZxT9I`}BfPyRN*#~?_fhYS z#Fi*RV#E)KZHriP7aYz(cncp&Pd<22)@3h-uor|K5IKj0eIdMt$oNYjv_KeiY1ZwH z@YaVAu0iBe68d3-^M%W@u0ObV>nfai6@Bao5b#zjgnRIkeJTy%4+y^?vQY-Yo#bJk zq7st(L-|*f!9Ss9D%9MF@YX{R<{j>Sn=~@Hs??>qV6=(LImvf&Ybbk!*yKy%txF3hDhXUDxwAVmIa$_7$CS3>N ziY`P3<{(fh<_ycZixIj{hp@$roI4wV1ed_F+NJv8FdqTW!KKz7nR6#1;7bpwO?Sa8KM-K*9`t67WV_|VWQSVZMnwH;c}KAVC!gjHX|-tRZhxush`z&GuY+pv9@ z$kYVH?nC&X26&uDYRQFJ_c_9Qn?$L$WX=r$*%aSxRL(tz@E$(>^vGXwZmT^!j>`^P z2z^K6kU9~EhY>!+!XxnoBFP_cnAr$qKdM8QxCQaV{dAzpPd$nleTL}$A#~Qk4P46Y zjn!Ay%Ol-SnSyIQIqBxnY5uD^0w0bVn#ISKCeUFz4#|yh*a6eU#M&tD7b46;_tCb_ zV1FGgrlPr9;+SeT&}=$g(blKnt{DJz+eH=Q`xe~!#f(eLiW2lc-NF}8-yO|;7|99) zk+jxT?1rRQASB+6lK0|28IxEeiZUI1$tn~knmdY;50A39K*3{t=2o0ZR7Zny_XDgx z9A)}!Tz(;@0d*8#H>xO{gaR#CH#VR8^NMw|#lMzenbmQt?;>2am=n^(rDEgZh5eDR zi7}d6q{j}doL`1zQnaha=pfsDZg;i@pSo|vEGypWlC|qm{CoN#>5mV z);~GzRMNHUD6gwq>AJ5MT^eIu#TMxLp3_#5u7=fcME(1pwW=)?T*YQM{FNf7MSZGg z#U>twRuIko6a4K&go?J}FYuWy_#{nSDlQ&eI2O9=81uDv$pBB;&W!1DYD`gf9w(hd zDlZ@99pVOkIoG1W*q<~e#k~r7-p|*2Gp`s~ycO6}jM0p(;vXXm4*+|eu}ulPGN!ox zFnG>}vFCiQ?ch8$CV4&yT_e|ydGmQ*HM00Juqlke^Iilgy5 z^d}o5Q2MR$|HL?sheq1jplxALH1}duY<7O`2ncN`b#}pk!fP<~0Zv5DlGwQ-dwUs{ z!h0gcXUf6&6{NmBd~vJKp@VW*S~w9xp1Yn!h-de!$hCo}PUMKbgy_AfPu;xmQmSl}%vQ%9pf z83qJaZh2tJRa^>{|5}BqNoRxyqYLgJ1jPHau$HAr8O{AKve>sjoynbvELsk&phUS7 z5O3%B6`-*zj_0WY9q0`ecM)qtdY6hT&e!}u7^jUJDD*Y2v7o?!UO~E>ucg5=n)?{6 zd;BBJygL(@Vs-6D+=|!X+ke@(=rSKh$u;5AN6g1Fs5CYEFGjBuG1JIg5k(bq(Jl@; zFYPiD{5YJ*UYU3Pkh~IPRKE+8x4}G$#_)>suu%L3A@x~QQGI}OzfpWux=(4IFHj}o*qq)SAr>92Ki|o zvK9vRT$`Pr)E= zHonh@|9OB(JSYZZ_Me0a;-Fuk*H4?i!I@*xHqtvsslN;^xMCjh;XdWrXpwQESNTM? z3nvnP{uC4cCOk$`u@3S)ZC=V{R?9_+dkJZW^w9_KgU>5`F%t(O_rxJ|IEoIGC)I=h zqlri~_f9D3Spz@kIKd@mG-3s{cu2t=ISh#p!eZrm2%jM&E{sw?%ZW3iOw0FlwR3Od zUo>|zk{>{qT$3FN^~dl@{5YmdTw9f0f`o!mCy|<2ncK4rOYVg(lM=4ri~CW+t^50g z8Vd>U;)FC(rsk~e6KX6Zd{ZafE!L>9knmfbaIYG#QDc-aHyH)2{2?wq&CpW&=JJH~ zU@n_#j^ovTMZ6`B*HQd{INnO}1LJrH#h2y0zCW`*Y7nV|Vr(H}LnZ-XINnC_);Qit@nd3R-H$OL@ML@hHpX&{(V5i#F}4F^zRqqPG{~oErTC+9yo2J84f3RPQ~ar6o|HFP zx3^VDsX7`7o{kmPQv8`X-a_$}alD=4&&KgCig(3v*NXUaalD4&&&Tn4ioX!Y+bI5G z9Pgy~OT)5M8OQw;6X$FB<=DUz8N=yPt@Y4FZw~Y9T*L{`SGd&cG4@Z!Jlk)?8C4&H zYd*;pZa}&^iho}$oQ-%Z;@RhN`M)FHfp~fZxX4nfPgn~cP(kWxSxT)jT$Q7%H0H1N z>~~WhKUVs96}ryUPn9k^6CKf*pW{-}e1AtcSRCE<-d>Ml-r9Wz8(cHhI7o3OFxnmOxsKeb4y=zE9 z>%?g8y-0HRp&r4!si29fKuk{ldiAG$F0i62r0(PSfr}9wBuh zW$DX5d<3ciDza;0((^jfo^ovz3r~+LxM_RlT=vmSl$^ObM#<+ebEciB4wjXGSiw1t_2~zZIn40|No6J z{20nJ%nvftM#uAm%+68fJj7{!kSUuVWNu{6a`%Lbufo=9%+i3>3hwW?DnGjdznOS* zLDdBipJ*efY1q{Vro?m)s6SP(SMDOCgje9P)EXQ5jJ-U zn<9tiQ{q_~%}$dY(ZpgOq|spR-drW^W@!vJlW{riTy1b_d^xp3Tt2cexeUy&Ur|{( zstn9fXNqksxZfoR$;H@VA2GfV3u}VNXW);!OvZ$;1;YM_c;R{ogQgVRxd_Q4A&gz4 z;I2nVz5!v~shHAV4c>=9_z&pZh-jm|&51z$nfb`)I|!c8?;u;@Jh%o;aFZV^J| zs3>zF{@+gVeo^MxmV)bZK*3cOptjUr?xpLm!|O)4^g)!w$4`ke*UsYjb5Zi9+JYO0 zCNm_DvYfYP+>VA^i$?YLr3Lo`!jNyG%ys*PxJxW2dUuwj>w}P^_r^9JCYD2{qB0Xt zqZwtM$Kj$+l5PlY&~fuE!jxSR`aA@WMF%k#SM<3&8zm1#?c9gZ=RvSmL<9X2_2z}z zYtrs-2z@R=E=Qo=IuZK31mOwPTLqZx(+4hp4r=E)1QIe^Y*28k?n}8oS4PPktlSEr z&z(s1D6BjmzSO4;Ma_ZtEfM_n6BnbynU6fbB>U+nO5>)x53HqMc<;M8u1H@`FOU^n zUpy(5nTJ{#273E$5@kNdLkB+9Z&C6D+-UcS@QbaPKhW=-SDm3m$p`R%Q)J$E9#qYq zR)|w!ftYy*!cNnn7phwE->bR`9qyW(==mr!VQ$KA?)DuSWp3FBHHO#2DE%cc)oXna zEOXWGb0M#7lETZJvp@uR;Ht9RQ`<;imx-pZ~4WB~PAEaGxU#dJ5I|K#dX}-bV=s!6zjdd?q`w z;I>B?^eRS$s}cE-gh!y_E|fK#`4vJq(;xmh7h%vJSYnMsSz`mHA$IJ_3O6X9hoQ;4 z7pd!igAlG?h^oB?!RPtol7d?YEugCKcAZBKvD^&1YEZBSDy5LSE5*U-L1>u|Kcctjh6*uU4$xY3iNOm35c zyAok^LzKzF&~p$*uLb{r1sun$1m({B6NltxI6FGZJOJBAAqB-(!gP)!mtkvjE{QuM zY(I>JcpAc}SJ5e)hcRO8`Vhv$-)q)^&e=GefH3N1vha=3xWV-)Tq?63$XpXnF{YaA z$2~qwloOa%y5xL#_hktEj)q6SiPkp=j@<792xHbNxV;hjJrBR@K%PG%^jm?(eFbtD zP+buxdjrA}5+e%m8i-@OWMI|QF;VIf*Kf)}P7 zSa6FGDAUYIh&)QdBUGAeRx%UGIZsx&n;P)!$`&wY@mC3V8$$n6p!i`#@;wkfMgEmv zB-}iN{=4GLVnhx@Tj_rp&U}PnIb2ioYengrb&kuFt~nY)xMtXvpb$S2(I4Y_az2C= z;IscD&^8Tf45U=0dtV_deHs@!hn$w z{yhU7|4ayVDAVH@5r$%EKVVauBz%C&y|f-C%84^(u(HersGRDjE8MXE!Wa7C`pprB ztxefJJ`RUVnz7Zj7rN-n5C-O9_RTQ+D};eBBgezG!UP&&;P$BB$y*m(6T-j;AWYl_ zm4M)d{kAQ*n-RQl2qx5s`B!oVTW_R*Yz8@~gDA0X_uW5HdF;FB$=LyJK0 z!fiVh-1i7x*!%wq?s5b#+_W<`P!PPZ`=2q=BY0uaE@-?6URbcJ(w3NuSv7*sbi;Y- znzeUR!eI3G^ANm(7vOh;Fot-cSg(XB4T^(V^9$|}1fT5q1xnZ%zA9(Hvft75z4eb5 zU~-j4zr6>-&t|#bRHy-12J%uqWg{ zMSY88kbqdjyS~2{i(7)xA2}gy8ua;3-wImqXv{AQaL!d81Py&pkL%2vd*H~vL*Op0 zYy$DqLGfjSJwH9MIa%VT=I<~KykyCYdJ@2g&wmrvsPorY$ln*Y4VM-U8sv-HNou&b zb6E=>JoClvOZoIrg5Sy1{QEdopM+}<{ZkPeC+==e57W>rDhlr*dyVyZ2=A`FTm~j< z@I>Cu;76xSEUmo6Tis0_;EzgSs<=vfqQ9ZW5l(4$PBRR-H_C%*c^9 z)*?<`NZP20f63~v0x;;E%%~!@bq%7;7pdI}M%!&@^S=H5$QR?1(0&a@?bo;Z7G#TF z!Cy6OdF*xiDuabq-|nx9`;9J&bH6d87Yzmr8r&&#RorjXP<%Gtz(i^4DZcR-Z_jqU zXfs&Q*5QkZl zj#1vB>k)@$-ygJ79Q{FoE^gwBsio4zg;x*}&}XwpG_vBUGH|ee3d47_L(hyUfKP{( zK&|{JR!seR;h2HGm1``tat(%7Za`_}$FfQ?E3mD>z_td3?U{?v`xi> zUG~VfxFT?E=&}t)Rqi|dshpCi71vvb2UmtMD4q`AATGCYXXyJQcz%oMJ55`C`nJU^wmiUQ^}S>*REPSh|*aOP)PJ zS>e<*{-3??0FR_N+Me0bYG-$~r*yiwcej_10}jEF)5&BoL2$rgqOeIeaL8mZL4XNI zl*t*9^C6RLvJCi021L$hk+YG>!NC7kP1Q{GN_@ZX1Do&vKhN{5)csC%cXf4jb#<5- z7GDQtEYA58Lca**q0YI2*wz~cK*DB0NRNTi@6J`2X;%UujMyNQdFN9M>U>?bb9 zWJ6laZax_+2w23frA6#^M4~|rZU@4GIL~R!B}QBB(trA95wdxXN|0(3R(;@_gL--9sroh_)N zxMI{8YKYG=GS#`SgOSN%^Idlu44wGSw+xcX!D2(#!l@$Pxt+q|J3lc<4h|OQ(8Z}D z!`n+?F}&XCiQ#>JklY+B&aIhKMTU2YQzGR=yGFiqz6COF6_ktvO=QwFFbNKb2@URX zzidNx`BS2P*@>|B%N~T|zSED0^h?sq(iuo|YLuoGVNKJ4aGa(a5tF8m(wr8hsl#HA zrfESqPScKvNz;XB{`4qKuSw%!jVMmjjEG6ohG_l_sSmrbg6!3yW#N(XXZpA68%^m*v*G z3-ErDo*FKH`64`3=p){aj$FGsbYQjKZQ=;BO;+ozAlsK{X$5O#D`P|ANvwY5m-JKg zKa<9aIj?-J4)d8Bft6EU|KcG7MSC;x^UKXMaPzh0K>rQ??1J6aB3_#pEt1W`S~cZR zeAdq#g*9sqKaK^n(ixFPegPKz@*iZutoT@NHRRR;{)>-ia~mSuPT{TVb7{!3o5Baz zHJzKLs z67MFZlfeX*-n9a&pNip_FZT0F=b_x+Hn5-9hOqj1T?ngr`K@G0!cp_$V6l1Wqf}~M zBo#G;rn<#qad)mepHfBUrG>(3UM#gN={;ewIEQvl6`7YV3X6H^rLg#Q@7t7;n}fx< z(QyV{>|5f@3iHAv$f1%KsV$_(BZ$Rl1WA+oZb2GB;17>0K?@{Ta@&eW7HW0}sbWwm zuefa?J*5JR2Gp9HFaY*Sa%#xpxj0^4f#tTTN~e#h1fS*Nam>VfPSVo=SUh)R{_+Ye zHxB9Vt_0uX^dBM7%a;A~$JLN-z9ASX$(X54HKd~!gRb%j)C}R0uF{(Ahmyvsh=Wm+ zuvUK{lvb-PrdnN-hA|j>R@7!>LyDIyn*JPevRDIs+PG#MD5nc0Wm~*tWV)dOYq)?Y zDbF>8604eC@rowS(_%@UTiQIYt>-)~#(Czb^frj1IIliSrFJ45l|}}$Tk@dg*y0WK zY%ncG2D6qFsfV(-rBFjAr1|Wq+B8in-ceUWro>_}DS0+2hK@`NH=j$mC^w(Q(0sf| zt{ADFnw%9RL)$nO)5bxPnpME`z2`)X(mAx^9u0-Np$g9mhRS=zCva4x=13GVRM4Xc zeLS0A5~(d#f3@FKcoe;G86o6`TtM9_b>C00Kl(8Kuwgz1+bO9#u|pL+fIke;zSZs6 zrivpC*o=xJ)!1^1BVX9a=GcFV?|h8?r#P}P_MbH3rMAJYS1<~@T?}nchYG&_8%}$j zjIAz)wj!t>+f+dc+fzxxuMi8Wu~DT^aH)-)fE_Eoa~QVzj>TpVN9G`M4K}GXO^O1+ z7TB#)#H*^iI}-d{bU45K#=dfIt| zCQlm^%iEG_u?s>w6BcAsnZE!Ew6c)GmU%@YJ-Gs`rRfDlC0|nVK zs|*}4uI}cN9*+kk)!kaaMF7UtwP0Lb1;H7UPY!3eI7f=-hv=rrkZlH6_5lLTGK*6}m}m$7xUU|dH9dF<0BJI>m z4ce?j`IrW)-A$3zf{E#;(MPTqwyDUWJ*i<{n(W;Dg0h`kJt#8xuz)O))q`d7RKspz zq#fytW%OpMsRgOV=_S#$w;7g)&q|Hp8ow(b9;4%D3sOoT9BN&fA33S>HfG)$I7^?pS%0vetiYue6 z(U?DG#^cZK_!WQVXYRoNZz;S#?r#1Etj-;T(@b;(t2hJ)Ty8*we1T#EBD>>Q(-rs? z7su1prE{Zpt%nf&a??II#tavxxTnu!{o%}kf;65NXZXW;*y<0qd!Q!fi9^_nM{I&Eh`trszS zw-B=>=f)q}yP{tDQH7$4kY?5b5Y)vDl>NzXr(^$$`9#;xW*T^Wc+NaQF}i_Gp+& z3pUl~vNhXOfMa*g);GKeBARw+8FAg z@{aRMyn^ptlq`-NDcNw=x{|LTAM??3Hl2eMXtB6Jb~c_i)WwtiIxpCKbr?UKkuHvg zF*^Z~*=xXJ{REMR5J^*HCqxPeY($Zb5ZM-i3n;QVBG)4DcZ%GHNNUZzw+ep6Wf55m zfx{`XB}`+>`H}j(j^W=gZvfLc7r)~9ett!)*6H0PA(`R@*twwYr6Bnm#UeaB@~6v^ zkJG&@$Q5S)x&;D_4OKfL(w)LhQDPU}?D6ZvwGru~$Sx>>{Dm{51UA#FVb(&tC%#9`tOATI>TICf}kSyUpu z`J$*^oa_3K2$5QlNzqZ}fUj1P$c1RF?GfpuNExPrWOa)OmM2}Ucwri~mV%BiqoC7T z7EEMz`(UkQL2WHko?c>Swy^W8q#REIROM07Q62>yb}X2%^TJ^4SWwv^fz(}Ml;>z^ z4@VFRIwe~$Dfw7Q?yM0sAcq^dj?OqA!T!IZ~>qC9x7 z14Pn7BDu{U!MagJaj$K66DFtaZ6<0$+ry3SasBI(&{Qd4L_t5X*Vv7=K@2*`!0PFXO~sXj}pI%UB`r#=)? zwyA26EEwq&H_1jq%T4)^-^fj=VBD0E?W(&JZF#lWu2zbu?ee=KRdj5Zf}FKFl?poI zwO}IND#_FtX)LG>OSY?%*iqY6l9Z0^QqZwo3OejqFkxrnVC+~>*&#jaC3bY+dtc0f zBM1eZk}a5&+%M^eke;fZSHRMn_-;nM2j$gN4#z#)3)XbquC97F4w%E$$(9REy7%lqF(E zt)+sF7AxqmW5I--^9N(cg31nQaX+!6T70pzHt*}GAQW^;wqR27Ws;sbS1q=n)#Bd^ z@#0i>9f22EeN!#AV4}ruT2j?w3np6psU=lwX+hOu_TNgELnPgzJ#7?G?YT`P>)1dA zovyE-BQy&pLc4RY=CYtR7imuyv7_4ayrgt&pn{I}DCn?b!GxWc24ly9$_|gU#Expu zY%wd2AQW^;wqR27=91pAfflsd^D7~CY~VT8u&MS~FwveXEU9Xb1rzOAdob;>plXj- z)qF{0E_ddM<0+UlK1vhE$D@hk%5s<0=LxZd3i4u&TEaDi(vg}4S!!$v>u~fpwuCK+ zsFX%v)p;w)hdcC>{!sP@It1iR(PsdXYp0;ocnUgfSTJe4BP3I2B)6cd4QX*Z@%*fK zn&(SO#|A3sXt9D0I~GjXxo|LcEU4^|7Izans>K^!7B!*cF)HYkY{8`DO(ebJFBUH~!)HOOCf;CbvY2gq zRTB#)YO;zYRW-3-q9$`iO;~uUCKeQ9$BP?1B$3atI7;GKPin+wMO`Ze9kZgK(?AwX z#I(U+4P-%WATlf7RbWR4$6X}lL=v#NRth@$qM*Z$1rv659gH0dDmx^Q7Gg*BvMJ zNg{8Gz8p80z9{I3NkK{w9QA${q$`Z7)A>IgzXr(_EzB`+%J9euH&)t6a9?C8rLwq;dcESTuaL6%hY#e#{x z%(@~n<6H&R7YnMskVHyXLtozVCxqmov{FPTCF|L2Xr@6YRxFrEVgn&{#vcpXHt3*2 zzL1gcFH$XMI;5b}1{O?8epJ#sC0kHRX7kxE#B4slk_}e{o%O%Zt+ci77ECz!YA_Bg zXgSzU1jS2tZ;M~3pd$kX9T`|K;o#?kN#BB&gS~~AtNV^Wo;_0qoy9{19S$s*aIoKC z99U2|;60~{gc!^FUh#c@8E%>$0ogQsD9WLr(?RbQO2+}PV8Yh@gRx~nE0~Xjn0Kl@ z92KGtp`c@&6m$e*!GwcPB~!=wv7m4eE%H*w2=EzW>X(HpqfX4ui`q&Bopw^tVaI|A zJ9Uz&(_1X4><|Zi#Ey=wi%CkyWmnKC*@8*QOGtXhWw)Se2)XR53bC_nv8#YwnA%DU zCbn`vORBcgf{Cp>Mo67SUJHt?3?9M8WdUzXDUQeHWtXJFtHH2&`5fk-!*TqwSfApi z)4RMx*N}=f3>9ScQWJZnWmL_K1rq^YBczTdSx}pfUHogvj;9K&RxK1!7yn+#W}K>p!!g1xaZ+3aU*{!*rl2#{DCh{>f{DOOlBr`sET~PrNh?;;sHvC0 z89Z8}?xV;gzmXk{(zS@7R?(4IilFhLBe95ZanX@jy+sx6M?|xyV=bk5NH-nd!lPp? zZHVAeq8vS7+C||fYx(6My%fHJ%oeW9@#w|(&=G|9{M6;>%?+*6P`$Y8mtWZl&neM2 zhflZdw@0cr-BtlM(1($|UtsvB#wyFG4bMdh`fj6=S$#hc<};6_Qs2S z_=MP&DZi?8O{5!#;f#u3o&du^C)tbhQhe%f3AxJ}eO;=Nk7z51x+SOnmJv!;20pXA zD$YHwAm~IQMf&{PlRa;ifb<+P9Y1BYvmg%HEyenwAUi0!RJOV;NzIf6lLqsyleXkd z14N|3AXhqoez4@kwRr>IpIB2*h*QSPHVs0B}& zOWla*it-7P(^Qg(PMQ^@$AV*z_cWn&`hf+LesHFcGS6ywEU1b~lb|+YM<>lUN=j!% zSwY7FE9kIe!GxVZ491QHl^wFcUBr%B;Fqt9w9)ag6m&|qU{dmHl70vYQUzf_DVdLx zd@jUG60uI27wI;(QU`VmCKh;EA!YSZ3v9u}0&o0#ldDdGEGQNjoP_&8GkZxWpTqeg zHGN9N$>nS>YO0{4rY{I(+zCURVfE^MkIaxREKk9t3K3RQ8kswzJ4^G(+)EK1nctI~ z*y&M+PeI4+`ba39*0EsHI-d%uqox+LdQo@1(Th-;s?l~31>^CDri2zuO0JRg&f=Q| ztzL{5V#ndzP(ZGx>V*Xpz1Yr@s$N(y(Tl6Cwy9oNFwu+X6!x`|9)gjeP3nrR*o+VYyv|yr{S6)Ae#j;?enRz-acfF-W zJMm#T3&vU;9u9lfP4fE~-%8|XCMXg=GjStFX1OjO_oA!VM`7+FwzKN+KbVn>b9qmt4wMhZH{NI{1k z3nuJ5J{UU|RCdT1m2L(*YK&IDA<|7}0;`}?vIUcp*OK(yqACarT4S_{5Ie)CdTM8C}Atf?}k({JsnEeAtN{S zZBoWa&$kxmjeG2?;(s|H&v$M>Zf!!!0wmJqkn7I{jB^cpK-xhC-;ILT0LfUfpfL%r zO|}ZkdiiW>41-&^;BxF2+$JEiNVS=S5*(0OBun*}$cIU(d?Ix~BITkQZ;aH5%YRtP zAMJw6c~#wl6nXt=drTqe!Q(P zE2N;~q<=1yjt#J2QrEA9)Tyflt@Y_5cGUW8dQ+q>>}2cmnSzd#Etr(Ng`|f7lF6F| zt@YVah#{b4@^+knj`gu%VtvlAq-uREm{^~SEU8)_3#vtlo}LtHK3fa?i^6aDpqckm8?shBqw564>3s|b|v>?21W zM<8BBS{rW%h$Hjx?*D(_SNs*0lzOGKW#BFO<;!6Y=&b|AT)=(fWx30B$p_Jrl7dd( zc+*yp`bPeFsK&d3PNarM`g|u;;O_!DOG*~xK0`~63OY+lpV*Sr6j+c&897Cy@gRwu zqCXm^C{5?DhTI(W0oLI{Fq&0j$R8q*otB~UK&^r-2dD(w2n8KE43*^E&@2afqdcMDy;yRLex;2Rk4kb{#&upP|Oriyox^6C{%qEG2mJ=;# zO=3T>qb70h+oP6mv?VL(bX*H2CGRikoplQfT9bH!5IYXptpYkG(SnIdd`L*SiPR)o zFfoZA-Wk=4b5)aQK{biInpL_5A~`sSR}{8TeE{+JL43)C=eBghfpf^&HW*rT-XJl(p@s z)Hp6eK}XwG6v{-~=-v5sw;?m63vY(}S`lGw|(W z=8c5ZQ7{Xtf{|m`OYG>hbXQ3^$yz}LooT6p4m%c1*qJjJI~G)S$Th9I9qg#SFA%+O zdYXbx$remXep%8Ns5)wYEok-qV&@6LuaLj2#Oq zJG?@57uZo#&@I~Fm;wczk}a5&e1oKSOo0WhDVQ(Bjw$#^Ko+H%0t+UlpxTaSY6>iv zn1aKt)lgGlL1PMzwzO&rEEt;t>L{%wKJ6&ii{IsTlu?2nZ#&9L0y-VVg4$8;-wBIR zRLHWy7&bB86j2k?7eyiyQ`dt#YGPUtiA_vI>8#6wiDV8CQsz|cfCUrDu+2MF=()Q42GO>J zf=+eMwoLG>YcwR=Ma_zI;k{GfVo-zA2?sJV-k)$sZQkXQcsfZ%jf{d$SHE5;ovv=d zq^>s!siOrJv___x*ij?%x}wdVYEJ{qUVg{E8<;uVcJU z?!r;?iYLmNtb%M>q1wDA+j|e>3U%N$S?}H`60OPJu0>EL+7<2=&{=@6VB8fHbd1D& zN$xa~1(Qa4P)Hs1uwc>^coN!7%%2n#xL>>^iCO46302VP7q425xL?qbigwCOC!yVl z#FNne=uR{VZT>UJbQ1cp?-5?Tldgd?z9quida6d{& z9quidaL+sHYYKfle0x>B0`0(CN;koD(JS|g=LGy}#UA4J`~cr|L*4tOQf#hD_u&rr zQd%NyrI@x}{((p@CPLri*0W&TdI~y&bgd+J>TkiM{*6M)c0`8{3nukvWArPV^<}{b zUZZe8s!^Vn)8_~&Hw}?KjUKhPfT%IsA)Ex=4R0On#;^D$Ufuf;z7^R+kq;1=kCzY9 zTL_Dv1$gb%gONW0%E4u7#44cMu`pNE{_s7$|#|rGfH%b*m;!b);3^=X-mn3 z4;X4&vxTUan@i(Q1&(M1a;ZNZ~NA2ENEEYbf)5<8=Wg3c&$ znB^!QB}(@rGaV(`5Q#^LuINrQO7u}gM~RaqC$^O8N-5~LQfCRJGfG%6k;1t`>S&|| zMGE{ZaOnZCqoc$n4-GO(DCo%Ff=S6&NP1_Ku%ML82Qu#vVrP_iM?hzkuwXJud}c{? zl(1kjN|gUH$S7e!GfJ$6j(3+xkat`D7!1q54JIu}P0I(FEyxZs?K&yw>^j{ySOZ!x z5#xhG%9^Mq#e%UK=l49s^S%`FWoT@_H&~wMLkjYM{}#G4nMeoJ?rFi;R9Z0Zo(j@@ zG~QWJ&{0eaCiVJS7<^QHHr4uiqdW@h+gcFAByU>lE%)*3~wW})P+K^FR|1g z)aL(zma-tX6g?1NL24;}Frb6-(gy>2D54Jrcn=~1+4F+|&4_R{cvG-VZ_&n3CnCaj zo*oSNRv2Oj0}lw)&;tS%#DfC-{!0gwFHz+mj`WmzZv5bY7aosV_fVnt2TkGDsC7R@ zJ`WnhT4-D8Au%;n%T`2^+EFB~9Yx~W{RNS@c8HkT=`F4uB2qhkn`aN*)W;tB5z)sU zN)Pj65B%+{-@CQoH+Ek1Xwn1qjhzlAZ@9Kt{Kig5Bc$&UwxW=tR~3C@q!ST*V}w6j z(u**@F~XmP@E$=}z8vzNluD*czZ~LV+q6K?{3%~f6@59Rjl%NfkhR^{d8YZ-FwmO2kXkE5)CZ@`eySdY@O-FUUFQ z!G3v#{qr8Z&$#$ZwAZh9+3YQ0KNR`(#1Xm!8dBCRex=4y2-;;~kDAfkPAcj0paB%tr8 z-B&Ogf}_BcK1+NwEN0Ia&WLXhki~KeHW+n1agq?;DfY4z|YqFRv6 z<4@MIT6Tk?_zIRNNiF*%f`_Pf-Yxq45}G;s{L;ud@-FRZm^?(#-uOfly3(x=orsKA-&Vf+pCF3F9CXWDGZ ze*}u_1q2ITO+GcYa3BhEKw5jsk0IF$DTLw$v(m$AzD0Tqjvt@pf)wL|4n#pUXo9zG zK?kMA7mh|j4j9dS!!1Z^#P?^xaDE-J_cS682gCVw#LbAHPx5EbfB9r2GqQK_mlhSI zGavF9bRIF*$$+%_9#|>ZiJx#{9WgM z3gbQ0>0MCam7a;TVIopd!}BLL&lZpb5`Qkz0rd-|7K{yYu9u9*3n+b^;o&_9w<646 zG$$vdgCh7QdGtYBMD#;veF*D^&Mp-Wtok?@HGcFR#TOH$dti`M4i>9S3#W>duARbS z&|e)S2M3FD=;BoJ9YqT3cNAYjSPc5tgXHF5ac<3=Dl+J^o{gF$QO6A+!!|)_Wq`k< zc-Y(uP`;zc?>-)o<1f8hP`~tQF*Q9k!=XdFNl`4>)x(;1z>CF(f11sog4I)tHKnuJnwKgF z$1aym(?=bZkfcSHD}M)4?_(-N{jtWc0LS7J1s|XvIfQZc+5 zp#^F&9~*=Z2cw*LidgESRM7lgBuR$z@|aKiOnP%9z% zZ;i8kNV|q;KeFjt$1tg4F)4r8@LNl{aU*~0#A3X1SD25Y(l13kQJds9Ze(352{w@O!dZxzYeVk&3Fteop5t(CKb#d2;#nJVYWgQRk>xL%!{N~Wn47O!UZAUQZ#oI^jS zl4MxozfR&H|Fs7NdAfURAm;G~6o=9nNF2 z#o{s9g7KJa!PqIVU_2&UP{(Bc#CzRqm^2R?%b$2}L72S{`ow!XBJn5QyC|Zcc<)6d z{=~cYy7@$NGa{P1$MyS_)Q^UM;;6A)Ka0invtV353&!=cU|c^7DhE80w}GW%v4KbO zPK0$N|E(}azF$0&D@eUTd<@Q{hcX!%Wzuglxp}Zm6s*jo^ae6%iZW?MSUGuguuK#* znbb^#9(^Okyk0gfteK7x*kUx$Ur>SZKtHAe)PY_T)2PS;{R1FOo8f~8`XLn{4fJ!M z$_`;N(9?%*9u(y#gI`>FBEOB#V!Wck((NF@EI&4yv>CyCBRODYFKHqLb=J<4w-JAh z3>1Uw_+#?VAc=y+K&?*RET|q7Zey*`>qF6{Uu0_zL-;Ha0HrPMP?LWZ0gJKPQZKO} z^_D#O&kl%Qliv=*uLWaWwqUHw7F1nEZ-Tfl7q;j*%F+%~`D@UM(WXu5tTcO>7Nf60 zvzKYX*vqt_dYKke8P%)-4Y*Z`&rtdg(y^hJdJpTE zjir~PBp^VN4?%wR+ksa)CHg3RL$lmIi*Mh1KH7x7O#f4X7p1)ZxP(`~`CidC2}?Kn zLxAxWrI~(!+_|fUlI!(b1WG+w&P_4R%_DW@YX|)G%SUP!`yjd%w5Q730ksGbf_d@Y z!tMMUfw%O5D{!Kf}HSyM0_bRb;Tq3s6xS#s4hddAa&{;P>>q%wK@L!<!IB;FH2zuaM2qR;&N5J}q= z;Cl(*t3-n&r7-T5n#@6K|QY=eJK)~jh3U^S+`0My4n?tA|H{6y69Ah}6q z%D)fPJp$~&)SrNQAHe>dg`1Ig-TP_Jzbl)48Mdkg;oLLXY_=PcZ>PxeK{k6SOhy+X z!P;TAa53)mB2u$iL-us)(0{{?uIg;|OHegaq$bFQ8SJJlkW#7A;Rg656)h1f2sW_~ z?o*w^*CF6{gqZN)qUu%C)HD{Xo|7U0^OZUhQc9hOKbh$`2Js{U>ACo_D?aUxt{Yr^ zn26&K_{8dEkEXm#H~zeWpTCmtXO2HQ?>&T{U&fc;z0@46bftPPuMz{)4JFVgRA4Ky{gUd^}(|)&wEFp?-SAQZ_azm{sBb$p|mw#3BBMC;OV@2 z+}+F%&OIjY9gUrnQCs-IeJA9-At!^@1AJH$k zGVh&&@J2kJ_cNCvGHV1PHx>NM zP&D%86gdZX=7Q_vACqDl@B)shtKbfbSqChigddgfrRug;b3XrMe2cLu@WwyqXSM_@ z9A28_9@*m5*VK|!g<>Ig4{;V!AeGwB$ z3QGd(huxs?SR?-Nad0zs zD0_U`Xyz*#RW^aL<%ku%=#Ub~n6nCuIqQhHVa~b@XML74P3UlDLFLQ~UN{Qv0w)?} zrp{YJn`6Pzk<^F1;b&SP{gd$<_APXO7bpa^6WzE2VQMG7u?_Tr+JQknaIm-jZyXS~d{DL-?{wR!L9has0=<8)*5O?hwAi&;oP8Qp5n zOE_%&gUn9bd)_?!@@ocuW|t3A-VONWkFD}E_aKn#N8}w8S$IF?ZGm5YbKKblf&IIE zFMmFF_>-2>UUUAD=mL*bc|%6B@tA@GNRckCxl-PH`SvQW?ow3#ifZo={OZmHy9Z9g zAxr$~o`Pc5;M1m?<5zb#bbj?~d@ra)|2PqWNz?pb(QAEgC;TRj@q<0_|3(VeqvxN6 zQx^D5S{E<&M6X}`e1u0Jhr|ZmhAim2sS}aSpB9b2p*rzcKX?$y?z*$eo4AP|tO}De z>?nknMbf{(8U&By4>^Yue+?<8PQzMXRGGKNX1o*5sqrR%?Prc0m+`1~P9B4n>;<={ zmonbuS$<|`6vsqsKzh|zqf$imOHggnmG?%1A)>ky)T=?ICU3!#{1dEoWPhgM?Zrpo zx7g3AiKQ;g!h$PcS;Izjpn0%Qf5UI|PNARaJPzO5!Ef}@Fe~?>i10#0p3V4~9TC{< z97LAM`l)9wfF*hFkb;-F1_RG~lL4)x zlj{uphA+X)^f!R=Yy1f|JUj1Qg5MOFqZG>66u&90zMpzJF6TvrsGKQ0I#5BokvPvi z86G*8HUXtwfnRZ72!5^WtGwWS6ty~xRB;ocd||9o9)#SfCev0Y{A+}w9Kv(q4B63xu&V3W{=iEK2 zz08TQ{=?cc-pE(bOAhWt_j@Phjl{>#Gj}5L+`AGPa(&+W^ofA)M0sW&JSp!TggQ z@hO(|UMAm}VZw^zt@}7vSj?&IW?>sbG(`K>@*sNxWOqZF)l}$>$n6{i z_NB;ALG~B4({g`Cntc%25+-(W%DN5g%!6ll0wzJhT-^CPB3<(lnU6^7M(~DT(1Yqm z!Z`<3Je8_AH0x&qI7ST^t%HMee&#he52vq$9yJDyhL>dWY6l#MzBTt1r(miD|3id>n? zW_M!1E-PmIi#&_eA92WzB;7KS3y zg-Cc}Hg{hvU<}G&A$(x*-0m?`5te-=n?K56@Nm5BWi;Ev7<&V`?sCyu?1X3Q^WTt1 zAs0=ICOoI5qz;14M;5LNJz(iJ>^RYiTk5YDibAChSy^rNfzY%YclW%-=YS%38v{Sb zcHy4Zf&P^`27iK$IK^N&o72EG4EB75{6g%#q^X4Fn4n{rfd%6X9FQ|$|G4jC_{TT-i>9|j zZg)#=2ol(sUK166((-t-kGIvm2eb0BpftyZIH>$g22xxFzc7dQQnkJjxzfksj$b|u z(kwm+X};#CmqPYi$zAfJ!}tAR;S*5HJp`ns=kQa!-2DJ(x&^aeHRMkQwzm+1J1;wb z9QxTT=Q4pCBLyLpOpUS{w?erlO%D_!TA{LosG#caFxI z;B)|A;g`ikrUZ5Un!+#pK^Eij&iG|N#(eGaz}w`Cz{}=*pV;PW2LAfxQ4hiU!IDI_ z*=uYSX;H8A%RjvhBQSp1-Tc&|(0P&}U)$p^mdxnZVg3Mb~>~$DQuEh-+53`t>?grK;Q1}2Od%FpP9;6s~ZzP}GL)F8hoOH$JK)v&Lbwj_Tp>F4wU&NjFN98_fmEC zR#dw#k7_Td&ZhrvtUI+suyi)dvY<@p;%YCSEwU^kNI+Vf%dU$dp#_-*Ajz(bNIN1U z-bgoOmq4V8BFj|I$li)bFGY6uhi2y?;?-1psHL-3)bWNlU|>Uj$AwhBeQ5EQ7{#cV^F*P}g4KO)+gPL4TPTn>wsrb03s8NTv zi+Q4mU+z{xJd%x@9FsKMS@V7|=bvW7L#G0gixuay?9_0S(LTyQHzt?O1*Y#3IB~Bj z`OhdI7X|q+m1&Z7fcfQfQ63LCsa*IoV^%1`T$rmLFbV}vR2RJPEn}QY5$Q6yr$|C_ zmGGaI^IohVT>SVEx%&pv<>yib*s|ajxtC*v;biFwBZ>I86y2aRh3~=NZ zKZIUyWW+KN5j<85vCukGZiQSJ8i`Y{&8?Wr=6^@U$VG)uT&@wV+$pVm1`xmejJPhj zRs48p-iYrk`xj~DP2oJ;i|w4u$#50!!!NfSCZ$7Ot@75zFLySa?r$+AerXT*4Z9<9 z(j$S_i(l^D6zs*Dktw6MQTgTOKjA|<_~k~YvVS8-AwcI^G&MYn37FSRk#qdvS(-w% zArjn*i5AVFIw_)as2)VLdmJIT+wNg8?Hhl{#eZHI8Y!m78eH76?Uzaw0zJ(&%=i3p{K96GfvVGoS+UFIk=<}x=GYoU+KkrE+w`kD%C%m!6(XbMz#FF09b+u}c;%wdm;T`2aT zXm*#3+}Ye#skF0AMj*yo-X`;^u@EjBc+F9m7bw~gjyLc?&ld!nY~TqNd4RHkm*^YG z)i3uz*Zx8Jc6utEH{Jpp!ZYw7R_x6@!1Q@cXV<_l_m?0XVd$^L-Q2@)={BJe2&@I` z%l5f)LH=X7scfGs$o-BC880O%+DW9F`2}7|Qjl6QUP`iHvXrE#E+wT8Fs)8Q38m-t zC8cERs_RP@jF*QTFj-$x*jZn);D8K>a%{4`)I-gu>r0xD*yZ&l%XkdZqLW_CI4wHi zikpZU!7sO>c}}7x`Y;G5nD^xY`D0{KwLNy9@t{$F# z6zY4KfMf@PU8)Q0(;Ox%F4X414%LM;`7{oQ0SH4h_9nePDq_W|#k0Rcq%K71N2I2w ziIq1bYwC-OZdMKH^Dy258YF0l=I)5Z!*~}W7z6n{OE2Bfxw}WpIy&ZUCd_f)Q_n&{ z?q%jYOPdfA5ApD3!FYJfe6>c}+j|4JwKt@b+4@09=a-xA$$J~&mn)~4xfWWU+7izO zkz6_~b0Fu-VNOBAT>A0Jiee~0FtZaeI@WR}Bv`d;|uenXp2OJUn6?wlk+zq~c1u--Wh(Sm zB`Q;9E*fr+Rx}GMRE6ssb3$%nVWq0EVR{-uauGOW6s9AK856ZAz{2BIjX9bW=|y0; zO*TjSOL{R@vCl-Kqpn&i9buLJ60ND|swLB<-gqXEmE#XkyX#&FyxR5sq;|h&6SNO% zmpuo!?)THLnu^dYul500;2lksNfQSLAHuRD%?#UdUaj_Fe+iRoc9pRRondlc5mAt}+?0Uc7(OEEg6q?clJSV=FzoHZ@N z;&V!tFg^{$QwzPb0s^&<;LEx+3(|`~nho)6)q?TV!h$-rP|TUFIv~s}&sG&=qm|57 z6?P^O3KDH>Wi1$6+0e>*B1mc<_3Is3)1;?T)`GD=*^YKsf3hnI^LX1!`k)8Gv}}^s z06`NN3!0~ybdb09F~1P4Eh7?7Guse}$EQw2bbRWe8#+GqQ$)unE&KmA1Prj&|Fz^2 zOS}}Xu6(9l@YzAS;B$j@K>}@OrR}NO7yO|EJ1ao$m(72NTwaoX*^WruFS`(l`(-ah zv|oB34(ylz&DopPl@Y}3^A-J)`f;VMD7K{Omx|ebDVWnQ2^*j;1jgzzuwO3t|FmEJ zbs_s@GumDIWm^>He%VR-@Zap0JxE*ovh>S-MB;u~`Uongdp@m*Xus^B8`>|sDe}Gg zC5`z5`Xzy}MRU3o?KObmNsgIYn!s26v}5L`1FTeC#jNU*jU+m&x`L(Y9IRe6-VP8m ztw#*dX98n=hL7_;2K>xMID*#vEC%!zK2bOYK2&Nc`a_4kQtdbu#hb%4Z16=sr(gaR z7H?^-zMg!f)K+i=hPTKz_O49u1_-9z2`_RchKAJsnoa6(gkrynGWE+dL3S*DjScWH zDoWdtDNe#&+ISy2J7(h+zVT~W)*gx-9Db0cpZzgOFjQl{kdgrXEzoq=fx?2kJhV5gxdmx?XqO61mWRUopdSxQu7_!^jqqeGIQsZ} zHg{MBIDE1C+^rR0h%_5YK4dHXE&ZBsB*f5e!5#fVn%+2M!Th^8{Njb=x$Psg zt0RM^HSkt*TH99;`oJSb2rY0x8aYC8Yb_;>Aney#P(3`w>_}oU^=l6le%NTs`6;Zk z)8iO_lv~sto7POF>n3C3-3^IQ1d78CAiRT{nN4xj?@1i>o3IqNK5n`s?|qBk1RQ?J zOvBl^wHE}~T*KDKiRd#oQsiz#o<(E^Ru(5LLPsEH93oD1a53gk?e`%sJQostu91tN zm#O%iGkMK?J&C`5`F*HrW_ZpU_iT>WzU1b3{2%vRQ+Q82B?GI#O8u$E@T)kF2+X~d z$);Z;Pe(4I%*~-~pRizHN`?&5>AQ^&OjfM4Yyes3UYsfE@ozW$#y#&IP9R<;ER97O zI&sj7gE|wI526zX9f-sy4!S9#Cl2~3q9+dOKE=C=zUPSp>ID;4g5PRS91sXr203v+ zqzirGpapzRSQ!=N69F&!W+XPaHHO60gvMHNK#gdg5Rp@46Kv zw9%0deI&<%@lfQYR>RXVnT_!0YW&6>3B7#fTs#eM9wH~=c=fFFaeGVrc>%w1ow!{G z&Hf#J6!9|KU6l9k#*c^-e{&RihhN^T2dBF!*I)VU8@8cB<979%c+S>|NbDQ-QoZ9j z+vkX=Z`g_mdUSzKM0Qg6fyE1S60!$j?ZH|zw+CnYp}_qh8@HQ3yzm+#r7zOn#N%rV z=ONrmVZ4E?4Fc^zc+&JCg^LmHL0F$J(|k!Us>nPtbw5$h9LZ0mITZ3#nuAfQkyldL zUs9?9=g>;w<;N^!4jr7Te&kKat((GlHyLr?N8we+FJx|YII=xy)uuez+={;Fp$Z21Hqh2cy&Xk($ayAPtE4mpx}$9P>cQbK z)j^TD{>p__5$Q%`GF~mV6vBGZJZ|zhzczoIDV+R($^3pPhbL+$%FN-3K;kL1JQ2u) zbmdAJ4bt||5)ta5rSJ-Huh%08psevBp6QFP`2=?Qjk&8Uz^N-`bL&=M)7H+0t5jf9 zw)V5Rf0&wHg&e2!jmiC~0-HEHo7>+AnLM;f8x9TeNI-lM?^QeaWAl|2s+zM1?6gfz zY)smGA1tmiMA(g=i}hfh{uqkn?adSrg}BAp&huk9l{ ztQUc>$2qcSdeL42?D9Wv+1MU-QFAV|eeUH{k$v{QMh**YpPM;VWS`q8EcUsR!V7Jm zdpOk~N=f!P{M^WxmN`b_l?LJKriB<>B|9{KpJ_`<6lew%8LAbL2k&jU6A2AmDN9~kqq5EGKr;7St zFNGJn|9L*8iuzwOg{A+sQFx*IUni&fuKs5|A=*MB@i|@xfdf1t0>u-GCuIAx7W6{{ zzQlug<39GYZ)5({gVM)+;?Lm8HB#|K)2#_3QX_bBEf^$)y=IzR*Ij^7s2}NwggxvM z-j+CFBo5NhT)GXBSbMrCq8@fHB06W*T!$f0xfev(f2mE*PmN+<+iMXO7D$E$J!Q5N8>kjOKvl zIs$c$K$@8y6w`I)!lq?8I*oNI(2| zR7UN)e)@o_8t*~;5DuQk|4C_t>5T%n*VOQ1>l8^hAsfn;sLsHD%9d}O_ic^$H~eq| zjl05PHQse|u?!lH_8?fsXGC>6dIGLZV6S4Y}9$tQD2L5mNZ&C*~HsQOBZ=@8hxE^XGtx8|e=Y z5eJt+#zT5%N7OXE^vicb>g09vMXQx~tn2tfB){HFfwrLaBGVf@mdPd$u@aYlIeUW8 zzmtjUvJ~HW7O5K^GFh-E@nt6KY4?46UN3bZ>+p#!U9!&9l1+0i6F%LbGFCB>1~&z#dG2CaCbyH5n1E-+HeXA?xpY| z+3@xpYg8WZUX#Y-j2YqMkXjk*FWG6q3rpDAmxV zP+m8uDsT>c6kdJ|=kWd@IXGCHL*12>s($FI$gPFKD>QO$?G#>hJm)rKvq)ylvGC(y zac*6lswq#owMi;6!9STb8Gjo_pi>+x@GAg*wk>tn|Rbu zz?H#1KKU`K;gHu{aON-kY{R%$eeVmQTnv;mYy1`S=fCWGYn79ZIP+o}j~kYPu$s4s z;E7b!u&`JlTVugR=*U^a`l#&5Lb@`Mjtqx2&Z+<*(d<&dnn}8t`W8r(nu-iS2~*#O zEkJRQKkl++#VPfjblCz*Ixkn@q@=?G}mL>O^fIO`k6~c^_eil`b?1^8d zPG8p|P#G2lPd;fUof>u0jpZ)8EYrd)E7~yvoS=sEjlX!7`@}+YYws{i8*JXyC}kfs z^7-3GWb~J-v2Iwy94k!3!TMnxb8JE8xb_%4ph9_V5;le_&4a^@$gFef8yC!lyyYSX zch-g@8wwRza#X3<`4fQDTpdMYvcOH%@3-;HXPY_3Z5m_i|9s-&o+!Sj1yK*%Zrvt25EWG z%kPf2YU#!N%pMw^k1xG+l3;cm8jd=__j(X+x-C1jfN(#;b+sgAT)}|{*6^#^s0riY zST?&>!bIe0%yvrG{BUj8N_lD9bs+MiwH!BUxsnh}q_oQU$MJx! z+@Hc-5|yJmu1rtZfb=ZsNOiZ^k8|WdJ4^bs5yNa? z&A;(SH!N$!urWXqL&NL)a6cArm={iV( zdK)OzY0gpAXFskiob3*sm>{j8XIF>o^!U>*rH( z#|U5^B7XUKRDSL!@H$?^L5deJokBmLiZ@hNy!iKY{X*0{OEvF6W|S_ZDtA*4tElR7 z;9)>jLx4YQRZHyJPI$fG{R%&->e0tw30bO|e{&8>l#Be-S+@?&e{3*z1a2Q4?s6T5 z??p4-th<`B=fPC9Qg|F5+227^<3BajtgmOVyRI-}8GlCMens#fzJNEY)?XA_atgT7 zs|A5sw>33xN9`jQEiC@ahW6rZS`0iCDhO`b1%{#j32xbi1Kl!+?P|j%?Xk?dqp5LM zBR05PKfc(?hRJ`oH#?}<;E-#BQ*-;}z0fDN#=!*ii(t-&G6})Ea^ew(Tv@+-8+DyG zxcd~&jPGG(7&^{f}Hyp7Fd6&_J z*)kW_SZSWNSUI;4*2%HU>mq9;ckJ?tz$%Ru+3EqtiU+43)Goh|V*GObn+5M@_(7Hp z4Y134(S(qs{h#q&CE^V}zK>>`-wzQk|5jx4XQC%|!eo>9{%M=PA#8rHvH9L&KakCz zW$Xg2A(72r+ZZp>z<-&|PZ^ufgVRPM^R)(Jn~!ne$DE44ix-~iMFwCN9fxlGsS%sn z{MklqEXse?3WgOMuV8$K*nUi#Kd9JXrFZyPwmojb4%lso1d-R5Sn3rZWWU^k-tv>r zc{FG^bhI`Aw)zmHp3^{^Bzh_6Y??3_J@Z^K(j0@ld!ybM+k0v|d}#vcif>2#bcG|a zUXE_YX0FoCuUl9cFEk`Cv>kaN89Sj}2v^$mf0Gj$8KmE#lFwnq9+k_!0A22tivH6E z>2MgNy2TSGw1vVygcJIv=~-%!_A@=}UuuvRF~)~hS;-0g$T0Lj!3mvboY2G|eQUT> zgLH%u+rQKxS+S|_KA6~kOoKG2*vvdMnutG#elh-?$luBQHnIHQIT2rH%J-UxBe~=7 z{pb_%^HKRXA^~LAgavFzzy6^tU>EXI3)qYBk7NOh=rw-%=kFH0Yq4xX7Vr<$d1fr6 zOSTUzU<(pq8eTZ(8XbzFh1*%9a0-p)=IuoA-!_Xw$OJ`m^LtGH-jLvmx%p2C`&T&} zc5Y6KO8@W7%^x*lQ?vM=xw+YC`i{AI>=!+W=Jv~1p|gC5A9WTO1+Pmw3vVU$B9gi) zT|Z!9G+6j;KyL~3LfuMgM&w_n({>v$6rHx)fIPHTYy)B`^?$@xQX2_Iwvsv#)~%!- zgyU_%WT~FEll*ecdj)S({LqFCW6f0l3EX81Z+D4i09?qW_K=p^`@sRFvrFu)$ZNn7 zJK3-we2JYGouei8@4GNzJcD^)6`y;9=nkuny1>@`zE^7gj)8IJ2MawlXhmK~##4h1 zgny)gF>-+(Mnzx!D4KaS{_k>uqCKsq_Y2-O_)$lhZaT_S(1QUTh4wTmI|^X~_M`~> zU$Unab(kw4!v08%*^M!1bbnWe`ESgn`;eD%xQPq&&2Ntk=m1kn%Vi%Eu}AgKj9#qFi-DxrL zT2$ zUXp$Tf-x~U2^L^q!PX;8CMJsUqNSYWvRHhU%Yu5A%VK(#Ygw$<93}_IK{uq* zv1xb?#CDHhc0Q+=6`RFku~|^XW-%+aN2DO~nP@&oVtdW93E!92Yu*&hZW?|mm=)VM z789{qOvPrgSZofMh%GDX#?2VLh9sVtL{9B`=qxAWN7iClGgkkgPHkza|9_m?ZV~C3 zXm-Dx>MwZf;YZ@TU?bnVLGGT0yJU0Ni=Hna7E8QoTSX_wEEc;u7BsF--yrEN7N@tM zN&n>_=`9wgx1dQs^!UhMGP(;~oHOfhN2Qxn=NKI;767h91xfLdt32$(iucS!c>i7Ja~!cYS~Zro6Q6`GcJ*t3_sf zW%1W9cR*hEN2(Dk%`$waALx!pMqVmCp`+Il2(a?t>5lkfa3P=AsXW}V{D%dv13zRQ z48b7}KInlXm%&bm%!^KaRJziag1#I^&3*WCF*{!DHSaSR_`O}}H4aFMie2f4pl&66 zs*GLfQ;kaSQX0-?HX4C3_9L9ltTYYpLx9VC6q$x?Fav8t1-PI50K1u;$V+EnJtUYP z=SbZMv=ts8K_$P4Dq5&F`}H-rOBGH86U{NkeO&N%#t-)z#{KVF;)n)~*HHPzK8Z9V z3vKTIF3tGakcD2%DlMJykc@|nR)qh(no-*-qcxqM$DuM*^0ug=!2%2&^acB1Z}VhJ zw7xwbBtt%pJ9) zSl73^5FTWGJJRVfXuln$4Nt;ZyFKADQpV@YQ6!Za{!qyrI$$Tw`)o{lYkc4c5Q= zC358q?4HJE00%gDvjGlp@W>VWJ`Nrob83$EGzJ`*{SZP}5nrQ5rTJ6A^kh9f^cC!k z07teNVCsGW`m3Wf*X~}FnkNGIrZph!ElMWc%T5()S|p#xT}!b z1;hOW_s^??Ek>)K%R3DNAC&u7X51#6sWFkKsL6EKH*$=cvb;AVSC zzY)Q*Hn@XeG$YcrLB;GMm&M{mE(_`+m&NQN*B(+3Sx{Z%`mJDGd)eSUS}?oFb+%x3 zk?VYm$s(7Weg!HzOJOL{xV(0DRnkoh-0n-)C-aV|6R{OME+Lumj!QJU8F~g{!_EXlfKuE)H)~q=sQwSJiflcU%$LR1ki&YI!(iS zU5UT-GVW4G8nD#3(vGQxnKm}q#}n5@rj*{RKAGqnnSpEOo zftyEJuyg)V@ET8x)+q19J4^JsM#X2h*9mMoJL~MOE8!3OxHc{K#=Gl1kUlL5@+*M6 z6*BY+prQAJqJ_e=1el}8vpWzQ_*nKt$;o*vdn~{Kk7XADlBzq;6O#)TKbCE_1?Z%= zU%naA`vyNKT0{16KyuO36$6xyc1FhC^8MZku#o8o%w?v0UGV1M2j+q^viP6DZ=RXH zQ19}~CxPUdh^%l1?KjIsNAsv&$x>f5R~-6H!E63|bev!p9NW_C2B9A?SDd-E|NZ8Q zoPiz2H$zbahH)C(|E+Vyts#g@@Pm+IJM|)%@XLP!n*EmVG`#bhL`3(9hz305IHYl5 ztowk69FhD-Htw+iu4e&cydmC3_(3!c`xqU;w1{=eG1SyoW*+IP2w?*pJp#=xB4T{~ zC;dXpZ-A}X3ypPK)L<2(@iRcj`P`I2<4Ac4;1#eU-7=gEO|O{O~F_s@=)hGf;AGIoXOcrFgt@{GlXZz-bn_#%G% za$%bR9rhvgpP$#bgHJybH{u05Tj58xcW2`yKZm>2!yMcDpToA_wG!M35k4DlRR{?3oLRT>?77uO;vh&Gr*x^}7J1m#ZLhh5i9Jl8I z0UfvJX#r^>6)%y$ARy^+@@Acv1?6(}%{un@%;{OY}D&J{pcm1i{3z`gbV8%EM$7)_(!W1kAvA!RZ)Ad@xN<#Xap~ZAA-uC zer&WHp2tdR7j!cotF=|^Sgn|j)hA)B?vt_la+*ZSMXpBtU|-!zW~^2UyGHI{I#w%a z#_HiU?j%G|)Y^D{g7<5|D1$EF-l2!x;%(XWJ_=C^2|25B=Ed^Hn^0L)KyhHGV zXd9Z3*1CD#VhEDB8`nNE0jD9Tr$pN!lIWCZFsBwLP4NSL(wfoi=V)a8sAT`bwnZCf)VRYlU&AZg`~)kX$rr zqr#k*v6GL+9C$UY;$B6jfl@N%mI5b~smmTsc|kY+yh4GMe7wc~Dtybm`bPYD7-l5! zs{QKfC2PDH_#Q*>cG|B#29ZDE7c}FQ{tH&9@f!aRd*1;jRdv39&kVCnh1r>f1(vd~ zEL|K6B8sqxC`iCn)UkxP8XFpQjj^}2V2foH8ya;r7VH~KY*AMeW7oArEU2qu?7AAU zoBZGRyXTyH?(CuxP5dSK-{-kA=X+28zVFm~%6cG{m#OHo>9}HGBM|5GP-PW6rg6~% zh-(qR#k-}wSMWx^hO-qgjKXaM(Vxduwq=^%K^z!ke$P8G#-(p~VOQfuDCK6EJw_*Sm=r+T=(VD|?Q2gCUPA918`m#|-Kg_26Z*oA?}Q zMH+D8H7-&3kgBy#EWxw7+vsiGSh|8|ba#T_`PI4j`O4c=`;(+ki`C@5#3u_E9Dob| za^r9YbO^-ddbv^16Bo?m!aq5*-UV|zmdja=E@qEjPYi=@R-c2kG3GuX>UDDNL#8YC zQVHQwBV1H$pnNX1fDkUpeFyEdnu1HLc;A6{ZgAg0f#%VPJe9dY2THNx-UHF;1sZd8 zI)qWD#rLV&B_}t`JqTxY<2!`WcZ&BQEY>bryG&clzYn1SX*2gB+|f-)A&eo(jS9`; zt6c6tXro!*fv~Kb5JH#@p;LVMcOb0LzSyJp??CW`q1B7Q(7kc*E*aVg!dxKHM)T-I ziVW>H(^obY30@>2Cjg&^BR-Ql0qn+0sa}z9wSwoS+IY*HeTr8$yft zDwlLE(!L~JQ-+EF&ea%8`ZQdA$qOKsxbEZv2rt(Mg`rlbn*;Oc#@KeU%SB;uz~(BE z=S2j@CHn`}e^2NCgaWd<_RaCwfCqbL6b?9dvHV&%Zx>HyPZYuh+A+0?QTg>Z@)F%L zHqfuX&j-Uz{SC9NzhMsQZxFWrhS}ENbY$x9>6>@$P~l=X8_l4CY~MjLJ@7NtNIoVhN^l4mQ?lGOTdTib(i!{aV?nz*cvtW*?6Oe$1*?PRCzCI+Zra~C^SiIAmej=PDqz!VJw^I zkA|v+5iE*TR&0qw{M$j)e$l7m#TmHn<+m_@S>a`#Sc==3wO0=LqbJAuOJi0C7twQd z4jVV~0}tiUfI$v(Y@@ExZZ~0Q=jog_GBlIZ77!+JEM zfTQLVa|2RU3OvO;-JqTE9BLdHjsRs*_ud*FLEmO~p8?5JPVGw3I8wW0(I|{p7(=C7 zG{kyA6}fp#4)VWL!!mno4)Ql3Q|}+-&!Lh$zV~&&vOUSRmY%tvA7xt^4R(qaUF=au#<`$yl&d7T!^1P;w`LDv56Rk z9fY^=ch$Fbysz??D<-t|sEl_ghGm5l;xF-J^&`u?!ikl+t@ro5_q4+WaLB2bI1iEU zpo5dL71W_@6U^q&_<^hY!HTHQDVIaz$7)Ojc&?AtX-ovL*vAfVv6K76pF-?)47_<* z{AxthNb`V1W`E!pYqy*Pi(c3ROp~bI)-Y?H!s&jne|LjD!^b8R{ABj0yEB3y@4h%`o07LG~zXOJthr3q`cU9(&M-t5QBn)Is=yZJ+zCv3zbhJvI$Uzl=lpFA009(Jn=e;$@6Bg`Y1W{AN`7-C=v@_s+_1{3d(^a-U~()jpyP4|=C z1lUe)rW-Va=Ymj0t_qZeBKvBXEB?$X!2L9aG92*HfNYe_(ftQ#hpcTa9}m-@@KN7V zaE8VtgP)CrbN|l42n#~&Xq14t2)FR5ir&1jHXn*JY&V>#i7~ihahV~m0WoN{wz)Q{ zyuO`dedW198tprqGBW8=7*@eHyZJCEX-ziH8@<|SUMm;pMP8jSn+v?E4~H2Sc*$K| zTaWWYV@+o7>I#A8t}Yk!2aIw9*ao_QvI*b~VEBu_kCfCSmcpnZiI)+36U+m8_ekU} zKpVMC$4EY|f41tMc@eFz3re>1KQxfYJY3O-{f)GB*!=%a8N#2 z)n+z=Yi~6_D-5`Ni0bFXHwT(MqRgATdMtl9(0&eL*^v#TiCl|{c63uz}`!V!i zO}k{nG`TL9yQTz-59txhoL36I%brbsFC=yy?SBycPaB-s2`MpHFJMexhB=t49a8g| z6EA-#oF1-Ga&vNh-_)O$dKP2$CilYy!*Bc=oe}14yI95ZFgL=?%^mqekbtXo2yDyX zK)BTc2g0qr5k;GJV7Zmr7^9#kG)ig08yc|&oI3K3gRbAI2Il6R9tPv<#WJaBCEx~C zj6MmUB;^MBgkDqs@}z1;02p#nsfwQJf<0y@4*VN?U;+xL8Y2L z3W05*{D!JPLf6ZOYu7=&EP=eDVOb=)rCcSG_SW=cW38`>+)^MX5e(2Ut5W+xWS|Cr z0?>XC8KptVgt^~ltOluO!B_Y-G|CtY<}3VW8kC&*8`a9zL(fC{4+m3xTR@o6`S=kj zT%lB-ChZ3rfJDCwDNyQ#(^W3_x$@4|wjVH>Ga!w{$lN6wd`+i4u_vCFAoS)By-FHr=Y@^h4&gPYGW0RL>yI^-i~GH=!W^pg{@Jzuqaj1l`Bwcnc>+R9WI& z9Mw*-`~t*u5R&Ap(XyS1OS7Iv^^jYA8Cl)O>|+{ z-3r38yMs1{-R0}}enaeD;DUzTE@;>t!VJ4Zpka3i)a-V#5WA6mc|Jv|RI&2djMsp7 z%FuWg>@FM!cCQxJ<}=~Ewq1p_c?`gB)aC|+WVE>%=0KavWY4vZuWQ(A7ak$ zLnv+?2+PSv+I*x&B&oPt}`Y{R;~SSv(fj|2A}_c=HS9PC6&$w4aY5!&J9hJ#dC z15VH!q{133q_8(?-)OF_!n#zso5-Dmx~p*)qsC32jByuTTo9QQ{|7641(hD&+(L~uahkAitM)fS)Pb2x4|8=+@(=rmRG4!=|o7T7*_w=;1L$D+_zm(j}MNZE5bF;aV zn;AMcuHa5%z|74m39bWaG=j^X;tH+~)T*XFw&b<6_a@#clT_qwB*^v+S7#23T*9`} zC2QUQy=0AZaq^7AuPXlW&;BL9Q!Wg7t%c>3i~KVY>$-U5B$Fx*zh8U3EWZJwHqTfX zrd;lOZKBtOh|&Un2hZOY7BS#Lwld2W&34T3IgXwVPaCZMbs?o zzo}oV5h1WA!Rkmi;F#{fwId_^Sz8&QkzwSvDkhHi6FznQh_zuaLlqYon++qCd;QAK z>eTa8<-q+hti?NZjH)~U|IfXi@}?fIVt>JR6kfzV^)^*`&|`u7haV5jW7-4v$ISD0 zq0#*c;NlnIZ~25Z$0k3i&2TgSDT`OepAOP6=r0zJJ&b|8NyCC?EMECwV2(vFt~YLe z@oeCx^0^?)anD;kHV`^z+#mFU#Vel;%&}_*25uI<7`Q3C6ofhBWsAoS**tK6dWXd; zKMc&V<6qG@@;>|3z)cqQiRM*5%8?J$2NKIXnDIVc4z;K%v6v5wNp*2=>cA3&|-+SU~`~~Hv(*b4{A|uEm#kzV(ekGKAo@_YAyWa zZUc*wX(mEV@nA`>^OXRdtVb zVWOY&MX)GgqR;lf!lER(Ec~iC>G72$_Y_!k%fy#p(QR_qY+p%okA+2v%>Cppg+;f? z9rMIWl6yETO1SHb_6b;&B$pMLD%L!?lH?u)i*C95Ff6)F?vSTelHC1ZQNrE0M1DUk zN|Ni#W8l*|jGx>Jw)>`-}>Gg~Wghf-Hqw%YXN1ci&I2C>FD2*I<;lIYvK(>Aj~eX7--CnB99C0{#6g-CQUtXGIps z7=3111I*^kv}Tz3Sq)F++`o3^vM=eo11{eUF1P)dTo#UE0~WQS8WWx72~UJl#cOhNrC6cGsB8 z(?d1p^7Kd-(>!%C!&4WtJPm;XPmkAOx;$+pV>C}&U^cZud%#m$&n^@_ty*g9*@wYd zZ%DvdQ1ZB(bur6X7c`u8F~eE+9>p9Stn41eAG4nA=0ZTfo+V>UJqxqpY%|Qd2C$qx z4tZ0>g9FYkW!?Jk;;iT*>d}j!pXTxF(NRBY-MTW)b~>D`t`0a`53{LTJG8E!Eu3A% zdSD0Et#D%Mfw#32S6f}oYO4zxZFMnMTUY2nU7p4d_v<9XQ|Se1%&i9oYs{?&hPjxo z2VBh511@Ikfe`4|1LWx#H$A3qC1Xt8>hLr>G~j8I_UH5TYVveX)~#@2czTj{;_}qR zEKgm~@YKazo}Q%xb$PnP&4WH&^J>?fJ{;vPjk!F%*TpnXUCi**#Vk)lV8GLd-1KOk zHj*)>ZiU&@0PO)!Z4Kb}VV? zT@!G&9%fUwRv+Q^vEE=kzylbX;KbAeqqP%PTV2d*s|y-!bum|4*Vci$Je{sFw{G27 zV{YBLt;XDXV7`m#dceg@J>X)t9teScJwTrBro(jmSgmA?saqYMW`_qnZPWhzek(7h zj~@e`*1?J4>4Vyd%TpJ#Jas|CQx|i2`m_$z<>_l0GdyL#^{*OpdHT7=T%LaIVw$He zW_apimZu>w;AzhzeSLFz+DOKjx)o+q1GEP`wRP*UD1+EM5!3)*g0o(2z*$i8xSVw{ z%UKsRoOLn7Szfbeo?bARqqGfXIQwJPt-NN>Jdz&WY8A*BQ@6rwINJ-t&9kSg*#_&6_zY=RS0 z5A30xxZ3JsR$E=rXse64+Pc3E)aB{18Z$g)zx8;Hx%I$#8guJ`3tddt11@Ij0T;9N zKnV2f0rK=pH$A4`O2(MF)!}J&WWZCe$*(_rp7OBxIB$-ugA>Ekq;}%+)Ws}MUC{8< z#ay2D(Sf==9j-CMQ`W5`HRkekJ&n0Mo#JAer!HoA>SC6sAu!^U?Kr=_RP?VnnNh5Y6rhKzWr z=}sLgVnP2jaj9|Uf7_ahp8t2OLsJiQt?%*|E)F6tAZX+|KLER@%|i^i&u2<7l-69) z!8q%aB15kgh9;i38amctC>yhX2}4 z=f8uYm51UJxqO3MO;t{Q-+syO*`n)b|ElXXP&N2#4&)%+E3~E5qqkS2xMlbTjY(%2 zch&rn0vUx09hX~gd!^^yuI=N1?csa{Ixq+6?sSyjT*^ukeUR>cM?07~obPxIvi{Ns z>Gp*e;N5J+ycY+gR#)YRv7b4A7X% zw!to@+2&$~Z7ycn76Jpdjds%`7uZx@h>~JTO{Zg?{y~7B9hlin%d!TAJhiu*~g>QL_pLc%g2gmhkD(>0{K z5Rw<&bL+Hs9^R>^U?;?-F#LtY1(D!Hx^vMxQN;(b2nR&pt!@pD-J4VVgi>g^y_>U-6LnM=Apv_p?ICb|(zpmc)iwx`PZ9jzN zMj+L~5s{1+`FcO>GfZNw*bKZ=r>j^$tOJ{em*zdO4(xKgG=GJ4T@$gMi{?LIE!U@b zX-;81*2Z{gei-Yq%CHWL=HXaVwF6$7mt#%U5Ui!5`C6=tdJ`|rO&=eR{{`B73jQC^=6CQv0=;4S-R9l2w+JuI zx8VOHZSIfSeM>HanvPv8W8x`)$z9pukLrrPQmL{N^SF>b{#8RX~+7J+SxyO28vy4H4GW>0~gD)LZwInDiP4NH(X%{|9RU(n#;aBCZ*4_%kKF{(PIo5rZ1K__yP z9-h0Vio2W4HUChVYtT{FO8EOTb6labn})e@iY=^U?m!JD;MQg?d#sZYb5)#+8P0B_ zK__#~8k#7PAC1T*o>mQW53Y@;eqq;m7P^>;XR!vIc-l4OXOc(#X1KIysfK&Inf$8; zlWycq$90YTCKof2KcGP;a_@NG?-uiX>%Y;z@ey>{cO=W-V_;j0t;z?|?48uBxD zB{O#;GB;7faW`{QH5lS-hX&oqD^7GWY$6|}!60(m7!5}(s@UTN+Za)C2w?fc6#MsUwvf#$}R`gkkDbHK03ik{p59$)Yx04UmH(t4H_r&(sRF z^P>ArI5B8v6Dtb?Di0g3pi+MRF#Kr6} zAtCTx9utBpdt-#!ej0d)C@R(i;Wd|e!{=b9`Ps-^yH3Q_%-rTZ2IPJV@I4KVCb(;l zKFJdR7T_&r1@n8Uiu~EI zb;0aaxy(r=n3 zZHZfuw@%t@(_=t#1@ctD`MdrpkCC+(K=gI^5ka5Y1Kf`6oW{@Y{8Vo zfM+-0K0dtawfu!}9I|{Zmf`L^gRxGImMNa55!n~P#U7rM_Ik`sV^fxjUAlSNdl4_p zUgYwPd-{Fc=--b`dnYXfjP7Ri!qafra5IQBh%E+Zyk&TW_!5SNLp1T*^&Ok+rUAi- zcUv6ugZ484XfwR3xWhhvRXcX|6io-u1(dO+eV^gJ9UP;Sx4?Geurx1h3=AE<4{Ho^hJRj*u+gvaA*58)ESm zz)?HF;*->=Pnif&k-%8?X;nAaYEnxXmu%I_z8oO6l#AKo76PTX<#-s9dBlHOtx^Dx z5%Y>d;Xi&3FTcn0DsJw?O)66U_W>0o!>EUEC<0u%Sao0yQg$8kNIuGcBg^K@nNFa?Q;z2$Ia z7qf>eyP!E-*~N4fnLo_Qfg}roUXBx>%tNf=9W@{nJ3$ja%#F`#1NKX9r%BKZMtMdYzVuzYcRV%*jgz$9F{f z+Gsu{7rz6%T<4O^CFzV^F@$@v{c(D_`l8+S18CtE9f0 zRpggD?kM%X^$GTk5dL(A1LBGJiiS zNr}-LgaGGOd$FV5PI>p@O^j5PFQVejzX$WCs&Y^KUr%!iP4Ur*9$w_m0ZqqV%_H#k-$F(BAA1=;JYcNo`3%d{qswmsz9)Ly>o9m?#kefr^cmjb{Igg|GW{N z93^K$q`2iMIWINCk&U>Wm`atNu+o3MYCEFM8&!?V8d+5K*8_I-gmh_Q0Six-KvD` z-(LUh_q)@175xX@HO`pg_KYiZ%KCP>Lb!k5q@4WB?DJu2?a9xA;D;5voc!G73SoHv zajy`z4M)A?^kkFM+K>#!BLn?w!!jUdPpO7k9?5BNonk|}r}%Skk;a5haFC<+<`rR( zbJch>rFqz!vDYaYkX2f6kfT8*UUQJ60jucLKgcnZ8xD6$b3?34ZU}aB^YM@19|?&p zLysczDt;KhJZw@`aa}a@>@WJ{4N<84iCCBb)OR>m21#liJ;3!WmQEU zpCm`7fs%(&^2oHx6=0vR@Ueh}>|U$lFA;;Va9QZ|r48xx#p-TD3s^Wzf_Mx;2n$~+ zVd1!4H4E_>R6l+d$`jo3oDwh(KYimwpYCS}0;c$ivaDVieYVl<+E#_(@u(HU{0ID%Yyl=63=%`IEUTbcHi$aF?oe(BR7NQ?FyO0)*$nuaU^WB3R+_sT z@KF&;2Ykdz2Ykdz2Yl-gD;e++GXuU3L|QuF8wvX#aKM)x8VvaAU^e+}q*?OY-GDDN z=Q0o};=nJ#kzNb@4O&O#WyIGG!i@O5VZn&605eB?C6hNb2#Djk%xM*99QE@A{s*n6 z`XxAr)BulzCaaVT|C&LVxuiClzsp<_i%XZeBmwV1(;Uhdr&u_blzZG6fpOq5XsQ~P zxwiyNU!(?vQ+_U;*5O=oFLECSq5R@0&v5*z;wJ5o<6nReem~_6xgP`6w}IR4!Rq4Z z45%;HC=7WbMfc_*qlP@0Nc}EglS~Q%3qrUKjt!9I9^;HW3DPD?*3-#{rr{^^HST{Ps|N12XdkeW<>{`1!ElAF5wc_a>f1 z-RoWz$*$m#+rphD=^mP^JxrJcyXj{96aKx*H4~b@x8VXE69JV(6~BP+R@*(}4SA-- zVj{r3Xz{!i_le@;V1TW(cv%kg?}Snhd9_9k^slZd<00y~HF1c#d9pC@V1GH6-+*i^ zcrL%3_HRInz@GMRK+2%noc8a6c5ExDs7K60Uhz}W^kbwV_+HHpCO%n!LuvuI#6?6b zG|>;x4;hPD=bo41BFEKQm3IK%^mX`3vE>cQy8v(cX%Hu3GN&DH6~AAsb4*WfoA)AK zdTV?uJQBn~^m8FTIedZwdEQ)fO7`a|^eJ!k_oH5VAGq2H#6=A3Pw+qIp_q5wj+pJ5 zfupJ;@5a0vKR{q7!P#sO$xaY&!`UZ&(?V2DhO-Z0W8+-!y_k(Nx&`VPCZK8~IJ*vn z4ec`!Hnb`IoY2k(Vf}mt!Unxzf8U1LiJkz0q4oRAZ&hS3~}<)41zY2pQRuycZO6u zk^Wp066swaY);FDI`M3(3CY4`AS~bB17YJ?W0;eilR?->{{q71bU=;6odZDFNbd$= zGuLCd!-ED8Hqt9W*ht^kgvfN$T0c_J(M2E_sp#mlnvk5XJ;IMv%EjRz7^x`Iy_%4m z4j$=bVK)#q3)g5uLW_@bvamS_n}xGAA)$Q)!e(Lp(M}ecG$C172ErDM;bWXE?5+uk z^p7BHSxDi^Seu2-G$E1hiqdOK@F%}Wdv$xIz4Qn8c=z&sPUc4a*~#2qnvi%N1i_#s zv_o(*rWMv7LD-zWe7__56<8`^b2~;0 zwH5x@j;1GJSNa$_+uNQ=jWD)P{pO`+%>mcvbNXxFw9D`Q?OqmJ=$O+g)16-)KXf^>8;FsFhF;fGfj+cbrg}lW?d$!ygJly`;NPek zZ?d5#r#%lS+tUxt^8YMxw>#Xib6C|Qnk(%G0UIHAoWZ3$6iS!*7J`09=>G=*R#^UC z0s`mKfxlb)KIT=8jppV#-y?nl+bZ6gQ2ME-YO82Gbf7(ZSXDbk`-Kj)H{ic>+P};9 zqN=^3`P|=M4EmDnHdgH&t;$56hDkr{$Bv$-GG6YrzZeW^1Y^}NqXTo#l!6;XGnofV zz@D#QT;%1F&jbPBle|}T00Q{haVy{q1khOm_B@LLbj#PS**d(tY#s64vvu?;W^0Yo zY#oOHhL?iVkgduRu;(4jmZNm-ATafPvsJo81C*|S!vCMFY@AbGRb|`8VU?5?D%=CT0vQ;gGC;ix(tyd{XWm6@fR<;ct*w$YruHQL4{DX*fEO)3GqDA_*f%V6>A?``v$JKj;U`LOMxWZVa_(mq?LZz1Ab#lFRT zPDhFZf+{lQ)>4o%zPbd|GJX{(?@GUXsY-?pk#@w8nBp+f&TLY0MDpz- z`j%>~*{Q5V#O$~oQwmZ<2b6$mEQG}<;T8wBZRu5|AVqaS2`Hamz{qT)o*g(-M78=Y zwmwJ;69RR?aj~G_P*fL` zq)J59s=-icy4_8xX@LyLocg8dQS=b+)lNmK6jfU(NKxHb0%}ox4EPBhfH07y>Wxy6 zqI$jrw4y>{C4q^Q;@0j;RAhg3?!P7qQ3BM?Q$(3Gwas7sfNg-h3(C8?6qHBW<~(luX$p^DIeOusL(_0W*)uAN$utyT(B zWYs00FS5iYfSXtVSgQE_`5+ydaFe3q_h%Qhq7pgbX9-?xn!VLlfVqvG4$)%RT2UD< zAyFC7i0a$B6~<+#AtPwy=LRXqM7dWribEs6kjs*81sw+RmAfvv0`rMxD514;f~RbKd2%DV!oPQIwhKEmpbHKX`) z(x_DByRo$Q@p7yZIZxSD5L3ZxRpf3Q3tb}6*MRJ&{(?Za@XZR_b)Z z3?-AT8P!jjl`Brr6D1t(6tY2YCeZi~5j4ZEhqvVUIeonnbL0X%ey0rAc+fN|q)OGfR^i5NYYsq#t-MN;9G`dr{h) z{C3*>cDFQ1mIhTn1Fu+;WQF}Hl8(!~Ang2y&iQvNqRBf3=WcUqMq=^#Jz|;VB@W}y zav!g3VX9~NcaE1WOieKN`Ew%9EljO2n=MQoH2Yha;={0OHM^94hE(*0xdCQw{H@@& zrB+(pH7qCx{vt^3ZnEirPtxC~+w{LWV3pIKeHKwJ_tReovq^s=%qIOUG&|{U7e9Xb zv(Gu{uLqHQeOQp#;W8BGwl85;EA91uuMU_^WZCC~$m(cz_Iovg#(uB-a;J6|VFBC2 z+2lejSCh!SctX$$5aZ!bsrjW2+w-uJJ!I_+AA88Mh5h`F%@va7%P!7%FXK%{Rf1cV z8eV|2j2a+&mYPABJxgsc`zzS|(*fu%YfcAP20OEd@dh0}8!fx;ECh1hnM76(f5|~= zute4b!bH}}0A;yc@QLbnwAHHkCek|W5~O#Gl5})1h{-w~buaqqNN_J@BMI!Gtl%EX z77`LKh13ozxsK{1!m54=gcepk%tlyEFdNNirP&cyhxqX~=T*N9|6pu_A-9s4s>=Os zedrQIKDkaT}!O?C&PY*tlyro}v5gn|x`=$OH{7aeJnLgr#d$6UAco|bSlO-6J~e=d zZxhQT4uvK+lTbZ!iM>Iz(b@HCwOp5u+wW0wR-xyXW2J2#(WhIWc&xR}LvR%pDsdAM z-^nE2rpgmnfT(_}%&WLNg{8V+sd*T3#mlLx{0->+nTH_S_!Recn}?%=5pxsy+_ElM zCRTzCoYR9PEca)`Y92Nf6(6MXnV8di74YsyN-$zvOVl)x`)`)t^%T;cd(*tc{OOm`o zm8Z5X0XL|E=GoE7o)QR4u9VnDO8ti@u?d#gR)&U>D(4e)fH2Kc_MM>0tE1Vk;-y43 zg0>~H1w@w;$&%BhL=s$y_J>L&yB#Q{p%O`~yAsLPtV@X$@CPc9C1PNm`Mv8(;e0!p zXgKe^8*sh=vuSJ^Xm&W?4BB$O4a9#h=WVeY4-u>4j$pj)dZAAaDDqo>iDvRoD&ro; zv^6{=A3%e#6WWMQa_m7>C1-q8zvuT8L(XT?`9nC&uJW}T(x%d^oQMsbrZVk+vn|?{ zzl2%WiC(17m1!?hg&$k%u+>q;2BgfN|Fae+iN(dR@F(}IUKPZmE~dQr?@=J@kwkVA z*TNb9O)#@Oj)1upW@^QKIEbr*X5HnoY+6^s`7^?)yaXxIQ;Rm5?ZvuB2GKCC?E8oY zJyS+mN3)Ky5oQx*3(O|UcA9mR@f$fG@PP#2AHV=JdZHE2WHA(`nGVU8- zNI5jZY?9MLvm~d2pAp;X4Cl2_2HxLb#vB=2LV4c9uPVL_`TG;P-+QL)Uhu5ISTIwz z6O^I>X3i&U1#>gZ95~H_xs7Ij;1oX^{i9CtGo<1GnCm{)-3hkd%^)~aW>t2!B)Q+E zm;vG3G}eFX=XtRh2q|{W#VXF1F&CYT81rS!MfHjx7xgfkTr|<_gnrY_T zmSM(SqS8fh$(`HkpffYKmHkYr9XXGu4rXU=s}ZD~+iIg7=C=G9tL*2nGBZ|nAk2(a zBg}fns`A&Uru5eZo1z2o8B!I`LW6inlM$zF=#izhSGgHM{(>!*jiWQf61jHbkHMe<)am>S-!#u=LgJf8fn@2ER zu_eAhC6xUNspCwQdwLo_cFIiEC}&JVP-d#OVymbhg8od^hYL|PFfh(k@pE1?2$`v( zO&e`EQ$?HX*S<}Xz4QhU{tQ)@jB|$SUzYJ!#>*KhCa;qOXQ-IG`oH@#RBJn#XSZ;r zN2_@fMk~D8EOz=~U{-`x#Xocw1F`=e;o&^p%QEKkT7rt-NQa!DqQMYebgY$AW(c03e7|(%)Eu5;sHcftw6}_14#~q>OsmZQ{}_xXXvkb zmGR%F?dQSCcc#r}KwIE1l$oe)kZLm%#df}hVR0sk0&FLt+j}npvu3A@*D@jiJmx!IuJk1u#rW-k)d($!pg1%gpp%A%!YAZ!Z6Ou{Q;dd z^NgbkVL~T&eF-RonL|)^%)_C&3?mfhbt;FE9VM6>~g(E zFel?rDGa{JnNld5g>r9aX08HZW@c>3XI~9XJxacrV3^~~C2#^>CK#rbfZ+*-Z6y$D zjA%-I5{dsoCK#wGO$^OwN-GGXDIG8yP06OZ*OVd5K&hq>?4l{`S9H-7g5O0`wDyEF zg;;l*VkaD2O|cUW@Dxnk__e&IPM3enOu%uhRB)t*%mlFFD1d-!c-_wgAiBsvoE{PxfuG9J_}LNf z;L*VXo1aRGI&hSV9e`gU5KmXJ5DxV~>YfHvnMmMhXS{=Pa^_|D&tZS~;C?9gZ^Mlp zB`y;W_bl_ zTx2XJT4ptf><3=yGizv9W)1y*%!2nHmsvKa>q}0LF*zL^I+=y8hT?RoS%<-(A7WiL zBoplBWR~yipED(;@e}J3Kf!L|AK#6CVqN^RIn(~PIS^+3G~%D}yT|esffWu_Rk?M3 zX`Ff9RxtkH$MT`aYmVi^2a^3~r@d?O4xOT6V>U~BJK=@di)`?Lb8Pnn_)$f#zw%Pc zuwcYItki}j`+Ak1cBZ`P_(U@-4xev;h;-toZ-YKjf4PkBvwLK`d3bAT@>~sakhbJ< zx0(?ch@-(cRAX!hIbi4abr<7+oeQg6j01L_5go$xfSqSWx7J`Rq}L9erNieaj2OSZ zyO>!t;$n8uhzsVNMI*xzJ|+PqQ~SP0<@CJI@z#v?GxaNtxtVe?lPMQ7nF?V}rkWY4 z&eSnFd^b}rW-{esHd8L>WU51F%8PA;Rh*~dt(mF%)_>sV?tOfIQpNd@<(atIpk|jm zmn5I0E!m5$Imlm;>|(OaHNOHb&(HP)7SHAj_;(*0ih zGD?@?%FvHAcq)TBzCy63PCu24h@H?!u>6NUb~3ROE9BVsi!`sdJ19w=vhA2wKKWq^SL+D`DE0lqvO1;{aELM>^t-G zxxvgRi=WT$b24i_*14GJJM;7TBW^_I^LYrgAM3u-P8pT`eC~oKO)iG`;T)6oA0LFC z9kK|CB%&}kz#P9XnoA6Uk~NbU8BHW}AlgVQ@4>IUQqz=u?91*`05zBUHI2dCn#RS9 zR=Jqbsu1SXG@Xc-vyS}MTo?s2syaEtza2!)75*9ih0%26pW)vCGa`}&u+1qa1Z{}XW3}7 z?3%uU{Y+zHh+XGn%`Vp3H~zu^^k!B=qVDb+=i-z)n(O1THl+#XU~LKr4nz~OHf1~r z6siQ*q!d7~FeSN)xPgQeBKfY`Oo!&XY8wcSlDJZ^6K0N*xI(acb(oz(QV-e|k|q%L zyK4PselA0W#08B)8q6&uTWQa%5lkU*F}INXRJ&z`Y`tT9L_`%@eZ1q=UKFD@+Onr>biL!FddkQwNBeEqysvui?n40fe0}*zWUgDnS>t zm0$=AD#0Cf0HI3I1x+RBVx|%dVUB!Tm_$k#F_dj(l5nbRqe= zpy8##T>0MYWY);n#a#LRLAwpfHw0SwdSCiH49V98O`2S+M85UNWX-m|e4Ai4@@Ltr4^JKO+FC&mShd|k}QH-tIz ztz#06d>cX7^4qSX3(4074KEGm%J(nYvs*vAm@D69+HI(Q4uMv_)n9cZUl%lKa(CSlGyA0`*3mVxO%+;qp+Ow-qF6QdfK<$?IB z{aychAm(C5?Oe>LT?q5l&fnTK394qccEN0Gw^mx1fmn7u=-~2RqJ!)Hy_+`51#LD$ zV4#CjbpXN!qk}GJbkN0&4u&wd4nqoqIt+x>xq2O4NatM8$k$-5&TZvn7BZJrlP>1! z+)uSz`w@fdm_wk|xkDWmSeh(dGfmj0xXCQWt zj<*tngqnB#%FJMHW#(c=t6a=zRS0t`vlhf_Dzi?S%|NVqGLrqCKVE8w*$l+I4TAAf z0cJB^YM|K(xEZtwxPxW{oaeywE?!NGN9JjusT`oX82OXqKs5w{PZ6JH4 zL2^ItC!?oUm~E@x0mAm$dPn@YLsJtjXiG#03`#^_9YCl=xS%N!E@nzZ2y;qAb}Eu+ zTJ<^*wnP+kbfFUAf=2rc=9Y*FPG(Jsa51+;OxA9DLol`$4uQ5r9H5;tDqA94(4@)5 zOo_m#D~)eejmTup=Uc}AfiY+c%v7Sk!Q4)>C{f;<4oL&Ay~#mtaBL8+dCrP}#beuZP#6m#m6c zV9N6@T<%&EQ*sQ$;o4S8NJjaSo-Qbpo;gl>9_Kpk1*e?#bU~T*%yHK9Ozm_Xq`jsb z%k4SmZa}hwbM8q_e>O8a6{;e`jq|&e`AOY_-ukFM8BSYsRQb<8Ev z+enp&b4Qyu4Mbf+Hn!ElEK7hm@!kl+&bPp9>W_As{rW>Tws{+BPu$qn00L^2dkZUW z|EA-XHBVSSB-`>rpsXX3J#dS)TdtL`d*EEq?tybbvj@(_+&yq@Od9vVNlvrVk<;n1 z9KST29ryXdV#N4l2G#{l742fCiVk58C+ZLZ1CuR&%^<)De~aIBI=WEyT+n9E1x@x` z%*|d0<74)`94D%Oo$&MYm@n&utaUwCgHn;|4w8%6dNc$E9i)r2f2l`x2g$_@pIprF zDTMiak`7W~Bcxk*keXn&9i(?=t3=p3z}NlU~WsX(8;W6DO}8L zDNfdILoG!Jv@J!Ob{c9aT+pP+#e$YXc6V2A3~`NBeh26w9iZ@3f5>w&qctvOv?hf4 zS|gXf)*}MbPidwZ{S>L=I#a#|$h>Zy8X#aH?So@j7&g@4P8wW|;6|96w7(#w0U()2WLY{ctg(A0f=w4^Peqd0huO#E(ce%D$&Ds)pGp z`??2lxc=c%l}KN5s38*LzL+31n+nII`Qb0aQj%SH$c%0@3Y05h&|L6dhE zGkFhTPTA;W5>45tp6Qg0Y8@S0a{GbD1&tmW%q<(W+B2IQQ#M@8EgPe?TeRvyFDeAu zvavur4V4WSG-+}%r)CEO0e zO1OGcN5Z{(bt7RHv=R=1B4PRZ(8$mrS=mq50s<11uMh1ovvhCnO9WmcbTUm@??q!^;j@f^{Hl8EgV!B{(eGO&N4S zE5Q&L)UxB;08B0Gf~J;rF;mNiFh{~|Oroh}J3#~z*3pF}?0|-wbs7svSYsgxJ6K4< z8V^g@1+9dS)o4hxX1w78h*w78h*w1hCH)6$FxOsA!TW^`KQY@Vihh#BX}$R4XU5dJ=@4LC^M5>~U- zkO~g83m_1QmsuU7tK)Kh3fZNDivf~{20GshLl};0TD1$e&Mkye5;F`d3Ue+p)Jg)bm?3Z|ejCecp8 zY~X@+3TC!OS$@qFjKL`0U<&3u?UGD0Q!oZ&P2o(zRBw%p9HXaT>OruR!6}#~nthRZ zktkLiGcbAf!LKSFKFwLEe6m0%0;=2sPS3?V@*q{Yl>bS*$EwH_{71LI&-DZrDCPC- z?CbMm1ISDj-^XkY9gVz97O;)0^es7=Gx8dLF2}`!1#Ab}L|fWvU#T{fc{^{LKwAnli?$@sgWm>_Bm1Zd@zhLWQ|+nE z@zfdiRJ|?S%~TbEfVM-_IMZSyB)CxRr{-RWT@}~gGviH8fyFOi$2%5V?x1aj$FHhh za<}K68eGB*ysk1ya-p7){8bIikPQt({Xn^hedHUMJY&9}*5H{0zg8o>2xIEw)%tGz z6W|vj0Waenc~~UJ3BaASEmkmkBikaIt;oJ`Hya7OtEO>Q+t$3%C=R1MRUHpA849_#)C;xdrfFA>*~TEB`AUteTN) zR3K2Sea0lc+9xXL(%Zhwt9>#b=Vr<}nqL?k=U&Pdn9*p+UP|w$5WCq+Ss)>Ep!s7^ zILyN|!EbJbbBZA`nInA9xWYd{&Jl87rg@0zIYNJzJ>sZ+rpDi84>R>ucG=S``kLa7 zar2Pzwa*L|ubuSz3JwB9aj2djc&(?|_uA|vn?(xFu@hxzId0A~A^J6S|C!3G*b)&n z!E@~weS~4HG=EtU>}I_Mo>XzzFEm@DD&t1LAZvT7M3Uij&~FmkZVyH3vOfcnQX}Jg zgQx?6T;>+RY##O{vU63x-0`L0WR=U8@-+MU*p=}V3_s@iAY9gCh`2H{#M!e)aNxdW zXk#kx#yx_fJD)k_fTxS9;wQ6I_!=t-t6KHyayLWm3^gHih%(z96x-aR9GdG#FmniY z2rNBBnek*x4pAnS=@H?leLO5u^1Li5-5&Bd2XF1}Ds<|zBzT{a1al*I?I9%zCRmza z!AcV>U}=J>(xnL|W)qya4N`5S4xFskj9&wyg*t$KMGMUBH2W2sE#8~JyDBb&2rM*Q zptk@;Z=0R=KEYdiBdWS(xJbPZi~o5zZE83SKPNGdHgj=~3ieCX4!{+sd&6)w3HXVg zjtkcx##?(2Y_8rS?Y)jyh+XF4Dt5fJyTRFrEz{nPc!hX_hOO|XU~?r5Z)iex9mTeX zCUGxW?fXG3w1bG}eZ9-3_PWq6oAJm`?RDX6|A>9lE*1CQz#qYXpm>u+7_+YOcS_YZ zt1dSZ0t@GjGqzpwMsOup8m?*p2q`kCBI!jI;SOKB*Ng42Dqe}w!Hc^`#}cY9>5=b-xAMbD;%jf7V-MF>H|No1EGrX zt2M_qlyRxC{tCMgA{Id zlhTd4tG%n#y}X%3F8(}C!)z1nB~lk^kg?c{KQGlF8*F>ej|-ZHGK86iG6b52G6d?D z-NkG}Db4pyC85c=||x46_FLvRO11^dNc1 zy(;p$if_MTl^@v2)lf$z#D6%D$AF=p6+y#)?M`~xKhX6Q!s;e60T-?ct6NDJR+|{9 zL_Vu|9YqJ7kk!0~BD*69vYOXV)PZoWooJ*TSOl}T?QvzxcdDDC*r$=tHdlIO2wu)3K(cwAc=4+6|1@FOA&a&oHIgV5cF;ocD)1IMp|E)ccsmJl zRj&Tt({eTW3^)!_gw3nI8%R*tyyCl=4p)A)w_lgigAsNoiIoeR$*TSZoKV4WO1)NuO|Hla%Sqy|tV&%f#1}tfz6AGJm zRkxEMSEqpR_O@I-5@Z3S2%A@JH;|yPdBt`!9e$gz>A?z{#L9)uWL572Clof5RZqes zs|kb__T{i^r5%OMtFk*tP}sa8JKOjjh5ZXD*}OpVpAuv{@&?IcXHykFU5Er4ACq?D_lf@mPYa>d)go9Xbow3vQ} zly~Uiyw_8gLAVdJ<&y0U(+{=z$*Z#BHS=HQ*`` z9VDm$yaP9Tz&Dqx=z({oy(M_j1yzyq%`vC>Hi~Uuyz=}SzpA(g=F_(Leazc>NuI(m z&(1JxePz{ux@^AvUSmfVnmAgfgOeq@5qM0JM|=&Ib0oVwEyD0}r3=uk(X{6H8gp|=1~#q+E{c%`6kNJg>Q#j@kkcE*`Ip!hw z4Ws<7*}`Z)$InmZk#5*ZM<=;1*}^C#w<_7<)Q@>22bdMeaSF&h0%8=C;Z%@$BwI3? z@lxZR)OKmzZ-x(CGJKt>PvV>%YWUw%KhDmWN6HVo%bcY#kAPG^nMBekL9KqAOfrw{ zg>h2JJhm<17WQKVJr228L#XQ31SNO#=$2k}CNR7a*2Rs)?1)aenXGuS>S5eyfr#&e@npazORt+>Lnzr226V$2^iPt$s5d_3Kjm zT@D|r_*S5Phd}*0{`b`HGlzLxmMo3$JEb7i@1+t@Px-~3#k5Xu-2)y1!aSn4RJ&XW z_^+(>x@3oHw<_5ghs4$~J5;xgOH$4$!_1@-(4RW=QV%)(KhvS#%2B~C9r`WNl~BcP zueS{_*EKXE?$WuDK9tK=(RjDtmP22>fAs#JjF&K{80siV|E+Ysib<7^-8rr+Fi$lM zqJmssV4i9iIMkV3r3d(u|?MM`wD#&#Q<{|j6R6#d8LlGBer*m$0 z1T4)CL7g2gD`__>$Ymwwk?c?fxxBq{jeGi&!_kq~EAQ1uQ(pXy9x8hMTPeA^CB6tm_H7&zkG1vj zNih{2))JG;U*dm*&8wgLck~J|^$Y)w-uP=h{PmmUEn5;*oQ&lVya^^=6)Pvo$G2&L z4YLp*7mIGaA?~m=@k}}h>u>3WDHwW1+Kc0O@^}#`IQ^EiHyf`IH{9XhMI$NL?rF!* zg6ACK=$9Pg?YA6apB;1pkRJ$f0$6o6S+x(MJQ%-Llf^uIj-$ma;^Q5F|3*Wr!-33~i24HSb1=2RImfPm}v zD|&d5-4@5RHhlsm8`_GS1mY1DI~ImlN!+cXi(X547yJ(9gJE&?4a!U22;x2!{l#i& zuWWqUOXZ=YUgRt&Lgb|-2sEBYI?j3`ZnZz^)*a@=ol3~rHr z6>r5C(C-~^arDJ_E1pTI=)o&e-mQ2mZc8b@tlaQf%Igii#a2)i?e&MWwfuG-gK68-04L$*qCr@mIymDK6W4c$ zOJ@ZHv~b!PX>TE31{UqHIPGnOmr09Vd0pCj8!tE$J>#~t_cUJN!&SGZy|?g^57Em9 zWV{dXO3JPrg6nJWN?>KfGTx?mh4|a>j5o1X6PZyNZ*#n2^Vr%MuW|wiX6;}Ytj%hZ zGv2;<#n~y-Gu|_J#o4+WInK`8G~>O5m(C#P&K&gSYy89xdm-gLiMR4O75mdwX>Y*Q zX`10?hjVpJWorL+9yo!BXp7Hj``Q{V)WxT%qVdgi? z2sVCczgsU$c`xAYx2B3sUY_z+hhF!qR9ltaUYhqh z5ckpIrTNSyX>T$v?56nw+F?;ZgL4C_dFFXHVx7rebb?H!4maA8I$o8EwOw)C>37u)$& zq!vZA?*iblOA-J2*TNOTydD2@pjrqMK8{>ROCxqQD#`W!mhy(bs$z%ZU(Dd)zT2d| zf8ZVdf{OiqTii0V9n5fZA^yb-H#g0PIDY24c@O`G?clq49RFg5n^S(5_6FYInlP}-eMb`pC2~EvVOc*?pPLN_2CRfZHXP*pIZkH+ zh4;`EKI_uur&YNzzchZa`2a?{0l~mbq1k|7Fm?g$1_T546^Aor1BAgU1RF^*)`t3P z&dzCX!W_Q}jU2KI`WwgKXCjKpgnCMU&WCC59=sCok zBAcw^n-4=xQ8q)&USwmaW^4-pwQW@fxg@B&Br8yh@c%qkV#?!>hB5#E`@;o<6&(%!URgP5$#76XpXXvQ{lq-W;psQI6&$#|!u@)V-a z_>A`yULl@D)!4j&CZ^5?U+~ff-Bu%}BnXVD@5FYzp0IqUi}KBUr~IE)zFCL_-b2c_ z9nuzI-@P)-GlePFsHG*R;0ak zKS5DPLvrh9X>ZNXeRC5=gJ0k!UW<||rT0`7yRjnUt<{ITP_d)&FXqK6wpmridmJzE zSpzfP{dig1Y+jx5-oh)j%|Syo@jDeg8-20yBecb9FdRG*#AFq_d398J1(*@i)%YL1 z2FwWQHT)mCruHyyt&DdsUV8Y|l#KT=UV7MLDr!%>^l(XC##?Wi_V5l2M{Ot`P<>vC z@tR+K?u6?8BfPVoMs2w5(V93>MPp~;xB$GfZimI1XK7-46&nPOorrfgBdkvB6JaxPu;RIhvQv_CkjR zFYyn-w`CWkyz*VqYq})u{RuDKv|ox|D=uZDn?GNUt5q@bCI0KL(_Z5~aKEXFJqGjL zFz1d^u`mCD9u(LHH#!4fA@<|ZtIhSpKnbxQgei>j<5cYAXD~;w6d@d^qAxw4^7cY6 z8@^QZK6F@z4#gP-{lLf>xY6xdyt!d2`uD%5ylPsEhpX#x_{04q=%o&QS>r!eTbA}N z#9RK9iv14%I+9p1j`0UxMtE!r{WI-5c581;hv-zDki}4_+;_C?2Dp_@CnWmIsSYu% zF6}*jI9xG_AAp62>dQ_(99NPCmed6rZibZ9zA?`ClR7`-6zocWXIPxw{E|Hs~! zz(-YG|GzhH-ehJn6Ox&PC2V1log@%tjev@RktMR2NKptOk<^gHEbN3BMQiI4*SbQi zdyAH~YFn%ttqZPAtD@EotJYSnrdX@BF8}X2_rCY;n@NCxg1_efK0I>ox!XDCo^$TG z%e(W=Wnpdh{6${eh0#s zMp54k`!b|$#G*w6PW6tjLfRW37kM<#-`-Eq%v&IIEO>u_H*JQrSMZW>2E)(+5@x`g z5w?UjS`*Sv#!K)K=!LWJBEMxM?tv6u2q}y{jA{NPOei+vjn?btgufP^z@tetb z8He>y>qqcLe}QHbVPak*>ZsW#e+4LP45!>PE35@(quL*0UOgOvvnjI6uX|2UhLid0 zIbm(|TtHqya?3m=GGw6=X(>=5I~OUDqSKs+W;}qZy!oh(cyTYL$ad2~)NM6w^jV;! zR3T!g+43_;QhiCPohI3LgpLC;cr^dk1c5@-&oq0+FL3R#f6StadH?QnY;){&JYw9tzud2VQFXVh!@4 zhq&z%@t4EY_AW$D_8) zhqUiwTY>QVVJ>im{v)j>+boxjyNW%cK1aI=V-pNw&MZzWkAE$()HP2&Uruhv1qd@L( zT>xH$nVJLk=Z?ZR=MPW8>y z+-Z@>wiuYdzt;?38w>ovgSlXI<@vgHoh(m#BDu%(<1e_T-3d3LAFlmh27I>5475s- z(jV9UC!P=J^Abwu8FFWIkFE!-*J*+lT364_@1FPwc1kT66Vemg1n=T9oGR3xyU0xa zGs4XXiUdYNyGtTbfvT6vsvRUwz=_>j38k;eQJ?0SwGt}}pMtf__Zr>& z>qZ&A1lP)Km)U7GL@(%ZNm!%&xu-|pzd+aSmWczYu8L92aSKNEM;{CI7uaV5vD}(; z#(pWngnhIb*#AXVF^H%Y&$8W~CmDCd2?w{9z!H3Iwf(GM@Mn zyjHre&U(mWKJMZ`WR?OW!J$jd5>=)VUVOP(bPe#bo}VH>#mDZjAewd~f`n(}vrC{|bo(W6mEyA7%VP^fUEQKEk4pP^-D{2jY^a8K*%FeiYJ9xiF;7 zsL(yMm294Vu`oF^$mCc!e1ge0u32mnJB%|f_RqWmN{LEmToUmA1D&~@!b?p5n+Ufd zJhM-_zv<5qwqGLrp&1#Xu#%R6`@HGxoA|Q~+JhAjeTp}_7u1%EEu~@~xr>qR#}y;f z#>Md0p9Q68LP;PMSO5ffBb*xc2mHPUVDc*@)CBzh0fr3-&pb8|$t5k44?a@TW=_Bz zm1BWwD>9_MkmJ}v`7uvh~^uvh~^JBhIdgcU&;kN{no(*|;gS&2s~rjUoX zD`_Z#)m5c9AAp(Dq!efTTH$j(A`l~HUIW61NP6k!vRLUQ*tgq5Xu!EVjm8q(ab+2= zD-iWuj=@Cu1TAtBmxg)A>6oX{TrF(}dk$2KJSNgsh4KDTq#S3SCnqh)WOl0*^Cc?$ zxtxO#yyQkP?V#{LEP>Dzgu=dG*!jCRuM>XLlW0UQckcLxmb65 z4^^4RPfpa{{GC@z$FwZ;Q(Zd+Z~DW!F&h)YKaNV&(vxu5W7_RLtsZas^;oi4H!M+W z!JGa9B8iw2&cK_Vuj}M)@7iJ8M#f*S)UL^rz zy-I>vUS(hD}A3)>5(a@UO zcF?H%_RugljKoFha>}D)J6%qB%ois(@P*i3x8T!fIPixNmT-A=i)@Q=2IT!BEc;|k z$0D2WXApj@>Sf@PcC+@wM6K60Of;urfi@#SI~JZ~Mj;aZ)-OR6`BFDF_fHTd`Xb@+ zV?)|i$cYkWLuR7LbgORm&cZ4jRr@Dw$5r81`=%g_JlA6?z_mW4YrVI-mT8{53MY?# z9M&@CX`YAB7iXI0Wd6sMVQumNBW}lF@<8LDb_}Te;oULt+*q0yk-&mxyNx8jrjikF^D~JgVkf0_aeBr{#6x~ z1*DS|IGQ$ukqbv;Pu$Q>Puy^jJ%RGyk)C*piLJDVUF?k?Jr;WpPV7+r@Di(ezJEIg zjQXoXxI7)lMSqJU`i~>>8s=t`e}}n4Ek+j_VQ@@SH=ahIFJ*fdqm1V|gp!k&iFwf; z%n5Ov7eg%eszZ6AJ0PM%)|wwnMv^VX3R0D*h)W^0m9Q!|M2Ca z;7x?!E8a8)J}-e+6Yy1U8k169B62b*fA&V16cuQb;sOd%sNb~vf&E+FZ0@&gM6lPw z{kD|CqTh(*CXr8&+)5FPtTomJnrZ!am@Xu^)X}=FB;WutT zFRS(q?vD>?BXs%}%v@DxpMZOF_SMN;iB*A0@*Du|6>Nn0q4CFF!Im)I(y~{uEg-oJ z&I+~#Wn*ToU|YamlvVy5NDRqSLPl-e0G&&2%}vm#9RJ3RcC_;wH&*wJM7^-$S1d2Jh`X>I;x6nwarvNUI?6F|4TqXI`9 z&`yk)fu|5|K$r>y9zdjpBL6bYz%LNdjzOdvk+a*dWl9msR*G+S8W71jP4Ahy2$2?w z>@lTv^K;2#(bk8e;8KL`g3XB71$R?~3v!{1<51`$QK$i7yHE=vb|G!LRR|6GUjmxb z07=R)1K$I|%?MLD|6D}c5TO%UgweF)9gM0FwkvN&#IC%RA`V6xZt1Wvnuf4ls0tA( zU$Y9SH0~@uepsjH6nSQm(;}? zaUd$J9*80!@XVr2fnU9gg&MR>hj9Y+Ah89JoMJr?=>Hb*qew`fl(^+hr&5|F<=jL* zq!ws|WP9H@#6$GIu%xdH*Ah-uzVMR9=Y(9^sdE!#9F zpQO+{jUs!YnFwLztB{dSB^`R?o6)k3e5;DQHfvwV`!9mrWg}ZsdDP#4a23KhHW+9_ zk8P(g$zZIwu?!xxxUsbDMjJNr$+K0?QzVx2bbfgN+5<;^Q&KYap2`KG*gv`739D^Vs z9w9StJp?2IB4qBZXA}YVNr+KDM!H3t;rGlt(s7IINeaH;g{L#Wn{;*I>Fjt2+aLLI zpu7dVI`9B+X{Hn!w10ufZbay8_1%iGnPpj^+hTxZ zffg$oLK)ct^+1ExLqN*{Wz1JBP(C7-1!_RJ^A>13mFn~+z-}%jEKu?S)X-@QG>uCM z3sgm6X@Qz4+-VEc%B4E8KsPJ=9RaSg1v0ie{JjW_CJXebVu1)o7U)#P*bppzTZ{!7 z4B+svXD=4$IK={8!cCr*@H2G(RUa6=)0a>B{pg3%tGghGqC>5Gr zv~0A&7Kn6qDI)vSRYt9eP@}8~ zHiRm2v_%=mHv+~X$2nt>BcNpnRhu`Rqj8f1PXsT7#Y;J^9g8;= z%dmREy^6)#_86?pDbmX9f-T9X$i=XDPa@KQ2rORe9$38X6#mfU@NNo!M6<5I7>HGJ zfvn)SsBIb|Y^FX!1yz(nX6i49G$TT0>KVl%k)p7p)Di_X{+=VHIof+Gm?|IIVIecsEe1wrO7)2-U;6EVKu11NG+!}Dg-P>lBke6`s6AoX#Libj%Y&wZyBir{29t0BHdP8J#ccM0NeHz$sU}v(|BSyQ#YM zqB=nyzK^h~yGhxi=jzrY$Rmx z6^8Fy>@7@Mv(XD4wQ6Wc{Dq^18lBXbeRe?WUUjJ;O>FHJ2ZiT4dlYZ&o+A^}Dfg%$ zymO$!4C}5s3rKZ2ch&tz7N@OU6z8p7|7D`RNt9FGRTq>n+U&PC5-ebVGJcktNFT3s zlNovI@9TiZ_tK?FAQ7JZnYgQNq=fMy-_M33#o>$CNO;JibWPkQ_UtvmPVABRX^*4| zdn72v%eBo2Ta;15^o+-AQ^pYdM{bTqnFVuEW&u^oESN$Ww#6Kh8F%ThHV(1>;3R+SN$FJ15#R!XB9+@f6oUw@~<3QXoGLa6%&B+NRo&x>aAYr5gb7u64-utTv}|NR$rK zS+H&do0!CB=~Nh>rAxdFpKshIOA|53iK|agqp!zAn9hZJYuQBtRt2hW86xJE$Yh{YY!M#muL+>*lM;A9EQAlQ#nx$F|P z?ABhKZ-s=>7wU7Gdpe`YJuqf^!FmhJJ6)e()7iT@cLn@Ku#3r$f(!Tb_tVO2KEl&4 z>?RgoDJKf(N>1x?KP?GXP} z2)7}eF)a}Np)&87j_euFcT4=swT@>*<7&q3$u1aqQW@skc>zB zba)+z@K;cfAJ*#M_Hqdh5isYzzEO1VDl8p94c$LDTpI%$ zejM)P@y`OG89TwemVW-J2btOGS1Yyg;nm+aFKDm9*PtyIf+GJ1rR>&^YS~2IY-2K zeshlK)d|lp?)V~#AKv4Om@>D@PZX2bIeQuQ>C>BnTKatdGMeasbLk5+0@P)@5k4jf z`$^;`WotCJ;lLN(^e4Kp=cU4UXvgv36V>>mtV0I1pTq=dXIlf4iBFTr9WL&RRah)-Ef1UbVD_`;`t|( zKzyJ-9lynK8{R%!bmRGGNSlT$-uhJebmQNfL)xPA5P8F^+Z!1)P3b0B3VT9fZ5dt)pN+qCXC;NF zCW#wjDg0o!u+~4B^B7}NF!8}lY%p%e0T{YEmLs2~;S6|p8F?82j-YL0at|2+6~>K- zm_22-?5wbM1zxV;BV5%zANS-^MDu)xE-}*Z^AU6K_IU@NG?yZ9D@A6}cTVV=pX2Rw z6s|?+JvyWgO2Ll9WA2(?i=AL7!`Xoe|LhTa^~mK`lg(;mbZTX>nY#}Lq4WaNa0 zLfYAQIc4X=_>TDZGIB8jPgs%pk6=*`W4ar2eP^$V5AxI!f|<$FrxMcj62RiO3K{!8{s(@OB_1p_xg;PCc&-pdzw4wk88 z2m8F>B@O&NZYlM=wpgm6aru*`_B!6-v%#uztOwqQclg=p>jc~+@jbl5uS3eUxPxvF z-r=X?2U8x$dRI@%b}X`$BMV(RF}xMoR^khP`pSR!xrl6@AZ{KQ?nAa=J$+gY-r=Jl zbH+PppKF)^g&%;b7E^T#d=SS=#salx$AmQUNB9|x|Mh}xur57b1H2!;u^;nC;l!85I(xITNLXy z6L-iKAB`Km$2{7Z6Oz1cGcB5+p%|~*R3Usw*KO=$*%QGUz2MR}aqXgdESqfSn3sEW z#>gIQd8c=tWSq8I-1fOY2*@PVe7YMq0>%vhG({5wK-|~eT*2W#KHcL@j1IKOI_70) z%J{LklN#@s<7n;p)A3kW8-l34u0{i_Ua-6_to;h_*o`r2aXKeIh9s(S?71!{bvhEq zZjKY_g!^Rf)HsnIo7(B6$YzK!im^zy9%_-6R?e2}HOvm$U2tuY&<+6YD%d86<_&s5 z;@dDeFM`{&o|tpF^WD+woSd~v@G0lbxH(hKTj8j>xp@*b@Rx|IQIbSHSY(ukq&e)&p;@#RPnD$45Ry#CpDmKNTOtEPctIz{3JS^hzJzd(7SXRZG^MK=dkrwF%#_F(0$mgfq&8=^ z9--4E*0Ye>oTEpgbjrkf7#MR(l)9ZyiSn-fb`Vd+#KB66ba=wXbzGCToaTasq3y%O z0?$uSuU$9BQHY0& zjoP0F@tjnmN7jRx)k&QdyTs`yT|LbUpft76wm4A0lYeg7JR%nwl5)+Ujk z^4N;_Yp&vJfLy#LvzGH$J;ep2kviwy7$7Zx<@_xM$i?4p5BQ-zEWXYUz%gI13HZ%H zlCrlH3I%$PfI?3Cw;mu=ml9h(1@9klsAWrhXi?UDBhHdtxlDJA(pSvV3TeD^R>c|b zoK>CiN8(l!Q2g+&CfLIBbEdQor{?4Qi=55wug3N<3H<-%E5J+n5U)DPKS!bOLSemN zG4;u%MOKYiXrVek>Wtj6AFQR~P}N7m56(vTkov*4hd&=`t`|IMY1Ah!X(6MQ^NCy9 z2o~pY5>R-YuJY7MYflBt645XqT*5a$hxrjgT^_y%0#@P!3N_){`F;-65gZfDKeG!lvv{=`B+=w5O;e^e)u^vm9JWW7?<_W+b zv%T2Ks0%Y9_+fN;QqH|F$YOzr)_(fn^lj+a{Yx*8-=@dPes`CCBlE!jbd>fZPZ_mF*jC-!vsi|5^u1ZrkH&!LkK^&Gm#S6HED&Rj$6=ie@% z3q{S(@ZZ=`A#HS-;@Btgm`QisyDqRNKOpu_YU&WW)Sege#JQdeP#r#(!QIYEmD8B1 zbj3GcoIY)pbLDgu!Uu8XG%cORU6@WlabY@N0^Tf}qf5YB5f)cW+de`DBe(i2F&7%W zI`MR6mQF+e=rsYYM~_VWwi$j=VRVD;p}%G`08HrF%6<69a9wSvizeZt*ZJvJ7PQqM zcYQ$o$O46}A6Y>7fPQ2_)=@`4vVgFl#~IoM64Wv`*`_p^vF5;<%ttvwo0@DuIEIBw znC#`%Ldr(}$bTLLZ9A2@D2I=*>_#~4z5w4pmW<^MoB`qc$54(RI=E)tKPEwZn9VvI zqr&XNF|OZ`C6hP$qJXokCTzm*Eu1bl?~}i7FuJ?m z7_ZN<3~elh5WjPQPs<#Gwesv0_$h3>9Jv;O-^+;SE9CVgW~0Cxbs=rnGrD%d^)P?{ z_Nte*E4fPAE>a)8AfraGC~Kj(=}1k@I>pnQ?TQMt&qJy}J`d?EtO`okSydN#;+DO$ zmSGP*xygmfE-QbPKt)Z>I!mIW0&P@OV7sW~$QAgk4eg+^5vUMz`biGO81amCf(F7iOZ4Kb!N3QZo-V>hj+qk8>yF=2Ul8@ z-WgBnod-whorjrHNWQk5?i!Cn%BR z8A?Q(sYI?-BNZnqDbw?m$SX=j>$Up}8d5ZEGxtL81{`L^J1)-@TXf0~evLcHls_tD z48SSzCcNWTVu$Q81djT#j9l0f(*BE=Q^MGr+<=!OM?8+*QM?@SV8ih&yc7XvejLKD zhtKvWXg!z8MM<)ndO=hH5+dPhBs_z6LSxScSHcSbF8HgVP1uUx z!c5Sv#XI3-xgFd^_8HqK5? z_*0L=OR47hIm9-lN%pmuMW7VodJWzQep*)-54j0?K{KE%^{GyZP^Q0-i2vKGO_=1Q zh}xp{_=WVfP@4SMl<7$M(Op4pLMhnnx#?}JnN`VM`?=iQYGfeooj6n+ZIX#&kT`K{ zH!ZzI0%|$;&B*-*-igyV_s7ZsfQiTB2Lh)_W0b?W_aJ8)COs2pCr*aQPnU@_g`0S4 zlGe9D0#4!FgErxK%KZUt;+dY`fMM=9y5q=lvG zDdbOpHJo@6qx*ZAIF%4+PGQ&`BSis*UE3q3S=tEG3#LCTn_c2sV!wMMyEpGU+f7}pywmHcyl|!eUiNyS89B2* zb*p%2&t%f6=D_f&vB2lebS;qc15I0s^>t)PNqo1$DkZ)To4O-4@m~szYMuJK-u^k* ze`!LYsSlr$ex!DtGSr{13yov*NsVTXck z+?5@$tw2HYJHa-^aIOGX^@62}3e_vxLX2h=iZh(7Ld8T_T01I4JMgh8#6koW`W{qh z8VXq|R7K%$LWL?7HgmtnsL&yk1=h3na*;Z+JgN$PC)lQ_ zP#UyEFL+Q+gG7K#Ig;e&|y&_nl;2)9*b?N z3VkQorl?SNR-sLb3capq3kd_O(9^L%R-sqG{oS2ap+=}sMh{1Y@+o}4jvR}tmg*dvoM2feN)KD%AE( zsZbAKV?8Idqe2Wj6e`4?MvN?2=JasRh1yr4K?>Urs|xWHvIDlMDs-qvp?2A(sL(JT zg{D60ICA|m$U=$7o(qLyfviGV;C@EWPO8xLP@#MjvK+Yv3Lo$&lmtZOiri#H7G@C` zqtGRaIc33TeF@70RaY0jrSW z$epRk!im%!F)GBcL!mL{eL%^HQ;W82|Wp?2A(j6&jQWYJ@eBUi6z3mE|( zh00@rq(ayiH=f3A7kGK|{zL?fdH9bv@Bd_C^ZxJk37WA7|JfkpSAWD|QoLN`a|8_U zpOhlT#uxBIt9Uv65d@59@t;$E_=_QJ30_Y3eSMj!O?xl_e4=jyJjY#XXl9=aLfT36(iv;d zznXlSXYeHCAB>wo)@;|cxliC={=X2}`b$J~9RK^l){qu#^JsG?A~LiY+`&7y!XwX4 zge=Xb!zFsbWdl4~x1{m6^r)%+9pVf!ApH&P0 z7FX$5Pj9LgZE3!%K|uqNv)pjLi9Qy|dcjfG;ZyGG3~lb2Mu4zwd)lYXEypj5t5{n# z#iQ~qVy)S{%wXF!U(#Qq4++cCODe+?ADp zoV6WZqAkrg3IcE&Nkgr|%jt~aR`Bwyrl2-=y%8X6GoAr2Hy9}a!g?u14mGw855<}I z$Y75acn#Pz5jLB_yU{NIb@{LyPVuCNGh%?D_uG}jsbF)vBC7>S4qId!ny&>si;&Ws ztMIHCt?C7V>%$`HA|M0o+NjXQMu4%*c=p@JGGDf#nCWGV*}1^%KX~U}Auwy8j8~#J ziGMBaVMbdcb7T2Ozysr-_6I>d%A*c`HsgO>q;iBu3%{pm!cu_eZZQJ!>JOmiI};}A z47_u1P}nc3^4<{E*5aLevk{+2yjXsqSuYM%PN z0_>)40imxO!N(w+%|u&YZ;$YEip6A90Sx>UAB?n8jv?OT{QMK?t>TN3A-LN$8)1Ag zB7PyA!u$*AT6|5zy}evS&j3DiM|e|QK-&GCJJ3r@dYb1kTy^C65zsW>xiO@DfWwse z_;uoDc}M5POvy<|{sG?nq5k8CLX&|({>VV|wjb!)b21~*k)JRiT6mrtMpwkq*=aRj z%4x%KQ#0Mh+DbJA`-qEO|0wP`<(u8Kv&4Z(T6E11_KrTVQP;kfFgh%l-?LYgZl<$f zG#3~$BoL+BKK<3AETLrGQ0Ic3HVr3^{((*i$(&?`P&&Lj2G(b`Hvmkj@oZq1pFWJQ z!&{25)!5K>8gs$y#s(=lt;STCXbfL05r?U@(SpOZl5Ca3D$L@r3+8Z`YO*-|Cxye! z?Qr;K5=Byei^CQSjIfE`u8?AJ*afqRzFX#0Ijq7|4g))z!w6d(eyW|uTrj(_$CaEG zhgF#5Fob^bEXaEq{<{P3qKUeP{+g%G5x=y!=mg!o2iKd?$8C$|>E^O|4!jb#omudm z3mo_hxcJP1FDr21mAC`Vf`5OJ17H0;2X36^z>`n6;hGr*5)1JzI#M^ICx^9D@h-~N zJ!j&teJu3|HihG(N!mudi*EKGHNvA!!w(NEx+M^;{2@~1Ga7#vozN|^ECv>R#UF^A ztpI8Ki2m5$BXR<2vL5O|P54L zgqOq0Sr5VZrpm+@6$Civ>_Bu$o0U)F6Pkuy zP>)I9B$=y}lFz^vCRfRl!fc&nmCV)y*P`S!DmeyUNcBV4HOZ`2*QLb3xa)35*WDpA z+Ff@s=(T_@%~64t;Zk9a;o2taw2G6ckl}h>!d1hi!W_f(hMH3vu6HDiP9#`{ON9x; zbrl&d;smvW~-UIWwnpNetAt9$yq>~&n|cev}WvO3^0 zJ-p|!QfUL8Kw1v$1Jx767Y7I3^F0LYU%v(F);4=htcyd%Z#?pKLB=FKuc-aSy6$O z&Z{s-=UhoOx1Z6CUkx~dOmrn==mo>$~1)S zo*%7NYxjH=WtTeNjIh=7o-e?3!@mR+ej;7UxX=}wq==f!*wcnc@DBAJ#I z=53GrT6Nwp0tfoF>P*y);;ye%Cjb_EJsEwd6!-H=B*Nds&nqRP9)6y}|9Ziwt&-Ay z@t4ia%fJuICRED&_`~}W){kUaVA4;%i6KHi9c4XCE6N{UVr^gbRp6x;Y=O{nw}#`p zHJsK7QsX{Co)=DYQ923j#da%obzHa7-2R*BR-4j6@E!Dm|5}tzil=naz=NW6(!j$@ zDH!JQ--11zyFc{Ae8NidsTZ6lMSA|tx@*CaQs>_S*VyKjkc!iL2&tIgFOFC9`yJG$ z=_r19d6nEMM=#p9)eC-SQF^^l_Sa-8bLM(IgXKa6+SjgFKwH`QW~o+;eDhI`Z_p-SJ2-2HoszF&|L_et@Bj3J%5tDMmJ;wkxAyKQ7eD?{XsUIjtJ zb%PtF0@kT7%&DE>N8lds-%#SJs7R)6D7EqM}3#Lec zy;~wEyX0t3{1u{wgE~!9axQ2ZBxst3@FAti?yV<5uwL+y)msx?LYj%h!ijF-Az0k? z1gx~9@tM9BRWB7RljRTpHHtR9{dw@36_C<7BVIaZbfzcchUvl?hxt~N7{hRjMd>p4 zg^^?!3YW!P7)ijmz9pc%E-|KVulz~S!kTvKuIXgmXvH&iDYmP~;Mml{_r!v?r=fx zi(Q6Z;Y=UZOW32X(!ZB?8G1$k?&&i03jNJb?<(^AGxjHb-eu?&@*M8nRr*)Rb9tAc zS2$cxbs2hv{*LI=RpeRd?+>~Ry+VKA?K1QV{XL;?SCMDYzqfQ5dPV---zgbgMV^KJ-q2;}75e){m!Vhm z@An3D6?qo@yQ9m{EBd$Bz^>B2Vmw-7(K|eTKV|qq?x&#qcW6IFj7Kka8G400j~gWA z`G3BDg}u76%g~#Jj|TOEe_8bY&+mr{do_P>SFz8+Uj3@e&@1d!N4~S z{cY_s^a}mW9@16hS?KR2U4~xKzaMrPdb|f{;12)E5_gVyBNKBBf5$_i~haif1O?&cwa#W-rvLV_T&cn z<&{{=@{bgKefs6%tAZLdY3+Q}}5}~hAzK|8r*C<>8Ezc%hMY%L> zA>Qoudhf`%YG5LP^8uuf$|CR7X~N+4Z&n7v8-x~lylg_u69h#?s{`Eik~0&S8lU<}C?*hR7hbdhWUT_jsT7s(dT zO|k`bk!%6mC0X?H<6VK|2HEwZmxqpW3wEe`+Z{h5mu0erYi7Q|P6^gSwjn#Sib@6k;5D z0)M>P^BD5|_*P5P`e+}6G2;4>0N{6uK4v89&8;?@|oE z)$MIVAZtvLru%f=LjhAQuNQDySofWT+A=Om(DWodC4qj%ARiIWkbwU_g!QY1+eZF| zClbd0^ms0y|CZyj0nfD`7-D7=n209m&S(P{t#huG_~X@zu_&z))B2hqCPUUthr|Uj zla}L)>dR1zaV!4&46i3mH|C8^(td{5d$Vqwl#`_0gx6bvE9XrD2Jzoayi6noOtoIU zfYU%^FHg#KcaenAtzMpS8UFdmS0`aKBl1ic z!1->Juxz z17Y~RX!Boqnc);L)p~K-fzl+ywTq=x5yP_)F{cZL>(>aWV!9>6vm}h}`LY;(yo8b5 zSqxt|sbO`K)G&Y*j`feDtZq(J zpOjcaB8)|xbubn7a)oiU5G5A1Y-1dQ!3E+BhGlLX{MFuS-(091i0e;cTsOB-vCReb zCJcqcW1@5K#)7KbU$!y9UQ2W=UP2Z2#WvV4uq{@M{IQ@zh>L|hF-R3d*@;%Kag>!( z?UO`>UhdaW3{OyL*w$pukrYcS*?mO^lkFbmCR4053r}gm?7np1@dJQmNHGMsSx)>- zvubu(#_m>D7Zd}5s{$S}dfM`ZD6y}XjXG1BZZ#lLT0P{1|&0f3z ztXkp+aprhCgSfjhIajZk&ay{u>*lXj#b0&g+Sr<3-^ zvS(7>Y_HCe)poo(tFM`Z{#bPlI3i5KbJ)>|?egING5j`MU|;Fv((;u2F z;nlOM>uPF?v&M{DRyuC%xT2gf#mkObHfHRY<=M-Mi^eW1Dw;TM;<6)4$Bi#pmc6`a zSyp-3vg)GhwOPfL)g@Uq)x}w5wI$VAMazq-@V7=g=;~@}tG|It%FBvNzM*QEz=N*q zpex8Ks;(|td+^m%R(%7VRJyYEfH5g5FRv_S$yrrWe89EX;#UQEv1GEQb~#sEv$iIy zuA*#BR#kOnaY;>0T!xC0Zvg+eTCHYd6Jq08rKM$YFce-=T)A>(WyJyW#NljlWqEl? zacx;;MNQVS+Uk;TKo^QDD^`_MA2{3W4qI8W@_;F{E2*ek8OOo0%7d@Bctufr;#5)G zPHS1q>PkyXs!Nt1e6uxc+i4*)GYkKg6&0UZTU}HvjBU-@mCGv2%hr{|;ZwV!x}<1% z9JrlI_9su4-B8vUWh=|e4xU6BCJwlky-0S}%A%?RuGf|)Za~W_E~-AGGON1ej4}*E zYuT2ZQC7R6ZdoQ&bM%;!;^J{*Cr(_xY+_0Agt0k-HKVgL$L3^ab7t;>gRQ00XcR49 zUOl$FtfB;{j5$)E64%M9Nmx--vm!2oV}P=REG?-jsy-8)7HeJG5h+JX556lHxr25i z*eikFl-0&t|H>M8F%@-dI?ZTsqL{inb7Bs6H;*w~)sphEGht*qDL*mw#c`UT6xEjb95tf_6MW+yR=N5g|dT@1GlD-MvsmCL@5VT)KiR?(=elJe3{ z^ER%kgRcRG0T#BioxHNFqHNug$~9%nNk64}W|dWxmKW8QXj*AqO-UvkXZYeIvlPS) zI#orrh*Zc}S;g{_H5A6a0EW-v6`YMCMa9*XHI#zAsp6GYGLMjZS$JjTav7?uB9DL~ zm;%FWQV7k;3{;)Sim9Hg3;9axD%g>r%=p2HqKdUv1tK#p?Uu!`k+H0S~w3Kcg77m83H!y&M8!ZdY5(XkZr&7PqY83<6`Pqm-+_1_B0pSs7Tef`Zs&sx4c| zJVUw_1hled3F@FM*qaiOCCk>gGGm=-2LEobqRV` zNF{hH8vqTJ6~#<3eq9Cbco~y`k}l?>01vnl3;0o_Swi@+1ZG!^I*Mv5SC%olxYpWE zKtIuVx4PO=8I&q65yX>h3(>@(FS`VqBx@>Ltf{PKoY!Bwg@U`N z0DEdmimHoQmmroU74UQ@V+MumR+dytkwroDF^Hfq}8ZEz2GX6)jsPNkY!$ ztBa~jWz|yY0j;h$qa2fERTvuIPQc=tuhU%oFhQWmO41y&fL>4Nsj3bCHwUl*;5~g;9 zs=!=10}FxeQ3hC9+5v3=;dK?OF&MQ5m-t!hD=EeLW0c*z-O-!h7=KLq^Pdt)-Wq%ZG^N6gb8?5RaV6q zBBwIgL7Zd@BN4J)jZu(wGG$UpMuW_{DnTK-)v~ex%fbjP!{Sw$Knpg#ctwdYgqfuB z?7b2mXikX%6(zHDTi?q5bif#eWHR;2p4lKULu#RqaJD% zGg8Wr5zo=^l5*h>K`Fpm)v`m$SYF2hFJZuPP+>Wb2vmhw`=SbwLo8*;h)_@XJS;@u zoaEGzcIYUgZe^BM1LC`IHdqY0rV z{B0zN$oZJQ#mY$llq^Mji1D1B=QT~gaoNT~(?qpCv!~B^SIache7VMl^_fT<=`%*{ zK|-4Gv7URR+0*z(eI6y78fP%fRG)FJK{-w1%8h$aZL0CUr_^Wsb;C9!Henu!O~cmDGAT;n8-L#LwkLuu6>lKXO}l8h7HrBk9zHAA zoM0sS-$uBu5X~5hZJy;9U=eD4om3f6o_Sa!m4$3 zuEU8Kd^lT&sk^8Ws^U?-mSpr>W=?KQxAZ`_ytFZ|L-ZQGJF4>)Wz+KRhltbB}{$CiLLHb^}-zoh+P#kx7d&BTt0LBmUOiwk#Gr5;P4f*$U z$ms)ZDi>PS+i0y3+IWj8jAWj-FM96oRf;xNx!E79y>a;TA61KuQS8%dNYiRbSe+!tM_C0r-6G5 zyawY_*g8_7cfy4}ZUrX@7?oGNc*Ch0>5_2t)d>y&BTJ+lgB5K#W(LYje#W&Up3T#E!-*?;s4<#v9cg zo26ae!De8hnQUbFGtGWac#mLg1IBqqBV4<8*7-}lLwv@)<`!SA_XxNx#v2x`re?UBfcT7S)@S;RS%tuLgwOa<@(y#FuMtM1 zhtK$WRUT1b{Lt_W)P2SWbxq_@{Wu6y=?xl}uW9lUE*BY$z41C6i;!`lw-ySJYrL@* zwO$83j2O3V^cP})3LEotjX&wRplqb^Mt!L{z6SYUH7I|r&-fgkE@*86mr5Fa;7$`2 z$KRcTNhoKOAm2Odc2EKVdv76_XM*k>Myl}6x>DxabtY5;t^Wa@BPU$7E{_s?Mq2{$ z^Sn*|To9OKq`nRM3qjMVATwlKVECJmi*fZCSFM32?b^77IN&p0?#8N8M#}ZJs0>K7 zuUzoe4qmv~6B>mP)ws7Rmxt-wb@Gv$jK|pbH}2Dg^4^%#gyi1F?z2kGw3p4E6ESkL zDcG7+ii9-dt+PrwenV2JqvK6(GpKt=-kT9G~&8^`6l>HEQgHwo$(GOwSl$HM~cV>UlDC zNBO!NSJ%I7hCgP-+idP2y@MiN?y@U8plJPISNxHV49kuKuq!*=b_LoDyF#YN-)NbW z3}H_E!U|t!X2zKlHVVz2ovc~E3zv52nvzR^c^j4v?1|gHd<+`cg2q*HU<-xTes_CW~%oWtQQmzEWu9POL-oJ249#2f4Gjfdk|2gh$uv$7$ih;mNce0`B=bz zxT(>595DG?BIW_S=(27LGNu?0Y~052hdrLbI;!YyoWHISNcS-Q=G%isk2SRPii|$v zZf~KP@AKChPp{u)&P9|wj8ny2fyhrD>>vz*cJn6Norq-+AQdaq{mnkc_$Ig;-Dv8b z=NkijQjAYF&~jow<5FV}T!^X0(@BNA6Y}p0-Zn&<*f^ve#mlh$*x&38IraE=dZ$Ao zcS9+BB*D+t@1ng(%MeW#S0T|VQh4gM{t1mf~nL#{Xyc^OCSg*@9_ z2w9S9J_N<4S;ZcNGV4KI?7UG*zLMfSf%a!xf;#oI@g~&j1n_6;+Cq-Mk6FnH=)B*o z#-!8KjT`D3ooei+MFY^k7ASGVJQ)kOsaPRG{^!c`FmXsS9`<@h>g3)K)Mq@fp0qb$ zj3Nu88w(0amyO#ui9#=FTS(81DZB(`Ci{$YJ(@}&JlXgx(I&>{85}{y@b#u( z(UEEvEd`9P(ErjPS#^`O3V@1zX50t4jTX69#r{SI=_<7^XP85R#w+zY);w~}Ff-R@ z+@kMt`m9OK4kibUDcF@k?szWO#x}dnsYYcLWJ~zu`@xcJz9#CbcoQyqV}~$l)EO-b zqO?GKuL&VGo?MsbAknI3Apz&{nhNiBr{wvX@MP8&LNZ$Fn@~@S?v98>q&OiMY$gYd zcLKX0xjYs^iPtq@ttD)HXu?TIxq??#K3FAJRxtN~gk!A~%eK6RN=vtp6LmQj=K^@K z+F3904AI}`v{@C4~G+upwkMM7@4pptV|eVU}uty zFR+C_3SBSth6>u3f3CNQd6*%1oJo9*S(6%UE;PPePgB}Fa~TG0wBs{|6*{ux5^c2eDaN;nn1D9u z#EoR*LbK7#K9$QKjioLw|3#frLH-bFuBF}e&NOEklL|@h=Md+}WU#rIX^!_TV19jw zu~ZPO=vafh9x$?{z7Ql6tI&@>(rNwZMx0z=J9GuQ{b*X}e%g}<7G7`HxRc5?QaMi# z%hK(3SG|R5M1_!%b}P*7sKV}6g(}nF@PvcLU7if@iN>!t%px-!c0#a>f$dex1+yR zN~&eV8)J-kp?}++9i^p>JKm->2C_ySjWlsK(4Q$55lAAlhdGE)CkKs5di%XRLiVyX zzA3$|a*jr6&WVxGlWfuJ%E5xab6WeDYX?k$Q`a@A2SfC($qY3OnSOfHC|4#^i0p#QiB5H!$vZN!x?4 zhSbiNw0sX`%yRWqyM5W_<`Iia2bA)*wB_-{Q|b(ZYOC0K%^~Msr!ypuq-G3vB$b7% zV+OmLjc1e7Y`#*bcNWb#mgyL}lvZO9%MD_76oc4OrIG_e%<2V2qnZw|&b{%tMX3|2 zo)$Ew?!jbmSA8KyP3dR7ujTm)ckLuwO4b?sIeWLJG%Q?(-N$yvg*b~rR(uy(aVUR1 zO_*lVJYlm(&J)NUHIH!hGKRvI`aM(xE--?^@5%FLHW8(aBSvx+IcC)`pA&ILk5 zCNV%Q$dvZU%0xp4{P-Pg4s1W(9?hsBR6%y$Zl_6Bk>^RZOh>~=2XmSU295hS$$dH^ ztVu~GDRG>FW_L<1m$hLE-mgVGJLh*RVJ~Gkf)w>VQ)=U+9xrFOL>l;o;*q+ zQ5h`O#JL1 zBUknto5Kk`=3!Iy?;4?@j(=y3{2k6WznN)x>}KtQl~NOMk%n~NOBYHN%}N#D_8cHaSP#VR?^e(y?mOO6TTF^A zF4AgriYpmeieR`*wynM<%?Qnn??V}ZPhmO6q zZ~LF^xOvmu)#i1yIUwiN9kWL^@*XD8BJU1C?7n9%lCjP@q%s$1QP8vIq1ZZbuO=4y zBN(d%H^iz+3^%Z1wU=ejeXJYW+#|vQ#oYmg=O(#CMOt(Fj*9~U;&nfX)3ty ziReD$Bd&*BQxL^^u$shpv5Jx&<)F_wX&tgt-q?1f2I`X_Iz@3ST9o8{Xsm0`Dvs%j z&!zf77S9i6%W5C2jzh)O|NBqhKD5Ep1Gu5e6_JfGc+P-0XI z7gDyo7mzYLY;&`5zn4Jc)Lh|k#&}0em=GML!&FGjUH7%wtke@jt}f@i!j^(oM=d5h;_EfVi@K0%eT@k+Z8-w zefYe6EO#_Hs%H?mr z$*pg5HygW#kHrAURUWp{_jdtv9}D!@1sBsXcxD(qaEOIQiv@4*w`;~8o!mjN$Wd1I zcTaFxW=A!?6**fv(bd}io2dqOL7r&hP?R_X^(J80tmC91AsyM8AEMrnKtumLGpWm9P%Yu6AA^s|pnsPWmF{n^yQp-F398-Xn}0Esh_0T`Bs z$x=9OP0(=>26 z#x{Jk={I`NS1Iy_7p$z)UU!GtjoLh*HM|t&O_q2uri9N})@b^D#!>VIc%E?*K6#Do zw96RB)AuXJ)F!k(AIFA_(Xe61;1(P5wx3Nv<6C{kFV^g!FGzgGZ$qW1q||u4rj$O2 zxernLTBe(C1^p!+!pLs)!>qqpM_(oy*99~A7MlhrwB#`Ob|y76pvjwr@DufX_VJR{ z#60lqS3zD5c&087$w%Ufn?Rwr0Qr8hjxr1|eg+@?NF1j9a*eng=9~m}^Pa|6$0^3$ zLEIwZ%cf3vvTlb}!5*&QavaK}g0G=>=;oWhV{90K`z&xxPb$i8AqxhXScDVBbnlLW zv5*P$@IyiR0)5dInIT4Kfc)*Wjq_3+KCJ^I?f@m(20q{y)iHZW#1sY)VQ;P_ZUf^_ z*Ke^f-V#ePT*;k;y$^JYiiqx19^RhDC-DyH*+xk&mwp3xR&c%Nt+zQLQiv18%EwF` zQ1k7i5fU<=iUEN~OY~d{!odR54dAg1-oMFbL77&pwbu?4}u*V!wfLlR`QDuH&>j5!J5TwWk z2x{t>QAC+bMx>BBeMCL-p@*(uB2mK`_owULwt6MgmLrm%$IMbe&=#|o&-i1)Hkbq) zOI%+lj8gdjv3Dl$RaR&I&%NiqmzzrhNmvzypyJjxSR8AojZ52UZ9|<-JJU9HnW=4! zT3ewKmXHK6px_1pafgU2R)gZMK?V1?qhiDbQHdMi7Odcg|L^ZP@4dM$Ny~!k@o4jy38EO&-5rO2{RaY zYesTqtPp-B!(x3(_)ZoQ5Z^Qcb%jEuNYOOr8-g4Wv-CwziN68@g$sX zWyW-W-gUZB_dL_JFMeOe7yaE%;m@iDPjgze70-sN_6fFas5$9Qb8YcN73`&zk6=27>oZ2Ql+(){D4G%bD(yG?s_Oi?LI+u(455L^!v?N8SjhT$rJrt z&j^2Ssbz9%@YnPQ>ZsUlqJo>Ae`r(FhpeHyda4~#M~Sr!Az3ER9n}F_{}Iu+255nM zf=U$t_JbyXJ}^Yj(tP!q?^aGQFVGLtFjpGPCx+*~lL2$ygf<>VVb$aqk%?qW z0`6jLq)x(VJT#P`77~h%gTE-zA)&%OF`18U47dy^?jD+qM0*?MI*Q$uQ>(_0=A0ZL z^I%1=OMFx?QvX(H)u~UT(Kp8$8JOBWwa8VCwPl1CzeBD|9)Gjp`5T<^cf0-Fk@37z zpEFrZT;ca&e}1*;FZ|u(dlFuXt35>3xgiRQ_X~=?uSH8i)0hE4m7W5j4fJ_I(gSX~ zLz0D~6fT~WCK-1plu=QqtRX1)m0G%%$qibv$Dy-bkA||4&O$Oji}ese zY^XIha5be|j19aWt)O3>s~=8L%sYiH2y6FDbutWwbnY`CHkh%W*Rug9p*p&pN?*kz zgML2{9c-$#$~E&iZ2HARS?sAmT$7jQ!FiY!FKwI`N&nI~Gq6^Sw9|;rBAkIVeHrL% zL^NPGkc@{yx24t!LAqgY5TDB1l%#r@%@1{A8!Ni{|)`q(cPA$22%?Dz!e` zhk4a*+SDovE&XSZKS5)@UJnyNtw0F{NiY$eu-|r*8@?SB?|-yfJX5cbe77Vjm>{XR z+nG+|FrXh)f%rbmkWpy(2pR|2hlSIbz`ua=Z-k0>RvKzQu@r+8CGG2$*Mn-|{NpLw z6#t~94}W`}tKZ^!?`pCkKNrI`PHf0ei}l9G8{p{8V(50_s6li18Nl+mjrX>?@ZWbK zYmL2SN~JBvfrKW6!*2o2haq|LJ19#WY|Y-cXJzixu#Nvczu0j^y|&Fl^{Zlp22UPf>Iw2lN#Q@bmv4vBHfI-Bkb!N z)0nQ9n(!lCHPsX$cUl^9|9m}BfWk`VbN&8nFB_GbEFSW+u~MZV*9`9rg_B(E1i?Az z5w>rbLK-BS#*(281>5nr_kM6XM(z07(;|SEch0}Kntv@#I;dNOP#@@Hf@UaamzRZ zI`s zk~?5Whai;l=FG{77XPMMZ;)GTRkg3WY)2SBQm_{k-*QYrEAc{*-hH;nV$L#Awiv!L zB~ig8Nz_JNfCYycXG)@Ng63@Md)V&zFh=p(lf6_aSiES5JbIQ5n?wGz$q=;;R37+{ z_bN@#Q3fuEx^H%%G#%-2d-de%)G;A3kFi^8?TNc3)&_&-qcb@SkYN+0iJ^Lbiq^M4 zK%ZCuZ~1f_G<6tM=3aBnKK5LS#I!Y`B5^ZW4OsVw_C~2^JqrN)WX?oEAWRXTJt%mHJ_$7-}z0gmN_?+LFrhBYo>7s{fWC64~dT zRKw4Sgh~NfvO_>NZV$+`fYKdE)^SiXhL1mTIqAck#iimXTWgTI?n zORS^EFLAWD4C6_ue20gU`_?EH%Vhr`{>xy%G+(Je@88Mw{z{*oa0KtuW{UMhp_e6H z5*`vzB_g_)Mo^0v*M_u^YSHE!j7T-;v5Qfu7W=)Jy9*mb6?#hlHJrr4M{4qL)HQIedy}M#~(agRk!R22R>~@UAHb`RiLD2GE6`hsS z8dF{02`T3%M^l*WKg+jO6UXgdX;pE~+2N`<{)@iugX9j^#Yqja=(ASF;ls|_IAebl zqRr3kLYvn6SnmR)9V((>g_bhjAjxbVf*?fiPK4)Ut#O;so(I9cAICJHB0v{Wd0;yw zkUD6#tqMqgWq~9UP zjc??4KbKVqY0Iy3L^HH%qg7V{R(_HycxpKLJ0_Ii;bPRU8R+PhJ=dP8=N!c#u-MdkqNs z%=HK#Bzfy+;Zkhq8_~f@C6ILO(Lvx=w-Z?H**$2S?zJVZDq@MH$Y4bX(#Yg{AdKA= z@ma6$VP>adr@Mjr9wQ{Typ|%FilOUR0RzcEYUqC)FCP3PqO?`1lxEs+%1h_DL;Rb;t6TC72(2H`lwct zlGzlc<5h;WGVmJgfhLiUaW9_OLOI780H!qeU04`LaQDjxd6XOYX54F}3#Xzrt8y(P zFNn)!j!J9R3kIq#!?Qbr8o6#d#T^TIO{+Cn>{Wnlv`Wh!=9V~Y@dfTm@f7rNDe3-8 z6|Bzq62sZ!HU7(|sqHj^mAKj^nAeRp4Y6Mep?7GOcTui-glg5UF_>_HThvM1eNfY$ zUOvf*8(pK-58p*PStG?(o~~(SQ=W!2Nfk<&As(+$@TiPrpcQp1rUklFCd49Ca4dk{ zMI2iRyqR?(9i`Kr*(s>Qb2XD)MK zQOU0A*M!>GL~-Du?uJ@$U*fKbG`OYtG7e;8SEW-7M-&oHVHf>38@;MY4tjk}i0

  • )l)+{wDKD52 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 z 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 D};V1;V@YKEz8EYeW*jp_Llbx3sgpCmm@ce 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

    #WWZ&rL^tkFEo& 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

  • )l)+{wDKD52 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 z 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 D};V1;V@YKEz8EYeW*jp_Llbx3sgpCmm@ce zTn%!QqHDEPuK9=`I=dUvPs#f;{YCU-ian|4?q>u?oNb2@-x_pVZ%y{KBn>gJ7BCqj z$RXpA7O-}~B(14s&oy@xT=uGUe)9;@zng(Sa@(?6^X1^D&mij!5)+WWx21tOL)Vfa z5a9|xi#_PK4g1B_v9>MvvR7PXTrYJbOuQyPxKnSYBd*=|SMPe~TGLbNQ%Bkpbwq5r zqiUyqt#DqE8RrRUI4gz01@$H?pzWIQDPGW}3d+ z^!4W4sny>Nj@k6-z>3 z0jwWPbmWk*6|B#Nb%FKTFsU>BU_D@bd4z#!ZZ!0UpcpDD9AhH?HN(#QDW4w;bj&lp zVLWmd^4k3?Hru=FaOyi6co0XYo0l|#lTL_AlKLixj0M)YZ`U2%mvilMu8GH5f>+Nt>lgBS)Nx552lXiDXNtWx2w=!!l>6(EvzkAtuH{uzC zGnuZ`cO$gt>Hi|XUE=Uax;S{e$MA;~V=KQ=2WN!xsBHB)JLhY&m85G3&OSJAQ1*AH z>jtwaVV>3KGt42sV#eXoS% zb**hBvxy$_BOe8m@~oj4qh z)OJ^Gk7)1njrsIZx;Gi?Bv;{V?O)cvFPta&aQ5%#=$C)ehqE6JImEB^?Bc({Wouob zw8Mj7IbhSAd&a$=742R7-(fcHBVG+Ls=~DguJ&&&>kMnXxt!yk;7@$GB(9MK{KL1M zbF{T!?ZeLYqY-TG;bcEZblbo>N1Sa+H`oB!W{Dez$PIvvyW~c}nodsc0U~l!V1qVH z+P!(O5p*-zuRJGC`Tk*|ze!so-@6fxBJfr4GdWL=+l(=r{aXkUhbXf7KXSHp4PbdL ztQ9QBg>`{tyRd$+fw3f?w232N{a}BU_^7r#xFVBfa{pX5i}fQ^qY>uW82QGs`tFIgjoCb}dOhqM8$aVSSRW1<^GO){hSoKDjG}E4ltRwLg;D(?~^vGfrns zORn0?F77*qzmPJb-DTW2*|u2i8}FYrnjV+)^zVeu!&!&lP<@=U+?=WJgyt<#pO9DW z_Hp*KzqWQ;^1A^}@i)8$#ysTCH1@pIX&72D`R1adgNL!CEggk3FqG)yJZ*3$ZI#-` zi6b9I{!wX5A5IsC)ILt=;M6#jar??;+UM``JVH2cvpDJAC*HSY7b8^+8K;Gj7oBEw z2EVtgo)2nwdFY(#)Dim)pfmFQW&LAvpKHR`GU1M(lZ!ySxM;yNX(PjNA{DtJX^D^xRK**8DuZzmsiC-t$ z>JY3StOHE^z8uy3M!>qkeky>=HzoZE%e&o$ooZ*T62eUhSKtNGfIsd`&y~@dx*E8u z;W|vXID|h2CjR~m>Z_;S9rFjFgMFr&qG8mB;HrDnnA>M8SjH%ZpmS>Uc0Bd()yAK~Qkb78R})a&4C(^mAeIG1v$+7sissP!Va z*u9+i?|FuKO75vW^PE>+ro20Qv`-@16M5MQXY-$y^%WijYxj9_rp)o)o#)lbH|Dox zK6MVxoWCdL#15f+7=DNLNh+4H6!8BXPcLF>{vaPa>_AV(8rm{(F>PV2{TVPjA2LTM z_o+g@=O5-XK|`K#YTEmV9ox`b*~{}4+9d5eo@q{*gWl>l7Q>EJa8AS7snd58KYyi5S=WPWW13QZA_%gM(XBSw-d;ItI9OC*Q zI&VwpNI4q^n*h63Fw?e1IkP%;C0vRlR~TB+znYLUZEEhndAlv|WDd08@6*ZY@}z zORh1&C$2>fk!wrvnZ8iMZm@v^ta9Plk8+4>gIr^IUox-No^;OrD5G5NO4#o+saMo1e($?rtAC!!bU#aW5#Xe13pX7Qw=Pvv3IZxH#sPBUJAQ#R_#z*Wk2v!J|seNXV z@3L`7npVI%U0C2{+Fu(ccFYHB2YZ@xd{f?a>gm9_Y5y0WQG;Ib!LQ9{Nc_6cuSUN> z?#m%qKiI$_D~`E=5wKw}dtI6Y8v@&`G!5N3u+}^$whGn*X7*9#9@<{+119Hk$o&hz z`oLt546#9o?Mdims&`Jyxwd-finU*x;xwH&<|DxCgoD{ zL49f(QsEurS|iu&$3JIStezuYxLJ%wzc`v*+eD* zitzv{4XgsjpF~B!0(*8Jwxa)oI;p+#wAr^d+peVk7gD;JQL$?)`q4M8=tqkFGlstE zuc?;AN! zmhVL2W=ntNhH)k$8%H+hxQ*ASi)?-%E6|VZ;|boRErTg*>LbWjl_b8GZPpoMZ1Y{4 z8C4vbkc}hzWGe5FT{g`1USzx8nSSm67&6(V8?Vt<=|^@b16jFuepXf>di+kkk8{KC z$a@Fv%CE>81L3PcW(t|#ii|VeDeq`BAlqD)nQS+*`6ukOe2dNY-?H0C;xLBnXoj+J zWb5CRSse0%6xtIri$et20c3xiYKN3}N}7D>3cwdPmXd6Xa-FfjYRvrgBIa2CD@N3&0^*IamxVTOkHk z4OS2Kjs#XrSP#|;_D8|+cT}RYRVR|S>iJW?hD$(Q;&LalCA6uBQuI=M8DAJNd>Otq z$SXzGAI7~WBtD;a#%EUI17`MR#P9cGtL%3q+TVMBzhV13jeG_2s{OszkoPVNnYF(W z;!s4q8c65qq*L2&=Tv#to}5z&r?e&Q=m|E%aWWDg0OzzIFJ<-m{`_qXVuz=E=u10q6Ybn|$U^+ew$iF}ffA z?cW*aNF2ZB$?1;c=|25+6~}(~S|clZi^TDAPd@kh@6d02;%Kf>-2>;qwiW%e(yqVX zhtrkr1JkU(6I)jAkAJA4zb^TEkSAx#cj6xNnG@|MznkFfgR|>HEBYBYKkdnBul!E= zhTvB`Gkk0AYF6mcT<_`9Rc@#5m$NA=(Dcz2{XDtf!am>c$#nMnI`Olj?(`W3jRRw3^0a<}be8^#vsMP+NtL*V;obrb@burj z;&}h66|4^|!gV=Bu1oIclIsW4I-Fzu5wN^lopS<{V1;0t6`R2~2iAL=6I%rv0h9a5 zA^mUdz^uUh>WVS%Z?z#Lgyh(sr#+T3$Us-dGF9k@|3+SmozPc(7BvSePn@m3bi|sa zLrnZ}8F7hYUo{@O;>ivDaSZuv?4$hgDTe&M_+u$IV$1wnR*b!Dk9Wu6we4k_jXj#- zRAa2=|8b9JUiBEOjCj_=nM3}Th)?*A!HJ#K=tI_x{VQqbVaWzbTQ@q{oh$m9=-i8r zR~dHhi52>>j{_A_;oJe|$QM@hFC7Et6`q{#+LPYb$x(0!N0=MeHQHI4W+XS;Lr5#I4x#ZD5RNjT?! zx1zsA;>E~8- zrgzDEdwi15o_ZY7i5dBiUhnhNe|e^Pmrq<=`%