Skip to content

Commit e4ba289

Browse files
committed
refactor(keys): proper naming of public method
1 parent 4da19d5 commit e4ba289

File tree

3 files changed

+23
-18
lines changed

3 files changed

+23
-18
lines changed

Yubico.YubiKey/src/Yubico/YubiKey/Cryptography/Curve25519PublicKey.cs

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -82,22 +82,10 @@ public override byte[] ExportSubjectPublicKeyInfo() =>
8282
/// <exception cref="CryptographicException">
8383
/// Thrown if the public key is invalid.
8484
/// </exception>
85-
public static Curve25519PublicKey CreateFromPkcs8(ReadOnlyMemory<byte> encodedKey)
86-
{
87-
var reader = new AsnReader(encodedKey, AsnEncodingRules.DER);
88-
var seqSubjectPublicKeyInfo = reader.ReadSequence();
89-
var seqAlgorithmIdentifier = seqSubjectPublicKeyInfo.ReadSequence();
90-
91-
string oidAlgorithm = seqAlgorithmIdentifier.ReadObjectIdentifier();
92-
byte[] subjectPublicKey = seqSubjectPublicKeyInfo.ReadBitString(out int unusedBitCount);
93-
if (unusedBitCount != 0)
94-
{
95-
throw new CryptographicException("Invalid public key encoding");
96-
}
97-
98-
var keyType = KeyDefinitions.GetKeyTypeByOid(oidAlgorithm);
99-
return CreateFromValue(subjectPublicKey, keyType);
100-
}
85+
public static Curve25519PublicKey CreateFromSubjectPublicKeyInfo(ReadOnlyMemory<byte> subjectPublicKeyInfo) =>
86+
AsnPublicKeyDecoder
87+
.CreatePublicKey(subjectPublicKeyInfo)
88+
.Cast<Curve25519PublicKey>();
10189

10290
/// <summary>
10391
/// Creates an instance of <see cref="Curve25519PublicKey"/> from the given
@@ -122,4 +110,8 @@ public static Curve25519PublicKey CreateFromValue(ReadOnlyMemory<byte> publicPoi
122110

123111
return new Curve25519PublicKey(publicPoint, keyDefinition);
124112
}
113+
114+
[Obsolete("Use CreateFromSubjectPublicKeyInfo instead", false)]
115+
public static Curve25519PublicKey CreateFromPkcs8(ReadOnlyMemory<byte> encodedKey) =>
116+
CreateFromSubjectPublicKeyInfo(encodedKey);
125117
}

Yubico.YubiKey/src/Yubico/YubiKey/Cryptography/ECPublicKey.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,12 @@ public static ECPublicKey CreateFromValue(ReadOnlyMemory<byte> publicPoint, KeyT
148148
/// <exception cref="CryptographicException">
149149
/// Thrown if the public key is invalid.
150150
/// </exception>
151+
public static ECPublicKey CreateFromSubjectPublicKeyInfo(ReadOnlyMemory<byte> encodedKey) =>
152+
AsnPublicKeyDecoder
153+
.CreatePublicKey(encodedKey)
154+
.Cast<ECPublicKey>();
155+
156+
[Obsolete("Use CreateFromSubjectPublicKeyInfo instead", false)]
151157
public static ECPublicKey CreateFromPkcs8(ReadOnlyMemory<byte> encodedKey) =>
152-
(ECPublicKey)AsnPublicKeyDecoder.CreatePublicKey(encodedKey);
158+
CreateFromSubjectPublicKeyInfo(encodedKey);
153159
}

Yubico.YubiKey/src/Yubico/YubiKey/Cryptography/RSAPublicKey.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,13 @@ public static RSAPublicKey CreateFromParameters(RSAParameters parameters)
104104
/// <exception cref="CryptographicException">
105105
/// Thrown if the public key is invalid.
106106
/// </exception>
107+
public static RSAPublicKey CreateFromSubjectPublicKeyInfo(ReadOnlyMemory<byte> encodedKey) =>
108+
AsnPublicKeyDecoder
109+
.CreatePublicKey(encodedKey)
110+
.Cast<RSAPublicKey>();
111+
112+
113+
[Obsolete("Use CreateFromSubjectPublicKeyInfo instead", false)]
107114
public static RSAPublicKey CreateFromPkcs8(ReadOnlyMemory<byte> encodedKey) =>
108-
(RSAPublicKey)AsnPublicKeyDecoder.CreatePublicKey(encodedKey);
115+
CreateFromSubjectPublicKeyInfo(encodedKey);
109116
}

0 commit comments

Comments
 (0)