code: func (k Key) Open(ciphertext []byte) ([]byte, error) {
  	var data sealedData
  
  	err := json.Unmarshal(ciphertext, &data)
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	block, err := aes.NewCipher(k)
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	aesgcm, err := cipher.NewGCM(block)
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	plaintext, err := aesgcm.Open(nil, data.Nonce, data.Ciphertext, nil)
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	return plaintext, nil
  }
docs: // Open will authenticate then decrypt the ciphertext.