Пример #1
0
func main() {
	var err error
	var challenge []byte
	var response []byte
	var group *bbssig.Group = new(bbssig.Group)
	var gfile *os.File
	gfile, err = os.Open(os.Args[3])
	if err != nil {
		log.Fatal(err)
	}
	var ghandle = bufio.NewReader(gfile)
	{
		var gb = basepack.Unpack(ghandle)
		var success bool
		_, success = group.Unmarshal(gb)
		if !success {
			log.Fatal("Unable to unmarshal public key")
		}
	}
	challenge, err = base64.StdEncoding.DecodeString(os.Args[1])
	if err != nil {
		log.Fatal("Invalid challenge")
	}
	response, err = base64.StdEncoding.DecodeString(os.Args[2])
	if err != nil {
		log.Fatal("Invalid response")
	}
	if group.Verify(challenge, sha256.New(), response) {
		fmt.Printf("yes\n")
		os.Exit(0)
	} else {
		fmt.Printf("no\n")
		os.Exit(1)
	}
}