# Functions
DeleteLongName deletes "hashName.name" in the directory opened at "dirfd".
Dir is like filepath.Dir but returns "" instead of ".".
IsLongContent returns true if "cName" is the content store of a long name file (looks like "gocryptfs.longname.[sha256]").
NameType - detect if cName is gocryptfs.longname.[sha256] .......
New returns a new NameTransform instance.
ReadDirIVAt reads "gocryptfs.diriv" from the directory that is opened as "dirfd".
ReadLongName - read cName + ".name" from the directory opened as dirfd.
RemoveLongNameSuffix removes the ".name" suffix from cName, returning the corresponding content file name.
WriteDirIVAt - create a new gocryptfs.diriv file in the directory opened at "dirfd".
# Constants
DirIVFilename is the filename used to store directory IV.
DirIVLen is identical to AES block size.
LongNameContent is the file that stores the file content.
LongNameFilename is the file that stores the full encrypted filename.
LongNameNone is used when the file does not have a long name.
LongNameSuffix is the suffix used for files with long names.
Like ext4, we allow at most 255 bytes for a file name.
# Structs
NameTransform is used to transform filenames.
# Interfaces
NameTransformer is an interface used to transform filenames.