From 082864de1c7bcbea6c3162ade237b973be436dcd Mon Sep 17 00:00:00 2001 From: arnaucode Date: Fri, 29 Dec 2017 00:44:38 +0100 Subject: [PATCH] id blindsign and verificated working --- clientApp/GUI/views/main/main.html | 11 ++-- clientApp/GUI/views/main/main.js | 8 +-- clientApp/clientApp.go | 51 +++++++++++---- clientApp/clientAppRESTFunctions.go | 4 +- clientApp/keys.go | 85 ++++++++++++++++++++++--- documentation/screenshot02.png | Bin 50186 -> 62192 bytes serverIDsigner/.gitignore | 1 + serverIDsigner/keys/server_private.pem | 27 -------- serverIDsigner/keys/server_public.pem | 8 --- serverIDsigner/userRESTFunctions.go | 5 +- 10 files changed, 132 insertions(+), 68 deletions(-) create mode 100644 serverIDsigner/.gitignore delete mode 100644 serverIDsigner/keys/server_private.pem delete mode 100644 serverIDsigner/keys/server_public.pem diff --git a/clientApp/GUI/views/main/main.html b/clientApp/GUI/views/main/main.html index 49ed9fe..eee21ac 100755 --- a/clientApp/GUI/views/main/main.html +++ b/clientApp/GUI/views/main/main.html @@ -25,7 +25,7 @@

My IDs

-
+
Public Key: {{id.pubK}} @@ -40,11 +40,12 @@ Verified
- Not signed - Signed + Not signed + Signed
-
Send to serverIDsigner
-
Verify
+

+
Send to serverIDsigner
+
diff --git a/clientApp/GUI/views/main/main.js b/clientApp/GUI/views/main/main.js index a1d1894..08805b8 100755 --- a/clientApp/GUI/views/main/main.js +++ b/clientApp/GUI/views/main/main.js @@ -39,8 +39,8 @@ angular.module('app.main', ['ngRoute']) }); }; - $scope.blindAndSendToSign = function(pubK) { - $http.get(clientapi + 'blindandsendtosign/' + pubK) + $scope.blindAndSendToSign = function(id) { + $http.get(clientapi + 'blindandsendtosign/' + id) .then(function(data) { console.log('data success'); console.log(data); @@ -50,8 +50,8 @@ angular.module('app.main', ['ngRoute']) console.log('data error'); }); }; - $scope.verify = function(pubK) { - $http.get(clientapi + 'verify/' + pubK) + $scope.verify = function(id) { + $http.get(clientapi + 'verify/' + id) .then(function(data) { console.log('data success'); console.log(data); diff --git a/clientApp/clientApp.go b/clientApp/clientApp.go index 9f27225..353b167 100644 --- a/clientApp/clientApp.go +++ b/clientApp/clientApp.go @@ -12,6 +12,7 @@ import ( "github.com/cryptoballot/fdh" "github.com/cryptoballot/rsablind" + "github.com/fatih/color" ) func IDs() []Key { @@ -51,18 +52,33 @@ type SignResponse struct { PubK rsa.PublicKey `json:"pubK"` } -func BlindAndSendToSign(keyID string) []byte { +func BlindAndSendToSign(keyID string) []Key { //get the key key := getKeyByKeyID(keyID) //privK := openPEMKey(key.PrivK) - pubK := openPublicPEMKey(key.PubK) + pubK, err := openPublicPEMKey(keysDir + "/" + key.PubK) + check(err) + + //pubK to string + m, err := ExportRsaPublicKeyAsPemStr(pubK) + check(err) + mB := []byte(m) + + //get serverPubK + var serverPubK *rsa.PublicKey + res, err := http.Get(config.Server) + check(err) + decoder := json.NewDecoder(res.Body) + err = decoder.Decode(&serverPubK) + if err != nil { + panic(err) + } + defer res.Body.Close() - //TODO pubK to string - m := []byte("pubK") //convert pubK to array of bytes //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, m) - blinded, unblinder, err := rsablind.Blind(&pubK, hashed) + hashed := fdh.Sum(crypto.SHA256, hashize, mB) + blinded, unblinder, err := rsablind.Blind(serverPubK, hashed) if err != nil { panic(err) } @@ -71,10 +87,10 @@ func BlindAndSendToSign(keyID string) []byte { //send blinded to serverIDsigner body := new(bytes.Buffer) json.NewEncoder(body).Encode(askBlindSign) - res, err := http.Post(config.Server+"blindsign", "application/json", body) + res, err = http.Post(config.Server+"blindsign", "application/json", body) check(err) var signResponse SignResponse - decoder := json.NewDecoder(res.Body) + decoder = json.NewDecoder(res.Body) err = decoder.Decode(&signResponse) if err != nil { panic(err) @@ -82,13 +98,26 @@ func BlindAndSendToSign(keyID string) []byte { defer res.Body.Close() sig := signResponse.Sig - serverPubK := signResponse.PubK + //serverPubK := signResponse.PubK //unblind the signedblind - unblindedSig := rsablind.Unblind(&serverPubK, sig, unblinder) + unblindedSig := rsablind.Unblind(serverPubK, sig, unblinder) + color.Green("unblindedSig") fmt.Println(unblindedSig) - return unblindedSig + // Verify the original hashed message against the unblinded signature + if err := rsablind.VerifyBlindSignature(serverPubK, hashed, unblindedSig); err != nil { + fmt.Println(err) + } else { + color.Green("blind signature verified") + key.Verified = true + } + key.UnblindedSig = unblindedSig + key.Hashed = hashed + key.ServerVerifier = serverPubK + saveKey(key) + keys := readKeys() + return keys } func Verify(packPubK string) { diff --git a/clientApp/clientAppRESTFunctions.go b/clientApp/clientAppRESTFunctions.go index 9f2963f..2ce7f69 100644 --- a/clientApp/clientAppRESTFunctions.go +++ b/clientApp/clientAppRESTFunctions.go @@ -40,9 +40,9 @@ func GetBlindAndSendToSign(w http.ResponseWriter, r *http.Request) { idKey := vars["idKey"] color.Green(idKey) - unblindedSig := BlindAndSendToSign(idKey) + keys := BlindAndSendToSign(idKey) - jResp, err := json.Marshal(unblindedSig) + jResp, err := json.Marshal(keys) check(err) fmt.Fprintln(w, string(jResp)) } diff --git a/clientApp/keys.go b/clientApp/keys.go index d3b17be..9d946de 100644 --- a/clientApp/keys.go +++ b/clientApp/keys.go @@ -6,18 +6,67 @@ import ( "encoding/asn1" "encoding/json" "encoding/pem" + "errors" + "fmt" "io/ioutil" "os" "time" + + "github.com/fatih/color" ) type Key struct { - ID string `json:"id"` - PrivK string `json:"privK"` //path of the PrivK file - PubK string `json:"pubK"` //path of the PubK file - Date time.Time `json:"date"` - Verified bool `json:"verified"` - Signed string `json:"signed"` + ID string `json:"id"` + PrivK string `json:"privK"` //path of the PrivK file + PubK string `json:"pubK"` //path of the PubK file + Date time.Time `json:"date"` + Hashed []byte `json:"hashed"` + UnblindedSig []byte `json:"unblindedsig"` + Verified bool `json:"verified"` + ServerVerifier *rsa.PublicKey `json:"serververifier"` +} + +func ExportRsaPrivateKeyAsPemStr(privkey *rsa.PrivateKey) string { + privkey_bytes := x509.MarshalPKCS1PrivateKey(privkey) + privkey_pem := pem.EncodeToMemory( + &pem.Block{ + Type: "RSA PRIVATE KEY", + Bytes: privkey_bytes, + }, + ) + return string(privkey_pem) +} + +func ParseRsaPrivateKeyFromPemStr(privPEM string) (*rsa.PrivateKey, error) { + block, _ := pem.Decode([]byte(privPEM)) + if block == nil { + return nil, errors.New("failed to parse PEM block containing the key") + } + priv, err := x509.ParsePKCS1PrivateKey(block.Bytes) + if err != nil { + return nil, err + } + return priv, nil +} + +func ExportRsaPublicKeyAsPemStr(pubkey rsa.PublicKey) (string, error) { + asn1Bytes, err := asn1.Marshal(pubkey) + check(err) + pubkey_pem := pem.EncodeToMemory( + &pem.Block{ + Type: "PUBLIC KEY", + Bytes: asn1Bytes, + }, + ) + color.Red("pubkey_pem") + fmt.Println(pubkey_pem) + return string(pubkey_pem), nil +} + +func ParseRsaPublicKeyFromPemStr(pubPEM string) (pub rsa.PublicKey, err error) { + pemBlock, _ := pem.Decode([]byte(pubPEM)) + _, err = asn1.Unmarshal(pemBlock.Bytes, &pub) + return } func savePEMKey(fileName string, key *rsa.PrivateKey) { @@ -49,10 +98,20 @@ func savePublicPEMKey(fileName string, pubkey rsa.PublicKey) { err = pem.Encode(pemfile, pemkey) check(err) } -func openPEMKey(path string) (key rsa.PrivateKey) { +func openPEMKey(path string) (key *rsa.PrivateKey, err error) { + b, err := ioutil.ReadFile(path) + if err != nil { + fmt.Print(err) + } + key, err = ParseRsaPrivateKeyFromPemStr(string(b)) return } -func openPublicPEMKey(path string) (key rsa.PublicKey) { +func openPublicPEMKey(path string) (key rsa.PublicKey, err error) { + b, err := ioutil.ReadFile(path) + if err != nil { + fmt.Print(err) + } + key, err = ParseRsaPublicKeyFromPemStr(string(b)) return } func readKeys() []Key { @@ -73,6 +132,16 @@ func saveKeys(keys []Key) { err = ioutil.WriteFile(keysDir+"/keys.json", jsonKeys, 0644) check(err) } +func saveKey(k Key) { + fmt.Println(k) + keys := readKeys() + for i, key := range keys { + if key.ID == k.ID { + keys[i] = k + } + } + saveKeys(keys) +} func getKeyByKeyID(keyID string) (k Key) { keys := readKeys() for _, key := range keys { diff --git a/documentation/screenshot02.png b/documentation/screenshot02.png index 6808745f8a4ecc2477946b4fd1bb3e38cac08969..a9336e6020ffeed24f2502238405650a13ddf2c8 100644 GIT binary patch literal 62192 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 ZQSJ}dTkW2_d8WeGNUPD7u@=+*`X5u3YyJQL literal 50186 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

Y*=rv9ln>lwYB{eAt1#LkXUcRt} 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 diff --git a/serverIDsigner/.gitignore b/serverIDsigner/.gitignore new file mode 100644 index 0000000..0bdfd49 --- /dev/null +++ b/serverIDsigner/.gitignore @@ -0,0 +1 @@ +keys diff --git a/serverIDsigner/keys/server_private.pem b/serverIDsigner/keys/server_private.pem deleted file mode 100644 index 0ef88e5..0000000 --- a/serverIDsigner/keys/server_private.pem +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEpQIBAAKCAQEA061q3ahXEG9rHf/uekmIk4fSvtG8p7OwkjP3PlafFjxeA4BS -8dkjPUEboXMftQCFrzWc5nLyQR4Ig5xMzjaEbQv/JBdpP/E1nl+fC6ca45Rov0OE -7OQrDyEPb1qNJ3uQmh+N9ZvTLNndT3bBxtBfmIRyMq+78mMumzNvFbx6zfNpwv9T -HDgBnfZoAZ7gpIZeKn/yFasQmzFwpy9hfqZ21SCL7GmiU+nAz2TxtyFkUttMeIxD -gSSKLYxzt6mKdElNv0K97tBU1eRaXz4hpq/I0dtmcidrS/45MtXij6wO1agIvnH+ -pygSI5QF3rE+lVYaDuKJZ6QBvnNEF9/cu7j/ZQIDAQABAoIBAQDAP+apPnUkpi0B -aCqtwg9a/qb3TAItxdN+VdgeNAn05gr03x12LiIFRhbUQXzwpXLFOMoxuwAvCBnv -fot7VqRbbePiYajjvC1Yk7wdlz2iqG2iGK6ngGtjKEGefv1oeJ9Se4oxIb9gItcP -jupbqXDJUrFtO5JViKMRrlsbwL1AQkWafiBJyfaeO9f6fikrv9dWJCE/wDN6F4XB -cVZj30GzBVpLfq6cuP1I7o1txNdRivPza4S6zufy53CfkFqsyjehFfvmlMCK+6/p -6EDd1pag3tfr/+1k1BGKwSgQyOBUYWS3FwW9J6wMm6bkUFmhAgJhl/cQmOPTas1/ -5OQxmaqZAoGBANthrMTPuMefYypKxbb+AxURpe09W+AVxm3PjtaOWkGKYIKFZD/+ -q4t9Jgc6H8vj92XMC7fsE8W9hJa5btTvvHzhLp+5lxxpO9idh2E7whFf7JpVs4aZ -8WhITZKiOja5sMXe0u8/L2zLN8ANmHo4Yh87pKd+DvNYaANYTQxtxvLfAoGBAPcC -iiwQ4FtlBXba305NqOwwPg126+Jl1hZ1gECHAPpnB05cIq584dDPEW2Crqs3zYEG -JyvXmAdB+GqVgY2OpRJDCB05kIzevDFSiu4wE7WA2/tMHcP4hNGtnG/iOUyiHPMq -pdxWDCq7pyvZELl8CHsL1PZ1uVZKqVnn4VBbt7o7AoGBAMRZ4slwZaD9rkLvE5Ea -PmYAGrOAxJeGxcgJCn5MgMnCcWjAvR5t8NnzFDNJuaXCju5kt2RRfszwOBizNViO -jfRzk0hQUsiSA4d4TvAfDS6B3YGxDPJ/HEtK02tXmaTbhDVFnyOVOPw10tspD/zs -NB5iQpfKwtTYnpfH04Y5RuSfAoGAMVzfkgjZXUpl+iepYrOgY3sMm5I9d6QUUa6v -r7WLG3+FdUJyZ95rHliTSghIsczYE8XQBDH0ntavN1Wja0+ra2fb8kMzwQMuJskx -HIKdHbOfwqumcyhyGpkQX0edXdQz5uCJ/utvSQbxVJDvh7Hi2/w0VgCWxkjraR0u -6Ok7YUsCgYEAjiJng9gj3GGZ6noBZ+lcK2VU839yExkJzj68lBzviMeD0kuyVN7R -fNpUOtjgR1a2paJLyXFq2a2AyhakA6r87GGGAGW3o6TCEw3jTXcc2L3CX113Ee5N -DbXbE9rXB8OT0q/x1ugoel+nFQMW+wwAigMl50DcENczyStJNQoXP9I= ------END PRIVATE KEY----- diff --git a/serverIDsigner/keys/server_public.pem b/serverIDsigner/keys/server_public.pem deleted file mode 100644 index a0ae717..0000000 --- a/serverIDsigner/keys/server_public.pem +++ /dev/null @@ -1,8 +0,0 @@ ------BEGIN PUBLIC KEY----- -MIIBCgKCAQEA061q3ahXEG9rHf/uekmIk4fSvtG8p7OwkjP3PlafFjxeA4BS8dkj -PUEboXMftQCFrzWc5nLyQR4Ig5xMzjaEbQv/JBdpP/E1nl+fC6ca45Rov0OE7OQr -DyEPb1qNJ3uQmh+N9ZvTLNndT3bBxtBfmIRyMq+78mMumzNvFbx6zfNpwv9THDgB -nfZoAZ7gpIZeKn/yFasQmzFwpy9hfqZ21SCL7GmiU+nAz2TxtyFkUttMeIxDgSSK -LYxzt6mKdElNv0K97tBU1eRaXz4hpq/I0dtmcidrS/45MtXij6wO1agIvnH+pygS -I5QF3rE+lVYaDuKJZ6QBvnNEF9/cu7j/ZQIDAQAB ------END PUBLIC KEY----- diff --git a/serverIDsigner/userRESTFunctions.go b/serverIDsigner/userRESTFunctions.go index a4af5c5..4f655d7 100644 --- a/serverIDsigner/userRESTFunctions.go +++ b/serverIDsigner/userRESTFunctions.go @@ -20,9 +20,8 @@ type User struct { } func Index(w http.ResponseWriter, r *http.Request) { - //TODO return the public key, to allow others verifign signed strings by this server - - jResp, err := json.Marshal("a") + // return server public key, to allow others verifign signed strings by this server + jResp, err := json.Marshal(serverKey.PublicKey) if err != nil { panic(err) }