code: func (s *EDStore) Decrypt(dst []byte, cipherText []byte) ([]byte, error) {
  	var gcm cipher.AEAD
  	if len(cipherText) > 0 {
  		switch cipherText[0] {
  		case CryptoCodeAES:
  			gcm = s.aesgcm
  		case CryptoCodeChaCha:
  			gcm = s.chachagcm
  		default:
  			// Anything else, assume no algo or something we don't know how to decrypt.
  			return cipherText, nil
  		}
  	}
  	if len(cipherText) <= 1+s.nonceSize {
  		return nil, fmt.Errorf("trying to decrypt data that is not (len=%v)", len(cipherText))
  	}
  	dd, err := gcm.Open(dst, cipherText[1:1+s.nonceSize], cipherText[1+s.nonceSize:], nil)
  	if err != nil {
  		return nil, err
  	}
  	return dd, nil
  }
docs: // Decrypt returns the decrypted data or an error