diff --git a/src/libraries/Common/src/System/Security/Cryptography/RSASecurityTransforms.cs b/src/libraries/Common/src/System/Security/Cryptography/RSASecurityTransforms.cs index 717bcc1100e4ec..aec263855f2864 100644 --- a/src/libraries/Common/src/System/Security/Cryptography/RSASecurityTransforms.cs +++ b/src/libraries/Common/src/System/Security/Cryptography/RSASecurityTransforms.cs @@ -18,6 +18,12 @@ public sealed partial class RSASecurityTransforms : RSA, IRuntimeAlgorithm { private SecKeyPair? _keys; + // All values are in bits. + // 1024 was achieved via experimentation. + // 1024 and 1024+8 both generated successfully, 1024-8 produced errSecParam. + // 8192 generated successfully, 8192+8 produced errSecParam. + private static readonly KeySizes s_legalKeySize = new KeySizes(minSize: 1024, maxSize: 8192, skipSize: 8); + public RSASecurityTransforms() : this(2048) { @@ -38,19 +44,7 @@ internal RSASecurityTransforms(SafeSecKeyRefHandle publicKey, SafeSecKeyRefHandl SetKey(SecKeyPair.PublicPrivatePair(publicKey, privateKey)); } - public override KeySizes[] LegalKeySizes - { - get - { - return new KeySizes[] - { - // All values are in bits. - // 1024 was achieved via experimentation. - // 1024 and 1024+8 both generated successfully, 1024-8 produced errSecParam. - new KeySizes(minSize: 1024, maxSize: 16384, skipSize: 8), - }; - } - } + public override KeySizes[] LegalKeySizes => [s_legalKeySize]; public override int KeySize {