func (a *AESGCMCipher) Parts(encryptedData []byte) (nonce []byte, ciphertext []byte, tag []byte) {
	return encryptedData[:a.nonceSizeBytes],
		encryptedData[a.nonceSizeBytes : len(encryptedData)-a.tagSizeBytes],
		encryptedData[len(encryptedData)-a.tagSizeBytes:]
}
// Parts takes output bytes of the form generated by Encrypt and splits them into the nonce, ciphertext and tag based
// on the parameter values of this cipher.
Parts takes output bytes of the form generated by Encrypt and splits them into the nonce, ciphertext and tag based
on the parameter values of this cipher.
// Parts takes output bytes of the form generated by Encrypt and splits them into the nonce ciphertext and tag based // on the parameter values of this cipher .
func (a *AESGCMCipher) Parts(encryptedData []byte) (nonce []byte, ciphertext []byte, tag []byte) {
	return encryptedData[:a.nonceSizeBytes],
		encryptedData[a.nonceSizeBytes : len(encryptedData)-a.tagSizeBytes],
		encryptedData[len(encryptedData)-a.tagSizeBytes:]
}
func ( a * AESGCMCipher ) Parts ( encryptedData [ ] byte ) ( nonce [ ] byte , ciphertext [ ] byte , tag [ ] byte ) { return encryptedData [ : a . nonceSizeBytes ] , encryptedData [ a . nonceSizeBytes : len ( encryptedData ) - a . tagSizeBytes ] , encryptedData [ len ( encryptedData ) - a . tagSizeBytes : ] }
Parts takes output bytes of the form generated by Encrypt and splits them into the nonce, ciphertext and tag based
on the parameter values of this cipher.
Parts takes output bytes of the form generated by Encrypt and splits them into the nonce ciphertext and tag based on the parameter values of this cipher .