MCPcopy
hub / github.com/coyove/goflyway / decryptRequest

Method decryptRequest

proxy/util.go:201–230  ·  view source on GitHub ↗
(req *http.Request, r *clientRequest)

Source from the content-addressed store, hash-verified

199}
200
201func (proxy *ProxyServer) decryptRequest(req *http.Request, r *clientRequest) {
202 var cookies buffer
203 for _, c := range req.Cookies() {
204 c.Value = proxy.Cipher.Decrypt(c.Value, &r.iv)
205 cookies.Writes(c.String(), ";")
206 }
207 req.Header.Set("Cookie", cookies.Trunc(';').String())
208
209 if origin := req.Header.Get("Origin"); len(origin) > 4 {
210 req.Header.Set("Origin", proxy.Decrypt(origin[:len(origin)-4], &r.iv))
211 }
212
213 if referer := req.Header.Get("Referer"); referer != "" {
214 req.Header.Set("Referer", proxy.Decrypt(referer, &r.iv))
215 }
216
217 for k := range req.Header {
218 if k[:3] == "Cf-" || (len(k) > 12 && strings.ToLower(k[:12]) == "x-forwarded-") {
219 // ignore all cloudflare headers
220 // this is needed when you use cf as the frontend:
221 // gofw client -> cloudflare -> gofw server -> target host using cloudflare
222
223 // delete all x-forwarded-... headers
224 // some websites won't allow them
225 req.Header.Del(k)
226 }
227 }
228
229 req.Body = proxy.Cipher.IO.NewReadCloser(req.Body, &r.iv)
230}
231
232func copyHeaders(dst, src http.Header, gc *Cipher, enc bool, iv *[ivLen]byte) {
233 for k := range dst {

Callers 1

ServeHTTPMethod · 0.95

Calls 7

WritesMethod · 0.95
TruncMethod · 0.95
DecryptMethod · 0.80
StringMethod · 0.80
SetMethod · 0.80
GetMethod · 0.80
NewReadCloserMethod · 0.80

Tested by

no test coverage detected