NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

Všetko, čo balík vyhadzuje, dedí z RoundlyConsulting\Crypto\Exceptions\CryptoException — abstraktnej RuntimeException. Zachyťte ju široko, alebo konkrétny podtyp pre presnú reakciu — bežným vzorom je obaliť ju vlastnou doménovou výnimkou:

use RoundlyConsulting\Crypto\Exceptions\CryptoException;
use RoundlyConsulting\Crypto\Signature\Algorithm;

try {
    $claims = $jws->verify($token, $verifier, Algorithm::RS256);
} catch (CryptoException $e) {
    // any crypto failure — malformed token, algorithm mismatch, bad signature, weak key, …
    throw new TokenRejected(previous: $e);   // your own domain exception
}

Hierarchia

RuntimeException
└── CryptoException (abstract)
    ├── Codec\InvalidEncodingException
    ├── Aead\DecryptionFailedException
    ├── Aead\InvalidAeadParameterException
    ├── Random\InvalidLengthException
    ├── Signature\AlgorithmMismatchException
    ├── Signature\InvalidSignatureException
    ├── Signature\KeyLoadException
    ├── Signature\WeakKeyException
    ├── Jose\MalformedTokenException
    ├── Jose\MalformedJwkException
    ├── Jose\ClaimMismatchException
    │   ├── Jose\TokenExpiredException
    │   └── Jose\TokenNotYetValidException
    ├── X509\MalformedCertificateException
    ├── X509\InvalidChainException
    ├── X509\InvalidLeewayException
    ├── Asn1\MalformedDerException
    ├── Cose\MalformedCborException
    ├── Cose\UnsupportedAlgorithmException
    └── Otp\InvalidOtpParameterException

Kedy sa ktorá vyhadzuje

VýnimkaVyhadzuje sa, keď
Codec\InvalidEncodingExceptionReťazec base64url, base64, base32 alebo hex je neplatný či nekanonický.
Aead\DecryptionFailedExceptionopen() alebo decrypt() nedokáže vstup autentifikovať — nesprávny kľúč, nonce či pridružené dáta, zmenený šifrový text alebo tag, prípadne vstup príliš krátky na tag. Pre každú príčinu rovnaká správa.
Aead\InvalidAeadParameterExceptionKľúč AES-256-GCM nemá 32 bajtov alebo nonce nemá 12 bajtov — programátorská chyba, nikdy nie vlastnosť dát — alebo OpenSSL šifru odmietne.
Random\InvalidLengthExceptionPožadovaná náhodná dĺžka je mimo rozsahu alebo je abeceda prázdna či nie je platné UTF-8.
Signature\AlgorithmMismatchExceptionTyp kľúča nezodpovedá algoritmu alebo alg tokenu nezodpovedá pripnutému.
Signature\InvalidSignatureExceptionPodpis neprejde overením alebo sa ECDSA DER nedá normalizovať.
Signature\KeyLoadExceptionOpenSSL nevie kľúč načítať, parsovať či vygenerovať, kľúč má nesprávny typ alebo loader nenájde súbor, disk či hodnotu v konfigurácii, prípadne nevie zapísať vygenerovaný kľúč.
Signature\WeakKeyExceptionKľúčový materiál je príliš slabý alebo mimo rozsahu — HMAC tajný kľúč (aj kratší než veľkosť hašu pre HS384 / HS512), veľkosť či exponent RSA, nepodporovaná krivka.
Jose\MalformedTokenExceptionKompaktné JWS je štrukturálne neplatné — segmenty, JSON, hlavička či payload, ktoré nie sú JSON objekt, veľkosť, crit.
Jose\MalformedJwkExceptionJWK je chybné, príliš veľké alebo obsahuje súkromné či neznáme členy.
Jose\ClaimMismatchExceptionClaim chýba alebo má nesprávny typ (základná trieda dvoch nasledujúcich).
Jose\TokenExpiredExceptionassertTemporal() zistí, že exp uplynul.
Jose\TokenNotYetValidExceptionassertTemporal() zistí nbf alebo iat v budúcnosti.
X509\MalformedCertificateExceptionCertifikát sa nedá prečítať či parsovať, je príliš veľký, za jeho DER nasledujú ďalšie bajty alebo nesie nepodporovaný typ kľúča.
X509\InvalidChainExceptionReťazec je prázdny, dlhší než 10 certifikátov alebo sa k nemu pristupuje mimo rozsahu.
X509\InvalidLeewayExceptionPredikát platnosti dostane zápornú toleranciu.
Asn1\MalformedDerExceptionVstup DER porušuje kanonické pravidlá X.690 alebo limity dekodéra.
Cose\MalformedCborExceptionCBOR alebo authenticator data sú chybné či nekanonické, alebo pole COSE kľúča má nesprávny typ CBOR.
Cose\UnsupportedAlgorithmExceptionNeznámy COSE algoritmus, typ kľúča či krivka — alebo EdDSA bez ext-sodium.
Otp\InvalidOtpParameterExceptionPočet číslic, perióda alebo okno OTP sú mimo rozsahu.

Zachytenie ClaimMismatchException zachytí aj obe časové chyby. Overenie v Es, Rs a EdDSA pri podpise nesprávnej dĺžky či formátu vracia false namiesto výnimky; vnútri Jws::verify() sa neúspešný podpis prejaví ako InvalidSignatureException.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.