internal static byte[] ExportEncryptedPkcs8PrivateKey( AsymmetricAlgorithm key, ReadOnlySpan <byte> passwordBytes, PbeParameters pbeParameters) { if (pbeParameters == null) { throw new ArgumentNullException(nameof(pbeParameters)); } PasswordBasedEncryption.ValidatePbeParameters( pbeParameters, ReadOnlySpan <char> .Empty, passwordBytes); if (passwordBytes.Length == 0) { // Switch to character-based, since that's the native input format. return(key.ExportEncryptedPkcs8PrivateKey(ReadOnlySpan <char> .Empty, pbeParameters)); } using (AsnWriter writer = RewriteEncryptedPkcs8PrivateKey(key, passwordBytes, pbeParameters)) { return(writer.Encode()); } }