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
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
}
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)
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)
}
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)
}