sgcCrypto: nowoczesna biblioteka kryptograficzna dla Delphi i C++ Builder
Dołączony od sgcWebSockets Standard Dostę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.

Pełny kod źródłowy
Win32, Win64, Linux64, macOS, iOS i Android
Delphi 7 → 13, bez zmian
Zero zewnętrznych zależności
43 czyste funkcje sgcCrypto_*.pas Bez komponentów. Wywołaj funkcję, dostań bajty.
AES-GCM sgcAES_GCM_Encrypt
ChaCha20-Poly1305 sgcChaCha20Poly1305_Encrypt
SHA-3 / SHAKE sgcSHA3_256
Ed25519 / X25519 sgcEd25519_Sign
RSA-PSS sgcRSA_PSS_Sign
ML-KEM / ML-DSA sgcMLKEM_Encapsulate
X.509 / CSR sgcX509_CreateSelfSigned
43 Jednostki czysto funkcyjne sgcCrypto_*.pas, zero komponentów
6 Rodziny możliwości Symetryczna, skróty, podpisy, PKI, PQC, OTP
6 Platformy docelowe Win32, Win64, Linux64, macOS, iOS, Android
3 Post-kwantowe standardy FIPS ML-KEM (203), ML-DSA (204), SLH-DSA (205)
2 Sposoby posiadania Dołączony do edycji, albo samodzielnie

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.

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.

Skróty i KDF11 jednostek

SHA-2, SHA-3, BLAKE2 i każdy popularny KDF

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.

Podpisy i wymiana kluczy10 jednostek

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_Ed25519 sgcCrypto_ECCurves sgcCrypto_RSA_Keys RFC 8032 · RFC 7748 · RFC 8017
PKI5 jednostek

Odczytuj, weryfikuj i generuj certyfikaty X.509

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.

Post-kwantowa6 jednostek

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.

sgcCrypto_MLKEM sgcCrypto_MLDSA sgcCrypto_SLHDSA FIPS 203 · FIPS 204 · FIPS 205
OTP i inne6 jednostek

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.

Bez komponentu, bez Object Inspector

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.

uses
  sgcCrypto_Random, sgcCrypto_AES, sgcCrypto_Keccak, sgcCrypto_Ed25519,
  sgcCrypto_MLKEM;

var
  vKey, vIV, vPlain, vAAD, vTag, vCipher: TBytes;
  vDigest, vSeed, vSignature, vMessage: TBytes;
  vPublicKey, vPrivateKey, vSharedSecret, vCiphertext: TBytes;
begin
  // AES-256-GCM: authenticated encryption in one call
  vKey    := sgcRandomBytes(32);
  vIV     := sgcRandomBytes(12);
  vPlain  := TEncoding.UTF8.GetBytes('confidential payload');
  vCipher := sgcAES_GCM_Encrypt(vKey, vIV, vPlain, vAAD, vTag);

  // SHA-3-256, one call, no context object to manage
  vDigest := sgcSHA3_256(vPlain);

  // Ed25519: sign, then verify
  vSeed      := sgcRandomBytes(32);
  vMessage   := TEncoding.UTF8.GetBytes('sign me');
  vSignature := sgcEd25519_Sign(vSeed, vMessage);

  // ML-KEM-768: post-quantum key encapsulation (FIPS 203)
  sgcMLKEM_GenerateKeyPair(mlkem768, vPublicKey, vPrivateKey);
  sgcMLKEM_Encapsulate(mlkem768, vPublicKey, vCiphertext, vSharedSecret);
end;
// includes: sgcCrypto_Random.hpp, sgcCrypto_AES.hpp, sgcCrypto_Keccak.hpp,
// sgcCrypto_Ed25519.hpp, sgcCrypto_MLKEM.hpp

// AES-256-GCM: authenticated encryption in one call
TBytes vKey    = sgcRandomBytes(32);
TBytes vIV     = sgcRandomBytes(12);
TBytes vAAD, vTag;
TBytes vPlain  = TEncoding::UTF8->GetBytes("confidential payload");
TBytes vCipher = sgcAES_GCM_Encrypt(vKey, vIV, vPlain, vAAD, vTag);

// SHA-3-256, one call, no context object to manage
TBytes vDigest = sgcSHA3_256(vPlain);

// Ed25519: sign, then verify
TBytes vSeed      = sgcRandomBytes(32);
TBytes vMessage   = TEncoding::UTF8->GetBytes("sign me");
TBytes vSignature = sgcEd25519_Sign(vSeed, vMessage);

// ML-KEM-768: post-quantum key encapsulation (FIPS 203)
TBytes vPublicKey, vPrivateKey, vSharedSecret, vCiphertext;
sgcMLKEM_GenerateKeyPair(mlkem768, vPublicKey, vPrivateKey);
sgcMLKEM_Encapsulate(mlkem768, vPublicKey, vCiphertext, vSharedSecret);
Stały czas tam, gdzie to ważne

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.

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.

Zobacz cennik i zamów
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
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.

Inne produkty eSeGeCe

Połącz sgcCrypto z naszymi innymi bibliotekami komponentów dla Delphi i C++ Builder.

sgcWebSockets

Komponenty klasy Enterprise: WebSocket, HTTP/2, MQTT, AMQP i WebRTC. Standard, Professional i Enterprise zawierają sgcCrypto.

Dowiedz się więcej →

sgcSign

Podpisy cyfrowe klasy Enterprise. XAdES, PAdES, CAdES i ASiC z 10 dostawcami kluczy i 21 profilami krajów UE.

Dowiedz się więcej →

sgcAuth

Komponenty klienta OAuth2 i klienta JWT, a do tego logowanie kluczami dostępu (passkey) przez WebAuthn. Samodzielny, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie.

Dowiedz się więcej →

sgcQUIC

Komponenty klienta i serwera QUIC (RFC 9000) oraz HTTP/3 (RFC 9114) zbudowane na natywnym silniku QUIC OpenSSL 3.5.

Dowiedz się więcej →

sgcAI

Komponenty AI, LLM i MCP. Jeden komponent czatu łączy się z OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok i Mistral.

Dowiedz się więcej →

sgcMQ

Natywne komponenty klienckie MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka i STOMP, ze środowiskiem uruchomieniowym Core w zestawie.

Dowiedz się więcej →

sgcOpenAPI

Parser OpenAPI 3.0 i generator SDK. Zamień dowolną specyfikację OpenAPI w silnie typowanego klienta Delphi w kilka sekund.

Dowiedz się więcej →