<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nitrokey-rs/tests, branch v0.3.1</title>
<subtitle>Rust interface to libnitrokey</subtitle>
<id>https://git.ireas.org/nitrokey-rs/atom?h=v0.3.1</id>
<link rel='self' href='https://git.ireas.org/nitrokey-rs/atom?h=v0.3.1'/>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/'/>
<updated>2019-01-06T23:29:52Z</updated>
<entry>
<title>Add the connect_model function</title>
<updated>2019-01-06T23:29:52Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2019-01-06T23:27:06Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=3fab663891d42cfe317125650394c9560639b60c'/>
<id>urn:sha1:3fab663891d42cfe317125650394c9560639b60c</id>
<content type='text'>
This patch adds the global connect_model function that can be used to
connect to a Nitrokey device of a given model.  Contrary to Pro::connect
and Storage::connect, the model does not have to be set at compile time.
</content>
</entry>
<entry>
<title>Add support for the hidden volumes on a Nitrokey Storage</title>
<updated>2019-01-06T22:59:54Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2019-01-06T22:56:27Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=30264131262d9e926d3c14b0c92760fdc15ba5c8'/>
<id>urn:sha1:30264131262d9e926d3c14b0c92760fdc15ba5c8</id>
<content type='text'>
This patch introduces the methods enable_hidden_volume,
disable_hidden_volume and create_hidden_volume for the Storage struct to
support the hidden volumes on the Nitrokey Storage.  The enable and
create methods require that the encrypted storage has been enabled.
Contrary to authentication and password safe access, we do not enforce
this requirement in the API as file system operations could have
unwanted side effects and should not performed implicitly.
</content>
</entry>
<entry>
<title>Fix example for GenerateOtp::get_totp_code</title>
<updated>2019-01-05T09:53:25Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2019-01-05T09:52:29Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=83063599f4ab1bcbbd9be9166e738a13ae4e4cc6'/>
<id>urn:sha1:83063599f4ab1bcbbd9be9166e738a13ae4e4cc6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Prefer assert_eq over is_ok() checks</title>
<updated>2019-01-05T09:28:49Z</updated>
<author>
<name>Daniel Mueller</name>
<email>deso@posteo.net</email>
</author>
<published>2019-01-04T21:00:23Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=54f77851093932d82076f9ef393753e9d6692179'/>
<id>urn:sha1:54f77851093932d82076f9ef393753e9d6692179</id>
<content type='text'>
We experienced various problems running the tests and while they may or
may not be caused by local setup issues, it is helpful to have more
information than just an indication that an assertion (true/false) was
violated.
To that end, this change adjusts some of the assert!(&lt;func&gt;().is_ok())
to compare against Ok(()) instead. This way, if the result is not the Ok
variant, the error code will get printed.
</content>
</entry>
<entry>
<title>Adjust PWS tests to use nitrokey-test crate</title>
<updated>2019-01-05T09:28:43Z</updated>
<author>
<name>Daniel Mueller</name>
<email>deso@posteo.net</email>
</author>
<published>2019-01-03T19:07:07Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=7645f3964cf8060181b8fac130686e09959f00e1'/>
<id>urn:sha1:7645f3964cf8060181b8fac130686e09959f00e1</id>
<content type='text'>
This change adjusts the PWS tests to use the nitrokey-test crate.
</content>
</entry>
<entry>
<title>Adjust OTP tests to use nitrokey-test</title>
<updated>2019-01-05T09:28:37Z</updated>
<author>
<name>Daniel Mueller</name>
<email>deso@posteo.net</email>
</author>
<published>2019-01-03T19:02:39Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=0b3275f44306f96d41a306d8a753ec76be020d05'/>
<id>urn:sha1:0b3275f44306f96d41a306d8a753ec76be020d05</id>
<content type='text'>
This change adjusts the OTP tests to use the nitrokey-test crate.
</content>
</entry>
<entry>
<title>Use nitrokey-test for nitrokey device tests</title>
<updated>2019-01-05T09:26:16Z</updated>
<author>
<name>Daniel Mueller</name>
<email>deso@posteo.net</email>
</author>
<published>2018-12-29T19:52:42Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=65bff57e6139cc126191d4faabbcf74118932dd2'/>
<id>urn:sha1:65bff57e6139cc126191d4faabbcf74118932dd2</id>
<content type='text'>
This change is the first in a series to migrate the existing tests to
using the nitrokey-test crate. The crate provides a couple of benefits
over the existing way testing works:
- test execution is automatically serialized (i.e., no more need for
  --test-threads)
- available devices are detected at runtime (i.e., no more need for
  --features test-pro)
- tests capable of running only on a specific device are automatically
  skipped if this device is not present

In addition to that, the crate also offers selection of particular
groups of tests by virtue of the NITROKEY_TEST_GROUP environment
variable. If set (valid values are "nodev", "pro", and "storage") only
tests of the particular group are run (those tests will fail if a
required precondition is not met, i.e., if a device is present but
"nodev" is set, or if the "pro" group is run but no device or a storage
device is present).

Unfortunately, it has some limitations as well. Most importantly Rust
does not allow us to indicate whether a test has been skipped or not.
While it has #[ignore] support, that strictly is a compile-time feature
and, hence, not usable.

This patch in particular pulls in the nitrokey-test crate and adjusts
the existing device tests to make use of it.
</content>
</entry>
<entry>
<title>Update documentation and test for factory_reset</title>
<updated>2019-01-03T23:51:00Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2019-01-03T23:48:22Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=c5d5ab12ab8ca6b9889550f050b859b76fa4bdd7'/>
<id>urn:sha1:c5d5ab12ab8ca6b9889550f050b859b76fa4bdd7</id>
<content type='text'>
Contrary to my previous beliefs, build_aes_key has to be called even
after a factory reset using the Nitrokey API.  This patch updates the
documentation and the unit tests based on this insight.
</content>
</entry>
<entry>
<title>Add Device::build_aes_key method</title>
<updated>2019-01-03T17:06:30Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2019-01-03T17:04:50Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=616f84c13a4e676d3e2f870533fb1b8778c5f614'/>
<id>urn:sha1:616f84c13a4e676d3e2f870533fb1b8778c5f614</id>
<content type='text'>
This patch adds the build_aes_key method to the Device trait that uses
the NK_build_aes_key function to build new AES keys on the device.  This
effectively resets the password safe and the encrypted storage.  It is
unclear whether other data (e. g. the one-time passwords) are affected
too.
</content>
</entry>
<entry>
<title>Add Device::factory_reset method</title>
<updated>2019-01-03T13:53:06Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2019-01-03T13:50:15Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=0a7a62c9af15b11e5dbfad1900ac89924457b272'/>
<id>urn:sha1:0a7a62c9af15b11e5dbfad1900ac89924457b272</id>
<content type='text'>
This patch adds the factory_reset_method to the Device trait that uses
the NK_factory_reset function to perform a factory reset.  The tests
verify that the user and admin PIN are reset and that the OTP storage
and the password safe are deleted.
</content>
</entry>
</feed>
