Home / Function/ DecryptCookie() — fiber Function Reference

DecryptCookie() — fiber Function Reference

Architecture documentation for the DecryptCookie() function in utils.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  40af5aee_aa7b_d789_f01d_b52aa24a3f89["DecryptCookie()"]
  e6bb1363_07ac_5e56_db86_c9a765b231de["utils.go"]
  40af5aee_aa7b_d789_f01d_b52aa24a3f89 -->|defined in| e6bb1363_07ac_5e56_db86_c9a765b231de
  bb59ec90_0c01_7fc7_050d_54abec01940e["decodeKey()"]
  40af5aee_aa7b_d789_f01d_b52aa24a3f89 -->|calls| bb59ec90_0c01_7fc7_050d_54abec01940e
  style 40af5aee_aa7b_d789_f01d_b52aa24a3f89 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

middleware/encryptcookie/utils.go lines 62–93

func DecryptCookie(name, value, key string) (string, error) {
	keyDecoded, err := decodeKey(key)
	if err != nil {
		return "", err
	}

	enc, err := base64.StdEncoding.DecodeString(value)
	if err != nil {
		return "", fmt.Errorf("failed to base64-decode value: %w", err)
	}

	block, err := aes.NewCipher(keyDecoded)
	if err != nil {
		return "", fmt.Errorf("failed to create AES cipher: %w", err)
	}

	gcm, err := cipher.NewGCMWithRandomNonce(block)
	if err != nil {
		return "", fmt.Errorf("failed to create GCM mode: %w", err)
	}

	if len(enc) < gcm.NonceSize()+gcm.Overhead() {
		return "", ErrInvalidEncryptedValue
	}

	plaintext, err := gcm.Open(nil, nil, enc, []byte(name))
	if err != nil {
		return "", fmt.Errorf("failed to decrypt ciphertext: %w", err)
	}

	return string(plaintext), nil
}

Domain

Subdomains

Calls

Frequently Asked Questions

What does DecryptCookie() do?
DecryptCookie() is a function in the fiber codebase, defined in middleware/encryptcookie/utils.go.
Where is DecryptCookie() defined?
DecryptCookie() is defined in middleware/encryptcookie/utils.go at line 62.
What does DecryptCookie() call?
DecryptCookie() calls 1 function(s): decodeKey.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free