本文整理汇总了Golang中github.com/dedis/crypto/abstract.Secret类的典型用法代码示例。如果您正苦于以下问题:Golang Secret类的具体用法?Golang Secret怎么用?Golang Secret使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Secret类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: SecretMarshalTo
// SecretEncodeTo provides a generic implementation of Secret.EncodeTo
// based on Secret.Encode.
func SecretMarshalTo(s abstract.Secret, w io.Writer) (int, error) {
buf, err := s.MarshalBinary()
if err != nil {
return 0, err
}
return w.Write(buf)
}
开发者ID:Liamsi,项目名称:crypto,代码行数:9,代码来源:encoding.go
示例2: SchnorrMComputeSignatureFromResponses
// this function produces a signature given a response from the server.
func SchnorrMComputeSignatureFromResponses(suite abstract.Suite,
cc []byte,
responses []SchnorrMResponse) SchnorrSignature {
hct := suite.Cipher(cc)
c := suite.Secret().Pick(hct) // H(m||r)
var r abstract.Secret = responses[0].R
for _, response := range responses[1:] {
r.Add(r, response.R)
}
return SchnorrSignature{S: r, E: c}
}
开发者ID:diagprov,项目名称:interview-go-multisigs,代码行数:15,代码来源:multisignatures.go
示例3: SecretUnmarshalFrom
// SecretDecodeFrom provides a generic implementation of Secret.DecodeFrom,
// based on Secret.Decode, or Secret.Pick if r is a Cipher or cipher.Stream.
// The returned byte-count is valid only when decoding from a normal Reader,
// not when picking from a pseudorandom source.
func SecretUnmarshalFrom(s abstract.Secret, r io.Reader) (int, error) {
if strm, ok := r.(cipher.Stream); ok {
s.Pick(strm)
return -1, nil // no byte-count when picking randomly
}
buf := make([]byte, s.MarshalSize())
n, err := io.ReadFull(r, buf)
if err != nil {
return n, err
}
return n, s.UnmarshalBinary(buf)
}
开发者ID:Liamsi,项目名称:crypto,代码行数:16,代码来源:encoding.go
示例4: ConstructTree
// ConstructTree does a depth-first construction of the tree specified in the
// config file. ConstructTree must be called AFTER populating the HostConfig with
// ALL the possible hosts.
func ConstructTree(
n *Node,
hc *HostConfig,
parent string,
suite abstract.Suite,
rand cipher.Stream,
hosts map[string]coconet.Host,
nameToAddr map[string]string,
opts ConfigOptions) (int, error) {
// passes up its X_hat, and/or an error
// get the name associated with this address
name, ok := nameToAddr[n.Name]
if !ok {
fmt.Println("unknown name in address book:", n.Name)
return 0, errors.New("unknown name in address book")
}
// generate indicates whether we should generate the signing
// node for this hostname
generate := opts.Host == "" || opts.Host == name
// check to make sure the this hostname is in the tree
// it can be backed by a nil pointer
h, ok := hosts[name]
if !ok {
fmt.Println("unknown host in tree:", name)
return 0, errors.New("unknown host in tree")
}
var prikey abstract.Secret
var pubkey abstract.Point
var sn *sign.Node
// if the JSON holds the fields field is set load from there
if len(n.PubKey) != 0 {
// log.Println("decoding point")
encoded, err := hex.DecodeString(string(n.PubKey))
if err != nil {
log.Print("failed to decode hex from encoded")
return 0, err
}
pubkey = suite.Point()
err = pubkey.UnmarshalBinary(encoded)
if err != nil {
log.Print("failed to decode point from hex")
return 0, err
}
// log.Println("decoding point")
encoded, err = hex.DecodeString(string(n.PriKey))
if err != nil {
log.Print("failed to decode hex from encoded")
return 0, err
}
prikey = suite.Secret()
err = prikey.UnmarshalBinary(encoded)
if err != nil {
log.Print("failed to decode point from hex")
return 0, err
}
}
if generate {
if prikey != nil {
// if we have been given a private key load that
aux := sign.NewKeyedNode(h, suite, prikey)
aux.GenSetPool()
hc.SNodes = append(hc.SNodes, aux)
h.SetPubKey(pubkey)
} else {
// otherwise generate a random new one
sn := sign.NewNode(h, suite, rand)
sn.GenSetPool()
hc.SNodes = append(hc.SNodes, sn)
h.SetPubKey(sn.PubKey)
}
sn = hc.SNodes[len(hc.SNodes)-1]
hc.Hosts[name] = sn
if prikey == nil {
prikey = sn.PrivKey
pubkey = sn.PubKey
}
// log.Println("pubkey:", sn.PubKey)
// log.Println("given: ", pubkey)
}
// if the parent of this call is empty then this must be the root node
if parent != "" && generate {
h.AddParent(0, parent)
}
// log.Println("name: ", n.Name)
// log.Println("prikey: ", prikey)
// log.Println("pubkey: ", pubkey)
height := 0
for _, c := range n.Children {
// connect this node to its children
cname, ok := nameToAddr[c.Name]
if !ok {
fmt.Println("unknown name in address book:", n.Name)
//.........这里部分代码省略.........
开发者ID:ineiti,项目名称:prifi,代码行数:101,代码来源:config.go
示例5: SecretHex
// Encode a secret to hexadecimal
func SecretHex(suite abstract.Suite, secret abstract.Secret) (string, error) {
sbuf, err := secret.MarshalBinary()
return hex.EncodeToString(sbuf), err
}
开发者ID:mlncn,项目名称:cothority,代码行数:5,代码来源:key.go
注:本文中的github.com/dedis/crypto/abstract.Secret类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论