Ejemplo n.º 1
0
func main() {
	var challenge = os.Args[1]
	var err error
	var parthandle *os.File
	parthandle, err = os.Open(os.Args[2])
	if err != nil {
		log.Fatal(err)
	}
	var partreader = bufio.NewReader(parthandle)
	var randreader *os.File
	randreader, err = os.Open("/dev/random")
	if err != nil {
		log.Fatal(err)
	}
	var group *bbssig.Group = new(bbssig.Group)
	var mem *bbssig.MemberKey = new(bbssig.MemberKey)
	var hash = sha256.New()
	var cb []byte
	var response []byte
	objpack.UnPackPart(partreader, group, mem)
	cb, err = base64.StdEncoding.DecodeString(challenge)
	if err != nil {
		log.Fatal("Invalid Challenge")
	}
	response, err = mem.Sign(randreader, cb, hash)
	if err != nil {
		log.Fatal(err)
	}
	basepack.Packout(os.Stdout, response)
}
Ejemplo n.º 2
0
func answerChallenge(message string, memberKey *bbssig.MemberKey) string {
	out, err := memberKey.Sign(rand.Reader, []byte(message), sha1.New())
	if err != nil {
		log.Printf("Challenge failed. Error was: %s\n", err)
	}

	return string(out)
}