h$Z     None  %./>? secure-memory;Flush stdout, disable echo, and read user input from stdin. secure-memoryInput file handle. secure-memoryOutput file handle. secure-memoryPrompt. secure-memoryTarget buffer. secure-memoryTarget buffer size.None %-./>? secure-memoryException thrown by . secure-memoryBytes that will be allocated in a secure memory location such that they will never be moved by the garbage collector and, hopefully, never swapped out to the disk (if the operating system supports this kind of protection). secure-memorySize of the allocated buffer. secure-memorySize of the actual data stored. secure-memoryBuffer pointer. secure-memoryException thrown by  . secure-memoryA constraint for functions that require access to secure memory. The only way to satisfy it is to call  .  secure-memoryA trivial proof that  sodium_init has been called.  secure-memoryThis function performs the initialisation steps required for allocating data in secure memory regions.The basic usage is to call this function and provide to it a block of code that will be allocating memory for sensitive data. The type of ? is such that it can only be called withing such a code block.Ideally, you should call   only once and deal with all your sensitive data within this single code block, however it is not a requirement @ you can call it as many times as you wish and the only downside to doing so is that it will incur a tiny performance penalty.In some rare circumstances this function secure memory initialisation may fail, in which case this function will throw .  secure-memory Get the underlying data pointer.This function is unsafe, because it discards the second-order context and thus can allow the pointer to escape its scope and be used after free.  secure-memory,Allocate bytes in a protected memory region.Just as regular malloc, this function can fail, for example, if there is not enough memory. In this case, it will throw .  secure-memory=Free bytes previously allocated in a protected memory region. secure-memory&Rewrite the recorded size of the data.This is a very dangerous internal-only function. It is essentially a hack that allows other functions exported from this library to efficiently read data of unknown size by first allocating a large buffer and then tweaking the  instance to return the size that is smaller than what was actually allocated. secure-memory0Allocate a byte array in a secure memory region.This function guarantees that: The garbage collector will not touch the allocated memory and will not try to copy the sensitive data.The memory will be zeroed-out and freed as soon as the computation finishes.Additionally, it will try its best (subject to the support from the operating system) to do the following: Allocate the buffer at the end of a page and make sure that the following page is not mapped, so trying to access past the end of the buffer will crash the program.Place a canary immediately before the buffer, check that it was not modified before deallocating the memory, and crash the program otherwise.mlock: the memory to make sure it will not be paged to the disk.Ask the operating system not to include this memory in core dumps.Just as with regular malloc, allocation can fail, for example, if there is not enough memory. In this case, the function will throw .  secure-memoryAction to perform.  secure-memorySize of the array (in bytes). secure-memoryNew data size. secure-memoryWhat to resize. secure-memorySize of the array (in bytes). secure-memory(Action to perform with memory allocated.    None %./>?K  None %./>? secure-memory:Ask the user to enter their password and read it securely.=@Securely@ means @following all the best pracrices@, such as: do {- hash the pw! or do something else with it -}  secure-memory;Maximum possible length of the password to read (in bytes). secure-memory"Prompt (defaults to "Password: "). secure-memory$Action to perform with the password.None %./>?M       !"#$%&secure-memory-0.0.0.2-inplace(Data.SensitiveBytes.IO.Internal.PasswordData.SensitiveBytes.InternalData.SensitiveBytes.IOData.SensitiveByteswithSecureMemoryPaths_secure_memory readPasswordSensitiveBytesAllocExceptionSensitiveBytes allocSizedataSizebufPtrSecureMemoryInitExceptionWithSecureMemorySodiumInitialised unsafePtrallocatefreeresizedwithSensitiveBytes$$fExceptionSecureMemoryInitException$fShowSecureMemoryInitException$fByteArrayAccessSensitiveBytes'$fExceptionSensitiveBytesAllocException"$fShowSensitiveBytesAllocExceptionwithUserPasswordmemory-0.16.0-e46f7e5f45771c122909989a68b8fd4116f28f03f1029e1bb7390c962cf80a24Data.ByteArray.TypesByteArrayAccessversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName