Open source
Crypto for Laravel
composer require roundly-consulting/crypto-for-laravelPrehľad
Natívne kryptografické a kódovacie primitívy pre Laravel — podpisovanie JWS so striktným overovaním, JWK odtlačky, fakty o certifikátoch X.509, striktný DER dekodér, TOTP/HOTP, overovanie podpisov WebAuthn, HMAC, autentifikované šifrovanie AES-256-GCM, CSPRNG tokeny a striktné kódeky. Nepotrebuje žiadnu konfiguráciu a funguje à la carte: bez konfiguračného súboru, bez čítania env, každý kľúč je explicitný argument a každá primitíva funguje samostatne alebo cez jednu fasádu Crypto. Zhodu s RFC dokazujú zafixované testovacie vektory a balík stojí iba na natívnych kryptografických rozšíreniach PHP, Laraveli a Symfony — bez externej kryptografickej knižnice. Licencia MIT.
Čo získate
JWS s pripnutým algoritmom
Kompaktné aj flattened JWS pre HS, RS, ES a EdDSA — algoritmus sa pripne skôr, než sa podpis vôbec prečíta.
JWK a fakty o X.509
JWK podľa RFC 7517 s odtlačkami podľa RFC 7638 a fakty o certifikátoch a reťazcoch. Matematiku overí balík, o dôvere rozhodujete vy.
TOTP a HOTP
Jednorazové heslá podľa RFC 6238 a RFC 4226 s časovo vyrovnaným tolerančným oknom a URI otpauth:// na registráciu.
Overenie WebAuthn
Kanonický CBOR dekodér, parsovanie COSE kľúčov a authenticator data na overenie podpisov passkeys.
HMAC, šifrovanie a CSPRNG
HMAC pre webhooky, digesty s pepperom, porovnanie v konštantnom čase, šifrovanie AES-256-GCM viazané na kontext a náhodné tokeny s obmedzenou dĺžkou.
Striktné kódeky a DER
Výhradne kanonické base64url, base64, base32 a hex a ohraničený X.690 DER dekodér pre surové bajty rozšírení.
Fasáda, DI alebo à la carte
Jedna fasáda Crypto, injektovateľný CryptoManager alebo každá trieda samostatne — bez konfiguračného súboru, bez čítania env, kľúče sú explicitné argumenty.
Dokumentácia
Inštalácia
Inštalácia cez Composer — service provider aj fasáda Crypto sa zaregistrujú samy, bez konfigurácie, migrácií a zapájania.
Dizajn bez konfigurácie
Žiadny konfiguračný súbor ani čítanie env — kľúče sú explicitné argumenty a signery s kľúčom zapájate vo vlastnom provideri.
Fasáda Crypto
Jeden vstupný bod do celej sady — ploché metódy a vnorené prístupy keys(), random(), x509() a ecDer(), s kompletnou tabuľkou metód.
DI a priame triedy
Namiesto fasády injektujte CryptoManager alebo používajte sprístupnené triedy samostatne — rovnaký kód, bez tried akcií a bez statických volaní.
JWS tokeny
Podpisujte a striktne overujte kompaktné aj flattened JWS pre HS, RS, ES a EdDSA, s typovanými claimami a voliteľnou kontrolou platnosti.
Podpisy a algoritmy
Signery HS, RS, ES a EdDSA, každý pripnutý na jediný algoritmus, overovanie riadené kľúčom a kódek ECDSA DER.
Načítanie a generovanie kľúčov
Validované typy kľúčov s továrňami bez konfigurácie, loadery z disku a konfigurácie, generátory, načítanie-alebo-generovanie a export PEM.
JWK a odtlačky
Serializujte verejné kľúče ako JWK podľa RFC 7517 a späť, počítajte odtlačky podľa RFC 7638 pre ACME a striktne parsujte cudzie JWK.
Certifikáty a reťazce X.509
Čítajte fakty o certifikátoch — mená, odtlačky, platnosť, kľúče a surové rozšírenia — a overte prepojenie reťazca. Dôvera je na vás.
Dekodér ASN.1 / DER
Striktný, ohraničený čítač X.690 DER pre surové bajty rozšírení certifikátov, ktoré vám openssl_x509_parse() nedá.
Overenie WebAuthn
Parsujte authenticator data a COSE kľúče kanonickým CBOR dekodérom a overujte podpisy passkeys pre ES, RS a EdDSA.
TOTP a HOTP
TOTP podľa RFC 6238 a HOTP podľa RFC 4226 s časovo vyrovnaným tolerančným oknom a URI otpauth:// na registráciu v aplikácii.
HMAC a hašovanie
HMAC podpisy webhookov, deterministické digesty s voliteľným pepperom a porovnanie v konštantnom čase.
Autentifikované šifrovanie
AES-256-GCM (RFC 5116) s pridruženými dátami, ktoré viažu každý šifrový text k jeho záznamu či účelu — seal a open, kľúče, nonce a chyby.
Náhodné tokeny a tajné kľúče
CSPRNG bajty, URL-safe, číselné a alfanumerické tokeny, vlastné abecedy a base32 tajné kľúče pre OTP — s limitmi na oboch koncoch.
Kódeky
Striktné base64url, base64 s paddingom, base32 a hex — výhradne kanonické dekódovanie, ktoré chybný vstup odmietne, nie pokriví.
Výnimky
Každé zlyhanie je typovaný podtyp CryptoException — zachytávajte široko alebo presne a obaľte ho na vlastnej hranici.
Testovanie
Prečo neexistuje Crypto::fake() a čo použiť namiesto neho: testovacie kľúče, známe OTP vektory, reťazce certifikátov a Pest expectations.
Požiadavky
PHP 8.4+, Laravel 12 alebo 13 a ext-openssl, ext-hash a ext-mbstring; ext-sodium len pre EdDSA.
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 kryptomienOdoslaní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.