До стрічки

Покращення в pcsc-lite: більше не обмежено 16 зчитувачами

pcsc-lite та драйвер CCID тепер не мають обмеження на 16 зчитувачів. Дізнайтеся про нову версію pcsc-lite: 2.5.0 та libccid: 1.8.0.

pcsc-lite та драйвер CCID тепер не мають обмеження на 16 зчитувачів. З новою версією pcsc-lite: 2.5.0 та версією libccid: 1.8.0, користувачі можуть насолоджуватися розширеними можливостями.

Історія

З моменту виходу першої версії pcsc-lite у 2002 році, максимальна кількість зчитувачів була встановлена на рівні 16. Це обмеження визначається константою PCSCLITE_MAX_READERS_CONTEXTS. Відповідно, драйвер CCID також був обмежений до 16 зчитувачів, що викликало проблеми у деяких випадках використання.

Хоча існувала можливість змінити значення PCSCLITE_MAX_READERS_CONTEXTS і перебудувати як pcsc-lite, так і драйвер, це мало свої побічні ефекти. Для детальнішої інформації можна звернутися до ресурсів про Fedora, flatpak та pcsc-lite.

Зміни

Запит на усунення цього обмеження існував, принаймні, з 2018 року. Я вже розрахував, скільки оперативної пам'яті можна заощадити, використовуючи список замість масиву фіксованого розміру. Тепер ви можете використовувати стільки зчитувачів, скільки вам потрібно.

Проте, слід зазначити, що все ще існує обмеження у 256 зчитувачів через схему іменування, використовувану pcsc-lite. Зчитувачі будуть іменуватися від 00 до FF. Більш детальну інформацію можна знайти в статті про те, що таке ім'я зчитувача PC/SC.

Зворотна сумісність

У версії 2.4.1 pcsc-lite я ввів можливість змішувати різні версії внутрішнього протоколу зв'язку між демоном PC/SC (pcscd) та бібліотекою PC/SC (libpcsclite). Щоб усунути обмеження на кількість зчитувачів, мені довелося знову оновити цей внутрішній протокол зв'язку. Проте я намагався зробити його адаптивним, щоб стара версія libpcsclite могла спілкуватися з новим pcscd і навпаки. Додаток все ще буде розпізнавати лише до 16 зчитувачів, але, принаймні, це повинно працювати.

Висновок

Сподіваюся, що ви отримаєте користь від цих змін:

  • Менше споживання оперативної пам'яті, коли використовується лише 1 зчитувач.
  • Можливість використовувати більше ніж 16 зчитувачів.