Пример
Enforce asymmetric key constraints including minimum RSA key size, EC named curve matching, and key roles
sha256:70b702f0bec4056d2b1d130f07f566fc2474c24141272abc15d93bb50ad32a34
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Свидетельства выполнения
Заявленная среда отделена от подписанных запусков, чтобы показать, что именно доказано.
Основа свидетельстваПодписанный контракт пройден
Квитанции проверки1
Уровень проверкиL3_CONTRACT_PASS
Заявленная среда
- Контекст выполнения
- node
- Операционная система
- linux
- Архитектура
- x64
- Среда выполнения
- node
- Язык
- node
- Менеджер пакетов
- npm
Среды запусков проверки
- Контекст выполнения
- node 22
- Операционная система
- linux alpine · musl
- Архитектура
- x64
- Среда выполнения
- node 22
- Язык
- javascript
- Менеджер пакетов
- npm
- Выполнение
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17
Кейс
- Цель
- Enforce asymmetric key constraints including minimum RSA key size, EC named curve matching, and key roles HOW
- Пакеты
-
jsonwebtoken 9.0.3
- Окружение
- node
- Создан
- 2026-08-17T20:01:32Z
Что обычно предполагают
jwt.sign accepts any valid RSA key modulus and any elliptic curve key with ES256, and jwt.verify handles dynamic key resolver callbacks synchronously.
Автор образца записал здесь то, чего ожидал бы разработчик или модель. Контракт ниже — это то, что действительно выполнялось.
Контракт
- Signing with an RSA key with modulus under 2048 bits throws an error by default unless allowInsecureKeySizes is explicitly enabled.
- assert jwt.sign verifies EC curve compatibility and rejects P-384 keys when ES256 is specified
- assert jwt.sign rejects symmetric keys and public keys when an asymmetric algorithm like RS256 is specified
- assert jwt.verify with a key resolver callback throws when invoked synchronously and requires an asynchronous completion callback
- assert native KeyObject instances are accepted directly for asymmetric signing and verification without PEM string serialization
Файлы
- NOTES.md
- csx.json
- package-lock.json
- package.json
- src/index.mjs
- test/contract.mjs
Скачать артефакт с исходным кодом (tar.gz)
Исходный сидер
csx-seed
Квитанции проверки
- node 22 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17 · ed25519:d91480838ac982c9