func decrypt(block cipher.Block, value []byte) ([]byte, error) {
	size := block.BlockSize()
	if len(value) > size {
		// Extract iv.
		iv := value[:size]
		// Extract ciphertext.
		value = value[size:]
		// Decrypt it.
		stream := cipher.NewCTR(block, iv)
		stream.XORKeyStream(value, value)
		return value, nil
	}
	return nil, errors.New("decrypt: the value could not be decrypted")
}
// decrypt decrypts a value using the given block in counter mode.
//
// The value to be decrypted must be prepended by a initialization vector
// (http://goo.gl/zF67k) with the length of the block size.
decrypt decrypts a value using the given block in counter mode.

The value to be decrypted must be prepended by a initialization vector
with the length of the block size.
// decrypt decrypts a value using the given block in counter mode . // // The value to be decrypted must be prepended by a initialization vector // ( http : // goo . gl / zF67k ) with the length of the block size .
func decrypt(block cipher.Block, value []byte) ([]byte, error) {
	size := block.BlockSize()
	if len(value) > size {
		iv := value[:size]
		value = value[size:]
		stream := cipher.NewCTR(block, iv)
		stream.XORKeyStream(value, value)
		return value, nil
	}
	return nil, errors.New("decrypt: the value could not be decrypted")
}
func decrypt ( block cipher . Block , value [ ] byte ) ( [ ] byte , error ) { size := block . BlockSize ( ) if len ( value ) > size { iv := value [ : size ] value = value [ size : ] stream := cipher . NewCTR ( block , iv ) stream . XORKeyStream ( value , value ) return value , nil } return nil , errors . New ( " " ) }
decrypt decrypts a value using the given block in counter mode.
decrypt decrypts a value using the given block in counter mode .
// Extract iv. // Extract ciphertext. // Decrypt it.