Skip to content

Commit b3f5446

Browse files
authored
Merge branch 'develop' into dennisdyallo/tests
2 parents 68fecf7 + 41da641 commit b3f5446

File tree

8 files changed

+65
-35
lines changed

8 files changed

+65
-35
lines changed

.github/ISSUE_TEMPLATE/2-bug-report.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ name: 🐞 Bug
22
description: File a bug/issue.
33
title: "[BUG] <title>"
44
labels: ["bug"]
5+
type: Bug
56
projects: []
67
assignees: []
78
body:

.github/ISSUE_TEMPLATE/3-feature-request.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ name: 💡 Feature Request
22
description: Suggest an idea for this project.
33
title: "[Feature]: <title>"
44
labels: ["enhancement"]
5+
type: Feature
56
projects: []
67
body:
78
- type: markdown

Yubico.YubiKey/src/Yubico/YubiKey/Fido2/MakeCredentialData.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
using System.Collections.Generic;
1717
using System.Formats.Cbor;
1818
using System.Globalization;
19-
using System.Security.Cryptography;
2019
using System.Security.Cryptography.X509Certificates;
2120
using Yubico.YubiKey.Cryptography;
2221
using Yubico.YubiKey.Fido2.Cbor;
@@ -167,6 +166,12 @@ public class MakeCredentialData
167166
/// </summary>
168167
public ReadOnlyMemory<byte>? LargeBlobKey { get; private set; }
169168

169+
170+
/// <summary>
171+
/// This returns the raw CBOR encoded credential data from the YubiKey, as returned by the MakeCredential operation.
172+
/// </summary>
173+
public ReadOnlyMemory<byte> RawData { get; }
174+
170175
// The default constructor explicitly defined. We don't want it to be
171176
// used.
172177
private MakeCredentialData()
@@ -193,10 +198,11 @@ private MakeCredentialData()
193198
/// </exception>
194199
public MakeCredentialData(ReadOnlyMemory<byte> cborEncoding)
195200
{
201+
RawData = cborEncoding;
202+
var map = new CborMap<int>(RawData);
203+
196204
try
197205
{
198-
var map = new CborMap<int>(cborEncoding);
199-
200206
Format = map.ReadTextString(KeyFormat);
201207
AuthenticatorData = new AuthenticatorData(map.ReadByteString(KeyAuthData));
202208
if (!(AuthenticatorData.CredentialPublicKey is CoseEcPublicKey)

Yubico.YubiKey/tests/unit/Yubico/YubiKey/Fido2/CredentialDataTests.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@ namespace Yubico.YubiKey.Fido2
1818
{
1919
public class CredentialDataTests
2020
{
21+
[Fact]
22+
public void RawCredentialData_Is_Set()
23+
{
24+
byte[] encoding = GetSampleEncoding();
25+
var cData = new MakeCredentialData(encoding);
26+
Assert.Equal(encoding, cData.RawData);
27+
}
28+
29+
2130
[Fact]
2231
public void Decode_Format_Correct()
2332
{

build/Versions.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ for external milestones.
4343
4444
This project can, and should, use pre-release suffixes for development milestones.
4545
-->
46-
<YubicoCoreVersion>1.13.0</YubicoCoreVersion>
46+
<YubicoCoreVersion>1.13.1</YubicoCoreVersion>
4747

4848
<!--
4949
Yubico.Authenticator project
@@ -57,6 +57,6 @@ for external milestones.
5757
5858
This project can, and should, use pre-release suffixes for development milestones.
5959
-->
60-
<YubicoYubiKeyVersion>1.13.0</YubicoYubiKeyVersion>
60+
<YubicoYubiKeyVersion>1.13.1</YubicoYubiKeyVersion>
6161
</PropertyGroup>
6262
</Project>

docs/users-manual/application-piv/pin-puk-mgmt-key.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,16 @@ data is 192 bits long, but because of the "parity bits", only 168 bits supply th
5353
strength. In addition, because of certain attacks on Triple-DES, the actual effective bit
5454
strength of a key is 112.
5555

56-
The YubiKey is manufactured with the standard default PIN, PUK, and managment key values:
56+
The YubiKey is manufactured with the following default PIN, PUK, and management key values:
5757

5858
* PIN: "123456"
5959
* PUK: "12345678"
60-
* Management Key: (Firmware Version 5.6 and below: Triple-DES / 5.7 and above: AES-192),
61-
0x010203040506070801020304050607080102030405060708\
62-
0102030405060708 three times
60+
* Management Key: "010203040506070801020304050607080102030405060708"
6361

64-
Note that the PIV standard specifies these default/initial values. For firmware 5.4 YubiKeys that allow AES, the default
65-
management key is Triple-DES. For firmware 5.7 and above
66-
YubiKeys, the default management key is AES-192.
62+
Note that the PIV standard specifies these default values. And while the management key value is
63+
consistent across YubiKeys, the management key *algorithm* depends on a key's firmware version.
64+
For firmware 5.6 and earlier, the default management key algorithm is Triple-DES; for firmware
65+
5.7 and later, the default algorithm is AES-192.
6766

6867
Upon receipt of the YubiKey, it is a good idea to change the PIN, PUK, and management key from the default values. See
6968
[PivSession.TryChangePin](xref:Yubico.YubiKey.Piv.PivSession.TryChangePin%2a), [PivSession.TryChangePuk](xref:Yubico.YubiKey.Piv.PivSession.TryChangePuk),

docs/users-manual/application-piv/slots.md

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -64,21 +64,16 @@ keys.
6464

6565
## Attestation Key
6666

67-
The attestation key (in slot `F9`) will be used to create an attestation statement (which
68-
is an X.509 certificate) that attests a key in slot `9A`, `9C`, `9D`, or `9E` was
69-
generated on the YubiKey.
70-
71-
Upon manufacture, a private key and cert pair is loaded into slot `F9`. This key is
72-
generated by Yubico, the cert is signed by a Yubico CA and chains to a Yubico root. The
73-
same key and cert are loaded onto many different YubiKeys. See the article on
74-
[PIV attestation](attestation.md) for more information on this topic.
75-
76-
Note that if a private key was imported into one of those slots, it will not be possible
77-
to create an attestation statement for that slot.
78-
79-
It is possible to have the YubiKey generate a key pair for one of the retired slots
80-
(`82` - `95`). However, the attestation key will not generate an attestation statement for
81-
a key in one of those slots, even if it was generated by the YubiKey.
67+
The attestation key (in slot `F9`) is used to create an attestation statement (an X.509
68+
certificate), which attests that a key in slot `9A`, `9C`, `9D`, `9E`, or one of the
69+
retired slots (`82` - `95`) was *generated* on the YubiKey. If a private key was *imported*
70+
into one of those slots, it will not be possible to create an attestation statement for
71+
that slot.
72+
73+
Upon manufacture, the attestation key (a private key and certificate pair) is loaded into slot
74+
`F9`. This key is generated by Yubico, and the cert is signed by a Yubico CA and chains
75+
to a Yubico root. The same key and cert are loaded onto many different YubiKeys. See the
76+
article on [PIV attestation](attestation.md) for more information on this topic.
8277

8378
## Generate and import asymmetric keys
8479

docs/users-manual/getting-started/whats-new.md

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,36 +18,55 @@ Here you can find all of the updates and release notes for published versions of
1818

1919
## 1.13.x Releases
2020

21+
### 1.13.1
22+
23+
Release date: April 28th, 2025
24+
25+
This release mainly adresses an issue that was affecting FIDO2 on YubiKey 5.7.4 and greater as well as adds support for compressed certificates within the PIV application. It also contains miscellaneous and documentation updates.
26+
27+
Features:
28+
- Support for compressed certificates in the PIV application [#219](https://github.com/Yubico/Yubico.NET.SDK/pull/219)
29+
- Ability to create a FirmwareVersion object through parsing a version string (e.g. 1.0.0) [#220](https://github.com/Yubico/Yubico.NET.SDK/pull/220)
30+
31+
Bug Fixes:
32+
- PinUvAuthParam was erroneously truncated which caused failures on multiple FIDO2 commands for YubiKey v 5.7.4 [#222](https://github.com/Yubico/Yubico.NET.SDK/pull/222)
33+
34+
Documentation:
35+
- Updates to challenge-response documentation to improve clarity [#221](https://github.com/Yubico/Yubico.NET.SDK/pull/221)
36+
37+
Miscellaneous:
38+
- Integration tests will now run on Bio USB C keys as well [a4c4df](https://github.com/Yubico/Yubico.NET.SDK/commit/a4c4df10047bedf507e4ce36b80ed5001b996b9a).
39+
2140
### 1.13.0
2241

2342
Release date: April 9th, 2025
2443

2544
Features:
2645

27-
- Curve25519 support has been added for PIV [#210](https://github.com/Yubico/Yubico.NET.SDK/pull/210):
46+
- Curve25519 support has been added for PIV [(#210)](https://github.com/Yubico/Yubico.NET.SDK/pull/210):
2847

2948
- Keys can now be imported or generated using the Ed25519 and X25519 algorithms.
3049
- The key agreement operation can be performed with an X25519 key.
3150
- Digital signatures can now be created with a Ed25519 key.
3251
- New related unit tests have been added.
3352

34-
- Unit tests have been added for RSA-3072 and RSA-4096 keys [#197](https://github.com/Yubico/Yubico.NET.SDK/pull/197).
53+
- Unit tests have been added for RSA-3072 and RSA-4096 keys. [(#197)](https://github.com/Yubico/Yubico.NET.SDK/pull/197)
3554

36-
- Support for large APDUs has been improved [#208](https://github.com/Yubico/Yubico.NET.SDK/pull/208):
55+
- Support for large APDUs has been improved [(#208)](https://github.com/Yubico/Yubico.NET.SDK/pull/208):
3756

38-
- When sending large APDU commands to a YubiKey via the smartcard connection, the CommandChainingTransform will now throw an exception when the cumulative APDU data (sent in chunks of up to 255 bytes) exceeds the max APDU size for the given YubiKey (varies based on firmware version; see SmartCardMaxApduSizes).
57+
- When sending large APDU commands to a YubiKey via the smartcard connection, the CommandChainingTransform will now throw an exception when the cumulative APDU data (sent in chunks of up to 255 bytes) exceeds the max APDU size for the given YubiKey (varies based on firmware version; see [SmartCardMaxApduSizes](xref:Yubico.YubiKey.SmartCardMaxApduSizes)).
3958

40-
- Support for Ed25519 and P384 credentials has been added for FIDO [#186](https://github.com/Yubico/Yubico.NET.SDK/pull/186).
59+
- Support for Ed25519 and P384 credentials has been added for FIDO. [(#186)](https://github.com/Yubico/Yubico.NET.SDK/pull/186)
4160

42-
- Ubuntu runners have been upgraded from version 20.04 to 22.04 to support the compilation of Yubico.NativeShims [#188](https://github.com/Yubico/Yubico.NET.SDK/pull/188).
61+
- Ubuntu runners have been upgraded from version 20.04 to 22.04 to support the compilation of Yubico.NativeShims. [(#188)](https://github.com/Yubico/Yubico.NET.SDK/pull/188)
4362

4463
Bug Fixes:
4564

46-
- The default logger now only writes output for the "Error" log level unless another level is specified [#185](https://github.com/Yubico/Yubico.NET.SDK/pull/185). Previously, the logger wrote output for all log levels, which could become overly long and difficult to evaluate.
65+
- The default logger now only writes output for the "Error" log level unless another level is specified. Previously, the logger wrote output for all log levels, which could become overly long and difficult to evaluate. [(#185)](https://github.com/Yubico/Yubico.NET.SDK/pull/185)
4766

4867
Miscellaneous:
4968

50-
- The [License](https://github.com/Yubico/Yubico.NET.SDK/blob/develop/LICENSE.txt) was updated to remove the information for the AesCmac.cs file from the Bouncy Castle library [#196](https://github.com/Yubico/Yubico.NET.SDK/pull/196).
69+
- The [License](https://github.com/Yubico/Yubico.NET.SDK/blob/develop/LICENSE.txt) was updated to remove the information for the AesCmac.cs file from the Bouncy Castle library. [(#196)](https://github.com/Yubico/Yubico.NET.SDK/pull/196)
5170

5271
## 1.12.x Releases
5372

0 commit comments

Comments
 (0)