|
@ -1,6 +1,8 @@ |
|
|
package main |
|
|
package main |
|
|
|
|
|
|
|
|
import ( |
|
|
import ( |
|
|
|
|
|
"crypto/sha256" |
|
|
|
|
|
"encoding/hex" |
|
|
"encoding/json" |
|
|
"encoding/json" |
|
|
"fmt" |
|
|
"fmt" |
|
|
"os" |
|
|
"os" |
|
@ -15,6 +17,7 @@ func help() { |
|
|
fmt.Println("\thashcash new [subject *] [difficulty 10] [expires in 5m]") |
|
|
fmt.Println("\thashcash new [subject *] [difficulty 10] [expires in 5m]") |
|
|
fmt.Println("\thashcash parse <hashcash>") |
|
|
fmt.Println("\thashcash parse <hashcash>") |
|
|
fmt.Println("\thashcash solve <hashcash>") |
|
|
fmt.Println("\thashcash solve <hashcash>") |
|
|
|
|
|
fmt.Println("\thashcash hash <hashcash>") |
|
|
fmt.Println("\thashcash verify <hashcash> [subject *]") |
|
|
fmt.Println("\thashcash verify <hashcash> [subject *]") |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -107,6 +110,17 @@ func main() { |
|
|
|
|
|
|
|
|
fmt.Println(h.String()) |
|
|
fmt.Println(h.String()) |
|
|
return |
|
|
return |
|
|
|
|
|
case "hash": |
|
|
|
|
|
var token string |
|
|
|
|
|
if 3 != nargs { |
|
|
|
|
|
help() |
|
|
|
|
|
os.Exit(1) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
token = args[2] |
|
|
|
|
|
hash := sha256.Sum256([]byte(token)) |
|
|
|
|
|
fmt.Println(hex.EncodeToString(hash[:])) |
|
|
|
|
|
return |
|
|
case "verify": |
|
|
case "verify": |
|
|
var token string |
|
|
var token string |
|
|
if nargs < 3 { |
|
|
if nargs < 3 { |
|
|