diff --git a/verify.go b/verify.go new file mode 100644 index 0000000..bf5a9f8 --- /dev/null +++ b/verify.go @@ -0,0 +1,53 @@ +package main + +import ( +"encoding/json" +"fmt" +"github.com/writeas/activityserve" +"crypto/sha256" +"crypto/ed25519" +"github.com/btcsuite/btcutil/base58" +//"crypto" +) +func main(){ +actor, err := activityserve.LoadActor("ED4xVR2hw6frfBNFJataKYZn58WnaotS8d8WKg4H5rfC") +if err != nil { +fmt.Println(err) +} +activityserve.Setup("config.ini",false) +//rActor, err := activityserve.NewRemoteActor(actor, "https://mitra.social/.well-known/apgateway/did:key:z6MknVmyPtQmD2SaGnqyGgTVEqfqkkJJnY3YVKBmbzSUNCcX/actor") +rActor, err := activityserve.NewRemoteActor(actor,"http://localhost:8000/silverpill.json") +if err != nil { +fmt.Println(err) +} +ractorRaw := rActor.GetRaw() +proof := ractorRaw["proof"].(map[string]interface{}) +delete(ractorRaw,"proof") +ractorJson,err := json.Marshal(ractorRaw) +if err != nil { +fmt.Println(err) +} +ractorJsonString := string(ractorJson) +hashActor := sha256.New() +hashActor.Write([]byte(ractorJsonString)) +hashActorRes := hashActor.Sum(nil) + +verificationMethod := proof["verificationMethod"].(string) +proofValue := proof["proofValue"].(string)[0:] + +proofValueDecoded := base58.Decode(proofValue) +proofValueStripped := proofValueDecoded[2:] +publicKeyDecoded := base58.Decode(verificationMethod[9:]) +publicKeyDecoded32 := publicKeyDecoded[2:] +//publicKey := ed25519.PublicKey(publicKeyDecoded32) +//fmt.Println(publicKey) +fmt.Println(publicKeyDecoded32) +fmt.Println(hashActorRes) +fmt.Println(proofValueStripped) +err = ed25519.VerifyWithOptions(publicKeyDecoded32, hashActorRes, proofValueStripped, &ed25519.Options{ + Hash: 0, +}); +if err != nil { + fmt.Println(err) +} +} \ No newline at end of file