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
Last synced: 6 months ago · JSON representation ·

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
Created about 2 years ago · Last pushed about 2 years ago
Metadata Files
Readme License Citation

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

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

Cargo.toml cargo
  • 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
package-lock.json npm