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

Function SignExchanges

go/bundle/cmd/sign-bundle/signedexchange.go:77–126  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

75}
76
77func SignExchanges() error {
78 privKey, err := readPrivateKeyFromFile(*sxgFlagPrivateKey)
79 if err != nil {
80 return fmt.Errorf("%s: %v", *sxgFlagPrivateKey, err)
81 }
82
83 if _, ok := privKey.(*ecdsa.PrivateKey); !ok {
84 return errors.New("Private key is not ECDSA type.")
85 }
86
87 certs, err := readCertChainFromFile(*sxgFlagCertificate)
88 if err != nil {
89 return fmt.Errorf("%s: %v", *sxgFlagCertificate, err)
90 }
91
92 validityUrl, err := url.Parse(*sxgFlagValidityUrl)
93 if err != nil {
94 return fmt.Errorf("failed to parse validity URL %q: %v", *sxgFlagValidityUrl, err)
95 }
96
97 var date time.Time
98 if *sxgFlagDate == "" {
99 date = time.Now()
100 } else {
101 var err error
102 date, err = time.Parse(time.RFC3339, *sxgFlagDate)
103 if err != nil {
104 return fmt.Errorf("failed to parse date %q: %v", *sxgFlagDate, err)
105 }
106 }
107
108 b, err := readBundleFromFile(*sxgFlagInput)
109 if err != nil {
110 return fmt.Errorf("%s: %v", *sxgFlagInput, err)
111 }
112
113 signer, err := signature.NewSigner(b.Version, certs, privKey, validityUrl, date, *sxgFlagExpire)
114 if err != nil {
115 return err
116 }
117
118 if err := addSignature(b, signer); err != nil {
119 return err
120 }
121
122 if err := writeBundleToFile(b, *sxgFlagOutput); err != nil {
123 return fmt.Errorf("%s: %v", *sxgFlagOutput, err)
124 }
125 return nil
126}

Callers 1

runFunction · 0.85

Calls 6

NewSignerFunction · 0.92
readPrivateKeyFromFileFunction · 0.85
readCertChainFromFileFunction · 0.85
readBundleFromFileFunction · 0.85
addSignatureFunction · 0.85
writeBundleToFileFunction · 0.85

Tested by

no test coverage detected