Почти год назад я рассказал о новых библиотеках PKIjs и ASN1js. Пришло время рассказать о развитии этих библиотек. Для ASN1js за это время были сделаны в основном «косметические» изменения. Из существенных изменений можно заметить только возможность конвертации любых объектов ASN.1 в JSON формат. А вот с PKIjs произошли более существенные перемены.
Итак, текущие основные особенности PKIjs:
- Полная поддержка Web Cryptography API;
- Ограниченная возможность использования как в iPhone (через использование Safari), так и в Android приложениях (Google Chrome);
- Расширилось количество примеров. В частности, добавились примеры использования PKIjs для проверки подписей в PDF файлах и для проверки подписей в S/MIME;
- Использование всех алгоритмов подписи из Web Cryptography API:
- RSASSA-PKCS1-v1_5 (PKCS#1 v1.5);
- RSA-PSS (PKCS#1 v2);
- ECDSA (подпись на ECC, Elliptic Curve Cryptography);
- Первая реализация «certificate chain verification engine» (верификация цепочки сертификатов) на чистом JavaScript и проходящая основные тесты NIST;
- Первая и пока единственная реализация «Suite B» для подписи и шифрования данных в виде CMS (Cryptographic Message Syntax) в «open-source» на чистом JavaScript;
- Подпись CMS с помощью ECDSA;
- Шифрование с применением схем «ephemeral-static» ECDH;
- Использование AES-CBC и AES-GCM;
- Использование расширенного списка алгоритмов хеширования: от SHA-1 до SHA-512;
- Возможность создания зашифрованных сообщений на основе использования пароля с использованием алгоритмов серии AES;