Kela/server/user.go

38 lines
730 B
Go

package main
import (
"crypto/ed25519"
"encoding/base64"
"errors"
"net/http"
)
func verify(id string, body []byte) error {
b, err := base64.RawURLEncoding.DecodeString(id)
if err != nil {
return err
}
if len(body) < ed25519.SignatureSize {
return errors.New("body too short")
}
message := body[:len(body)-ed25519.SignatureSize]
sig := body[len(body)-ed25519.SignatureSize:]
if !ed25519.Verify(ed25519.PublicKey(b), message, sig) {
return errors.New("signature verification failed")
}
return nil
}
// Create user
func createHandler(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
id := r.Form.Get("id")
dhtGet(id)
}
// Delete user
func deleteHandler(w http.ResponseWriter, r *http.Request) {
}