code: func NewCookieOverseer(opts CookieOptions, secretKey []byte) *CookieOverseer {
  	if len(opts.Name) == 0 {
  		panic("cookie name must be provided")
  	}
  
  	block, err := aes.NewCipher(secretKey)
  	if err != nil {
  		panic(err)
  	}
  	gcm, err := cipher.NewGCM(block)
  	if err != nil {
  		panic(err)
  	}
  
  	o := &CookieOverseer{
  		options:      opts,
  		secretKey:    secretKey,
  		gcmBlockMode: gcm,
  	}
  
  	o.resetExpiryMiddleware.resetter = o
  
  	return o
  }
docs: // NewCookieOverseer creates an overseer from cookie options and a secret key
  // for use in encryption. Panic's on any errors that deal with cryptography.