MCPcopy Create free account
hub / github.com/WICG/webpackage / Encode

Method Encode

go/bundle/signature/signer.go:47–89  ·  view source on GitHub ↗

Encode encodes s as a CBOR item.

()

Source from the content-addressed store, hash-verified

45
46// Encode encodes s as a CBOR item.
47func (s *SignedSubset) Encode() ([]byte, error) {
48 mes := []*cbor.MapEntryEncoder{
49 cbor.GenerateMapEntry(func(keyE *cbor.Encoder, valueE *cbor.Encoder) {
50 keyE.EncodeTextString("validity-url")
51 valueE.EncodeTextString(s.ValidityUrl.String())
52 }),
53 cbor.GenerateMapEntry(func(keyE *cbor.Encoder, valueE *cbor.Encoder) {
54 keyE.EncodeTextString("auth-sha256")
55 valueE.EncodeByteString(s.AuthSha256)
56 }),
57 cbor.GenerateMapEntry(func(keyE *cbor.Encoder, valueE *cbor.Encoder) {
58 keyE.EncodeTextString("date")
59 valueE.EncodeInt(s.Date.Unix())
60 }),
61 cbor.GenerateMapEntry(func(keyE *cbor.Encoder, valueE *cbor.Encoder) {
62 keyE.EncodeTextString("expires")
63 valueE.EncodeInt(s.Expires.Unix())
64 }),
65 cbor.GenerateMapEntry(func(keyE *cbor.Encoder, valueE *cbor.Encoder) {
66 keyE.EncodeTextString("subset-hashes")
67 subsetHashes := []*cbor.MapEntryEncoder{}
68 for url, rh := range s.SubsetHashes {
69 subsetHashes = append(subsetHashes,
70 cbor.GenerateMapEntry(func(keyE *cbor.Encoder, valueE *cbor.Encoder) {
71 keyE.EncodeTextString(url)
72 valueE.EncodeArrayHeader(1 + len(rh.Hashes)*2)
73 valueE.EncodeByteString(rh.VariantsValue)
74 for _, ri := range rh.Hashes {
75 valueE.EncodeByteString(ri.HeaderSha256)
76 valueE.EncodeTextString(ri.PayloadIntegrityHeader)
77 }
78 }))
79 }
80 valueE.EncodeMap(subsetHashes)
81 }),
82 }
83 var buf bytes.Buffer
84 enc := cbor.NewEncoder(&buf)
85 if err := enc.EncodeMap(mes); err != nil {
86 return nil, err
87 }
88 return buf.Bytes(), nil
89}
90
91func NewSigner(ver version.Version, certs certurl.CertChain, privKey crypto.PrivateKey, validityUrl *url.URL, date time.Time, duration time.Duration) (*Signer, error) {
92 if err := certs.Validate(); err != nil {

Callers 3

AddPayloadIntegrityMethod · 0.45
UpdateSignaturesMethod · 0.45
TestSignatureGenerationFunction · 0.45

Calls 8

EncodeMapMethod · 0.95
GenerateMapEntryFunction · 0.92
NewEncoderFunction · 0.92
EncodeTextStringMethod · 0.80
EncodeByteStringMethod · 0.80
EncodeIntMethod · 0.80
EncodeArrayHeaderMethod · 0.80
StringMethod · 0.45

Tested by 1

TestSignatureGenerationFunction · 0.36