client-encdec
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.9%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: mfalda
- License: apache-2.0
- Language: HTML
- Default Branch: main
- Size: 1.04 MB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Description
The HTTPS protocol has enforced a higher level of robustness to several attacks; however, it is not easy to set up the required certificates on intranets, nor is it effective in the case the server confidentiality is not reliable, as in the case of cloud services, or it could be compromised. A simple method is proposed to encrypt the data on the client side, using Web Assembly. It never transfers data to the server as clear text. Searching fields in the server is made possible by an encoding scheme that ensures a stable prefix correspondence between ciphertext and plaintext. The method has been developed for a semantic medical database, and allows accessing personal data using an additional password while maintaining non-sensitive information in clear form. Web Assembly has been chosen to guarantee the fast and efficient execution of encrypting/decrypting operations and because of its characteristic of producing modules that are very robust against reverse engineering.
If you use this library please cite:
Marco Falda and Angela Grassi: "Simple client-side encryption of personal information with Web Assembly", arXiv preprint arXiv:2312.17689, DOI: https://doi.org/10.48550/arXiv.2312.17689, 2023.
Available functions
There are two main functions:
encryptText(pwd, text, pref_len)
and
encryptText(pwd, text, pref_len)
The parameters are self-explaining.
Compiling
Compile the source code with the command (in the script build_pkg.sh)
wasm-pack build --target web
The package will be created in the folder /home/debian/Documents/client-encdec/pkg
Tests
Run the (unit) tests with
cargo test
Benchmarking
In the file index.html there is a example form and a benchmark. It must be opened in a webserver, for instance using the simple Python HTTP server in example_server.sh:
python3 -m http.server
License
Licensed under Apache License, Version 2.0, (http://www.apache.org/licenses/LICENSE-2.0)
Owner
- Name: Marco Falda
- Login: mfalda
- Kind: user
- Location: Vicenza, Italy
- Company: University of Padova
- Repositories: 2
- Profile: https://github.com/mfalda
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Marco"
given-names: "Falda"
orcid: "https://orcid.org/0000-0003-2642-519X"
- family-names: "Angela"
given-names: "Grassi"
orcid: "https://orcid.org/0000-0002-8313-8384"
title: "Simple client-side encryption of personal information with Web Assembly"
version: 1.0.0
doi: 10.48550/arXiv.2312.17689
date-released: 2023-12-28
url: "https://github.com/mfalda/client-encdec"
preferred-citation:
type: article
authors:
- family-names: "Marco"
given-names: "Falda"
orcid: "https://orcid.org/0000-0003-2642-519X"
- family-names: "Angela"
given-names: "Grassi"
orcid: "https://orcid.org/0000-0002-8313-8384"
doi: "10.48550/arXiv.2312.17689"
journal: "arXiv preprint"
title: "Simple client-side encryption of personal information with Web Assembly"
year: 2023
GitHub Events
Total
Last Year
Dependencies
- wasm-bindgen-test 0.3.13 development
- aes-gcm-siv 0.11.1
- console_error_panic_hook 0.1.6
- format-bytes 0.3.0
- getrandom 0.2
- hex 0.4
- lazy_static 1.4.0
- rand 0.8.5
- rust-argon2 1.0.0
- utf8_slice 1.0.0
- wasm-bindgen 0.2.63
- wee_alloc 0.4.5