server transactions: channel based sync for each account
[epoint] / cmd / epoint-server / epoint-server.go
index ee6bf58..cf29fa7 100644 (file)
@@ -16,12 +16,10 @@ const (
        seckey  = "./key.sec"
 )
 
-var serverkey *openpgp.Entity
-
 // todo: http header limit: 64K, body limit: 64K
 
-// Dummy initialization of serverkey
-func initkey() (err error) {
+// TODO: generate
+func initkey() (sk *openpgp.Entity, err error) {
        f, err := os.Open(seckey)
        if err != nil {
                return
@@ -35,25 +33,7 @@ func initkey() (err error) {
        if err != nil {
                return
        }
-       serverkey = keys[0]
-       err = os.MkdirAll(rootdir, 0755)
-       if err != nil {
-               return
-       }
-       f, err = os.Create(rootdir + "/serverkey")
-       if err != nil {
-               return
-       }
-       err = serverkey.Serialize(f)
-       if err != nil {
-               return
-       }
-       // TODO: make sure pubkey is replicated and available
-       err = f.Sync()
-       if err != nil {
-               return
-       }
-       err = f.Close()
+       sk = keys[0]
        return
 }
 
@@ -89,7 +69,7 @@ func submitHandler(w http.ResponseWriter, r *http.Request) {
        key := r.FormValue("key")
        switch {
        case draft != "":
-               cert, err := server.EvalDraft([]byte(draft), serverkey)
+               cert, err := server.EvalDraft([]byte(draft))
                if err != nil {
                        msg := fmt.Sprintf("eval draft failed: %s", err)
                        httpError(w, 404, msg)
@@ -97,7 +77,7 @@ func submitHandler(w http.ResponseWriter, r *http.Request) {
                        w.Write(cert)
                }
        case debit != "":
-               cert, err := server.EvalDebitCert([]byte(debit), serverkey)
+               cert, err := server.EvalDebitCert([]byte(debit))
                if err != nil {
                        msg := fmt.Sprintf("eval debit failed: %s", err)
                        httpError(w, 404, msg)
@@ -119,15 +99,11 @@ func submitHandler(w http.ResponseWriter, r *http.Request) {
 }
 
 func main() {
-       err := initkey()
-       if err != nil {
-               log.Fatal(err)
-       }
-       err = server.Init(rootdir)
+       serverkey, err := initkey()
        if err != nil {
                log.Fatal(err)
        }
-       err = server.StoreSk(serverkey)
+       err = server.Init(rootdir, serverkey)
        if err != nil {
                log.Fatal(err)
        }