MCPcopy
hub / github.com/oauth2-proxy/oauth2-proxy / DecodeSessionState

Function DecodeSessionState

pkg/apis/sessions/session_state.go:203–224  ·  view source on GitHub ↗

DecodeSessionState decodes a LZ4 compressed MessagePack into a Session State

(data []byte, c encryption.Cipher, compressed bool)

Source from the content-addressed store, hash-verified

201
202// DecodeSessionState decodes a LZ4 compressed MessagePack into a Session State
203func DecodeSessionState(data []byte, c encryption.Cipher, compressed bool) (*SessionState, error) {
204 decrypted, err := c.Decrypt(data)
205 if err != nil {
206 return nil, fmt.Errorf("error decrypting the session state: %w", err)
207 }
208
209 packed := decrypted
210 if compressed {
211 packed, err = lz4Decompress(decrypted)
212 if err != nil {
213 return nil, err
214 }
215 }
216
217 var ss SessionState
218 err = msgpack.Unmarshal(packed, &ss)
219 if err != nil {
220 return nil, fmt.Errorf("error unmarshalling data to session state: %w", err)
221 }
222
223 return &ss, nil
224}
225
226// lz4Compress compresses with LZ4
227//

Callers 4

ticket_test.goFile · 0.92
loadSessionMethod · 0.92
LoadMethod · 0.92

Calls 2

lz4DecompressFunction · 0.85
DecryptMethod · 0.65

Tested by 1