Browse Source

readme and some clean

master
arnaucode 6 years ago
parent
commit
bb7f01ffb5
43 changed files with 111 additions and 61 deletions
  1. +79
    -25
      README.md
  2. +2
    -2
      clientApp/GUI/app.js
  3. BIN
      clientApp/GUI/img/darkID-logo01_transparent.png
  4. +26
    -22
      clientApp/GUI/views/id/id.html
  5. +0
    -1
      clientApp/GUI/views/login/login.js
  6. +0
    -3
      clientApp/clientApp.go
  7. +0
    -2
      clientApp/clientAppRESTFunctions.go
  8. +0
    -0
      darkID-login-example/.gitignore
  9. +0
    -0
      darkID-login-example/README.md
  10. +0
    -0
      darkID-login-example/RESTfunctions.go
  11. +0
    -0
      darkID-login-example/config.json
  12. +0
    -0
      darkID-login-example/errors.go
  13. +0
    -0
      darkID-login-example/hash.go
  14. +0
    -0
      darkID-login-example/keys.go
  15. +0
    -0
      darkID-login-example/log.go
  16. +0
    -0
      darkID-login-example/main.go
  17. +0
    -0
      darkID-login-example/readConfig.go
  18. +0
    -0
      darkID-login-example/restConfig.go
  19. +0
    -0
      darkID-login-example/restRoutes.go
  20. +0
    -0
      darkID-login-example/tokens.go
  21. +0
    -0
      darkID-login-example/web/.bowerrc
  22. +0
    -0
      darkID-login-example/web/.gitignore
  23. +0
    -0
      darkID-login-example/web/app.js
  24. +0
    -0
      darkID-login-example/web/bower.json
  25. +0
    -0
      darkID-login-example/web/css/own.css
  26. +0
    -0
      darkID-login-example/web/index.html
  27. +0
    -0
      darkID-login-example/web/package.json
  28. +0
    -0
      darkID-login-example/web/views/login/login.html
  29. +0
    -0
      darkID-login-example/web/views/login/login.js
  30. +0
    -0
      darkID-login-example/web/views/main/main.html
  31. +0
    -0
      darkID-login-example/web/views/main/main.js
  32. BIN
      darkID-presentation.pdf
  33. BIN
      documentation/darkID-creation.png
  34. +1
    -0
      documentation/darkID-creation.xml
  35. BIN
      documentation/darkID-login.png
  36. +1
    -0
      documentation/darkID-login.xml
  37. BIN
      documentation/darkID-screenshot01.png
  38. BIN
      documentation/darkID-screenshot02.png
  39. BIN
      documentation/darkID-screenshot03.png
  40. +0
    -0
      eth/notes.md
  41. +1
    -0
      runTmuxDeploy.sh
  42. +0
    -5
      serverIDsigner/log.go
  43. +1
    -1
      serverIDsigner/testUser.sh

+ 79
- 25
README.md

@ -1,38 +1,85 @@
# darkID
Blockchain based anonymous distributed ID system
# darkID: A proof of concept of an anonymous decentralized identification system based on blockchain
Blockchain based anonymous decentralized ID system
( Full slides in: https://github.com/arnaucode/darkID/blob/master/darkID-presentation.pdf )
## 1.- Main concept
The main idea behind darkID is to implement a proof of concept of a decentralized system that allows platforms to identify verified users, but ensuring their anonymity.
The main point, is to ensure anonymity, but at the same time, allow users to verify their identity, to ensure that no fake accounts are being used.
## 2.- How it works
- Verify the non anonymous ID of an user
- Based on the: username, email, phone, ID card, etc
- From a logged and verified user, generate an anonymous darkID (Public Key, and save the Private Key into the storage), and get that darkID signed by an authority (serverIDsigner), with high reputation, and without knowing what is signing, to ensure the anonymity of the user
- Once the darkID (Public Key) is signed by an authority server, add the darkID to the blockchain (ethereum, or some other)
- Use the darkID to authenticate in platforms (just need to point the darkID reference in the blockchain), and the platform will send a challenge to the user, to resolve it with the Private Key assigned to the darkID from the darkID desktop app.
```go
type DarkID struct {
ID string `json:"id"`
PrivK string `json:"privK"` //path of the PrivK file
PubK string `json:"pubK"` //path of the PubK file
PublicKey string `json:"publicKey"`
Date time.Time `json:"date"`
Hashed []byte `json:"hashed"`
UnblindedSig []byte `json:"unblindedsig"`
Verified bool `json:"verified"`
ServerVerifier *rsa.PublicKey `json:"serververifier"`
SignerID string `json:"signerid"`
BlockchainRef string `json:"blockchainref"`
}
```
### 2.1.- Infraestructure
### Main concept
The objective is to guarantee a decentralized login system, but making sure that registered users are real ones and there are no bots generating large amounts of accounts. Only the verified (by email or phone) users can generate an anonymous ID (the Public-Key blind signed).
![network](https://raw.githubusercontent.com/arnaucode/darkID/master/documentation/darkID-network.png "network")
![screenshot](https://raw.githubusercontent.com/arnaucode/darkID/master/documentation/screenshot01.png "screenshot")
#### 2.2.1.- serverIDsigner
- The server where the user creates a non anonymous account
- Also is the server that blind signs the anonymous ID of the users
- This server must be a recognized authority, or based on some reputation system. As only the reliable serverIDsigner will be used by the users to trust their ID validation
- The serverIDsigner, can be different servers, based on a public reputation, where the users trust the servers that their are using to verify their darkIDs.
![screenshot](https://raw.githubusercontent.com/arnaucode/darkID/master/documentation/screenshot02.png "screenshot")
#### 2.2.2.- ethereum Smart Contract
Where the darkID is stored. In this case, is a very simple smart contract.
## How it works?
#### 2.2.3.- Desktop app
An electron desktop app implemented in Angularjs and Go lang.
![screenshot](https://raw.githubusercontent.com/arnaucode/darkID/master/documentation/darkID-screenshot01.png "screenshot")
#### Network infrastructure
![screenshot](https://raw.githubusercontent.com/arnaucode/darkID/master/documentation/darkID-screenshot02.png "screenshot")
![network](https://raw.githubusercontent.com/arnaucode/darkID/master/documentation/darkID-network.png "network")
![screenshot](https://raw.githubusercontent.com/arnaucode/darkID/master/documentation/darkID-screenshot03.png "screenshot")
### 2.2.- Step by step process
- Once all the nodes of the network are running, a new user can connect to the serverIDsigner.
- The user registers a non anonymous user (using email, phone, password, etc), and performs the login with that user
- The user, locally, generates a RSA key pair (private key & public key)
- The user blinds his Public-Key with the serverIDsigner Public-Key
- The user's Public-Key blinded, is sent to the serverIDsigner
- The serverIDsigner Blind Signs the Public-Key blinded from the user, and returns it to the user
- The user unblinds the Public-Key signed by the serverIDsigner, and now has the Public-Key Blind Signed by the serverIDsigner
- The user sends the Public-Key blind signed to the p2p network
- The peers verify that the Public-Key Blind Signed is correctly signed by the serverIDsigner, if it is, they add the Public-Key to the Ethereum Blockchain, inside a new block
#### Step by step process
1. Once all the nodes of the network are running, a new user can connect to the server-ID-signer.
2. The user registers a non anonymous user (using email, phone, password, etc), and performs the login with that user
3. The user, locally, generates a RSA key pair (private key & public key)
4. The user blinds his Public-Key with the server-ID-signer Public-Key
5. The user's Public-Key blinded, is sent to the server-ID-signer
6. The server-ID-signer Blind Signs the Public-Key blinded from the user, and returns it to the user
7. The user unblinds the Public-Key signed by the server-ID-signer, and now has the Public-Key Blind Signed by the server-ID-signer
8. The user sends the Public-Key blind signed to the p2p network
9. The peers verify that the Public-Key Blind Signed is correctly signed by the server-ID-signer, if it is, they add the Public-Key to the Ethereum Blockchain, inside a new block
10. Then, when the user wants to login into a platform, just needs to put his Public-Key
11. The platform goes to the Ethereum Blockchain, to check if this Public-Key is registered in the blockchain
12. The platform sends a message encrypted with the user Public-Key, and the user returns the message decrypted with the Private-Key, to verify that is the owner of that Public-Key
![creation](https://raw.githubusercontent.com/arnaucode/darkID/master/documentation/darkID-creation.png "creation")
- Then, when the user wants to login into a platform, just needs to put his Public-Key
- The platform goes to the Ethereum Blockchain, to check if this Public-Key is registered in the blockchain
- The platform sends a message encrypted with the user Public-Key, and the user returns the message decrypted with the Private-Key, to verify that is the owner of that Public-Key
##### RSA encryption system
![login](https://raw.githubusercontent.com/arnaucode/darkID/master/documentation/darkID-login.png "login")
The user Private Keys are stored only in the user local directory 'darkID/keys'.
## 3.- Cryptography
### 3.1.- RSA encryption system
https://en.wikipedia.org/wiki/RSA_cryptosystem https://en.wikipedia.org/wiki/RSA_cryptosystem
- Public parameters: (e, n) - Public parameters: (e, n)
- Private parameters: (d, p, q, phi, sigma) - Private parameters: (d, p, q, phi, sigma)
@ -44,12 +91,12 @@ https://en.wikipedia.org/wiki/RSA_cryptosystem
![rsa](https://wikimedia.org/api/rest_v1/media/math/render/svg/10227461ee5f4784484f082d744ba5b8c468668c "rsa") ![rsa](https://wikimedia.org/api/rest_v1/media/math/render/svg/10227461ee5f4784484f082d744ba5b8c468668c "rsa")
##### Blind signature process
### 3.2.- Blind signature process
https://en.wikipedia.org/wiki/Blind_signature https://en.wikipedia.org/wiki/Blind_signature
- m is the message (in our case, is the Public-Key of the user to be blinded) - m is the message (in our case, is the Public-Key of the user to be blinded)
![rsa](https://wikimedia.org/api/rest_v1/media/math/render/svg/a59b57fa153c8b327605672caadb0ecf59e5795a "rsa") ![rsa](https://wikimedia.org/api/rest_v1/media/math/render/svg/a59b57fa153c8b327605672caadb0ecf59e5795a "rsa")
- server-ID-signer blind signs m'
- serverIDsigner blind signs m'
![rsa](https://wikimedia.org/api/rest_v1/media/math/render/svg/e726b003ff1649f9254032cffae42d80577da787 "rsa") ![rsa](https://wikimedia.org/api/rest_v1/media/math/render/svg/e726b003ff1649f9254032cffae42d80577da787 "rsa")
- user can unblind m, to get m signed - user can unblind m, to get m signed
@ -57,3 +104,10 @@ https://en.wikipedia.org/wiki/Blind_signature
- This works because RSA keys satisfy this equation - This works because RSA keys satisfy this equation
![rsa](https://wikimedia.org/api/rest_v1/media/math/render/svg/d6bd21fb4e25c311df07b50c313a248d978c3212 "rsa") and this ![rsa](https://wikimedia.org/api/rest_v1/media/math/render/svg/c13170a26e031125b417f22644fb64384c04eea7 "rsa") ![rsa](https://wikimedia.org/api/rest_v1/media/math/render/svg/d6bd21fb4e25c311df07b50c313a248d978c3212 "rsa") and this ![rsa](https://wikimedia.org/api/rest_v1/media/math/render/svg/c13170a26e031125b417f22644fb64384c04eea7 "rsa")
## 4.- Conclusions
- This is just a proof of concept, as an extra [project in a university small subject](https://github.com/arnaucode/darkID/blob/master/darkID-presentation.pdf). Is not a full finalized project.
- Cryptographic [blind signature](https://en.wikipedia.org/wiki/Blind_signature) is very powerful, and also, can be combined with [homomorphic encryption](https://en.wikipedia.org/wiki/Homomorphic_encryption) properties, to make secure and anonymous systems.
- In this proof of concept, the smart contract integration is not finished, and is using ethereum Smart Contracts, but can be implemented using any other blockchain technology. At the beginning [I tried to implement a complete p2p network and a blockchain from scratch](https://github.com/arnaucode/blockchainIDsystem) (but was not a good idea having a short amount of time).
- A decentralized anonymized login system over blockchain, can have lots of applications for example, can be useful to authentication for centralized and decentralized platforms, for voting systems, for health systems, for exchanges, for anonymous reputation systems, etc.

+ 2
- 2
clientApp/GUI/app.js

@ -77,8 +77,8 @@ config(['$locationProvider', '$routeProvider', function($locationProvider, $rout
.factory('api', function($http) { .factory('api', function($http) {
return { return {
init: function() { init: function() {
/*$http.defaults.headers.common['X-Access-Token'] = localStorage.getItem('block_webapp_token');
$http.defaults.headers.post['X-Access-Token'] = localStorage.getItem('block_webapp_token');*/
/*$http.defaults.headers.common['X-Access-Token'] = localStorage.getItem('darkID_token');
$http.defaults.headers.post['X-Access-Token'] = localStorage.getItem('darkID_token');*/
} }
}; };
}) })

BIN
clientApp/GUI/img/darkID-logo01_transparent.png

Before After
Width: 1279  |  Height: 1279  |  Size: 223 KiB Width: 1279  |  Height: 1279  |  Size: 457 KiB

+ 26
- 22
clientApp/GUI/views/id/id.html

@ -7,11 +7,6 @@
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<h4>ID: {{id.id}}</h4> <h4>ID: {{id.id}}</h4>
<div class="row">
<textarea disabled style="color:#81C784;width:100%;" rows="4"
ng-model="id.publicKey"
></textarea>
</div>
<span class="pull-right">{{id.date | date: "dd.MM.y, HH:mm:ss"}}h</span> <span class="pull-right">{{id.date | date: "dd.MM.y, HH:mm:ss"}}h</span>
@ -20,6 +15,13 @@
<span class="badge c_o_orange300" ng-show="!id.unblindedsig">Not signed</span> <span class="badge c_o_orange300" ng-show="!id.unblindedsig">Not signed</span>
<span class="badge c_o_blue300" ng-show="id.unblindedsig">Signed</span> <span class="badge c_o_blue300" ng-show="id.unblindedsig">Signed</span>
<span class="badge c_o_deepPurple300" ng-show="id.blockchainref">in Blockchain</span> <span class="badge c_o_deepPurple300" ng-show="id.blockchainref">in Blockchain</span>
<br><br>
<div class="row">
<textarea disabled style="color:#81C784;width:100%;" rows="4"
ng-model="id.publicKey"
></textarea>
</div>
<br>
<div class="row"> <div class="row">
<textarea style="color:#000000;width:100%;" rows="4" <textarea style="color:#000000;width:100%;" rows="4"
ng-model="decryptData.c" ng-model="decryptData.c"
@ -32,23 +34,25 @@
Proof of decrypt Proof of decrypt
</div> </div>
<br><br><br><br><br>
<hr>
<h5>Testing only:</h5>
<div class="row">
<textarea style="color:#000000;width:100%;" rows="4"
ng-model="encryptData.m"
placeholder="Enter here the unencrypted..."
></textarea>
</div>
<div class="row">
<textarea style="backgroud:grey;color:#000000;width:100%;" rows="4"
ng-model="encryptData.c"
placeholder="Encrypted data..."
></textarea>
</div>
<div ng-click="encrypt()" ng-show="id.unblindedsig" class="btn btn-raised pull-right c_o_orange300">
Encrypt
<div ng-show="testing">
<br><br><br><br><br>
<hr>
<h5>Testing only:</h5>
<div class="row">
<textarea style="color:#000000;width:100%;" rows="4"
ng-model="encryptData.m"
placeholder="Enter here the unencrypted..."
></textarea>
</div>
<div class="row">
<textarea style="backgroud:grey;color:#000000;width:100%;" rows="4"
ng-model="encryptData.c"
placeholder="Encrypted data..."
></textarea>
</div>
<div ng-click="encrypt()" ng-show="id.unblindedsig" class="btn btn-raised pull-right c_o_orange300">
Encrypt
</div>
</div> </div>
</div> </div>
</div> </div>

+ 0
- 1
clientApp/GUI/views/login/login.js

@ -31,7 +31,6 @@ angular.module('app.login', ['ngRoute'])
//
$http({ $http({
url: $rootScope.server + 'login', url: $rootScope.server + 'login',
method: "POST", method: "POST",

+ 0
- 3
clientApp/clientApp.go

@ -66,7 +66,6 @@ type SignResponse struct {
func BlindAndSendToSign(keyID string) []Key { func BlindAndSendToSign(keyID string) []Key {
//get the key //get the key
key := getKeyByKeyID(keyID) key := getKeyByKeyID(keyID)
//privK := openPEMKey(key.PrivK)
pubK, err := openPublicPEMKey(keysDir + "/" + key.PubK) pubK, err := openPublicPEMKey(keysDir + "/" + key.PubK)
check(err) check(err)
@ -87,7 +86,6 @@ func BlindAndSendToSign(keyID string) []Key {
defer res.Body.Close() defer res.Body.Close()
//blind the hashed message //blind the hashed message
// We do a SHA256 full-domain-hash expanded to 1536 bits (3/4 the key size)
hashed := fdh.Sum(crypto.SHA256, hashize, mB) hashed := fdh.Sum(crypto.SHA256, hashize, mB)
blinded, unblinder, err := rsablind.Blind(serverPubK, hashed) blinded, unblinder, err := rsablind.Blind(serverPubK, hashed)
if err != nil { if err != nil {
@ -109,7 +107,6 @@ func BlindAndSendToSign(keyID string) []Key {
defer res.Body.Close() defer res.Body.Close()
sig := signResponse.Sig sig := signResponse.Sig
//serverPubK := signResponse.PubK
//unblind the signedblind //unblind the signedblind
unblindedSig := rsablind.Unblind(serverPubK, sig, unblinder) unblindedSig := rsablind.Unblind(serverPubK, sig, unblinder)

+ 0
- 2
clientApp/clientAppRESTFunctions.go

@ -9,8 +9,6 @@ import (
"github.com/gorilla/mux" "github.com/gorilla/mux"
) )
//TODO use rsa library instead own rsa functions
func Index(w http.ResponseWriter, r *http.Request) { func Index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "clientApp") fmt.Fprintln(w, "clientApp")
} }

darkID-library-login-example/.gitignore → darkID-login-example/.gitignore


darkID-library-login-example/README.md → darkID-login-example/README.md


darkID-library-login-example/RESTfunctions.go → darkID-login-example/RESTfunctions.go


darkID-library-login-example/config.json → darkID-login-example/config.json


darkID-library-login-example/errors.go → darkID-login-example/errors.go


darkID-library-login-example/hash.go → darkID-login-example/hash.go


darkID-library-login-example/keys.go → darkID-login-example/keys.go


darkID-library-login-example/log.go → darkID-login-example/log.go


darkID-library-login-example/main.go → darkID-login-example/main.go


darkID-library-login-example/readConfig.go → darkID-login-example/readConfig.go


darkID-library-login-example/restConfig.go → darkID-login-example/restConfig.go


darkID-library-login-example/restRoutes.go → darkID-login-example/restRoutes.go


darkID-library-login-example/tokens.go → darkID-login-example/tokens.go


darkID-library-login-example/web/.bowerrc → darkID-login-example/web/.bowerrc


darkID-library-login-example/web/.gitignore → darkID-login-example/web/.gitignore


darkID-library-login-example/web/app.js → darkID-login-example/web/app.js


darkID-library-login-example/web/bower.json → darkID-login-example/web/bower.json


darkID-library-login-example/web/css/own.css → darkID-login-example/web/css/own.css


darkID-library-login-example/web/index.html → darkID-login-example/web/index.html


darkID-library-login-example/web/package.json → darkID-login-example/web/package.json


darkID-library-login-example/web/views/login/login.html → darkID-login-example/web/views/login/login.html


darkID-library-login-example/web/views/login/login.js → darkID-login-example/web/views/login/login.js


darkID-library-login-example/web/views/main/main.html → darkID-login-example/web/views/main/main.html


darkID-library-login-example/web/views/main/main.js → darkID-login-example/web/views/main/main.js


BIN
darkID-presentation.pdf


BIN
documentation/darkID-creation.png

Before After
Width: 525  |  Height: 485  |  Size: 45 KiB

+ 1
- 0
documentation/darkID-creation.xml

@ -0,0 +1 @@
<mxfile userAgent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36" version="8.0.7" editor="www.draw.io" type="device"><diagram id="20af8cba-fa96-8042-f75d-2a1a5a74df2c" name="Page-1">7Vlbk6I8EP01PM4UNy/zqI6zu7XXGver73EqQgspA6FCXHV//XaAKBjH0R10X6BKhE7ohD6nD6GxvEmy+SBIFn/lITDLtcON5T1aruv4bh//lGVbWgZ9uzREgoZVp71hRn9DZdTdVjSEvNFRcs4kzZrGgKcpBLJhI0LwdbPbgrPmqBmJwDDMAsJM6/80lHFpHfbsvf0j0CjWIzt21TInwTISfJVW41mutyi2sjkh2lfVP49JyNc1kze1vIngXJZHyWYCTMVWh6287umV1t28BaTynAs8t7ziF2Er0FMuJia3OhiQhiMVUzxLeYrGcSwThmcOHjIyBzbe3fWEMy6Ky7ynYsMuC57Kmt0uNmWnjNXsIYHhIkB7LgVfQq2lHwxhvsCWcmoQGuDtb9fZBRHJCTwBKbbYZb1HUYMY1wDUNgGMSPqr6Z5UZIp27nYj/OAUB3btivjusOL9Vrv1mi5yvhIBVFfVYXnDkeMfOJJERCANR3hQu+29qUD9FQZ4HQPaY8CgJQIMboe/3+HfHv7+Q0sEOHR0TQb0DAaschAGC2hSPDUvxL666pEmEU6E0TnuA0azFyKkOuRJtpIgcjz+QjLJsxfHHW7wd5+l0QnuVHMGIWFzKRe0yvrNGGsprFFleIQq2naMFQ0YTsW8b8QcQ453c/fp8S6nUfov4j8rZvDyjP5uB4Lfa4Lg3hCEgQEC4xFNT+lfwEie06CTwLMXQU6vLQkcXE8Chxc9BDsSXPocdIZ/uxI+dPRwPRI8GCSIAIWYSHwVde3n2Qj3S9gWcaamPqMGyiYlmvhVS6c62JWJMFR8xSsED4XfGytFpfg6OqoaEhqGapjxOqYSZhkJ1JhrfPlGW0E3UDdhv4+GbTxSD+ByHVPO/SO0c1uQc+23ht+c0TRU4GWr+ecOsHMA698QMOc4YBiaVxDrNPiSB/EBtF5b7yKedzUN9s161E+VpW+nroCc/ibzooPCM1OzKebXG1u9x4uS9hopWZUqqxlauwSq08U/nat39n2/b/vNfH0fVXQXvljk8G7wzFJSkc8KOoyw0mEZA+7fyPJOl5UGvJJzt9BlsyRUx7GT51bk2VDVv31PMnT+eu9J/pFSUbpbZJXJfZoiXW6bgPn2DXPbLDyRsIZeSCRR3VPJa3LNg2UQk64y0m5lxD9cR52b8Yd+rpjwZokMkBQCVomlPvJ6joIqBbnmYmmwI49JVtYey8qlztgvihU/eE4l5Spz51xKnpxHl8Osl1ylN8mz8jvwgm5Ulpdlz5G22rVCaCyl+oo8UmFxn9br9b2+o3suVI206KjqoYxHXP1Pf36cPk//+3r3afL92wtOMljeoDjtNdd5tiERjl4i1Km6M14gEni6/+JckmT/Wd+b/gE=</diagram></mxfile>

BIN
documentation/darkID-login.png

Before After
Width: 525  |  Height: 485  |  Size: 48 KiB

+ 1
- 0
documentation/darkID-login.xml

@ -0,0 +1 @@
<mxfile userAgent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36" version="8.0.7" editor="www.draw.io" type="device"><diagram id="20af8cba-fa96-8042-f75d-2a1a5a74df2c" name="Page-1">7Vrfc+I2EP5rmLYPzfgX4DwGQnqZ3rU3l+v0MSNk2dYgWx5ZBOhf35UtGdsinEMgcw8wA4iVtLL2+1a72mTkz7PtHwIV6RceETbynGg78u9HnucG3gS+lGRXS6YTpxYkgkZ60F7wRP8jWmiGrWlEys5AyTmTtOgKMc9zgmVHhoTgm+6wmLPuqgVKiCV4wojZ0n9pJNNaGo6dvfwToUlqVnYd3bNEeJUIvs71eiPPj6tX3Z0ho0uPL1MU8U1L5C9G/lxwLutWtp0TpmxrzFbPe3ilt3luQXI5ZMJEA/WC2JqYR64eTO6MMUge3Smbwq+c5yCcpTJj8MuFJkNLwmbNrueccVFN8x+qFwyJeS5bcqd6KTllrCWPEAljDPJSCr4irZ4JDskyhp760UhkgbffrtsYEchJeEak2MGQzR5FA2LaAtDIBGFI0peueqTJlDTqmhW+cgoLe44m/lSr2RmtfldDydcCEz2pjcpxPW7Q0yORSIi09ECjtem9qML8FfynV/zPh38QBj0CjE8jQF+RG4wvxoDwyoDzMcCb+j0GeKcxoK8IYurFGHBrMWBdEjHyJgyMM4voCzSTqonE6vHedIDeVp9FGppVQfaNVNGz7mmWgH5Gl/CJGS2ekZCqybNiLYkoof0ZFZIXz64XbuF9U+TJEarpLRIhyfat1NET/O6p7GuAWsQKDxDLyA5xqAPaEYRMPGghVABNYy4y9QApEaTKkOCD8YTmH4/FExFg2+dvoO/jAGkg0IiYk+sjEHEtRIhUOKwBEcipfFftMSdyw8XKggOyvqI2bA2LsgKF7POzwuQrL6mkPIf+JZeSZ8PAMjruGE3UXHANkKKyqPPjmG5JZDC9M1KnhXIqpcqu75QNvIfNZnNjdnTDhSJANVCBDRzj6nvx/dPi2+KfL78/zv/+6xkeEq8uD3rguz8C3XUmNuqN8F2wexbs5kx0fi3Wyz9/OxY7MUNlSXHXD98fG+fhYvYwjCQ/e/icjrtBb3xq9DT3GqNoerEM2mhuUYKWqj9XR3KqDuYl43iFUwQi/+HNBBkA6+ucOO6IPy8RmkPaAHgbnsaEfiYNVLgYEwKLCTt1Xl7xHnJz6p3qfnCi54deV1EQXgzvsYV3QnIikFSoOwje4PSMkRys3mcBBEDZxb0Lqr5ntaOAFiEd4DEgB1m6HfkzGkVqmdkmpZI8FQirNTcCqYSg4pTKBKrY/4672xlCuYWVqUa0OBcc4Jx3jgTOLnyV4Jllc2i/Dt3VgQ9G3N7tyOmpGFz76nLC93tp2xn91659RQSLXSGHsODqwHtHNFiN3Y/zX7ts1cLK0UCCna7eOyTv7jld2HO64Xl3N4wH7uXybrtqxeGmPVd2BlLvZErhKgrjlTPHFDzPrmfpwkk1ZAdbVG4PyOYDK1xXKh2iwPi2SwFvehqXen8ECSbOpagU2uU1YBCNldForD7kL4oiJRzP6kRxlrsmQJRV4evxvuoT1yhxKEr0S9mGIe06XXCZMBHadTqcErwqDbQ1ioKUBc/L5jDAXAhVIbvC+WM4A8eGc3oeOOHn/k/htWPv/9/AX/wP</diagram></mxfile>

BIN
documentation/darkID-screenshot01.png

Before After
Width: 1322  |  Height: 972  |  Size: 224 KiB

BIN
documentation/darkID-screenshot02.png

Before After
Width: 1345  |  Height: 989  |  Size: 366 KiB

BIN
documentation/darkID-screenshot03.png

Before After
Width: 1341  |  Height: 988  |  Size: 243 KiB

eth/instructions.md → eth/notes.md


runTmuxTestPeers.sh → runTmuxDeploy.sh

@ -15,4 +15,5 @@ tmux attach
# websites: # websites:
# 127.0.0.1:8080 darkID client # 127.0.0.1:8080 darkID client
# or run 'electron .' in the clientApp/GUI directory, to run the desktop app
# 127.0.0.1:5011 library login example with darkID # 127.0.0.1:5011 library login example with darkID

+ 0
- 5
serverIDsigner/log.go

@ -4,17 +4,12 @@ import (
"io" "io"
"log" "log"
"os" "os"
"strings"
"time" "time"
) )
func savelog() { func savelog() {
timeS := time.Now().String() timeS := time.Now().String()
_ = os.Mkdir("logs", os.ModePerm) _ = os.Mkdir("logs", os.ModePerm)
//next 3 lines are to avoid windows filesystem errors
timeS = strings.Replace(timeS, " ", "_", -1)
timeS = strings.Replace(timeS, ".", "-", -1)
timeS = strings.Replace(timeS, ":", "-", -1)
logFile, err := os.OpenFile("logs/log-"+timeS+".log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666) logFile, err := os.OpenFile("logs/log-"+timeS+".log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666)
if err != nil { if err != nil {
panic(err) panic(err)

+ 1
- 1
serverIDsigner/testUser.sh

@ -17,4 +17,4 @@ echo "$BLINDSIGNED"
echo "" echo ""
echo "send blindsigned to the serverIDsigner to verify" echo "send blindsigned to the serverIDsigner to verify"
curl -X POST http://127.0.0.1:3130/verifysign -d '{"m": "hola", "mSigned": "131898 40373 107552 34687"}'
curl -X POST http://127.0.0.1:3130/verifysign -d '{"m": "hello", "mSigned": "131898 40373 107552 34687"}'

Loading…
Cancel
Save