Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
bab65bcdad | |||
a0732a4593 | |||
835f7df0f6 | |||
2def365cae |
@@ -1,2 +1,2 @@
|
||||
target
|
||||
node_modules
|
||||
/**/target
|
||||
/**/node_modules
|
||||
|
2
.gitignore
vendored
@@ -1,6 +1,6 @@
|
||||
|
||||
# Backend
|
||||
/target
|
||||
target
|
||||
|
||||
# Client
|
||||
.DS_Store
|
||||
|
24
CHANGELOG.md
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.3.3] - 2022-01-03
|
||||
|
||||
### Fixed
|
||||
|
||||
- Bug fix due to dependency update.
|
||||
|
||||
## [1.3.2] - 2022-01-02
|
||||
|
||||
### Changed
|
||||
|
||||
- Dependencies updates.
|
||||
- Folder structure.
|
||||
|
||||
## [1.3.1] - 2021-12-30
|
||||
|
||||
### Added
|
||||
|
||||
- Short explanation in the home page.
|
||||
|
||||
### Changed
|
||||
|
||||
- Explanation in about & readme.
|
||||
- Shorten server ids from 512 to 256bit.
|
||||
|
||||
## [1.3.0] - 2021-12-22
|
||||
|
||||
### Added
|
||||
|
14
Dockerfile
@@ -1,26 +1,28 @@
|
||||
# Client
|
||||
FROM node:16-alpine as CLIENT
|
||||
|
||||
WORKDIR /tmp
|
||||
COPY ./client ./
|
||||
COPY ./frontend ./
|
||||
|
||||
RUN npm install -g pnpm
|
||||
RUN pnpm install
|
||||
RUN pnpm run build
|
||||
|
||||
FROM rust:1.51-alpine as RUST
|
||||
# Rust
|
||||
FROM rust:1.56-alpine as RUST
|
||||
|
||||
WORKDIR /tmp
|
||||
RUN apk add libc-dev openssl-dev alpine-sdk
|
||||
COPY ./Cargo* ./
|
||||
COPY ./src ./src
|
||||
COPY ./backend ./
|
||||
|
||||
RUN cargo build --release
|
||||
|
||||
FROM scratch
|
||||
# Server
|
||||
FROM alpine
|
||||
|
||||
WORKDIR /app
|
||||
COPY --from=RUST /tmp/target/release/cryptgeon .
|
||||
COPY --from=CLIENT /tmp/build ./client/build
|
||||
COPY --from=CLIENT /tmp/build ./frontend/build
|
||||
|
||||
ENV MEMCACHE=memcached:11211
|
||||
|
||||
|
@@ -30,7 +30,12 @@ Check out the demo and see for yourself https://cryptgeon.nicco.io.
|
||||
|
||||
## How does it work?
|
||||
|
||||
each note has a 512bit generated <i>id</i> that is used to retrieve the note. data is stored in memory and never persisted to disk.
|
||||
each note has a generated <code>id (256bit)</code> and <code>key 256(bit)</code>. The
|
||||
<code>id</code>
|
||||
is used to save & retrieve the note. the note is then encrypted with aes in gcm mode on the
|
||||
client side with the <code>key</code> and then sent to the server. data is stored in memory and
|
||||
never persisted to disk. the server never sees the encryption key and cannot decrypt the contents
|
||||
of the notes even if it tried to.
|
||||
|
||||
## Screenshot
|
||||
|
||||
|
98
Cargo.lock → backend/Cargo.lock
generated
@@ -13,7 +13,7 @@ dependencies = [
|
||||
"futures-core",
|
||||
"futures-sink",
|
||||
"log",
|
||||
"pin-project 0.4.28",
|
||||
"pin-project 0.4.29",
|
||||
"tokio",
|
||||
"tokio-util",
|
||||
]
|
||||
@@ -93,7 +93,7 @@ dependencies = [
|
||||
"log",
|
||||
"mime",
|
||||
"percent-encoding",
|
||||
"pin-project 1.0.8",
|
||||
"pin-project 1.0.10",
|
||||
"rand 0.7.3",
|
||||
"regex",
|
||||
"serde",
|
||||
@@ -169,7 +169,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0052435d581b5be835d11f4eb3bce417c8af18d87ddf8ace99f8e67e595882bb"
|
||||
dependencies = [
|
||||
"futures-util",
|
||||
"pin-project 0.4.28",
|
||||
"pin-project 0.4.29",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -229,7 +229,7 @@ dependencies = [
|
||||
"futures-sink",
|
||||
"futures-util",
|
||||
"log",
|
||||
"pin-project 0.4.28",
|
||||
"pin-project 0.4.29",
|
||||
"slab",
|
||||
]
|
||||
|
||||
@@ -261,7 +261,7 @@ dependencies = [
|
||||
"fxhash",
|
||||
"log",
|
||||
"mime",
|
||||
"pin-project 1.0.8",
|
||||
"pin-project 1.0.10",
|
||||
"regex",
|
||||
"serde",
|
||||
"serde_json",
|
||||
@@ -486,7 +486,7 @@ checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951"
|
||||
dependencies = [
|
||||
"percent-encoding",
|
||||
"time",
|
||||
"version_check 0.9.3",
|
||||
"version_check 0.9.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -515,7 +515,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cryptgeon"
|
||||
version = "1.3.0"
|
||||
version = "1.3.3"
|
||||
dependencies = [
|
||||
"actix-files",
|
||||
"actix-web",
|
||||
@@ -734,7 +734,7 @@ dependencies = [
|
||||
"futures-sink",
|
||||
"futures-task",
|
||||
"memchr",
|
||||
"pin-project-lite 0.2.7",
|
||||
"pin-project-lite 0.2.8",
|
||||
"pin-utils",
|
||||
"slab",
|
||||
]
|
||||
@@ -755,7 +755,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817"
|
||||
dependencies = [
|
||||
"typenum",
|
||||
"version_check 0.9.3",
|
||||
"version_check 0.9.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -837,13 +837,13 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "http"
|
||||
version = "0.2.5"
|
||||
version = "0.2.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b"
|
||||
checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03"
|
||||
dependencies = [
|
||||
"bytes 1.1.0",
|
||||
"fnv",
|
||||
"itoa 0.4.8",
|
||||
"itoa 1.0.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1138,9 +1138,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "num_cpus"
|
||||
version = "1.13.0"
|
||||
version = "1.13.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
|
||||
checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
|
||||
dependencies = [
|
||||
"hermit-abi",
|
||||
"libc",
|
||||
@@ -1218,27 +1218,27 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
|
||||
|
||||
[[package]]
|
||||
name = "pin-project"
|
||||
version = "0.4.28"
|
||||
version = "0.4.29"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "918192b5c59119d51e0cd221f4d49dde9112824ba717369e903c97d076083d0f"
|
||||
checksum = "9615c18d31137579e9ff063499264ddc1278e7b1982757ebc111028c4d1dc909"
|
||||
dependencies = [
|
||||
"pin-project-internal 0.4.28",
|
||||
"pin-project-internal 0.4.29",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pin-project"
|
||||
version = "1.0.8"
|
||||
version = "1.0.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08"
|
||||
checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e"
|
||||
dependencies = [
|
||||
"pin-project-internal 1.0.8",
|
||||
"pin-project-internal 1.0.10",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pin-project-internal"
|
||||
version = "0.4.28"
|
||||
version = "0.4.29"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e"
|
||||
checksum = "044964427019eed9d49d9d5bbce6047ef18f37100ea400912a9fa4a3523ab12a"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -1247,9 +1247,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "pin-project-internal"
|
||||
version = "1.0.8"
|
||||
version = "1.0.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389"
|
||||
checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -1264,9 +1264,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
|
||||
|
||||
[[package]]
|
||||
name = "pin-project-lite"
|
||||
version = "0.2.7"
|
||||
version = "0.2.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
|
||||
checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c"
|
||||
|
||||
[[package]]
|
||||
name = "pin-utils"
|
||||
@@ -1282,9 +1282,9 @@ checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe"
|
||||
|
||||
[[package]]
|
||||
name = "ppv-lite86"
|
||||
version = "0.2.15"
|
||||
version = "0.2.16"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba"
|
||||
checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-hack"
|
||||
@@ -1294,9 +1294,9 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.34"
|
||||
version = "1.0.36"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2f84e92c0f7c9d58328b85a78557813e4bd845130db68d7184635344399423b1"
|
||||
checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
|
||||
dependencies = [
|
||||
"unicode-xid",
|
||||
]
|
||||
@@ -1309,9 +1309,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.10"
|
||||
version = "1.0.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
|
||||
checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
]
|
||||
@@ -1521,18 +1521,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.132"
|
||||
version = "1.0.133"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8b9875c23cf305cd1fd7eb77234cbb705f21ea6a72c637a5c6db5fe4b8e7f008"
|
||||
checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.132"
|
||||
version = "1.0.133"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ecc0db5cb2556c0e558887d9bbdcf6ac4471e83ff66cf696e5419024d1606276"
|
||||
checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -1541,9 +1541,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.73"
|
||||
version = "1.0.74"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bcbd0344bc6533bc7ec56df11d42fb70f1b912351c0825ccb7211b59d8af7cf5"
|
||||
checksum = "ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142"
|
||||
dependencies = [
|
||||
"itoa 1.0.1",
|
||||
"ryu",
|
||||
@@ -1625,7 +1625,7 @@ version = "0.2.17"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff"
|
||||
dependencies = [
|
||||
"version_check 0.9.3",
|
||||
"version_check 0.9.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1679,9 +1679,9 @@ checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "1.0.82"
|
||||
version = "1.0.84"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59"
|
||||
checksum = "ecb2e6da8ee5eb9a61068762a32fa9619cc591ceb055b3687f4cd4051ec2e06b"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -1728,7 +1728,7 @@ dependencies = [
|
||||
"standback",
|
||||
"stdweb",
|
||||
"time-macros",
|
||||
"version_check 0.9.3",
|
||||
"version_check 0.9.4",
|
||||
"winapi 0.3.9",
|
||||
]
|
||||
|
||||
@@ -1812,7 +1812,7 @@ checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"log",
|
||||
"pin-project-lite 0.2.7",
|
||||
"pin-project-lite 0.2.8",
|
||||
"tracing-core",
|
||||
]
|
||||
|
||||
@@ -1831,7 +1831,7 @@ version = "0.2.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
|
||||
dependencies = [
|
||||
"pin-project 1.0.8",
|
||||
"pin-project 1.0.10",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
@@ -1876,9 +1876,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "typenum"
|
||||
version = "1.14.0"
|
||||
version = "1.15.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec"
|
||||
checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
|
||||
|
||||
[[package]]
|
||||
name = "unicase"
|
||||
@@ -1886,7 +1886,7 @@ version = "2.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
|
||||
dependencies = [
|
||||
"version_check 0.9.3",
|
||||
"version_check 0.9.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1986,9 +1986,9 @@ checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
|
||||
|
||||
[[package]]
|
||||
name = "version_check"
|
||||
version = "0.9.3"
|
||||
version = "0.9.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
|
||||
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
||||
|
||||
[[package]]
|
||||
name = "wasi"
|
@@ -1,8 +1,8 @@
|
||||
[package]
|
||||
name = "cryptgeon"
|
||||
version = "1.3.0"
|
||||
version = "1.3.3"
|
||||
authors = ["cupcakearmy <hi@nicco.io>"]
|
||||
edition = "2018"
|
||||
edition = "2021"
|
||||
|
||||
[[bin]]
|
||||
name = "cryptgeon"
|
@@ -2,9 +2,9 @@ use actix_files::{Files, NamedFile};
|
||||
use actix_web::{web, Responder};
|
||||
|
||||
pub fn init(cfg: &mut web::ServiceConfig) {
|
||||
cfg.service(Files::new("/", "./client/build").index_file("index.html"));
|
||||
cfg.service(Files::new("/", "./frontend/build").index_file("index.html"));
|
||||
}
|
||||
|
||||
pub async fn fallback_fn() -> impl Responder {
|
||||
NamedFile::open("./client/build/index.html")
|
||||
NamedFile::open("./frontend/build/index.html")
|
||||
}
|
@@ -20,7 +20,7 @@ pub struct NotePublic {
|
||||
}
|
||||
|
||||
pub fn generate_id() -> String {
|
||||
let mut id: [u8; 64] = [0; 64];
|
||||
let mut id: [u8; 32] = [0; 32];
|
||||
let sr = ring::rand::SystemRandom::new();
|
||||
let _ = sr.fill(&mut id);
|
||||
return bs62::encode_data(&id);
|
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"fixturesFolder": false,
|
||||
"pluginsFile": false,
|
||||
"supportFile": false
|
||||
}
|
0
client/.gitignore → frontend/.gitignore
vendored
@@ -8,13 +8,13 @@
|
||||
},
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
"@sveltejs/adapter-static": "^1.0.0-next.22",
|
||||
"@sveltejs/kit": "^1.0.0-next.202",
|
||||
"@sveltejs/adapter-static": "^1.0.0-next.24",
|
||||
"@sveltejs/kit": "^1.0.0-next.212",
|
||||
"svelte": "^3.44.3",
|
||||
"svelte-preprocess": "^4.10.1",
|
||||
"tslib": "^2.3.1",
|
||||
"typescript": "^4.5.4",
|
||||
"vite": "^2.7.4"
|
||||
"vite": "^2.7.10"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fontsource/fira-mono": "^4.5.0",
|
93
client/pnpm-lock.yaml → frontend/pnpm-lock.yaml
generated
@@ -2,8 +2,8 @@ lockfileVersion: 5.3
|
||||
|
||||
specifiers:
|
||||
'@fontsource/fira-mono': ^4.5.0
|
||||
'@sveltejs/adapter-static': ^1.0.0-next.22
|
||||
'@sveltejs/kit': ^1.0.0-next.202
|
||||
'@sveltejs/adapter-static': ^1.0.0-next.24
|
||||
'@sveltejs/kit': ^1.0.0-next.212
|
||||
copy-to-clipboard: ^3.3.1
|
||||
file-saver: ^2.0.5
|
||||
pretty-bytes: ^5.6.0
|
||||
@@ -11,7 +11,7 @@ specifiers:
|
||||
svelte-preprocess: ^4.10.1
|
||||
tslib: ^2.3.1
|
||||
typescript: ^4.5.4
|
||||
vite: ^2.7.4
|
||||
vite: ^2.7.10
|
||||
|
||||
dependencies:
|
||||
'@fontsource/fira-mono': 4.5.0
|
||||
@@ -20,13 +20,13 @@ dependencies:
|
||||
pretty-bytes: 5.6.0
|
||||
|
||||
devDependencies:
|
||||
'@sveltejs/adapter-static': 1.0.0-next.22
|
||||
'@sveltejs/kit': 1.0.0-next.202_svelte@3.44.3
|
||||
'@sveltejs/adapter-static': 1.0.0-next.24
|
||||
'@sveltejs/kit': 1.0.0-next.212_svelte@3.44.3
|
||||
svelte: 3.44.3
|
||||
svelte-preprocess: 4.10.1_svelte@3.44.3+typescript@4.5.4
|
||||
tslib: 2.3.1
|
||||
typescript: 4.5.4
|
||||
vite: 2.7.4
|
||||
vite: 2.7.10
|
||||
|
||||
packages:
|
||||
|
||||
@@ -39,25 +39,26 @@ packages:
|
||||
engines: {node: '>= 8.0.0'}
|
||||
dependencies:
|
||||
estree-walker: 2.0.2
|
||||
picomatch: 2.3.0
|
||||
picomatch: 2.3.1
|
||||
dev: true
|
||||
|
||||
/@sveltejs/adapter-static/1.0.0-next.22:
|
||||
resolution: {integrity: sha512-Dc1V9Z72dA7caVwNxxzl9Jhcq4uN9N1udA2GKNTLMu3aWX3Cq+v6C2CddY9Aazr+F9h6J0vi9AienuH+ySRXzQ==}
|
||||
/@sveltejs/adapter-static/1.0.0-next.24:
|
||||
resolution: {integrity: sha512-lMiwZrZumWRrTQxaj9pFs5oW0h/97spyDl1QjmnkNaA006WeqornoETt31WpU0Lz2/2uYNXvUBBcL1LGc9Vylg==}
|
||||
dependencies:
|
||||
tiny-glob: 0.2.9
|
||||
dev: true
|
||||
|
||||
/@sveltejs/kit/1.0.0-next.202_svelte@3.44.3:
|
||||
resolution: {integrity: sha512-rXmJ0FplkWvD1CaeCfejRYhOJYrlmeUm5Fkw7gIKDdWPQev5rqOhd9B9ZvRpq35oMqCAwaOfK+e5S6k+83feEQ==}
|
||||
/@sveltejs/kit/1.0.0-next.212_svelte@3.44.3:
|
||||
resolution: {integrity: sha512-hjpk/Rqrl6hhNf1Qsx6EDvL3Cm9JvmvW/Z1FRYVhGg1xin/JQkPgFzTU27NBSYhtK1t4buLmlO1tqdMvurs9Fg==}
|
||||
engines: {node: '>=14.13'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
svelte: ^3.44.0
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte': 1.0.0-next.32_svelte@3.44.3+vite@2.7.4
|
||||
cheap-watch: 1.0.4
|
||||
sade: 1.7.4
|
||||
'@sveltejs/vite-plugin-svelte': 1.0.0-next.33_svelte@3.44.3+vite@2.7.10
|
||||
sade: 1.8.0
|
||||
svelte: 3.44.3
|
||||
vite: 2.7.4
|
||||
vite: 2.7.10
|
||||
transitivePeerDependencies:
|
||||
- diff-match-patch
|
||||
- less
|
||||
@@ -66,8 +67,8 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@sveltejs/vite-plugin-svelte/1.0.0-next.32_svelte@3.44.3+vite@2.7.4:
|
||||
resolution: {integrity: sha512-Lhf5BxVylosHIW6U2s6WDQA39ycd+bXivC8gHsXCJeLzxoHj7Pv7XAOk25xRSXT4wHg9DWFMBQh2DFU0DxHZ2g==}
|
||||
/@sveltejs/vite-plugin-svelte/1.0.0-next.33_svelte@3.44.3+vite@2.7.10:
|
||||
resolution: {integrity: sha512-aj0h2+ZixgT+yoJFIs8dRRw/Cj9tgNu3+hY4CJikpa04mfhR61wXqJFfi2ZEFMUvFda5nCxKYIChFkc6wq5fJA==}
|
||||
engines: {node: ^14.13.1 || >= 16}
|
||||
peerDependencies:
|
||||
diff-match-patch: ^1.0.5
|
||||
@@ -83,24 +84,24 @@ packages:
|
||||
magic-string: 0.25.7
|
||||
require-relative: 0.8.7
|
||||
svelte: 3.44.3
|
||||
svelte-hmr: 0.14.7_svelte@3.44.3
|
||||
vite: 2.7.4
|
||||
svelte-hmr: 0.14.9_svelte@3.44.3
|
||||
vite: 2.7.10
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@types/node/17.0.1:
|
||||
resolution: {integrity: sha512-NXKvBVUzIbs6ylBwmOwHFkZS2EXCcjnqr8ZCRNaXBkHAf+3mn/rPcJxwrzuc6movh8fxQAsUUfYklJ/EG+hZqQ==}
|
||||
/@types/node/17.0.6:
|
||||
resolution: {integrity: sha512-+XBAjfZmmivILUzO0HwBJoYkAyyySSLg5KCGBDFLomJo0sV6szvVLAf4ANZZ0pfWzgEds5KmGLG9D5hfEqOhaA==}
|
||||
dev: true
|
||||
|
||||
/@types/pug/2.0.5:
|
||||
resolution: {integrity: sha512-LOnASQoeNZMkzexRuyqcBBDZ6rS+rQxUMkmj5A0PkhhiSZivLIuz6Hxyr1mkGoEZEkk66faROmpMi4fFkrKsBA==}
|
||||
/@types/pug/2.0.6:
|
||||
resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==}
|
||||
dev: true
|
||||
|
||||
/@types/sass/1.43.1:
|
||||
resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==}
|
||||
dependencies:
|
||||
'@types/node': 17.0.1
|
||||
'@types/node': 17.0.6
|
||||
dev: true
|
||||
|
||||
/balanced-match/1.0.2:
|
||||
@@ -118,11 +119,6 @@ packages:
|
||||
resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=}
|
||||
dev: true
|
||||
|
||||
/cheap-watch/1.0.4:
|
||||
resolution: {integrity: sha512-QR/9FrtRL5fjfUJBhAKCdi0lSRQ3rVRRum3GF9wDKp2TJbEIMGhUEr2yU8lORzm9Isdjx7/k9S0DFDx+z5VGtw==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/concat-map/0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
dev: true
|
||||
@@ -349,6 +345,14 @@ packages:
|
||||
path-is-absolute: 1.0.1
|
||||
dev: true
|
||||
|
||||
/globalyzer/0.1.0:
|
||||
resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
|
||||
dev: true
|
||||
|
||||
/globrex/0.1.2:
|
||||
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
|
||||
dev: true
|
||||
|
||||
/graceful-fs/4.2.8:
|
||||
resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==}
|
||||
dev: true
|
||||
@@ -444,8 +448,8 @@ packages:
|
||||
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
|
||||
dev: true
|
||||
|
||||
/picomatch/2.3.0:
|
||||
resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==}
|
||||
/picomatch/2.3.1:
|
||||
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
|
||||
engines: {node: '>=8.6'}
|
||||
dev: true
|
||||
|
||||
@@ -481,16 +485,16 @@ packages:
|
||||
glob: 7.2.0
|
||||
dev: true
|
||||
|
||||
/rollup/2.61.1:
|
||||
resolution: {integrity: sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==}
|
||||
/rollup/2.62.0:
|
||||
resolution: {integrity: sha512-cJEQq2gwB0GWMD3rYImefQTSjrPYaC6s4J9pYqnstVLJ1CHa/aZNVkD4Epuvg4iLeMA4KRiq7UM7awKK6j7jcw==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
hasBin: true
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.2
|
||||
dev: true
|
||||
|
||||
/sade/1.7.4:
|
||||
resolution: {integrity: sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==}
|
||||
/sade/1.8.0:
|
||||
resolution: {integrity: sha512-NRfCA8AVYuAA7Hu8bs18od6J4BdcXXwOv6OJuNgwbw8LcLK8JKwaM3WckLZ+MGyPJUS/ivVgK3twltrOIJJnug==}
|
||||
engines: {node: '>=6'}
|
||||
dependencies:
|
||||
mri: 1.2.0
|
||||
@@ -531,8 +535,8 @@ packages:
|
||||
min-indent: 1.0.1
|
||||
dev: true
|
||||
|
||||
/svelte-hmr/0.14.7_svelte@3.44.3:
|
||||
resolution: {integrity: sha512-pDrzgcWSoMaK6AJkBWkmgIsecW0GChxYZSZieIYfCP0v2oPyx2CYU/zm7TBIcjLVUPP714WxmViE9Thht4etog==}
|
||||
/svelte-hmr/0.14.9_svelte@3.44.3:
|
||||
resolution: {integrity: sha512-bKE9+4qb4sAnA+TKHiYurUl970rjA0XmlP9TEP7K/ncyWz3m81kA4HOgmlZK/7irGK7gzZlaPDI3cmf8fp/+tg==}
|
||||
peerDependencies:
|
||||
svelte: '>=3.19.0'
|
||||
dependencies:
|
||||
@@ -580,7 +584,7 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@types/pug': 2.0.5
|
||||
'@types/pug': 2.0.6
|
||||
'@types/sass': 1.43.1
|
||||
detect-indent: 6.1.0
|
||||
magic-string: 0.25.7
|
||||
@@ -595,6 +599,13 @@ packages:
|
||||
engines: {node: '>= 8'}
|
||||
dev: true
|
||||
|
||||
/tiny-glob/0.2.9:
|
||||
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
|
||||
dependencies:
|
||||
globalyzer: 0.1.0
|
||||
globrex: 0.1.2
|
||||
dev: true
|
||||
|
||||
/toggle-selection/1.0.6:
|
||||
resolution: {integrity: sha1-bkWxJj8gF/oKzH2J14sVuL932jI=}
|
||||
dev: false
|
||||
@@ -609,8 +620,8 @@ packages:
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/vite/2.7.4:
|
||||
resolution: {integrity: sha512-f+0426k9R/roz5mRNwJlQ+6UOnhCwIypJSbfgCmsVzVJe9jTTM5iRX2GWYUean+iqPBWaU/dYLryx9AoH2pmrw==}
|
||||
/vite/2.7.10:
|
||||
resolution: {integrity: sha512-KEY96ntXUid1/xJihJbgmLZx7QSC2D4Tui0FdS0Old5OokYzFclcofhtxtjDdGOk/fFpPbHv9yw88+rB93Tb8w==}
|
||||
engines: {node: '>=12.2.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -628,7 +639,7 @@ packages:
|
||||
esbuild: 0.13.15
|
||||
postcss: 8.4.5
|
||||
resolve: 1.20.0
|
||||
rollup: 2.61.1
|
||||
rollup: 2.62.0
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.2
|
||||
dev: true
|
@@ -97,6 +97,10 @@
|
||||
<br />
|
||||
<Button on:click={reset}>new note</Button>
|
||||
{:else}
|
||||
<p>
|
||||
Easily send <i>fully encrypted</i>, secure notes or files with one click. Just create a note and
|
||||
share the link.
|
||||
</p>
|
||||
<form on:submit|preventDefault={submit}>
|
||||
<fieldset disabled={loading}>
|
||||
{#if file}
|
@@ -22,10 +22,12 @@
|
||||
|
||||
<AboutParagraph title="how does it work?">
|
||||
<span>
|
||||
each note has a 512bit generated <i>id</i> that is used to retrieve the note. the note is then
|
||||
encrypted with aes in gcm mode on the client side and then sent to the server. data is stored in
|
||||
memory and never persisted to disk. the server never sees the encryption key and cannot decrypt
|
||||
the contents of the notes even if it tried to.
|
||||
each note has a generated <code>id (256bit)</code> and <code>key 256(bit)</code>. The
|
||||
<code>id</code>
|
||||
is used to save & retrieve the note. the note is then encrypted with aes in gcm mode on the client
|
||||
side with the <code>key</code> and then sent to the server. data is stored in memory and never
|
||||
persisted to disk. the server never sees the encryption key and cannot decrypt the contents of
|
||||
the notes even if it tried to.
|
||||
</span>
|
||||
</AboutParagraph>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<script context="module" lang="ts">
|
||||
export async function load({ page }) {
|
||||
export async function load({ params }) {
|
||||
return {
|
||||
props: page.params,
|
||||
props: params,
|
||||
}
|
||||
}
|
||||
</script>
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 279 B After Width: | Height: | Size: 279 B |
Before Width: | Height: | Size: 313 B After Width: | Height: | Size: 313 B |
Before Width: | Height: | Size: 728 B After Width: | Height: | Size: 728 B |
Before Width: | Height: | Size: 720 B After Width: | Height: | Size: 720 B |
Before Width: | Height: | Size: 474 B After Width: | Height: | Size: 474 B |
Before Width: | Height: | Size: 275 B After Width: | Height: | Size: 275 B |
@@ -1,17 +1,13 @@
|
||||
{
|
||||
"scripts": {
|
||||
"dev:docker": "docker-compose up memcached",
|
||||
"dev:backend": "cargo watch -x 'run --bin cryptgeon'",
|
||||
"dev:front": "pnpm --prefix client run dev",
|
||||
"dev:backend": "cd backend && cargo watch -x 'run --bin cryptgeon'",
|
||||
"dev:front": "pnpm --prefix frontend run dev",
|
||||
"dev:proxy": "node proxy.mjs",
|
||||
"dev": "run-p dev:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"http-proxy": "^1.18.1",
|
||||
"npm-run-all": "^4.1.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"file-saver": "^2.0.5",
|
||||
"pretty-bytes": "^5.6.0"
|
||||
}
|
||||
}
|
||||
|
15
pnpm-lock.yaml
generated
@@ -1,14 +1,8 @@
|
||||
lockfileVersion: 5.3
|
||||
|
||||
specifiers:
|
||||
file-saver: ^2.0.5
|
||||
http-proxy: ^1.18.1
|
||||
npm-run-all: ^4.1.5
|
||||
pretty-bytes: ^5.6.0
|
||||
|
||||
dependencies:
|
||||
file-saver: 2.0.5
|
||||
pretty-bytes: 5.6.0
|
||||
|
||||
devDependencies:
|
||||
http-proxy: 1.18.1
|
||||
@@ -128,10 +122,6 @@ packages:
|
||||
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
|
||||
dev: true
|
||||
|
||||
/file-saver/2.0.5:
|
||||
resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==}
|
||||
dev: false
|
||||
|
||||
/follow-redirects/1.14.6:
|
||||
resolution: {integrity: sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==}
|
||||
engines: {node: '>=4.0'}
|
||||
@@ -367,11 +357,6 @@ packages:
|
||||
engines: {node: '>=4'}
|
||||
dev: true
|
||||
|
||||
/pretty-bytes/5.6.0:
|
||||
resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/read-pkg/3.0.0:
|
||||
resolution: {integrity: sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=}
|
||||
engines: {node: '>=4'}
|
||||
|
18
proxy.mjs
@@ -1,19 +1,15 @@
|
||||
import http from 'http'
|
||||
import httpProxy from 'http-proxy'
|
||||
|
||||
function start() {
|
||||
try {
|
||||
const proxy = httpProxy.createProxyServer({})
|
||||
const proxy = httpProxy.createProxyServer()
|
||||
proxy.on('error', function (err, req, res) {
|
||||
res.writeHead(500, { 'Content-Type': 'text/plain' })
|
||||
res.end('500 Internal Server Error')
|
||||
})
|
||||
|
||||
const server = http.createServer(function (req, res) {
|
||||
const target = req.url.startsWith('/api/') ? 'http://localhost:5000' : 'http://localhost:3000'
|
||||
proxy.web(req, res, { target })
|
||||
})
|
||||
server.listen(1234)
|
||||
|
||||
server.on('error', () => start())
|
||||
} catch (e) {
|
||||
start()
|
||||
}
|
||||
}
|
||||
|
||||
start()
|
||||
console.log('Proxy on http://localhost:1234')
|
||||
|