QCA/uk: Difference between revisions

From KDE Wiki Sandbox
(Created page with "== Що це таке? ==")
No edit summary
 
(29 intermediate revisions by 2 users not shown)
Line 6: Line 6:
== Що це таке? ==
== Що це таке? ==


Taking a hint from the similarly-named [http://java.sun.com/j2se/1.3/docs/guide/security/CryptoSpec.html Java Cryptography Architecture], QCA aims to provide a straightforward and cross-platform crypto API, using Qt datatypes and conventions. QCA separates the API from the implementation, using plugins known as Providers. The advantage of this model is to allow applications to avoid linking to or explicitly depending on any particular cryptographic library. This allows one to easily change or upgrade crypto implementations without even needing to recompile the application! QCA should work everywhere Qt does, including Windows/Unix/MacOSX.
Подібно до схожої за назвою [http://java.sun.com/j2se/1.3/docs/guide/security/CryptoSpec.html Java Cryptography Architecture], метою створення QCA є надання простого і незалежного від платформи криптографічного програмного інтерфейсу із використанням типів даних та принципів побудови бібліотек Qt. QCA відокремлює програмний інтерфейс від реалізації, використовуючи додатки, які називаються у системі надавачами даних (Provider). Перевагою цієї моделі є те, що вона надає програмам змогу уникати компонування або явної залежності від певної криптографічної бібліотеки. Це уможливлює просту зміну або оновлення криптографічних реалізацій навіть без потреби у повторному збиранні програми! QCA має працювати усюди, де працює Qt, зокрема у Windows, Unix та MacOSX.


== What do I need to be able to use it? ==
== Що потрібно для користування цим? ==


Latest QCA depends on [https://doc.qt.io/qt-5/ Qt 5.6+].
Найсвіжіша версія QCA залежить від [https://doc.qt.io/qt-5/ Qt 5.6+].


== What features are supported? ==
== Підтримку яких можливостей передбачено? ==


* SSL/TLS
* SSL/TLS
Line 20: Line 20:
* OpenPGP
* OpenPGP


* Cryptographic Message Syntax (for S/MIME)
* Синтаксис криптографічних повідомлень (для S/MIME)


* SASL
* SASL
Line 26: Line 26:
* PKCS#12
* PKCS#12


* Smart cards and other key storage
* Смарт-картки та інші сховища даних на флеш-пам'яті


* Secure memory
* Захищена пам'ять


* Secure random
* Безпечні псевдовипадкові числа


* RSA/DSA/Diffie-Hellman
* RSA/DSA/Діффі-Гелман


* Hash/Cipher/MAC algorithms
* Алгоритми хешування/шифрування/MAC


* Threading considerations
* Врахування обробки у декілька потоків


* Access operating system root certificates
* Доступ до кореневих сертифікатів операційної системи


== How does it work? ==
== Як це працює? ==


The application includes <QtCrypto> and links to libqca, which provides the 'wrapper API' and plugin loader. Crypto functionality is determined during runtime, and plugins are loaded from the 'crypto' subfolder of the Qt Library Paths.
Програма включає <QtCrypto> і посилання на libqca, яка надає «програмний інтерфейс — обгортку» та завантажувач додатків. Функціональні можливості криптографії визначаються під час роботи програми, а додатки завантажуються з підтеки «crypto» шляхів бібліотек Qt.


== What is the development plan? ==
== Яким є план розробки? ==


The base QCA library is considered mostly complete. Future development may include OCSP, shared certificate management, and improving the plugin API. However, there is no development plan for the base library at this time. Work will continue on the various plugins though, in order to get them into a release-quality state.
Базова бібліотека QCA вважається майже завершеною. Наступна розробка може включити OCSP, керування сертифікатами спільного користування та удосконалення програмного інтерфейсу додатків. Втім, зараз плану розробки базової бібліотеки зараз немає. Крім того, продовжуватиметься робота над різноманітними додатками з метою доведення їх до придатного для випуску стану.


== Compatibility ==
== Сумісність ==


QCA follows a typical API/ABI compatibility scheme. Versions use the "major.minor.patch" format. Major versions of QCA may be incompatible with each other, minor versions are backwards compatible within the same major version, and patch versions are forwards and backwards compatible within the same minor version. This is the same scheme that Qt itself uses.
У QCA використано типову схему сумісності програмного і двійкового інтерфейсів. У нумерації версій використовується формат «основна версія.проміжна версія.модифікація». Основні версії QCA можуть бути несумісними одна з одною, проміжні версії є зворотно сумісними із основною версією, а версії-модифікації сумісні із іншим модифікаціями у межах одної проміжної версії. Це та сама схема, яка використовується у самій бібліотеці Qt.


== Documentation ==
== Документація ==


API documentation in HTML format is included in the source distribution.
Документацію із програмного інтерфейсу у форматі HTML включено до дистрибутива із початковими кодами.
The documentation for the current version is also [https://api.kde.org/qca/html available online].
Документацію до поточної версії можна також [https://api.kde.org/qca/html переглянути в інтернеті].


== Where can I get it? ==
== Де взяти початковий код? ==


Source: [http://download.kde.org/stable/qca/2.1.3/src/qca-2.1.3.tar.xz qca-2.1.3.tar.gz]
Початковий код: [http://download.kde.org/stable/qca/2.1.3/src/qca-2.1.3.tar.xz qca-2.1.3.tar.gz]


QCA has built-in support for the SHA1 and MD5 hash algorithms, and a weak random number source. To perform any other crypto operations (or to utilize improved versions of the built-in ones), an appropriate provider plugin is needed. There are several available so far, and you could always write your own, too.
У QCA передбачено вбудовану підтримку алгоритмів хешування SHA1 і MD5 та слабкого джерела псевдовипадкових чисел. Щоб виконати будь-які інші криптографічні дії (або використати удосконалені версії вбудованих дій), потрібен відповідний додаток надавача даних. У поточній версії передбачено декілька типових додатків. Ви, якщо хочете, завжди можете написати власні.


As of QCA 2.1, the latest plugins are included in the main tarball and don’t need to be downloaded separately.
У версії QCA 2.1 найсвіжіші версії додатків включено до архіву із кодом основної програми — немає потреби в окремому отриманні цих додатків.


<table border="1">
<table border="1">
<tr>
<tr>
<th>Provider</th>
<th>Надавач даних</th>
<th>Capabilities</th>
<th>Можливості</th>
<th>Depends on</th>
<th>Залежності</th>
</tr>
</tr>
<tr>
<tr>
<td>qca-ossl</td>
<td>qca-ossl</td>
<td>TLS, CMS, X.509, RSA, DSA, Diffie-Hellman, PKCS#7, PKCS#12, SHA0, SHA1, SHA224, SHA256, SHA384, SHA512, MD2, MD4, MD5, RIPEMD160, Blowfish, DES, 3DES, AES128, AES192, AES256, CAST5, HMAC(SHA1, MD5, RIPEMD160), PBKDF1(MD2, SHA1), PBKDF2(SHA1)</td>
<td>TLS, CMS, X.509, RSA, DSA, Діффі-Гелман, PKCS#7, PKCS#12, SHA0, SHA1, SHA224, SHA256, SHA384, SHA512, MD2, MD4, MD5, RIPEMD160, Blowfish, DES, 3DES, AES128, AES192, AES256, CAST5, HMAC(SHA1, MD5, RIPEMD160), PBKDF1(MD2, SHA1), PBKDF2(SHA1)</td>
<td>OpenSSL 0.9.6+</td>
<td>OpenSSL 0.9.6+</td>
</tr>
</tr>
Line 84: Line 84:
<td>qca-gnupg</td>
<td>qca-gnupg</td>
<td>OpenPGP</td>
<td>OpenPGP</td>
<td>GnuPG 1.x or 2.x (runtime dependency only)</td>
<td>GnuPG 1.x або 2.x (потрібні лише для роботи)</td>
</tr>
</tr>
<tr>
<tr>
<td>qca-pkcs11</td>
<td>qca-pkcs11</td>
<td>PKCS#11 (for smart cards)</td>
<td>PKCS#11 (для смарт-карток)</td>
<td>[http://www.opensc-project.org/ pkcs11-helper] 1.02+</td>
<td>[http://www.opensc-project.org/ pkcs11-helper] 1.02+</td>
</tr>
</tr>
<tr>
<tr>
<td>qca-wingss</td>
<td>qca-wingss</td>
<td>SASL GSSAPI (for Kerberos)</td>
<td>SASL GSSAPI (для Kerberos)</td>
<td>Windows only (uses SSPI)</td>
<td>Лише Windows (використовує SSPI)</td>
</tr>
</tr>
<tr>
<tr>
<td>qca-logger</td>
<td>qca-logger</td>
<td>Internal module logging (for debug purposes)</td>
<td>Ведення журналу для внутрішніх модулів (з діагностичною метою)</td>
<td>None</td>
<td>Немає</td>
</tr>
</tr>
</table>
</table>


The latest source can be found in the 'qca' module of the KDE Git. The code can also be browsed [https://commits.kde.org/qca on the web].
Найсвіжіший код можна знайти у модулі «qca» сховища коду Git KDE. Переглянути код можна також [https://commits.kde.org/qca у інтернеті].


''"keys" icon from KDE.''
''Піктограма «ключі» від команди KDE.''

Latest revision as of 19:29, 7 September 2020

Other languages:

QCA

Що це таке?

Подібно до схожої за назвою Java Cryptography Architecture, метою створення QCA є надання простого і незалежного від платформи криптографічного програмного інтерфейсу із використанням типів даних та принципів побудови бібліотек Qt. QCA відокремлює програмний інтерфейс від реалізації, використовуючи додатки, які називаються у системі надавачами даних (Provider). Перевагою цієї моделі є те, що вона надає програмам змогу уникати компонування або явної залежності від певної криптографічної бібліотеки. Це уможливлює просту зміну або оновлення криптографічних реалізацій навіть без потреби у повторному збиранні програми! QCA має працювати усюди, де працює Qt, зокрема у Windows, Unix та MacOSX.

Що потрібно для користування цим?

Найсвіжіша версія QCA залежить від Qt 5.6+.

Підтримку яких можливостей передбачено?

  • SSL/TLS
  • X.509
  • OpenPGP
  • Синтаксис криптографічних повідомлень (для S/MIME)
  • SASL
  • PKCS#12
  • Смарт-картки та інші сховища даних на флеш-пам'яті
  • Захищена пам'ять
  • Безпечні псевдовипадкові числа
  • RSA/DSA/Діффі-Гелман
  • Алгоритми хешування/шифрування/MAC
  • Врахування обробки у декілька потоків
  • Доступ до кореневих сертифікатів операційної системи

Як це працює?

Програма включає <QtCrypto> і посилання на libqca, яка надає «програмний інтерфейс — обгортку» та завантажувач додатків. Функціональні можливості криптографії визначаються під час роботи програми, а додатки завантажуються з підтеки «crypto» шляхів бібліотек Qt.

Яким є план розробки?

Базова бібліотека QCA вважається майже завершеною. Наступна розробка може включити OCSP, керування сертифікатами спільного користування та удосконалення програмного інтерфейсу додатків. Втім, зараз плану розробки базової бібліотеки зараз немає. Крім того, продовжуватиметься робота над різноманітними додатками з метою доведення їх до придатного для випуску стану.

Сумісність

У QCA використано типову схему сумісності програмного і двійкового інтерфейсів. У нумерації версій використовується формат «основна версія.проміжна версія.модифікація». Основні версії QCA можуть бути несумісними одна з одною, проміжні версії є зворотно сумісними із основною версією, а версії-модифікації сумісні із іншим модифікаціями у межах одної проміжної версії. Це та сама схема, яка використовується у самій бібліотеці Qt.

Документація

Документацію із програмного інтерфейсу у форматі HTML включено до дистрибутива із початковими кодами. Документацію до поточної версії можна також переглянути в інтернеті.

Де взяти початковий код?

Початковий код: qca-2.1.3.tar.gz

У QCA передбачено вбудовану підтримку алгоритмів хешування SHA1 і MD5 та слабкого джерела псевдовипадкових чисел. Щоб виконати будь-які інші криптографічні дії (або використати удосконалені версії вбудованих дій), потрібен відповідний додаток надавача даних. У поточній версії передбачено декілька типових додатків. Ви, якщо хочете, завжди можете написати власні.

У версії QCA 2.1 найсвіжіші версії додатків включено до архіву із кодом основної програми — немає потреби в окремому отриманні цих додатків.

Надавач даних Можливості Залежності
qca-ossl TLS, CMS, X.509, RSA, DSA, Діффі-Гелман, PKCS#7, PKCS#12, SHA0, SHA1, SHA224, SHA256, SHA384, SHA512, MD2, MD4, MD5, RIPEMD160, Blowfish, DES, 3DES, AES128, AES192, AES256, CAST5, HMAC(SHA1, MD5, RIPEMD160), PBKDF1(MD2, SHA1), PBKDF2(SHA1) OpenSSL 0.9.6+
qca-cyrus-sasl SASL Cyrus SASL2
qca-gnupg OpenPGP GnuPG 1.x або 2.x (потрібні лише для роботи)
qca-pkcs11 PKCS#11 (для смарт-карток) pkcs11-helper 1.02+
qca-wingss SASL GSSAPI (для Kerberos) Лише Windows (використовує SSPI)
qca-logger Ведення журналу для внутрішніх модулів (з діагностичною метою) Немає

Найсвіжіший код можна знайти у модулі «qca» сховища коду Git KDE. Переглянути код можна також у інтернеті.

Піктограма «ключі» від команди KDE.