inventore123 wrote:How about if you rename a file as the answer to the question? I do believe modern OSes automatically "optimizes" USB mass storage devices "for quick removal" (option from the windows device manager), caching might not be a problem.
Only Windows does that, and from XP SP3.
Older versions of Windows and Linux doesn't do that, because it decreases write throughput.
On OSes that delay writes to flash drives until removal my text file based user interface would have some problems. However, in my testing (on Ubuntu Linux, Windows XP and Vista) OSes seem to write to the device immediately, but I know this is a setting that can be altered so it is something I should probably account for.
For my master password entry system it should not be an issue since the device does a detach/attach anyway. The user would be free to "safely remove" the device which would transfer the master password data and unlock the device. The device would still simulate a detach/attach so it would be re-enumerated by the host in the unlocked state.
For my newer system for selecting passwords to enter, user placing * characters next to passwords in a file and saving it, if the OS delays writes to the device it would cause a problem. Although it seems most modern systems are configured to write directly to the device, it would be best to provide an alternative when the user is using a system where this is not the case. Possibilities include:
1) Write a small host application that would be embedded into the device. In this host application use proper API calls to ask the OS to sync the data to physical media. I would have to see how well OSes honor these APIs as I think I have heard there are some issues with them not behaving as advertised. (probably the best solution)
2) Leave the physical button interface even though it is more cumbersome for cases where a machine that is delaying writes is being used.
3) A more complex num lock/scroll lock/caps lock interface that allows the user to use these keys to cycle through passwords somehow. (Would probably get cumbersome, but better than nothing)
4) Allow the user to do a "safely remove" operation each time they want to change passwords (cumbersome, but if the user only occasionally uses a machine configured to delay writes it is better than nothing)
Previously I was responding to the fact that the OS will *read* from it's cache before reading from the device, so let me clarify that here also. It may be the case that the first time a file is read it will be read from the disk (and therefore detectable by firmware), but all subsequent reads will come from the cache. This just means that the firmware cannot change the contents of a virtual file in the middle of a session and expect the user to see those changes.
How about if you rename a file as the answer to the question?
This could probably work, but what advantage does renaming a file have over editing text within a file as I am doing now for master password entry?
Can I buy a spare prototype? I live in Canada and I have PayPal.
I really appreciate your interest in the device, but I am just not ready to do this yet. If and when I am ready to send out devices for broader testing I will definitely contact you right away. Anyone else who would like to be on the list for helping to test devices in the future please contact me (
http://jonathankuhn.com/contact).