Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs/1.12 updates #165

Merged
merged 4 commits into from
Dec 17, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions Yubico.YubiKey/docs/users-manual/getting-started/whats-new.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,27 @@ limitations under the License. -->

Here you can find all of the updates and release notes for published versions of the SDK.

## 1.12.x Releases
### 1.12.0

Release date: December 18th, 2024

Features:

- Secure Channel Protocol support:

-
- [YubiKeyDeviceListener](xref:Yubico.YubiKey.YubiKeyDeviceListener) has been reconfigured to run the listeners in the background instead of the main thread. In addition, the listeners can now be [stopped](xref:Yubico.YubiKey.YubiKeyDeviceListener.StopListening) when needed to reclaim resources. Once stopped, the listeners can be restarted. ([#89](https://github.com/Yubico/Yubico.NET.SDK/pull/89))
- Microsoft.Extensions.Logging.Console is now the default logger. To enable logging from a dependent project (e.g. unit tests, integration tests, an app), you can either add an appsettings.json to your project or use the ConfigureLoggerFactory. ([#139](https://github.com/Yubico/Yubico.NET.SDK/pull/139))
- The SDK now uses inferred variable types (var) instead of explicit types in all projects except Yubico.Core. This change aims to improve code readability, reduce verbosity, and enhance developer productivity while maintaining type safety. ([#141](https://github.com/Yubico/Yubico.NET.SDK/pull/141))

Bug Fixes:

- The [PivSession.ChangeManagementKey](xref:Yubico.YubiKey.Piv.PivSession.ChangeManagementKey(Yubico.YubiKey.Piv.PivTouchPolicy)) method was incorrectly assuming Triple-DES was the default management key algorithm for FIPS keys. The SDK now verifies the management key alorithm based on key type and firmware version. ([#162](https://github.com/Yubico/Yubico.NET.SDK/pull/162))
- The SDK now correctly sets the IYubiKeyDeviceInfo property [IsSkySeries](xref:Yubico.YubiKey.IYubiKeyDeviceInfo.IsSkySeries) to True for YubiKey Security Key Series Enterprise Edition keys. ([#158](https://github.com/Yubico/Yubico.NET.SDK/pull/158))
- Exceptions are now caught when running [PivSession.Dispose](xref:Yubico.YubiKey.Piv.PivSession.Dispose). This fixes an issue where the Dispose method could not close the Connection in the event of a disconnected YubiKey. ([104](https://github.com/Yubico/Yubico.NET.SDK/issues/104))
- A dynamic DLL resolution based on process architecture (x86/x64) has been implemented for NativeShims.dll. This fixes a reported issue with the NativeShims.dll location for 32-bit processes. ([#154](https://github.com/Yubico/Yubico.NET.SDK/pull/154))

## 1.11.x Releases
### 1.11.0

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ namespace Yubico.YubiKey.Piv.Commands
/// information on how to use this authentication.
/// </para>
/// <para>
/// Upon manufacture of a YubiKey, the management key is a Triple-DES key and
/// Upon manufacture of a YubiKey, the management key is either a Triple-DES key (firmware prior to 5.7) or an AES-192 key (firmware 5.7 and later), and
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updates for YESDK-1409

/// it starts out as a default value:
/// </para>
/// <code>
Expand Down
24 changes: 11 additions & 13 deletions Yubico.YubiKey/src/Yubico/YubiKey/Piv/PivSession.ManagementKey.cs
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updates for YESDK-1409

Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ private bool TryAuthenticateWithKeyCollector(bool mutualAuthentication)
/// </remarks>
/// <exception cref="InvalidOperationException">
/// There is no <c>KeyCollector</c> loaded, the key provided was not a
/// valid Triple-DES key, or the YubiKey had some other error, such as
/// valid Triple-DES or AES key, or the YubiKey had some other error, such as
/// unreliable connection.
/// </exception>
/// <exception cref="MalformedYubiKeyResponseException">
Expand Down Expand Up @@ -399,7 +399,7 @@ public void AuthenticateManagementKey(bool mutualAuthentication = true)
/// <c>false</c> if it does not.
/// </returns>
/// <exception cref="InvalidOperationException">
/// The key provided was not a valid Triple-DES key, or the YubiKey had
/// The key provided was not a valid Triple-DES or AES key, or the YubiKey had
/// some other error, such as unreliable connection.
/// </exception>
/// <exception cref="MalformedYubiKeyResponseException">
Expand All @@ -418,8 +418,7 @@ public bool TryAuthenticateManagementKey(ReadOnlyMemory<byte> managementKey, boo
}

/// <summary>
/// Try to change the management key. This will assume the new key is to
/// be Triple-DES.
/// Try to change the management key. The default management key algorithm will be used. (Firmware 5.7.x and later: AES-192. Firmware 5.6.x and earlier: TDES.)
/// </summary>
/// <remarks>
/// Upon manufacture of a YubiKey, the PIV application begins with a
Expand Down Expand Up @@ -525,7 +524,7 @@ public bool TryAuthenticateManagementKey(ReadOnlyMemory<byte> managementKey, boo
/// </returns>
/// <exception cref="InvalidOperationException">
/// There is no <c>KeyCollector</c> loaded, one of the keys provided was
/// not a valid Triple-DES key, or the YubiKey had some other error, such
/// not a valid Triple-DES or AES key, or the YubiKey had some other error, such
/// as unreliable connection.
/// </exception>
/// <exception cref="MalformedYubiKeyResponseException">
Expand Down Expand Up @@ -704,8 +703,8 @@ public bool TryChangeManagementKey(PivTouchPolicy touchPolicy, PivAlgorithm newK
}

/// <summary>
/// Change the management key, throw an exception if the user cancels.
/// The new key will be Triple-DES.
/// Change the management key, throw an exception if the user cancels.
/// The default management key algorithm will be used. (Firmware 5.7.x and later: AES-192. Firmware 5.6.x and earlier: TDES.)
/// </summary>
/// <remarks>
/// This is the same as <c>TryChangeManagementKey(PivTouchPolicy)</c>,
Expand All @@ -718,7 +717,7 @@ public bool TryChangeManagementKey(PivTouchPolicy touchPolicy, PivAlgorithm newK
/// </remarks>
/// <exception cref="InvalidOperationException">
/// There is no <c>KeyCollector</c> loaded, the key provided was not a
/// valid Triple-DES key, or the YubiKey had some other error, such as
/// valid Triple-DES or AES key, or the YubiKey had some other error, such as
/// unreliable connection.
/// </exception>
/// <exception cref="MalformedYubiKeyResponseException">
Expand Down Expand Up @@ -752,7 +751,7 @@ public void ChangeManagementKey(PivTouchPolicy touchPolicy = PivTouchPolicy.Defa
/// </remarks>
/// <exception cref="InvalidOperationException">
/// There is no <c>KeyCollector</c> loaded, the key provided was not a
/// valid Triple-DES key, or the YubiKey had some other error, such as
/// valid Triple-DES or AES key, or the YubiKey had some other error, such as
/// unreliable connection.
/// </exception>
/// <exception cref="MalformedYubiKeyResponseException">
Expand Down Expand Up @@ -783,8 +782,7 @@ public void ChangeManagementKey(PivTouchPolicy touchPolicy, PivAlgorithm newKeyA

/// <summary>
/// Try to change the management key. This method will use the
/// <c>currentKey</c> and <c>newKey</c> provided. The new key's algorithm
/// will be Triple-DES.
/// <c>currentKey</c> and <c>newKey</c> provided.
/// </summary>
/// <remarks>
/// Normally, an application would call the
Expand Down Expand Up @@ -821,7 +819,7 @@ public void ChangeManagementKey(PivTouchPolicy touchPolicy, PivAlgorithm newKeyA
/// if not.
/// </returns>
/// <exception cref="InvalidOperationException">
/// One of the keys provided was not a valid Triple-DES key, or the
/// One of the keys provided was not a valid Triple-DES or AES key, or the
/// YubiKey had some other error, such as unreliable connection.
/// </exception>
/// <exception cref="MalformedYubiKeyResponseException">
Expand Down Expand Up @@ -883,7 +881,7 @@ public bool TryChangeManagementKey(ReadOnlyMemory<byte> currentKey,
/// if not.
/// </returns>
/// <exception cref="InvalidOperationException">
/// One of the keys provided was not a valid Triple-DES key, or the
/// One of the keys provided was not a valid Triple-DES or AES key, or the
/// YubiKey had some other error, such as unreliable connection.
/// </exception>
/// <exception cref="MalformedYubiKeyResponseException">
Expand Down
22 changes: 11 additions & 11 deletions Yubico.YubiKey/src/Yubico/YubiKey/Piv/PivSession.Pinonly.cs
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed formatting issues that caused the regular text below the code as well as the Warning callout box to not render properly.

Original file line number Diff line number Diff line change
Expand Up @@ -513,14 +513,14 @@ private PivPinOnlyMode GetPinDerivedStatus(

/// <summary>
/// Set the YubiKey's PIV application to be PIN-only with a PIN-derived
/// and/or PIN-Protected Triple-DES management key . This sets the
/// and/or PIN-Protected Triple-DES management key. This sets the
/// YubiKey to either
/// <code>
/// PivPinOnlyMode.PinProtected
/// PivPinOnlyMode.PinDerived
/// PivPinOnlyMode.PinProtected | PivPinOnlyMode.PinDerived
/// PivPinOnlyMode.None
/// </code>
/// PivPinOnlyMode.PinProtected
/// PivPinOnlyMode.PinDerived
/// PivPinOnlyMode.PinProtected | PivPinOnlyMode.PinDerived
/// PivPinOnlyMode.None
/// </code>
/// If the YubiKey is set to PinProtected, PinDerived, or both, the PUK
/// will also be blocked.
/// &gt; [!WARNING]
Expand Down Expand Up @@ -573,11 +573,11 @@ private PivPinOnlyMode GetPinDerivedStatus(
/// and/or PIN-Protected management key of the specified algorithm. This
/// sets the YubiKey to either
/// <code>
/// PivPinOnlyMode.PinProtected
/// PivPinOnlyMode.PinDerived
/// PivPinOnlyMode.PinProtected | PivPinOnlyMode.PinDerived
/// PivPinOnlyMode.None
/// </code>
/// PivPinOnlyMode.PinProtected
/// PivPinOnlyMode.PinDerived
/// PivPinOnlyMode.PinProtected | PivPinOnlyMode.PinDerived
/// PivPinOnlyMode.None
/// </code>
/// If the YubiKey is set to PinProtected, PinDerived, or both, the PUK
/// will also be blocked.
/// &gt; [!WARNING]
Expand Down
4 changes: 2 additions & 2 deletions Yubico.YubiKey/src/Yubico/YubiKey/Piv/PivSession.cs
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,8 @@ namespace Yubico.YubiKey.Piv
/// <xref href="UsersManualSensitive"> sensitive data</xref>.
/// </para>
/// <para>
/// This class will also need a random number generator and a Triple-DES
/// encryptor/decryptor. It will get them from
/// This class will also need a random number generator and Triple-DES and AES
/// encryptors/decryptors. It will get them from
Comment on lines +142 to +143
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updates for YESDK-1409

/// <see cref="CryptographyProviders" />. That class will return default
/// implementations, unless you replace them. Very few applications will
/// choose to replace the defaults, but if you want to, see the documentation
Expand Down
Loading