blob: 5a41266acc4c852186224b5a317c1dcf98e4307a [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import (
"encoding/base64"
"fmt"
"math/big"
"v.io/x/ref/services/internal/restsigner"
)
func main() {
signer, err := restsigner.NewRestSigner()
if err != nil {
fmt.Printf("NewRestSigner error: %v\n", err)
return
}
der, err := signer.PublicKey().MarshalBinary()
if err != nil {
fmt.Printf("Failed to marshal public key: %v\n", err)
return
}
sig, err := signer.Sign([]byte("purpose"), []byte("message"))
if err != nil {
fmt.Printf("Sign error: %v\n", err)
return
}
ok := sig.Verify(signer.PublicKey(), []byte("message"))
fmt.Printf("PublicKey: %v\n", base64.URLEncoding.EncodeToString(der))
fmt.Printf("R: %v\n", big.NewInt(0).SetBytes(sig.R))
fmt.Printf("S: %v\n", big.NewInt(0).SetBytes(sig.S))
fmt.Printf("Verified: %v\n", ok)
}