Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop to main #37

Merged
merged 163 commits into from
Jul 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
163 commits
Select commit Hold shift + click to select a range
c3e8b2b
Improved cert generation from csr
lb-anssi Mar 30, 2023
35f1793
Documentation addition
lb-anssi Mar 30, 2023
ca54e17
Propagated API change to admin
lb-anssi Mar 30, 2023
44ee17b
X509: PKI code refactoring (clippy, doc)
lb-anssi Mar 31, 2023
30e27f5
Addition of hybrid keypair loading
lb-anssi Mar 31, 2023
f792696
Passed cargo fmt
lb-anssi Mar 31, 2023
c0b5fbe
X509: Fix Github CI workflow
lb-anssi Mar 31, 2023
bc542f8
X509: fix keysas-out use of PKI
lb-anssi Apr 3, 2023
5dc5d8f
Enrolment: Generate private keys on the station
lb-anssi Apr 3, 2023
366a28b
Enrolment: Added certificate saving to keysas-sign
lb-anssi Apr 3, 2023
237f7bd
Keysas-admin: added station enrolment
lb-anssi Apr 4, 2023
2564226
Addition of tauri dist directory
lb-anssi Apr 4, 2023
5e46d95
File signing: keysas-sign code cleanup and doc
lb-anssi Apr 5, 2023
8387d05
File signing: added tests and doc
lb-anssi Apr 5, 2023
a4ac69e
Cleaning up the code
r3dlight Apr 6, 2023
a93a44e
Add SDPX headers + remove feature
r3dlight Apr 11, 2023
17b6a57
Format
r3dlight Apr 11, 2023
6e7bf89
Validate hybrid signature from certs
r3dlight Apr 11, 2023
2503521
oqs: use only dilithium feature
r3dlight Apr 12, 2023
3b5c67a
Remove minisign crate
r3dlight Apr 12, 2023
fe5f8c7
Feature became stable
r3dlight Apr 12, 2023
30dde79
Add usb signing functions
r3dlight Apr 12, 2023
e909853
Remove tauri plugin store
r3dlight Apr 12, 2023
a1a7389
Add libs for signing device
r3dlight Apr 12, 2023
f80fc50
Start modifying keysas-admin to locally sign usb devices
r3dlight Apr 13, 2023
155b29a
Fix overflowing serial number
r3dlight Apr 14, 2023
47ee374
Bump version to 0.2.0
r3dlight Apr 17, 2023
72ca618
Bump version to 0.2.0
r3dlight Apr 17, 2023
5b4a1d9
Serial are now arrays of 20 bytes
r3dlight Apr 17, 2023
ce4e0cd
Update deps + improve pki creation
r3dlight Apr 19, 2023
84283af
Add USB device hybrid signing functionnality
r3dlight Apr 24, 2023
be92738
Add delete keysas station function
r3dlight Apr 24, 2023
4673102
Display the PKI information:
r3dlight Apr 26, 2023
feaa2eb
Update home + improve UX
r3dlight Apr 26, 2023
15c4a2f
Add Revoke USB device
r3dlight Apr 27, 2023
517f0a8
Add check for PKI password length
r3dlight Apr 27, 2023
7e0830b
Rename few componants
r3dlight Apr 27, 2023
cee3e27
Bump version
r3dlight Apr 27, 2023
e7b9a40
Check that country is < 2 chars long
r3dlight Apr 27, 2023
592c2d2
Bump version
r3dlight Apr 27, 2023
736d993
Improve UX
r3dlight Apr 28, 2023
7757736
Improve HELP for adding a station
r3dlight Apr 28, 2023
9c8d39e
Rename componant AddForm into AddStation
r3dlight Apr 28, 2023
3fb45db
Fox is_alive to be async
r3dlight Apr 28, 2023
5d43a21
Update comments
r3dlight May 9, 2023
b8d481e
Remove std features for oqs
r3dlight May 9, 2023
7e536b7
Remove pretty format for digest computation
r3dlight May 9, 2023
a15fca8
Windows: Initial commit for the driver
lb-anssi Apr 17, 2023
33ce062
Added simple communication between driver and app
lb-anssi Apr 20, 2023
fa92ffa
Windows: restructured project
lb-anssi Apr 24, 2023
8f88a2a
Improved context management
lb-anssi Apr 25, 2023
5490c8d
Implemented file validation by the user
lb-anssi Apr 25, 2023
dac8a98
Improved list of create call filtered
lb-anssi Apr 25, 2023
007e208
Started file validation
lb-anssi Apr 27, 2023
9bb22d0
Run analysis on driver and initialized tray app
lb-anssi Apr 28, 2023
b798828
Continued file verification
lb-anssi May 2, 2023
c390f21
Validated file reports
lb-anssi May 3, 2023
ff33e92
Added first window to tray app
lb-anssi May 3, 2023
083565a
Cleaned driver and service code
lb-anssi May 4, 2023
d687434
Update windows GUI
lb-anssi May 9, 2023
7c1a90d
Fixed dalek version
lb-anssi May 9, 2023
3d35edf
Update keysas-lib dependencies versions
lb-anssi May 9, 2023
11f8a81
Renamed USB firewall folder
lb-anssi May 9, 2023
8ff603a
Fix function signatures + tests
r3dlight May 9, 2023
cd1041e
BEGIN: Fixing frontend for reading reports
r3dlight May 9, 2023
0c2ef0e
Fix bind_and_sign() tests and set the signature optional if keys are …
r3dlight May 10, 2023
89d970b
Fix const paths bugs
r3dlight May 11, 2023
127cb10
handle ws upgrade
r3dlight May 12, 2023
d638556
handle ws upgrade
r3dlight May 12, 2023
8283030
Fix paths for PKI creation
r3dlight May 15, 2023
decaaf0
Update some logs + stay async as much as possible
r3dlight May 22, 2023
2d76b9e
Fix GNU/Linux paths for key generation
r3dlight May 22, 2023
0e42eef
Fix stations online status
r3dlight May 22, 2023
2b256b5
UX: color update on homepage + remove useless method
r3dlight May 22, 2023
18c9c68
Set some functions in async mode
r3dlight May 23, 2023
145d03c
Print some feedback to final user while creating a new PKI
r3dlight May 23, 2023
3767c97
Clear the password as soon as used
r3dlight May 23, 2023
2f26eb9
Downgrade time crate to match tauri pinning :(
r3dlight May 25, 2023
d504fec
Update deprecated method add to insert
r3dlight May 25, 2023
dfdc155
Add tests file
r3dlight May 25, 2023
341352a
Import mod tests
r3dlight May 25, 2023
e209ac9
Add new empty arg to match signature
r3dlight May 25, 2023
137ad27
Add dev-dependencies + update yara
r3dlight May 25, 2023
f780c26
Downgrade logger crate to match tauri pinning :(
r3dlight May 25, 2023
85cb103
Change const paths for windows
r3dlight May 25, 2023
95c8644
Bump tungstenite crate
r3dlight May 25, 2023
ddfae93
Tests fix (#25)
r3dlight Jun 2, 2023
5bce889
Fix: remove unwanted b64 decode
r3dlight Jun 2, 2023
8f63739
Handle bad password error in UX
r3dlight Jun 2, 2023
0f51fa7
Update installation process for Tauri
r3dlight Jun 2, 2023
5319a1f
UX: add some verbosity for admin
r3dlight Jun 5, 2023
3dd04e2
Update readme
r3dlight Jun 5, 2023
6d0f699
Remove std feature for Windows
r3dlight Jun 12, 2023
6dedef3
Rename component to keysas
r3dlight Jun 13, 2023
2af3730
Update dependencies
r3dlight Jun 13, 2023
68a31b7
Rename component to keysas in App
r3dlight Jun 13, 2023
fe4ce51
Start rewriting wizard-fr
r3dlight Jun 13, 2023
0109a3f
Temporary removing rejected files
r3dlight Jun 14, 2023
b57e48d
Update Help/Quick start procedure
r3dlight Jun 14, 2023
b7f8d2a
Update id tag
r3dlight Jun 16, 2023
151b151
Add const for paths and update ip parsing
r3dlight Jun 16, 2023
f0a0530
Fix ipaddr for eth|enp style
r3dlight Jun 16, 2023
ce63e58
Remove useless comment
r3dlight Jun 16, 2023
67337bb
Fix install/uninstall binaries
r3dlight Jun 19, 2023
6f7ac89
Fix install/uninstall binaries: restart clamd
r3dlight Jun 19, 2023
8f88ee9
Switch to Bookworm install
r3dlight Jun 19, 2023
07b8c50
Fix install of sudo rules
r3dlight Jun 20, 2023
8e7fa4f
Update rust.yml
r3dlight Jun 20, 2023
1a34b35
Temporary patching devloop til the next release
r3dlight Jun 21, 2023
fa5adc5
Switch back to nightly toolchain
r3dlight Jun 21, 2023
dcf6546
Update README with nightly toolchain installation
r3dlight Jun 21, 2023
7393922
Bump ubuntu pkg to libyara9
r3dlight Jun 21, 2023
98cd15f
Removing workflow for now: Ubuntu kinetic not supported
r3dlight Jun 21, 2023
cc0a6cc
Removing workflow for now: Ubuntu kinetic not supported
r3dlight Jun 21, 2023
f718cab
Error handling for new Dilithium5 signature
r3dlight Jun 23, 2023
0cb00a7
Bugfix in install
r3dlight Jun 23, 2023
1312dae
Update mode to dev
r3dlight Jun 26, 2023
e66e9dc
Update error msg for websocket
r3dlight Jun 26, 2023
87160e4
Merge branch 'main' into Develop
r3dlight Jun 26, 2023
47109db
Better error handling
r3dlight Jul 3, 2023
ba48b2d
Add seccomp sandbox for keysas-in
r3dlight Jul 3, 2023
92b08c5
Add seccomp sandbox for keysas-in into main
r3dlight Jul 3, 2023
499f707
Add seccomp sandbox for keysas-transit
r3dlight Jul 3, 2023
3b2564d
Cargo format
r3dlight Jul 3, 2023
54bfb33
Add seccomp to keysas-out + fix anyhow::Result
r3dlight Jul 4, 2023
64cebfa
Trying to avoid links
r3dlight Jul 4, 2023
f8fb051
Catch active keyword for regex daemon status
r3dlight Jul 4, 2023
5b8f510
First patch for aarch64 syscallz
r3dlight Jul 4, 2023
30d506f
Set unlink only for x86_64
r3dlight Jul 4, 2023
43c2da4
dup3 is called on aarch64 instead of dup2
r3dlight Jul 5, 2023
10a4117
Add missing syscall for keysas-out
r3dlight Jul 5, 2023
d419c82
Add seccomp architectures supported
r3dlight Jul 5, 2023
d8b10c2
Allow forgetting reference
r3dlight Jul 6, 2023
fa83be0
Move landlock functions into sandbox.rs
r3dlight Jul 6, 2023
0300623
Fix clippy warnings
r3dlight Jul 6, 2023
d3dd411
Fix more clippy warnings
r3dlight Jul 6, 2023
72b22d7
Remove useless options
r3dlight Jul 10, 2023
3518b4a
Ignore compiled documentation directory
r3dlight Jul 10, 2023
f26b979
WIP: update user documentation
r3dlight Jul 10, 2023
45958fa
WIP: update user documentation
r3dlight Jul 10, 2023
dbb59ea
WIP: update user documentation
r3dlight Jul 10, 2023
ca09fcb
WIP: update user documentation
r3dlight Jul 10, 2023
722b7e7
WIP: update user documentation
r3dlight Jul 10, 2023
313ba1c
WIP: update user documentation
r3dlight Jul 10, 2023
6efdaf6
WIP: update user documentation
r3dlight Jul 10, 2023
9fd07bd
WIP: update user documentation
r3dlight Jul 10, 2023
cb6e877
WIP: update user documentation
r3dlight Jul 12, 2023
237e509
Improve README clarity
r3dlight Jul 12, 2023
31d477b
Update documentation: fix typo
lb-anssi Jul 12, 2023
9bef213
Hide load PKI as it is not implemented yet
r3dlight Jul 12, 2023
3c82b29
Merge branch 'main' into Develop
r3dlight Jul 12, 2023
e5091da
Rm useless picture
r3dlight Jul 12, 2023
196beb6
Rm useless pictures
r3dlight Jul 12, 2023
3939a40
Updated Keysas logo
lb-anssi Jul 12, 2023
281a93c
Updated logo in doc
lb-anssi Jul 12, 2023
9e88ebc
Add resolver version 2
r3dlight Jul 13, 2023
c36cfea
Remove old bindmount for unexistant home directory
r3dlight Jul 13, 2023
38974e1
Dev windows firewall (#36)
lb-anssi Jul 31, 2023
cfcf7cb
Update url
r3dlight Jul 31, 2023
63f54dc
Fix some typo + styling
r3dlight Jul 31, 2023
30e3ee2
Bump version to 2.1
r3dlight Jul 31, 2023
0fc7a41
Specifying the support for Debian 12 only
r3dlight Jul 31, 2023
3b585e4
Merge branch 'main' into Develop
r3dlight Jul 31, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ members = [
]

exclude = [
"keysas-usbfilter"
"keysas-firewall"
]

[patch.crates-io.loopdev]
Expand Down
18 changes: 11 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,23 @@
# USB virus cleaning station

# Main features

- Retrieve untrusted files from USB (via keysas-io) or over the network
- Perform multiple checks
- Run anti-virus check (ClamAV)
- Run Yara parsing
- Run extensions and size checks
- Run anti-virus check (ClamAV)
- Run Yara parsing
- Run extensions and size checks
- Signatures (Files and USB keys)
- Trusted (Outgoing) USB device must be signed with Keysas-admin app
- Each verified file signature is stored in the corresponding file report
- Signatures are post-quantum proof (hybrid Ed25519/Diltithium5 scheme)
- Private keys are stored using PKCS#8 format
- x509 certificates are signed by the internal PKI (using Keysas-admin)
- Authentication
- Users can be authenticated using personal Yubikeys 5
- Users can be authenticated using personal Yubikeys 5

# Keysas-core

## Architecture

<div align="center">
Expand All @@ -34,6 +36,7 @@ Files are passed between daemons as raw file descriptors and using abstract sock
- Daemons are sandboxed using Seccomp (x86_64 & aarch64)

## Other binaries or applications available

- Keysas-io: Daemon watching udev events to verify the signature of any mass storage USB devices and mount it as a IN (no or invalid signature) or OUT device (valid signature).
- Keysas-sign: Command line utility to import PEM certificate via Keysas-admin
- Keysas-fido: Command line utility to manage Yubikeys 5 enrollment
Expand All @@ -43,8 +46,9 @@ Files are passed between daemons as raw file descriptors and using abstract sock

## Installation

On Debian stable (Bookwoom):
```
On Debian stable (Bookwoom only):

```bash
apt -qy install -y libyara-dev libyara9 wget cmake make lsb-release software-properties-common libseccomp-dev clamav-daemon clamav-freshclam pkg-config git bash libudev-dev libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev
bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly -y
Expand All @@ -54,7 +58,7 @@ make help
make build
make install
```

## User documentation

User documentation can be found here : [https://keysas.fr](https://keysas.fr)

5 changes: 3 additions & 2 deletions documentation/user_documentation/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@
author = 'Stephane N'

# The short X.Y version
version = '2.0'
version = '2.1'
# The full version, including alpha/beta/rc tags
release = 'v2.0'
release = 'v2.1'



# -- General configuration ---------------------------------------------------
Expand Down
2 changes: 2 additions & 0 deletions documentation/user_documentation/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,7 @@ User documentation
networkgw
raspberry
keysas-admin
windows_firewall



5 changes: 3 additions & 2 deletions documentation/user_documentation/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@ Getting **Keysas**
-------------------

A pre-compiled **Keysas** binary is at your
disposal, you can choose and download a specific version of **Keysas**
using the :ref:`download section <download>`.
disposal. We recommend using the latest version here:
https://github.com/r3dlight/keysas/tags


Download the following files of lastest stable version.
* keysas-vx.y.z.zip
Expand Down
5 changes: 3 additions & 2 deletions documentation/user_documentation/raspberry.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@ The code is entirely written in Rust, sandboxed, and follows the principle of le

Download
=========
- `keysas-sd-v2.0 <https://keysas.fr/download/rasp/keysas-sd-v2.0.tar.gz>`_ (`sha256 <https://keysas.fr/download/rasp/keysas-sd-v2.0.tar.gz.sha256>`_)
- `keysas-admin-v2.0 (GNU/Linux) <https://keysas.fr/download/keysas-admin/v0.2.0/keysas-admin_2.0_amd64.AppImage>`_ (`sha256 <https://keysas.fr/download/keysas-admin/v2.0/keysas-admin_2.0_amd64.AppImage.sha256>`_)
- `keysas-sd-v2.1 <https://keysas.fr/download/rasp/keysas-sd-v2.1.tar.gz>`_ (`sha256 <https://keysas.fr/download/rasp/keysas-sd-v2.1.tar.gz.sha256>`_)
- `keysas-admin-v2.1 (GNU/Linux) <https://keysas.fr/download/keysas-admin/v2.1/keysas-admin_2.1_amd64.AppImage>`_ (`sha256 <https://keysas.fr/download/keysas-admin/v2.1/keysas-admin_2.1_amd64.AppImage.sha256>`_)


The downloaded image will automatically resize according to the size of your MicroSD card.
To copy the **Keysas** station image to your SD card:
Expand Down
63 changes: 63 additions & 0 deletions documentation/user_documentation/windows_firewall.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
********************
Windows USB firewall
********************

**Keysas** system also includes a **USB firewall** for Windows in order to check that:
- USB stick plugged on user laptop have been checked by a Keysas station;
- Files on the USB stick have been validated by the station.

.. warning::
**USB firewall** has only been tested on Windows 10 laptop in debug mode for now.

Architecture
============

The firewall is composed of four elements:

- In kernel space
- A USB bus filter driver
- A minifilter (driver to filter system calls towards the filesystem)
- In userspace
- A daemon supervising the two drivers and checks files and reports based on the system security policy
- A tray application to allow the end user to control the security settings

Security Policy configuration
=============================

System security policy is configured from a TOML file at the base of the Daemon directory.
The policy is configured with:

- 'disable_unsigned_usb': if set to 'true', unsigned usb devices are allowed. No checks are performed on files on these devices.
- 'allow_user_usb_authorization': if set to 'true', grant the user the ability to manually allow unsigned USB devices. No checks are performed on files on these devices.
- 'allow_user_file_read': if set to 'true', grant the user the ability to manually allow read access to an unsigned file.
- 'allow_user_file_write': if set to 'true', grant the user the ability to manually allow write access to file on a USB device. 'allow_user_file_read' must also be set to true.

If parameters are missing from the configuration file, they are considered to be set to 'false'.

CA certificates must be provided to the daemon. The path to the pem files is given as arguments to the command line.

The complete command line is

```bash
./keysas-usbfilter-daemon.exe -config <path to security policy file> -ca_cl <path to CA ED25519 certificate> -ca_pq <path to CA Dilithium5 certificate>
```

Installation
============

Driver compilation
------------------

The drivers have been tested on a Windows 10 laptop in debug mode (unsigned driver allowed).
They have been compiled with Microsoft Visual Studio 2022 with SDK and WDK version 10.0.22621.0.

Service and application compilation
-----------------------------------

The Keysas daemon and tray application have been compiled and tested on Windows 10 with the following dependencies:

- Rust toolchain: for example <https://learn.microsoft.com/en-us/windows/dev-environment/rust/setup>
- Clang toolchain: for example <https://rust-lang.github.io/rust-bindgen/requirements.html>
- CMake: <https://cmake.org/>
- Tauri: <https://tauri.app/>
- Npm: for example <https://docs.npmjs.com/downloading-and-installing-node-js-and-npm>
2 changes: 1 addition & 1 deletion keysas-admin/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "keysas-admin"
version = "2.0.0"
version = "2.1.0"
description = "Keysas stations administration application"
authors = ["Stephane N", "Luc Bonnafoux"]
license = "GPL-3.0"
Expand Down
2 changes: 1 addition & 1 deletion keysas-backend/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "keysas-backend"
version = "2.0.0"
version = "2.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
Expand Down
2 changes: 1 addition & 1 deletion keysas-core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "keysas-core"
version = "2.0.0"
version = "2.1.0"
edition = "2021"

[dependencies]
Expand Down
1 change: 0 additions & 1 deletion keysas-core/debian/keysas-transit.security
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ MemoryDenyWriteExecute=yes
TemporaryFileSystem=/etc
BindReadOnlyPaths=/etc/keysas
TemporaryFileSystem=/var
BindPaths=/var/local/transit
IPAddressDeny=any
RestrictAddressFamilies=AF_INET AF_UNIX
IPAddressAllow=127.0.0.1/8
78 changes: 78 additions & 0 deletions keysas-firewall/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Keysas USB firewall

The keysas USB firewall is used on Windows client to control that:

- USB devices connected have been enrolled in the system
- Files on USB devices have been validated by a Keysas station

## Architecture

The firewall is composed of four elements:

- In kernel space
- A USB bus filter driver
- A minifilter (driver to filter system calls towards the filesystem)
- In userspace
- A daemon that supervises the two drivers and checks files and reports based on the system security policy
- A tray application to allow the end user to control the security settings

## Security Policy configuration

System security policy is configured from a TOML file at the base of the Daemon directory.
The policy is configured with:

- 'disable_unsigned_usb': if set to 'true' unsigned usb devices are allowed. No checks are performed on files on these devices.
- 'allow_user_usb_authorization': if set to 'true' grant the user the ability to manually allow unsigned USB devices. No checks are performed on files on these devices.
- 'allow_user_file_read': if set to 'true' grant the user the ability to manually allow read access to an unsigned file.
- 'allow_user_file_write': if set to 'true' grant the user the ability to manually allow write access to file on a USB device. 'allow_user_file_read' must also be set to true.

If parameters are missing from the configuration file they are considered to be set to 'false'.

CA certificates must be provided to the daemon. The path to the pem files is given as arguments to the command line.

The comple command line is

```bash
./keysas-usbfilter-daemon.exe -config <path to security policy file> -ca_cl <path to CA ED25519 certificate> -ca_pq <path to CA Dilithium5 certificate>
```

## TODO List

This firewall is still a work in progress.

- USB bus filter driver
- [ ] Bus call interception
- Minifilter
- [X] System call interception and filtering
- [X] Track per file context
- [X] Allow authorization changes
- [X] Filter file open and create operations
- [X] Filter write operation
- [ ] Clean code: check IRQL, check paging, check fastIO, check sparse file API, check all flags in the pre-op filters...
- Daemon
- [X] Check report and files
- [X] Use CA certificate to check report certificate
- [X] Enforce system security policy
- [ ] Check USB devices
- Tray app
- [X] Display files
- [~] Display USB devices
- [X] Allow authorization changes
- [X] Add drop down menu for authorization selection

## Installation

### Driver compilation

The drivers have been tested on a Windows 10 laptop in debug mode (unsigned driver allowed).
They have been compiled with Microsoft Visual Studio 2022 with SDK and WDK version 10.0.22621.0.

### Service and application compilation

The Keysas daemon and tray application have been compiled and tested on Windows 10 with the following dependencies:

- Rust toolchain: for example <https://learn.microsoft.com/en-us/windows/dev-environment/rust/setup>
- Clang toolchain: for example <https://rust-lang.github.io/rust-bindgen/requirements.html>
- CMake: <https://cmake.org/>
- Tauri: <https://tauri.app/>
- Npm: for example <https://docs.npmjs.com/downloading-and-installing-node-js-and-npm>
7 changes: 7 additions & 0 deletions keysas-firewall/daemon/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@ wchar = "0.11"
mbrman = "0.5"
libc = "0.2"
keysas_lib = { path = "../../keysas_lib" }
serde = "1.0"
serde_json = "1.0"
serde_derive = "1.0"
clap = { version = "4", default-features = false, features = ["std", "cargo"] }
toml = "0.7"
libmailslot = {path = "../libmailslot"}
x509-cert = "0.2"

[dependencies.windows]
version = "0.48.0"
Expand Down
Loading