<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nitrokey-rs/src/device, branch next</title>
<subtitle>Rust interface to libnitrokey</subtitle>
<id>https://git.ireas.org/nitrokey-rs/atom?h=next</id>
<link rel='self' href='https://git.ireas.org/nitrokey-rs/atom?h=next'/>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/'/>
<updated>2020-09-21T22:05:53Z</updated>
<entry>
<title>Rename *lock fields of the Config struct</title>
<updated>2020-09-21T22:05:53Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2020-09-21T22:05:53Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=6a94c70a2224212e2310927aec7b512d562ee455'/>
<id>urn:sha1:6a94c70a2224212e2310927aec7b512d562ee455</id>
<content type='text'>
libnitrokey calls the configuration fields that set bindings for the Num
Lock, Caps Lock and Scroll Lock keys numlock, capslock, scrolllock.  Due
to a typo, scrolllock with three l was renamed to scrollock with two l
in nitrokey-rs.

To make the field names easier to read (and type) and consistent with
the typical names for these keys, this patch changes them to num_lock,
caps_lock and scroll_lock.  In the doc comments, we now use the spelling
“Num Lock”, “Caps Lock” and “Scroll Lock”.
</content>
</entry>
<entry>
<title>Fix dead links in Device documentation</title>
<updated>2020-09-07T09:01:19Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2020-09-07T09:01:19Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=5df790a77a8c81b58e7507e8da5d9ac4975a64f8'/>
<id>urn:sha1:5df790a77a8c81b58e7507e8da5d9ac4975a64f8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make *Error, Model, DeviceWrapper non-exhaustive</title>
<updated>2020-09-06T10:57:16Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2020-09-06T10:57:16Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=6039e0c76997014ed3f78768f8558da98d373e4b'/>
<id>urn:sha1:6039e0c76997014ed3f78768f8558da98d373e4b</id>
<content type='text'>
Previously, all enums defined by the nitrokey crate were exhaustive.
This means that adding new variants to these enums is a breaking change.
To make it possible to add new features to nitrokey-rs without breaking
compatibility, this patch marks the Error, CommandError,
CommunicationError, LibraryError, Model and DeviceWrapper enums as
non-exhaustive.
</content>
</entry>
<entry>
<title>Use find(…) instead of skip_while(…).next()</title>
<updated>2020-07-08T21:02:43Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2020-07-08T10:25:31Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=cf460cbb5e616d12f5e6b1f64acddf3ec0e7b087'/>
<id>urn:sha1:cf460cbb5e616d12f5e6b1f64acddf3ec0e7b087</id>
<content type='text'>
This patch replaces calls to skip_while(…).next() for an iter::Iterator
with a call to find(…), as suggested by clippy.
</content>
</entry>
<entry>
<title>Remove unused imports</title>
<updated>2020-07-08T21:02:34Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2020-07-08T10:18:41Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=9f80512a11926c5ec3f869ad5e220b3b350eec9a'/>
<id>urn:sha1:9f80512a11926c5ec3f869ad5e220b3b350eec9a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refactor string handling in util</title>
<updated>2020-02-03T10:31:21Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2020-01-28T16:56:53Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=d905aafe208536203dd319e5dc48bd250180a8ef'/>
<id>urn:sha1:d905aafe208536203dd319e5dc48bd250180a8ef</id>
<content type='text'>
The util module provides helper methods to deal with the C strings
returned by libnitrokey.  The current implementation has to problems:
- It causes unnecessary allocations if we only want to look at the
  string, for example in get_serial_number.
- If the conversion from a CStr to a String fails, the string pointer
  is not freed.

Therefore this patch introduces the run_with_str function that executes
a function with the string returned by libnitrokey and then makes sure
that the pointer is freed correctly.
</content>
</entry>
<entry>
<title>Represent serial numbers using SerialNumber struct</title>
<updated>2020-02-03T10:30:57Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2020-01-28T16:38:47Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=4fb865af37093d9b0ee039d8ae48fb2a820f3760'/>
<id>urn:sha1:4fb865af37093d9b0ee039d8ae48fb2a820f3760</id>
<content type='text'>
In a previous commit, we changed the serial number representation from a
string to an integer.  This made it easier to compare serial numbers,
but also introduced new problems:
- Serial numbers should be formatted consistently, for example as
  "{:#010x}".  It is hard to ensure this for an integer value.
- The format of the serial number may be subject to change.  Users
  should not rely too much on the u32 representation.

Therefore we introduce a new SerialNumber struct that represents a
serial number.  Currently it only stores a u32 value.  The following
traits and functions can be used to access its value:
- FromStr for string parsing
- ToString/Display for string formatting
- as_u32 to access the underlying integer value
</content>
</entry>
<entry>
<title>Use NK_get_status to implement Device::get_config</title>
<updated>2020-02-03T09:22:13Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2020-01-29T12:52:19Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=c1f48ce6c614586042db8891d2eebf19d2212ce4'/>
<id>urn:sha1:c1f48ce6c614586042db8891d2eebf19d2212ce4</id>
<content type='text'>
libnitrokey’s NK_read_config function returns a pointer to an array that
has been allocated using new[].  We would have to delete this pointer
using delete[], but we only have access to free.  Therefore this patch
modifies the Device::get_config function to call NK_get_status instead
of NK_read_config.

This also makes the code more safe as we get the data as a struct
instead of an array.  It does not add much overhead as NK_read_config
also executes the GET_STATUS command on the Nitrokey device.
</content>
</entry>
<entry>
<title>Implement From&lt;&amp;NK_status&gt; for RawConfig</title>
<updated>2020-02-03T09:19:21Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2020-01-29T13:04:06Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=4a9dab94400cb00ae1e28485ddc64d46cf27ed3c'/>
<id>urn:sha1:4a9dab94400cb00ae1e28485ddc64d46cf27ed3c</id>
<content type='text'>
This makes it easier to parse only the config part of the NK_status
struct and avoids code duplication in the upcoming get_config
refactoring.
</content>
</entry>
<entry>
<title>Always store serial numbers as integers</title>
<updated>2020-01-28T11:02:28Z</updated>
<author>
<name>Robin Krahl</name>
<email>robin.krahl@ireas.org</email>
</author>
<published>2020-01-26T13:26:01Z</published>
<link rel='alternate' type='text/html' href='https://git.ireas.org/nitrokey-rs/commit/?id=24eebcdaaa32d55bf49d069d8320be5dbd6fdab9'/>
<id>urn:sha1:24eebcdaaa32d55bf49d069d8320be5dbd6fdab9</id>
<content type='text'>
This patch consistently uses u32 integers to store and return the serial
number of a Nitrokey device.  This makes it easier to convert and
compare the serial number, as it is a unique representation and as
formatting an integer cannot fail.  For more details, see this RFC:
	https://lists.sr.ht/~ireas/nitrokey-rs-dev/%3C20200126074816.GA1314%40ireas.org%3E
</content>
</entry>
</feed>
