sgcCrypto: nowoczesna biblioteka kryptograficzna dla Delphi i C++ BuilderPrzejdź do treści
Dołączony od sgcWebSockets StandardDostępny też samodzielnie
sgcCrypto — nowoczesna biblioteka kryptograficzna dla Delphi i C++ Builder
43 jednostki czysto funkcyjne w Object Pascal, bez komponentów, bez śladu w trybie projektowania: podajesz TBytes na wejściu, dostajesz TBytes na wyjściu. AES-GCM i ChaCha20-Poly1305 do szyfrowania, SHA-3/BLAKE2/Argon2 do funkcji skrótu, Ed25519/X25519/RSA do podpisów i wymiany kluczy, parsowanie i generowanie certyfikatów X.509 oraz post-kwantowe ML-KEM, ML-DSA i SLH-DSA. Każdy prymityw jest zaimplementowany bezpośrednio w jednostce dodawanej do sekcji uses: bez zewnętrznego DLL, bez powiązania z OpenSSL, a ten sam kod źródłowy kompiluje się bez zmian od Delphi 7 po RAD Studio 13. sgcCrypto jest dołączony bezpłatnie do sgcWebSockets Standard, Professional i Enterprise, a do tego sprzedawany samodzielnie (z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core) dla klientów posiadających wyłącznie Core.
2Sposoby posiadaniaDołączony do edycji, albo samodzielnie
ZANIM KUPISZ
Trzy rzeczy warte poznania na start
Czym jest sgcCrypto, czy już go posiadasz i gdzie działa. Wszystkie trzy odpowiedzi są krótkie.
sgcCrypto to czyste funkcje, nie komponenty
Każda z 43 jednostek eksportuje zwykłe funkcje i procedury. Nie ma tu klasy Tsgc*, nic nie jest rejestrowane przez RegisterComponents, i nie ma jednostki sgcCrypto_Reg.pas. Wywołujesz sgcAES_GCM_Encrypt(aKey, aIV, aPlain, aAAD, aTag) tak samo, jak każdą funkcję RTL, z formularza, usługi, aplikacji konsolowej lub wątku.
Pełny kod źródłowy jest dołączony do każdej licencji, więc prymitywy można krokowo przechodzić we własnym debuggerze, zamiast znikać w binarce czy DLL.
Pokrywanie się edycji
Masz już edycję sgcWebSockets?
sgcCrypto jest dołączony do sgcWebSockets Standard, Professional i Enterprise, a także do All-Access, bez dodatkowych kosztów. Jeśli masz już licencję dowolnej edycji od Standard wzwyż, masz już wszystkie 43 jednostki, nie ma nic więcej do kupienia.
sgcCrypto istnieje samodzielnie dla odwrotnego przypadku: posiadasz wyłącznie sgcWebSockets Core albo nie masz żadnej licencji sgcWebSockets, a chcesz jednostki kryptograficzne bez licencjonowania pełnej edycji.
Zakres platform
sgcCrypto nie ma osłony platformowej
W odróżnieniu od pakietów AI czy mowy, nic w sgcVer.inc nie ogranicza sgcCrypto do Windows. Jednostki to zwykła arytmetyka Object Pascal, więc kompilują się dla Win32, Win64, Linux64, macOS, iOS i Android z tego samego kodu źródłowego.
Jedyna jednostka świadoma platformy, sgcCrypto_Random, wybiera backend CSPRNG odpowiedni dla celu (Windows CryptoAPI albo /dev/urandom gdzie indziej) za tym samym wywołaniem sgcRandomBytes, więc Twój kod nigdy nie rozgałęzia się w zależności od platformy.
CO JEST W ZESTAWIE
43 jednostki, sześć rodzin możliwości
Każda jednostka to skompilowany Object Pascal, wywoływalny z dowolnego projektu Delphi 7 do 13 lub C++ Builder. Nie ma zewnętrznego DLL, powiązania z OpenSSL ani generatora kodu: prymitywy są zaimplementowane bezpośrednio w jednostce dodawanej do sekcji uses.
Symetryczna5 jednostek
AES, ChaCha20 i konstrukcje AEAD na ich bazie
sgcCrypto_AES obejmuje CBC, GCM i CTR; sgcCrypto_Modes dodaje ECB, OFB, CFB, ciphertext-stealing CTS oraz AES Key Wrap / Key Wrap with Padding (RFC 3394 / 5649); sgcCrypto_CMAC to AES-CMAC. sgcCrypto_ChaCha implementuje ChaCha20, XChaCha20, Salsa20 i XSalsa20, a sgcCrypto_Poly1305 łączy Poly1305 z nimi w szyfry AEAD ChaCha20-Poly1305 i XChaCha20-Poly1305 z RFC 8439. sgcAES_GCM_Decrypt oraz weryfikatory Poly1305 porównują znacznik uwierzytelniający w stałym czasie i odmawiają zwrócenia jawnego tekstu, gdy weryfikacja się nie powiedzie.
sgcCrypto_SHA2 i sgcCrypto_Keccak obejmują SHA-1/2, SHA-3, SHAKE, cSHAKE i KMAC; sgcCrypto_Blake2b i sgcCrypto_Blake2s dodają BLAKE2. sgcCrypto_HMAC to kluczowane uwierzytelnianie wiadomości. Do zamiany hasła na klucz: sgcCrypto_KDF (PBKDF2), sgcCrypto_HKDF, sgcCrypto_Scrypt i sgcCrypto_Argon2, który implementuje wszystkie trzy warianty Argon2 — d, i oraz id — zwycięzcę Password Hashing Competition. sgcCrypto_SipHash daje szybki kluczowany skrót do kluczy tablic mieszających, a sgcCrypto_TLSH to rozmyty skrót z funkcją odległości podobieństwa, nie skrót kryptograficzny, przydatny do wykrywania niemal identycznych plików.
Ed25519/Ed448, X25519/X448, secp256k1, Brainpool i RSA
sgcCrypto_Ed25519/Ed448 podpisują i weryfikują; sgcCrypto_X25519/X448 realizują odpowiadający im Diffie-Hellman. sgcCrypto_ECCurves dodaje ECDSA i ECDH nad secp256k1 oraz trzema krzywymi Brainpool z deterministycznymi noncami RFC 6979, a sgcCrypto_EC to bliźniak zorientowany na JOSE: podpisuje i weryfikuje JWS bezpośrednio, ES256/384/512. sgcCrypto_RSA weryfikuje podpisy PKCS#1 v1.5 i PSS wprost z klucza PEM, a sgcCrypto_RSA_Keys idzie dalej, z generowaniem kluczy o dowolnej długości bitowej, szyfrowaniem OAEP oraz eksportem DER/PEM. sgcCrypto_ECIES dopełnia zestaw hybrydowym szyfrowaniem seal/open do klucza publicznego X25519.
sgcCrypto_ASN1 czyta DER i PEM oraz parsuje klucze PKCS#1/SEC 1; sgcCrypto_DER zapisuje każdy tag potrzebny certyfikatowi lub CSR. sgcCrypto_X509 parsuje certyfikat, weryfikuje, że został podpisany przez danego wystawcę, przechodzi i weryfikuje łańcuch oraz parsuje CRL, aby sprawdzić unieważnienie. sgcCrypto_X509_Gen generuje od podstaw certyfikat samopodpisany lub żądanie PKCS#10 CSR: pełną nazwę wyróżniającą podmiotu i wystawcy, okno ważności, flagę CA z ograniczeniem długości ścieżki, flagi użycia klucza, rozszerzone OID-y użycia klucza oraz alternatywne nazwy podmiotu, wraz z SAN-ami adresów IP.
ML-KEM, ML-DSA i SLH-DSA, plus hybrydowy kombinator
sgcCrypto_MLKEM to enkapsulacja kluczy z FIPS 203, trzy zestawy parametrów (ML-KEM-512/768/1024), z niejawnym odrzuceniem przy nieprawidłowym szyfrogramie. sgcCrypto_MLDSA to podpisywanie z FIPS 204, ML-DSA-44/65/87. sgcCrypto_SLHDSA to FIPS 205, wszystkie sześć zestawów parametrów SHAKE: 128s, 128f, 192s, 192f, 256s, 256f. Ponieważ samo ML-KEM stawia wszystko na założeniu o kratach młodszym niż krzywe eliptyczne, sgcCrypto_MLKEM_Hybrid łączy sekret X25519 i sekret ML-KEM w jeden klucz współdzielony, więc wynik nigdy nie jest słabszy od klasycznej połowy — to wzorzec migracji, ku któremu zmierza cała branża.
Hasła jednorazowe, kodowanie i szyfrowane wpisy ZIP
sgcCrypto_OTP generuje i weryfikuje kody HOTP i TOTP, te same sześciocyfrowe kody, które pokazuje aplikacja uwierzytelniająca, z oknem weryfikacji w stałym czasie, które pochłania przesunięcie zegara. sgcCrypto_Encoding zawiera funkcje narzędziowe współdzielone przez resztę biblioteki: porównanie w stałym czasie, bezpieczne zerowanie bufora, hex, Base64url i Base32. sgcCrypto_Zip_AE2 implementuje szyfrowanie WinZip AES, AE-1 i AE-2, do szyfrowania pojedynczych wpisów ZIP. sgcCrypto_Random to wieloplatformowy CSPRNG stojący za każdym kluczem i noncem generowanym gdzie indziej w bibliotece, a sgcCrypto_Legacy utrzymuje MD4/MD5/HMAC-MD5/DES-ECB dostępne dla współpracy ze starszymi formatami, nie do nowych projektów.
Dodaj jednostkę do uses i wywołaj funkcję. Każde poniższe wywołanie pochodzi z innej z 43 jednostek, obejmując szyfrowanie symetryczne, skróty, podpisy i post-kwantowe.
Weryfikacja znaczników GCM i Poly1305, weryfikacja HOTP/TOTP oraz sgcConstantTimeEquals porównują w stałym czasie, więc nieudana weryfikacja nie ujawnia informacji o tym, jak bliska była zgadywana wartość.
Dekapsulacja nigdy nie zawodzi
Nieprawidłowy szyfrogram ML-KEM daje pseudolosowy sekret zamiast błędu, niejawne odrzucenie zgodnie z FIPS 203, więc atakujący niczego się nie dowiaduje z tego, czy szyfrogram był poprawnie sformowany.
Delphi 7 do 13, bez zmian
Nie zakłada się natywnego typu 64-bitowego. sgcCrypto_Int64 i TsgcBigInt emulują arytmetykę potrzebną skrótom, krzywym i jednostkom post-kwantowym, więc ten sam kod źródłowy kompiluje się na każdej obsługiwanej wersji.
Nic nie opuszcza Twojego procesu
Każda funkcja działa w procesie na danych, które jej przekazujesz. Nie ma tu wywołania sieciowego, telemetrii ani przekaźnika eSeGeCe nigdzie w bibliotece.
CENNIK
Dołączony albo samodzielny pakiet
sgcCrypto jest dołączony bezpłatnie do sgcWebSockets Standard, Professional i Enterprise. Jeśli posiadasz wyłącznie sgcWebSockets Core, jest też sprzedawany jako osobny pakiet, od €149 dla jednego programisty. Wszystkie licencje obejmują pełny kod źródłowy, 1 rok aktualizacji oraz zniżkę na odnowienie od 50% do 70%: 50% przy odnowieniu jednego pakietu, 60% dla dwóch, 70% dla trzech lub więcej.
sgcCrypto
€149
Samodzielny pakiet. Dostępne licencje Single, Team i Site. Bezpłatny, jeśli posiadasz już sgcWebSockets Standard, Professional lub Enterprise.
Wszystkie 43 jednostki sgcCrypto_*.pas
Środowisko uruchomieniowe sgcWebSockets Core w zestawie
Delphi i C++ Builder, wszystkie sześć platform
Pełny kod źródłowy
1 rok aktualizacji
Masz już sgcWebSockets Standard, Professional lub Enterprise? sgcCrypto jest już w Twoim instalatorze, zamówienie nie jest potrzebne.
30-dniowa gwarancja zwrotu pieniędzyNie jesteś zadowolony? Poproś o pełny zwrot pieniędzy w ciągu 30 dni od zakupu. Zobacz politykę zwrotów
Kryptografia bez narzutu komponentów
43 czyste funkcje obejmujące szyfrowanie, funkcje skrótu, podpisy, PKI i post-kwantową wymianę kluczy, gotowe wszędzie tam, gdzie już działa Twój kod Delphi lub C++ Builder. Pełny kod źródłowy, bez przekaźnika, bez DLL.
Komponenty klienta OAuth2 i klienta JWT, a do tego logowanie kluczami dostępu (passkey) przez WebAuthn. Samodzielny, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie.