Skip to content

Commit 43ae8f6

Browse files
committed
test: updated tests
1 parent a5bb31e commit 43ae8f6

File tree

5 files changed

+56
-6
lines changed

5 files changed

+56
-6
lines changed

Yubico.YubiKey/tests/integration/Yubico/YubiKey/Piv/KeyAgreeTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public void KeyAgree_Succeeds(
5050
}
5151
else
5252
{
53-
var curve = ECCurve.CreateFromValue(keyType.ToCurveOid()!);
53+
var curve = ECCurve.CreateFromValue(keyType.GetCurveOid()!);
5454
var ecDsa = ECDsa.Create(curve);
5555
peerPrivateKeyEcParameters = ecDsa.ExportParameters(true);
5656
var peerPublicKeyEcParameters = ecDsa.ExportParameters(false);

Yubico.YubiKey/tests/integration/Yubico/YubiKey/Piv/SignTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,7 @@ private static Ed25519PublicKeyParameters GetBouncyCastleKeyParameters(IPublicKe
451451
var bouncyEd25519PublicKey =
452452
new Ed25519PublicKeyParameters(
453453
((Curve25519PublicKey)publicKey).PublicPoint.ToArray());
454+
454455
return bouncyEd25519PublicKey;
455456
}
456457

Yubico.YubiKey/tests/unit/Yubico/YubiKey/Cryptography/RsaPrivateKeyTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void CreateFromPivEncoding_WithValidParameters_CreatesInstance()
3131
var pivPrivateKeyEncoded = pivPrivateKey.EncodedPrivateKey;
3232

3333
// Act
34-
var privateKeyParams = PivEncodingToKey.CreateRSAPrivateKey(pivPrivateKeyEncoded);
34+
var privateKeyParams = PivKeyConverter.CreateRSAPrivateKey(pivPrivateKeyEncoded);
3535
var parameters = privateKeyParams.Parameters;
3636

3737
// Assert

Yubico.YubiKey/tests/unit/Yubico/YubiKey/Cryptography/RsaPublicKeyTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ public void CreateFromPivEncoding_WithValidParameters_CreatesInstance()
1919
var pivPublicKeyEncoded = pivPublicKey.PivEncodedPublicKey;
2020

2121
// Act
22-
var publicKeyParams = PivEncodingToKey.CreateRSAPublicKey(pivPublicKeyEncoded);
22+
var publicKeyParams = PivKeyConverter.CreateRSAPublicKey(pivPublicKeyEncoded);
2323
var resultParameters = publicKeyParams.Parameters;
2424

2525
// Assert
26-
var testKeyParameters = testKey.AsRSA().ExportParameters(false); // Todo how is this working? We're not using the private key, aha, they are probably empty
26+
var testKeyParameters = testKey.AsRSA().ExportParameters(false);
2727
Assert.Equal(testKeyParameters.D, resultParameters.D);
2828
Assert.Equal(testKeyParameters.DP, resultParameters.DP);
2929
Assert.Equal(testKeyParameters.DQ, resultParameters.DQ);

Yubico.YubiKey/tests/unit/Yubico/YubiKey/Piv/PivPublicKeyTests.cs

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,61 @@ public void Create_UsingTestKeys_ReturnsPivPublicKey(
3232
{
3333
var testKey = TestKeys.GetTestPublicKey(keyType);
3434
var tlvPublicKey = testKey.AsPivPublicKey().PivEncodedPublicKey;
35+
var pivPublicKey = PivPublicKey.Create(tlvPublicKey, keyType.GetPivAlgorithm());
36+
Assert.NotNull(pivPublicKey);
3537

36-
var keyObject = PivPublicKey.Create(tlvPublicKey, keyType.GetPivAlgorithm());
38+
if (keyType.IsEllipticCurve())
39+
{
40+
var pivPublicKeyAsEcc = pivPublicKey as PivEccPublicKey;
41+
Assert.NotNull(pivPublicKeyAsEcc);
42+
Assert.Equal(testKey.GetPublicPoint(),
43+
pivPublicKeyAsEcc.PublicPoint);
44+
}
45+
else
46+
{
47+
var pivPublicKeyAsRsa = pivPublicKey as PivRsaPublicKey;
48+
Assert.NotNull(pivPublicKeyAsRsa);
49+
Assert.Equal(testKey.GetModulus(),
50+
pivPublicKeyAsRsa.Modulus);
51+
Assert.Equal(testKey.GetExponent(),
52+
pivPublicKeyAsRsa.PublicExponent);
53+
}
54+
}
3755

38-
Assert.True(keyObject is PivPublicKey);
56+
[Theory]
57+
[InlineData(KeyType.ECP256)]
58+
[InlineData(KeyType.ECP384)]
59+
[InlineData(KeyType.ECP521)]
60+
[Obsolete("Obsolete")]
61+
public void Create_UsingECDsaKeys_ReturnsPivPublicKey(
62+
KeyType keyType)
63+
{
64+
var ecDsa = ECDsa.Create(ECCurve.CreateFromValue(keyType.GetCurveOid()!));
65+
var ecParameters = ecDsa.ExportParameters(false);
66+
67+
var publicPoint = (byte[]) [0x04, .. ecParameters.Q.X!, .. ecParameters.Q.Y!];
68+
var pivEccPublicKey = new PivEccPublicKey(publicPoint, keyType.GetPivAlgorithm());
69+
70+
Assert.Equal(pivEccPublicKey.PublicPoint, publicPoint);
71+
Assert.Equal(pivEccPublicKey.Algorithm.GetKeyType(), keyType);
3972
}
4073

74+
[Theory]
75+
[InlineData(KeyType.RSA2048)]
76+
[InlineData(KeyType.RSA3072)]
77+
[Obsolete("Obsolete")]
78+
public void Create_UsingRSAKeys_ReturnsPivPublicKey(
79+
KeyType keyType)
80+
{
81+
var rsa = RSA.Create(keyType.GetKeySizeBits());
82+
var ecParameters = rsa.ExportParameters(false);
83+
84+
var pivEccPublicKey = new PivRsaPublicKey(ecParameters.Modulus, ecParameters.Exponent);
85+
86+
Assert.Equal(pivEccPublicKey.Modulus, ecParameters.Modulus);
87+
Assert.Equal(pivEccPublicKey.PublicExponent, ecParameters.Exponent);
88+
Assert.Equal(pivEccPublicKey.Algorithm.GetKeyType(), keyType);
89+
}
4190

4291
[Theory]
4392
[InlineData(KeyType.RSA1024)]

0 commit comments

Comments
 (0)