本文整理汇总了Golang中github.com/keybase/client/go/protocol.KID.ToBytes方法的典型用法代码示例。如果您正苦于以下问题:Golang KID.ToBytes方法的具体用法?Golang KID.ToBytes怎么用?Golang KID.ToBytes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/keybase/client/go/protocol.KID
的用法示例。
在下文中一共展示了KID.ToBytes方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: ImportKeypairFromKID
func ImportKeypairFromKID(k keybase1.KID) (key GenericKey, err error) {
kid := k.ToBytes()
l := len(kid)
if l < 3 {
err = BadKeyError{"KID was way too short"}
return
}
if kid[0] != byte(KeybaseKIDV1) || kid[l-1] != byte(IDSuffixKID) {
err = BadKeyError{"bad header or trailer found"}
return
}
raw := kid[2:(l - 1)]
switch kid[1] {
case byte(KIDNaclEddsa):
if len(raw) != ed25519.PublicKeySize {
err = BadKeyError{"Bad EdDSA key size"}
} else {
tmp := NaclSigningKeyPair{}
copy(tmp.Public[:], raw)
key = tmp
}
case byte(KIDNaclDH):
if len(raw) != NaclDHKeysize {
err = BadKeyError{"Bad DH key size"}
} else {
tmp := NaclDHKeyPair{}
copy(tmp.Public[:], raw)
key = tmp
}
default:
err = BadKeyError{fmt.Sprintf("Bad key prefix: %d", kid[1])}
}
return
}
示例2: GetTLFCryptKeyServerHalfID
// GetTLFCryptKeyServerHalfID implements the Crypto interface for CryptoCommon.
func (c *CryptoCommon) GetTLFCryptKeyServerHalfID(
user keybase1.UID, deviceKID keybase1.KID,
serverHalf TLFCryptKeyServerHalf) (TLFCryptKeyServerHalfID, error) {
key := serverHalf.data[:]
data := append(user.ToBytes(), deviceKID.ToBytes()...)
hmac, err := DefaultHMAC(key, data)
if err != nil {
return TLFCryptKeyServerHalfID{}, err
}
return TLFCryptKeyServerHalfID{
ID: hmac,
}, nil
}
示例3: VerifyTLFCryptKeyServerHalfID
// VerifyTLFCryptKeyServerHalfID implements the Crypto interface for CryptoCommon.
func (c *CryptoCommon) VerifyTLFCryptKeyServerHalfID(serverHalfID TLFCryptKeyServerHalfID,
user keybase1.UID, deviceKID keybase1.KID, serverHalf TLFCryptKeyServerHalf) error {
key := serverHalf.data[:]
data := append(user.ToBytes(), deviceKID.ToBytes()...)
return serverHalfID.ID.Verify(key, data)
}