Skip to content

Commit 4c5ed04

Browse files
authored
feat: Initial implementation (#12)
* Answers are case insensitive and strip out non-word chars * Questions are customisable * Personal information (like email, username, etc...) are customisable * Configuration over Env variables * i18n * Keypair generation when use answer to questions
1 parent 73e4420 commit 4c5ed04

34 files changed

Lines changed: 6687 additions & 34 deletions

.env.sample

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#BACKEND CREDENTIALS
2+
BACKEND_PRIVATE_KEY=Aku7vkJ7K01gQehKELav3qaQfTeTMZKgK+5VhaR3Ui0=
3+
BACKEND_PUBLIC_KEY=BBCQg21VcjsmfTmNsg+I+8m1Cm0neaYONTqRnXUjsJLPa8075IYH+a9w2wRO7rFM1cKmv19Igd7ntDZcUvLq3xI=
4+
BACKEND_PASSWORD=myVerySecretPassword
5+
6+
#UNCOMMENT HERE IF YOU WANT TO OVERRIDE DEFAULT WITH A DIFFERENT CONTRACT
7+
#SERVER_SIDE_CONTRACT=zencode/Keypair-Creation-Server-Side.zen
8+
#CLIENT_SIDE_CONTRACT=zencode/Keypair-Creation-Client-Side.zen
9+
10+
#UNCOMMENT HERE IF YOU WANT TO OVERRIDE FOLDER OR FILENAME default: prop/questions-en_GB.json
11+
#QUESTION_FOLDER=props/
12+
#QUESTION_FILE_PREPEND=questions-

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
client_input.data
22
key_derivation.keys
33
recreated_keypair.keys
4+
node_modules
5+
lib
6+
.env

.npmignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
src
2+
tsconfig.json
3+
tslint.json
4+
.prettierrc
5+
.env

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,23 @@ See here what the scripts will return:
5151

5252
- The deployment is done [via restroom-mw](https://dyne.github.io/restroom-mw/#/) and can be installed using the script [deployAPI.sh](deployAPI.sh) or the [Dockerfile](Dockerfile), info about Dockerfile deployment [here](https://dev.zenroom.org/#/pages/apiroom?id=build-and-run-the-docker-image).
5353

54+
# Keypair lib
55+
56+
To configure backend environment variables please put an .env file at the top of your project like this or rename .env.sample to .env:
57+
58+
```json
59+
#BACKEND CREDENTIALS
60+
BACKEND_PRIVATE_KEY=Aku7vkJ7K01gQehKELav3qaQfTeTMZKgK+5VhaR3Ui0=
61+
BACKEND_PUBLIC_KEY=BBCQg21VcjsmfTmNsg+I+8m1Cm0neaYONTqRnXUjsJLPa8075IYH+a9w2wRO7rFM1cKmv19Igd7ntDZcUvLq3xI=
62+
BACKEND_PASSWORD=myVerySecretPassword
63+
64+
#UNCOMMENT HERE IF YOU WANT TO OVERRIDE DEFAULT WITH A DIFFERENT CONTRACT
65+
#SERVER_SIDE_CONTRACT=zencode/Keypair-Creation-Server-Side.zen
66+
#CLIENT_SIDE_CONTRACT=zencode/Keypair-Creation-Client-Side.zen
67+
68+
#UNCOMMENT HERE IF YOU WANT TO OVERRIDE FOLDER OR FILENAME default: prop/questions-en_GB.json
69+
#QUESTION_FOLDER=props/
70+
#QUESTION_FILE_PREPEND=questions-
71+
```
5472

5573

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<mxfile host="app.diagrams.net" modified="2021-04-09T12:08:31.511Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36" etag="34vsR4jA3hFh-NreXZ0f" version="14.1.9" type="device"><diagram id="kgpKYQtTHZ0yAKxKKP6v" name="Page-1">5VrbcuI4EP0aqmYfkjK+QR6BJEztkJlkyW4yT1PCFrZqhGVkOcB+/UpYMr4oxCFAoPYJqyW3W6ePj6Q2LWswWw4piMM74kPcMg1/2bKuW6bZtpwO/xGWVWbp2N3MEFDky0Ebwxj9C6XRkNYU+TApDWSEYIbistEjUQQ9VrIBSsmiPGxKcPmpMQhgzTD2AK5bn5DPwszadYyN/StEQaie3DZkzwyowdKQhMAni4LJumlZA0oIy65mywHEAjyFS3bf7Su9eWAURqzJDVaU9m+X9MpbjYw4+vH0aILhhfTyAnAqJ3xHJohP3jR69/cycLZSaPA5xOIyneERmkKMIt7qx5CiGWSQ8h4szfcbW5/nhgFuE/3tdRtjECdosnZrcAuFXkoT9AL/gklGgbWVpJEPfdnK8Vs3GCW/84wIp3U41NwgZXBZMEl4hpDwAOmKD5G9ZtvJbpFc7crMLTaJz9MbFpLuqoFAki3IXW/ywS9kSt6RHrOWnlpKYoIitn6u028515V0EMpCEpAI4GJCPgjsViY1Rtsug93RgV3H2nL2gPWvYBj+mvdvuysP9/98ZKN/Vt90rwIKKOCT3vIW9DxGBKJi2oirxghMIL4nCWKIRHzIhDBGZoUBPYwC0cFIzK0hm2EJM0mZeG8GuY4Z+yF12zZKOF/VcbZ0nD4UzHVKf4OrGCDKjRhN/meSY3fK2Tmq5GjzY3VPUnO2cmlXzcmhfUN09vEyhO3B5OfV893DyECxG47nf/940mjOZ2Fdw7Ap/E2xttzjYa2P1tCA7WL+2D5XHTcQF2MwhUzM4SGFiZDwJB9C1ZjXLTys3NMDB9EFMyHy0SSJ173GKZiqwT+YpxBVk0CtU4iqSaD2KUTVJFDnFKJqEGjd8v3m+bEmlWXZW4SIwXEMPNG74KfT8n5rH1srpV9S4nR7q7aSnaLG5Xuy/YtcgxXlXTBNEcYDgsUm9zoi673XPpCzysjZmoW4qwHOdA6FW4OT1ing5pZxs6w6braOcAfjm3ueuNmfjVvnPHFzPhk360z0rYqbZvN7XNzOVN80VaHj4mafJ26aOsJxcXNquAXkO1zWi2nVwlheMUsYoKwnSvjinMsdcRuMfGWZYOL9VsPkd4Nua/eaDfRLHwJehfrCuDRdV95EIQYMvZS/FejAlO7uxWG+VSg4V7ZBbavsIiEp9aC8yyzU9quOXPvS2e6KwxRAtsWVGkim0wSyGgNyJHYnhV0Xobk8Z49Q8g5q6Ghw4LQbl4YKXyKsqk8f5IBTPUSYxo4c6Lzh6AQY4Oi2PdnZbkrWMWzS785TojoushJtjw8w7Xi56aydEJVhKCZgqHrO7RhEiAkffJZRsoA04VfzTZHHSBPogQTqSjkFWxakMlfoyoS8lcQ+42FF7jUrAJAE9zg7YfFzgmL+DPm+eIx2dSmvP3tYTczK6cysLyaOrih9sE8zbl04OJOz5OaVui88hXQEoiAFAfzjkGLCkaWrZ9HNRVc2f66bhmUpw/VS3p+1VsVWoVa7PWfZuy/X9C0fCLNXe9t63G0odx9UM7tbpo5zVTmxN1Uz56qyNHY7jdRsB6XSVubrjEukhPSUfpwdwSrJ1zBu73yoLkp2tbzfmA/mG44OzAfrVT74RyDE7vk79vbFrn6Y3HX7UnN00O0Lb27+iZMN3/yfybr5Dw==</diagram></mxfile>
45 KB
Loading
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<mxfile host="app.diagrams.net" modified="2021-04-09T11:58:53.440Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36" etag="T9bfDzqRZYAq1H8pTQ5d" version="14.1.9" type="device"><diagram id="kgpKYQtTHZ0yAKxKKP6v" name="Page-1">5Vzfc5s4EP5rPNN7iIdfEvgxdprcXNI2bXrX3r10MMg2E2w5ICf2/fUnQMJIIphgY+NLXooWIcS3n1a7q6175mi+vonc5ewT9lHYMzR/3TOveoahm8Cm/ySSTSaxLScTTKPAZ522gofgX8SEGpOuAh/FQkeCcUiCpSj08GKBPCLI3CjCL2K3CQ7Fty7dKVIED54bqtIfgU9mmdQB2lb+OwqmM/5mXWN35i7vzATxzPXxS0FkfuyZowhjkl3N1yMUJuBxXLLnrl+5m08sQgtS5wFzsRper6OBt7nTlosvP74b7s0FG+XZDVfsgz/hcUA/3tAu7+/ZxMmGo0G/YZlcrubhXTBBYbCgreESRcEcERTROyET329lQ6ob4lJZcl9P22HoLuNgnA6rUUmEvFUUB8/oG4ozCqRSvFr4yGetHL+0QSL8mGskGVSFg38bighaF0QMnhuE6QSjDe3C7ho6yB5hXHWY5l62is/VOysoHfKOLiPbNB96qw96wVTyBvUYinoUlSxxsCDpe8GwB64kdeCIzPAUL9ywqJA9ga1kUm20LRFsuwxsFWtgt4U1ULB+QBH9nHe2CCxur06xCH5Nb2a/nobXzsYLh398J3d/bW4vuK09h1UA3gy3uAoArLcM2gPbeT9gGzXBhm2BXbL7BtPIpR9dYXMuPYITRJPPDqijcueOUXiP44AEeEG7jDEheF7ocBkG0+QGwUsqnZF5yGDGK5JYqVHuOmmHMSG6JZqQgQqzeUyY1V30Fm2WbkBNuxYG43dm4KHeNQNvdtPmVHKpqc2xNHBam2MpWP+DFjQKmb+zZeCYu5dBqWJaWwZWN/2cShbVhhuIaOde5o5lYLa2J5SBDUP62iHdEOA0uXhwJ4gk3/B1heJkd43zLhHv87qETisf6SsFB7rzZP9djONlelfrgkie/FejC7OqM1GzC7OqM1GrC7OqM1HQhVnVmKgq+fzx53fFVIpm72UWEPSwdL3k7kvkSq7wIbxeya/SS9xenZudoo3L3eXDGzk1wNgPpkkQhiMcJvHH1QKn/sAhkJO2YlNTkXNKgDNAW7jVyLt1ATco4pbvlgXcrDLCtcY3eJ64WafGzT5P3MCJcTPPxL7JuJXknY6L25nat5IzguPipgbPZ4FbSWx7XNzUs5Up/ozWap5TzlnmycyYuBG5TA50kziXDkRlaOFzyTjE3iPvxk6RnV7zPALyhWPhV6G+0PoGhOyhCIUuCZ6RMFIZmGy4+ySY7xWOHyU3SDfFIWK8ijzEntqqRB0IWn1QPRSFaYpIxVC8I55MYkQUBuRI7EEKddNLpjS8vbruJY6EqSc6+7CKUXTlEve33sjoXWr1GVPGjmo2oHVAfibXfd76O+nbNyl/s/bVmj2cNjaFRiHhUp1Gz5TI1FJx5ptpqAI/flJTl6paXzMhFGgBDsNbW+Qt0Jy+DrT8TxqwLoshECdrOU73ODxQOPyYHi2QUYTcJGU0CgPKgIfARwVSc073DPpa7Unv959Adp3S/7c2Sd7c5O1JE6jQBDQjhuPI5k0Z6hVqHErtlup35idK7ZsnuueYgn1y2rFOlUnqN1gdyxCUxQ3cnnRyoC2zQM4H1LY0kr+kDNQBS8NBPA3ltL5lC5Sz8vYBSHdyLkGgcMlsyCXV91KG6gKbTIVNCo06fPzXTtg0cEQz0IETwRoH41xN3oaqwkeRuTvqHGdY341zges9TlMNfMlKQpic6UcHpQBXM2s37HwNl1XhlOGstxafAjU+vRoqSJMkYBWAzJgpMbGEnC6zxB7FDhVrd7iJnge+n7ymVHPi0ji8HthdUzRber2cgdGWTjgrzuI0/M1gg92ZrbIl0NpJkf2e0IYl50tHRdtSw8aIDhygZ5QGgIWkx1HSHYaY7tDf7ttRjUUbFpxYvJ0NRwM/LtiOl7Y2xdbhQhSeGNmZQYF1Y5lDJ0hgQ+dS1+QUIRiII7Uc+AI1CmEJu6OEvWJazoF78FQXSXpkinLmHTzJR0HSDGcgkOTiMOnpgcRiS5PMY10WW7Y4P9PpXoAEyk5ks7KTCU7nsCU7fFphfuMic5kvaQfDWq63N5XiFS74hjxMV0uiw3s3jl9w5NNLugF4bozKaskKsmwqXHwm7urb/1uWVB5SUjoIygqW23NN1fRf+1awG4arQ/bIMSzJHhl9Gopv/2Az8yTv1oqd64B5guo+HKV2ZMOSgh9OecSQO5bCdg0c2Hy7po+LvNdMszXm73UsZ9ZdIXvS35KyVWDQ0KkEA4nvjn1UnxKW5SKlTfLPpe8SJG6R98n/3K7YH7floduHTl/M2qi+dYQXkyCad2GyZfP/f9TrgpLqySPX68IzqS+SHDJYglxpvW5ruKn5207iZksnQ6euy4JnUq8r4QZr5qbbw62kdKkT9WyveF7VflchdZf7VCzDAuCR8yKW6mVVeWMnKdOTfiDBNJqW6dlKmZ48VBdCDfUMMqZE/YxeCm7Vaav1LIHtA22wT5xh2dIagO2tgbqBRtWvH5y+/M/RRRIDqoNC+V/TMi9Lsvq7xu3CWlHPdVZp5NKZpSIWjlmm+eal0ty481O4nSE0P+A7ObWBFCJARxqifoUZlAaiXDZeLZHtAJVtNcf55fYYHJVPefY446Gej+TQDHTnuA6NXcL5Q1jzFvOquiYlVm1dTKw2XAOWlFe1Zfe8C6xX86ots/4oaf0OsMqC4m5uy8mApul5ZaBWaUSb219szLpvf/fS/Pgf</diagram></mxfile>

docs/recoverypassword-usecase.png

78.4 KB
Loading
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<mxfile host="app.diagrams.net" modified="2021-04-09T11:49:54.311Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36" etag="jTTV9A2_cDZ8j2XQNJWK" version="14.1.9" type="device"><diagram id="kgpKYQtTHZ0yAKxKKP6v" name="Page-1">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</diagram></mxfile>
107 KB
Loading

0 commit comments

Comments
 (0)