---
title: "Výnimky — Crypto for Laravel | Roundly"
description: "Každé zlyhanie je typovaný podtyp CryptoException — zachytávajte široko alebo presne a obaľte ho na vlastnej hranici."
url: https://roundly-consulting.com/sk/open-source/navody/crypto-for-laravel/vynimky
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Crypto for Laravel](https://roundly-consulting.com/sk/open-source/navody/crypto-for-laravel.md)

# Výnimky

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:

```php
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
    ├── Hash\InvalidHkdfParameterException
    ├── 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ýnimka | Vyhadzuje sa, keď |
| --- | --- |
| `Codec\InvalidEncodingException` | Reťazec base64url, base64, base32 alebo hex je neplatný či nekanonický. |
| `Aead\DecryptionFailedException` | open() 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\InvalidAeadParameterException` | Kľúč AES-256-GCM nemá 32 bajtov alebo nonce nemá 12 bajtov — programátorská chyba, nikdy nie vlastnosť dát — alebo OpenSSL šifru odmietne. |
| `Random\InvalidLengthException` | Požadovaná náhodná dĺžka je mimo rozsahu alebo je abeceda prázdna či nie je platné UTF-8. |
| `Hash\InvalidHkdfParameterException` | HKDF dostal prázdny vstupný kľúčový materiál alebo dĺžku mimo 1–255 × dĺžka hašu — programátorská chyba. |
| `Signature\AlgorithmMismatchException` | Typ kľúča nezodpovedá algoritmu alebo alg tokenu nezodpovedá pripnutému. |
| `Signature\InvalidSignatureException` | Podpis neprejde overením alebo sa ECDSA DER nedá normalizovať. |
| `Signature\KeyLoadException` | OpenSSL nevie kľúč načítať, parsovať či vygenerovať, kľúč má nesprávny typ, verejná polovica tajného kľúča Ed25519 nezodpovedá jeho seedu alebo loader nenájde súbor, disk či hodnotu v konfigurácii, prípadne nevie vygenerovaný kľúč zamknúť či zapísať. |
| `Signature\WeakKeyException` | Kľúč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\MalformedTokenException` | Kompaktné JWS je štrukturálne neplatné — segmenty, JSON, hlavička či payload, ktoré nie sú JSON objekt, veľkosť, crit. |
| `Jose\MalformedJwkException` | JWK je chybné, príliš veľké alebo obsahuje súkromné či neznáme členy. |
| `Jose\ClaimMismatchException` | Claim chýba alebo má nesprávny typ (základná trieda dvoch nasledujúcich). |
| `Jose\TokenExpiredException` | assertTemporal() zistí, že exp uplynul. |
| `Jose\TokenNotYetValidException` | assertTemporal() zistí nbf alebo iat v budúcnosti. |
| `X509\MalformedCertificateException` | Certifiká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\InvalidChainException` | Reťazec je prázdny, dlhší než 10 certifikátov, nie je zoznamom (má medzeru či reťazcový kľúč), obsahuje položku nesprávneho typu alebo sa k nemu pristupuje mimo rozsahu. |
| `X509\InvalidLeewayException` | Predikát platnosti dostane zápornú toleranciu. |
| `Asn1\MalformedDerException` | Vstup DER porušuje kanonické pravidlá X.690 alebo limity dekodéra. |
| `Cose\MalformedCborException` | CBOR alebo authenticator data sú chybné či nekanonické, alebo pole COSE kľúča má nesprávny typ CBOR. |
| `Cose\UnsupportedAlgorithmException` | Neznámy COSE algoritmus, typ kľúča či krivka — alebo EdDSA bez ext-sodium. |
| `Otp\InvalidOtpParameterException` | Počet číslic, perióda alebo okno OTP sú mimo rozsahu, prípadne je tajný kľúč prázdny, kratší než 10 bajtov alebo celý z nulových bajtov. |

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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/crypto-for-laravel.md)
