本文整理汇总了Golang中github.com/cloudfoundry/gorouter/common/secure.Crypto类的典型用法代码示例。如果您正苦于以下问题:Golang Crypto类的具体用法?Golang Crypto怎么用?Golang Crypto使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Crypto类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: BuildSignatureAndMetadata
func BuildSignatureAndMetadata(crypto secure.Crypto, signature *Signature) (string, string, error) {
signatureJson, err := json.Marshal(&signature)
if err != nil {
return "", "", err
}
signatureJsonEncrypted, nonce, err := crypto.Encrypt(signatureJson)
if err != nil {
return "", "", err
}
metadata := Metadata{
Nonce: nonce,
}
metadataJson, err := json.Marshal(&metadata)
if err != nil {
return "", "", err
}
metadataHeader := base64.URLEncoding.EncodeToString(metadataJson)
signatureHeader := base64.URLEncoding.EncodeToString(signatureJsonEncrypted)
return signatureHeader, metadataHeader, nil
}
示例2: SignatureFromHeaders
func SignatureFromHeaders(signatureHeader, metadataHeader string, crypto secure.Crypto) (Signature, error) {
metadata := Metadata{}
signature := Signature{}
if metadataHeader == "" {
return signature, errors.New("No metadata found")
}
metadataDecoded, err := base64.URLEncoding.DecodeString(metadataHeader)
if err != nil {
return signature, err
}
err = json.Unmarshal(metadataDecoded, &metadata)
signatureDecoded, err := base64.URLEncoding.DecodeString(signatureHeader)
if err != nil {
return signature, err
}
signatureDecrypted, err := crypto.Decrypt(signatureDecoded, metadata.Nonce)
if err != nil {
return signature, err
}
err = json.Unmarshal([]byte(signatureDecrypted), &signature)
return signature, err
}
示例3:
package secure_test
import (
"github.com/cloudfoundry/gorouter/common/secure"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
var _ = Describe("Crypto", func() {
var (
aesGcm secure.Crypto
key []byte
)
BeforeEach(func() {
var err error
// valid key size
key = []byte("super-secret-key")
Expect(err).ToNot(HaveOccurred())
aesGcm, err = secure.NewAesGCM(key)
Expect(err).ToNot(HaveOccurred())
})
Describe("NewPbkdf2", func() {
Context("when a plaintext secret is provided", func() {
Context("when password length is less than desired key len", func() {
It("generates an encryption key of desired ken length", func() {
k := secure.NewPbkdf2([]byte(""), 16)