Библиотека Jsrsasign реализует единый криптографический слой поверх
JavaScript, предоставляя интерфейсы для создания и проверки цифровых
подписей, JWT/JWS, X.509 сертификатов и PKI-операций. Центральным
компонентом является модуль KJUR.crypto.Signature, который
абстрагирует множество алгоритмов через строковые идентификаторы.
Поддержка алгоритмов охватывает несколько семейств: RSA (PKCS#1 v1.5
и PSS), ECDSA, HMAC и ограниченно EdDSA, а также специальное значение
none.
Самый распространённый класс алгоритмов подписи в Jsrsasign основан на RSA с PKCS#1 v1.5 padding. Эти алгоритмы используются как в низкоуровневых API, так и в JWS.
SHA1withRSASHA224withRSASHA256withRSASHA384withRSASHA512withRSAMD5withRSA (устаревший, используется только в
совместимых сценариях)RS256, RS384,
RS512)| JWS alg | Jsrsasign |
|---|---|
| RS256 | SHA256withRSA |
| RS384 | SHA384withRSA |
| RS512 | SHA512withRSA |
RSA-PSS обеспечивает более современную модель подписи с рандомизированным паддингом, повышая криптостойкость по сравнению с PKCS#1 v1.5.
SHA256withRSAandMGF1SHA384withRSAandMGF1SHA512withRSAandMGF1| JWS alg | Jsrsasign |
|---|---|
| PS256 | SHA256withRSAandMGF1 |
| PS384 | SHA384withRSAandMGF1 |
| PS512 | SHA512withRSAandMGF1 |
ECDSA используется для компактных ключей и высокой производительности при меньшем размере подписи.
SHA256withECDSA (кривая P-256)SHA384withECDSA (P-384)SHA512withECDSA (P-521)| JWS alg | Jsrsasign |
|---|---|
| ES256 | SHA256withECDSA |
| ES384 | SHA384withECDSA |
| ES512 | SHA512withECDSA |
HMAC-алгоритмы используются в JWT для сценариев с общим секретом.
HmacSHA256HmacSHA384HmacSHA512| JWS alg | Jsrsasign |
|---|---|
| HS256 | HmacSHA256 |
| HS384 | HmacSHA384 |
| HS512 | HmacSHA512 |
Поддержка EdDSA в Jsrsasign присутствует в ограниченном виде и зависит от версии библиотеки.
Ed25519Ed448SignaturenoneАлгоритм none используется в JWS как отсутствие
подписи.
| JWS alg | Jsrsasign |
|---|---|
| none | none |
Помимо JWS-совместимых обозначений, Jsrsasign использует внутренние строки:
SHA1withRSASHA256withRSASHA384withRSASHA512withRSAMD5withRSASHA256withRSAandMGF1SHA384withRSAandMGF1SHA512withRSAandMGF1SHA256withECDSASHA384withECDSASHA512withECDSAHmacSHA256HmacSHA384HmacSHA512Jsrsasign тесно интегрирован со спецификацией JSON Web Signature, где
алгоритмы определяются через параметр alg.
Основные группы:
HSxxx → HMACRSxxx → RSA PKCS#1 v1.5PSxxx → RSA-PSSESxxx → ECDSAnone → отсутствие подписиЭта классификация напрямую отображается на внутренние реализации
KJUR.crypto.Signature.