示例#1
0
func (eds *encodeDigestSuite) TestEncodeDigestErrors(c *C) {
	_, err := asserts.EncodeDigest(crypto.SHA1, nil)
	c.Check(err, ErrorMatches, "unsupported hash")

	_, err = asserts.EncodeDigest(crypto.SHA512, []byte{1, 2})
	c.Check(err, ErrorMatches, "hash digest by sha512 should be 64 bytes")

	_, err = asserts.EncodeDigest(crypto.SHA3_384, []byte{1, 2})
	c.Check(err, ErrorMatches, "hash digest by sha3-384 should be 48 bytes")
}
示例#2
0
func makeDigest(rev int) string {
	d, err := asserts.EncodeDigest(crypto.SHA3_384, fakeHash(rev))
	if err != nil {
		panic(err)
	}
	return string(d)
}
示例#3
0
func (eds *encodeDigestSuite) TestEncodeDigestOK(c *C) {
	h := crypto.SHA512.New()
	h.Write([]byte("some stuff to hash"))
	digest := h.Sum(nil)
	encoded, err := asserts.EncodeDigest(crypto.SHA512, digest)
	c.Assert(err, IsNil)

	decoded, err := base64.RawURLEncoding.DecodeString(encoded)
	c.Assert(err, IsNil)
	c.Check(decoded, DeepEquals, digest)

	// sha3-384
	b, err := base64.RawURLEncoding.DecodeString(blobSHA3_384)
	c.Assert(err, IsNil)
	encoded, err = asserts.EncodeDigest(crypto.SHA3_384, b)
	c.Assert(err, IsNil)
	c.Check(encoded, Equals, blobSHA3_384)

}