WYRÓŻNIONE · sgcCrypto

Nowoczesna kryptografia dla Delphi, w czystym Object Pascalu

43 jednostki, żadnych komponentów, zero śladu w czasie projektowania: przekazujesz TBytes, odbierasz TBytes. AES-GCM i ChaCha20-Poly1305 do szyfrowania, SHA-3, BLAKE2 i Argon2 do hashowania oraz wyprowadzania kluczy, Ed25519, X25519 i RSA do podpisów i wymiany kluczy, parsowanie i generowanie X.509 oraz postkwantowe ML-KEM, ML-DSA i SLH-DSA. Żadnej zewnętrznej biblioteki DLL, żadnego wiązania z OpenSSL, a to samo źródło kompiluje się bez zmian od Delphi 7 po RAD Studio 13.

  • 43 jednostki, 6 rodzin funkcji
  • AEAD · Hashowanie · Podpisy · PKI · Postkwantowe
  • Zero zewnętrznych zależności
  • Delphi od 7 do 13 · C++ Builder

Czterdzieści trzy jednostki, sześć rodzin funkcji

sgcCrypto jest dostarczany bezpłatnie wewnątrz sgcWebSockets Standard, Professional i Enterprise. Jest też sprzedawany samodzielnie, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core, dla programistów, którzy mają samo Core albo nie mają żadnej licencji sgcWebSockets. Każda licencja niesie pełny kod źródłowy.

43 Jednostek Object Pascal Każda eksportuje zwykłe funkcje. Nie ma tu żadnej klasy Tsgc* ani pliku sgcCrypto_Reg.pas.
6 Rodzin funkcji Symetryczne, hashowanie i KDF, podpisy i wymiana kluczy, PKI, postkwantowe, OTP i narzędzia.
0 Zewnętrznych zależności Żadnej biblioteki DLL do dostarczenia i żadnego wiązania z OpenSSL, którego wersję trzeba dopasowywać. Prymitywy znajdują się w jednostce, którą dodajesz do klauzuli uses.
6 Platform docelowych Win32, Win64, Linux64, macOS, iOS i Android z tego samego źródła, bez żadnej blokady platformy w sgcVer.inc.
100% Kod źródłowy w zestawie Każdy prymityw prześledzisz krok po kroku we własnym debugerze, zamiast tracić go w binariach.
sgcCrypto

Uniwersalna biblioteka kryptograficzna dla Delphi i C++ Builder. Dołączana bezpłatnie od edycji sgcWebSockets Standard wzwyż albo sprzedawana samodzielnie z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core, z pełnym kodem źródłowym i wdrożeniem bez opłat licencyjnych.

Szyfruj, hashuj, podpisuj, certyfikuj i przetrwaj pytanie o kwanty

Rodziny dzielą się według zadania, które wykonujesz, a nie według matematyki, która za nim stoi, więc jednostka, po którą sięgasz, nazywa się tak jak to, co próbujesz zbudować.

Symetryczne · 5 jednostek

AES, ChaCha20 i zbudowane na nich konstrukcje AEAD

sgcCrypto_AES pokrywa CBC, GCM i CTR. sgcCrypto_Modes dokłada ECB, OFB, CFB, kradzież szyfrogramu, AES-CCM i AES Key Wrap. sgcCrypto_ChaCha implementuje ChaCha20, XChaCha20, Salsa20 i XSalsa20, a sgcCrypto_Poly1305 łączy z nimi Poly1305 w szyfry AEAD z RFC 8439. Deszyfrowanie porównuje tag uwierzytelniający w stałym czasie i odmawia zwrócenia tekstu jawnego, gdy tag się nie zgadza.

Zobacz jednostki symetryczne →
Hashowanie i KDF · 11 jednostek

SHA-2, SHA-3, BLAKE2 i każda popularna funkcja KDF

sgcCrypto_SHA2 i sgcCrypto_Keccak pokrywają SHA-1, SHA-2, SHA-3, SHAKE, cSHAKE i KMAC, a obok nich stoją BLAKE2b i BLAKE2s. Do zamiany hasła w klucz są PBKDF2, HKDF, scrypt oraz sgcCrypto_Argon2, który implementuje wszystkie trzy warianty Argon2: d, i oraz id. sgcCrypto_SipHash to szybki hash z kluczem do kluczy tablic haszujących, a sgcCrypto_HMAC to uwierzytelnianie wiadomości kluczem nad dowolnym ze skrótów.

Zobacz jednostki hashowania →
Podpisy i wymiana kluczy · 10 jednostek

Ed25519, X25519, secp256k1, Brainpool i RSA

Ed25519 i Ed448 podpisują, X25519 i X448 realizują odpowiadające im Diffie-Hellman, a sgcCrypto_ECCurves dokłada ECDSA i ECDH na siedmiu krzywych, z deterministycznymi wartościami nonce według RFC 6979 i podpisami Schnorra BIP-340. sgcCrypto_RSA_Keys generuje klucze o dowolnej długości w bitach i eksportuje DER albo PEM zarówno w postaci PKCS#1, jak i PKCS#8.

Zobacz, co potrafi →
PKI · 5 jednostek

Odczytuj, weryfikuj i generuj certyfikaty X.509

sgcCrypto_X509 parsuje certyfikat, weryfikuje jego wystawcę, przechodzi łańcuch i czyta listę CRL. sgcCrypto_X509_Gen generuje od zera certyfikat samopodpisany albo żądanie CSR w formacie PKCS#10, z pełną nazwą wyróżniającą, oknem ważności, flagą CA, przeznaczeniem klucza, rozszerzonym przeznaczeniem klucza i alternatywnymi nazwami podmiotu, podpisane kluczem RSA albo EC.

Powierzchnia certyfikatów →
Postkwantowe · 6 jednostek

ML-KEM, ML-DSA, SLH-DSA i hybrydowy kombinator

Enkapsulacja klucza FIPS 203 we wszystkich trzech zestawach parametrów, podpisywanie FIPS 204 w ML-DSA-44, 65 i 87 oraz FIPS 205 we wszystkich sześciu zestawach parametrów SHAKE. sgcCrypto_MLKEM_Hybrid łączy sekret X25519 z sekretem ML-KEM, więc klucz współdzielony nigdy nie jest słabszy niż jego klasyczna połowa.

Jednostki postkwantowe →

Strony referencyjne każdej rodziny:

Wywołaj funkcję, odbierz bajty

Żadnego obiektu do utworzenia, żadnego kontekstu do zwolnienia, żadnego uchwytu do utrzymywania. Oba fragmenty kompilują się tak samo w Delphi od 7 do 13 oraz w C++ Builder, na każdej platformie docelowej.

uses
  sgcCrypto_Random, sgcCrypto_AES, sgcCrypto_Keccak;
var
  vKey, vIV, vPlain, vAAD, vTag, vCipher, vDigest: TBytes;
begin
  // AES-256-GCM: szyfrowanie uwierzytelnione w jednym wywołaniu
  vKey    := sgcRandomBytes(32);
  vIV     := sgcRandomBytes(12);
  vPlain  := TEncoding.UTF8.GetBytes('confidential payload');
  vCipher := sgcAES_GCM_Encrypt(vKey, vIV, vPlain, vAAD, vTag);

  // SHA-3-256, jedno wywołanie, bez obiektu kontekstu do zarządzania
  vDigest := sgcSHA3_256(vPlain);

  // Deszyfrowanie sprawdza tag w stałym czasie i zawodzi bezpiecznie
  vPlain  := sgcAES_GCM_Decrypt(vKey, vIV, vCipher, vAAD, vTag);
end;
uses
  sgcCrypto_Random, sgcCrypto_Ed25519, sgcCrypto_MLKEM;
var
  vSeed, vMessage, vSignature: TBytes;
  vPublicKey, vPrivateKey, vCiphertext, vSharedSecret: TBytes;
begin
  // Podpis Ed25519 z 32-bajtowego ziarna
  vSeed      := sgcRandomBytes(32);
  vMessage   := TEncoding.UTF8.GetBytes('sign me');
  vSignature := sgcEd25519_Sign(vSeed, vMessage);

  // ML-KEM-768: postkwantowa enkapsulacja klucza (FIPS 203)
  sgcMLKEM_GenerateKeyPair(mlkem768, vPublicKey, vPrivateKey);
  sgcMLKEM_Encapsulate(mlkem768, vPublicKey, vCiphertext, vSharedSecret);

  // Druga strona odzyskuje ten sam sekret z szyfrogramu
  sgcMLKEM_Decapsulate(mlkem768, vPrivateKey, vCiphertext, vSharedSecret);
end;

Ten sam kształt w Object Pascalu i w C++ Builder. Pełna matryca funkcji →

Trzy rzeczy, które warto wiedzieć najpierw

Czym jest sgcCrypto, czy już go masz i gdzie działa. Wszystkie trzy odpowiedzi są krótkie i wszystkie trzy znajdziesz na tej stronie, a nie drobnym drukiem.

Sześć rodzin, czterdzieści trzy jednostki
rodzina             jednostki  co daje
Symetryczne                 5  AES-GCM, AES-CCM, ChaCha20-Poly1305
Hashowanie i KDF           11  SHA-2, SHA-3, BLAKE2, Argon2, HKDF
Podpisy i wymiana          10  Ed25519, X25519, ECDSA, RSA-PSS
PKI                         5  X.509 parse, verify, generate, CSR
Postkwantowe                6  ML-KEM, ML-DSA, SLH-DSA, hybrid
OTP i inne                  6  HOTP/TOTP, Base32/64url, AE-2 ZIP

Żadna jednostka nie rejestruje komponentu, więc nic
  nie trafia na paletę ani nie ląduje na formularzu.
  Dodajesz jednostkę do klauzuli uses i wywołujesz
  funkcję.

Być może już masz sgcCrypto

Wszystkie 43 jednostki są dostarczane wewnątrz sgcWebSockets Standard, Professional i Enterprise oraz w All-Access, bez dodatkowych opłat. Jeśli masz licencję na dowolną edycję od Standard wzwyż, nie musisz kupować nic więcej.

Wersja samodzielna jest dla odwrotnego przypadku

Masz tylko sgcWebSockets Core albo nie masz żadnej licencji sgcWebSockets? Pakiet samodzielny łączy środowisko uruchomieniowe Core z jednostkami kryptograficznymi, więc dostajesz bibliotekę bez licencjonowania pełnej edycji.

Bez blokady platformy

Nic w sgcVer.inc nie ogranicza sgcCrypto do Windows. Jednostki to zwykła arytmetyka Object Pascala, więc kompilują się dla Win32, Win64, Linux64, macOS, iOS i Android z jednego źródła. sgcCrypto_Random to jedyna jednostka świadoma platformy, wybiera zaplecze CSPRNG dla każdego celu za tym samym wywołaniem sgcRandomBytes.

Delphi i C++ Builder

sgcCrypto jest przeznaczony dla Delphi od 7 do RAD Studio 13 oraz C++ Builder. Bezpłatny instalator próbny to wersja próbna sgcWebSockets All-Access, więc wszystkie 43 jednostki możesz wypróbować już dziś.

FIPS 197 i 202 RFC 8439 RFC 5280 FIPS 203/204/205 Pełne źródło

Każda jednostka i funkcja →

sgcCrypto implementuje prymitywy bezpośrednio, zamiast wiązać się z biblioteką, którą trzeba dodatkowo dostarczać i dopasowywać wersjami, więc klucz, skrót albo podpis to jedno wywołanie funkcji, a pełny kod źródłowy oznacza, że nic pomiędzy nimi nie jest czarną skrzynką.

Czternaście bibliotek, jedna skrzynka narzędziowa

sgcCrypto to jedna z czternastu bibliotek komponentów eSeGeCe dla Delphi, C++ Builder i .NET. Dzielą te same konwencje, dostarczane są z pełnym kodem źródłowym i wdrażane bez opłat licencyjnych.

sgcCrypto

Szyfrowanie AEAD, hashowanie i funkcje KDF, podpisy, X.509 oraz kryptografia postkwantowa w 43 jednostkach w czystym Object Pascalu. W zestawie od edycji sgcWebSockets Standard wzwyż albo samodzielnie.

Dowiedz się więcej →

sgcREST

Serwer REST, serwer OpenAPI oraz komponenty klienta OpenAPI dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcHTTP

Klient HTTP/2, klient gRPC oraz klienty Google Cloud Pub/Sub, Calendar i FCM dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcAuth

Klient OAuth2, klient JWT i obsługa WebAuthn dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI oraz ponad 30 integracji API dla Delphi, C++ Builder, Lazarus i .NET. Jej edycja Enterprise zawiera także gRPC.

Dowiedz się więcej →

sgcMQ

Komponenty klienckie MQTT, AMQP 0.9.1 i 1.0, Apache Kafka oraz STOMP dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcSocial

Komponenty klienckie Telegram i WhatsApp Business dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcHTML

Serwerowe komponenty HTML i UI na Bootstrap 5 i htmx dla Delphi, C++ Builder i .NET.

Dowiedz się więcej →

sgcQUIC

Surowy transport QUIC oraz klient i serwer HTTP/3, z WebTransport. Dodatek do sgcWebSockets Enterprise.

Dowiedz się więcej →

sgcAI

Komponenty AI, LLM i MCP dla Delphi oraz C++ Builder. Siedmiu dostawców LLM za jednym komponentem, a do tego MCP, embeddingi i mowa. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcOpenAPI

Parser OpenAPI 3.x, natywny generator SDK w Pascalu, komponent serwera OpenAPI oraz ponad 1 195 gotowych SDK chmurowych.

Dowiedz się więcej →

sgcSign

XAdES, PAdES, CAdES i ASiC dla dokumentów, Authenticode, ClickOnce, NuGet i VSIX dla kodu.

Dowiedz się więcej →

sgcBiometrics

Windows Hello, czytniki linii papilarnych i Windows Biometric Framework dla Delphi i C++ Builder.

Dowiedz się więcej →

sgcIndy

Zaktualizowane komponenty Indy TCP/IP z nowoczesnym TLS, IPv6 i HTTP/2 od Delphi 7 do 13.

Dowiedz się więcej →

Zobacz cennik i licencje Pobierz bezpłatną wersję próbną

Co mówią programiści

Zaufali nam programiści Delphi, C++ Builder, Lazarus i .NET na całym świecie.

Wasza biblioteka sgcWebSockets jest bardzo przydatna i łatwa w konfiguracji. Tak trzymać!

Simone Moretti Programista Delphi

sgcWebSockets jest niesamowity, a wasze wsparcie jest najlepsze!

Christian Meyer Założyciel i CTO

Bardzo dziękuję za pomoc i wsparcie, uwielbiam wasze komponenty.

Mark Steinfeld CTO

Najnowsze wpisy na blogu

Zobacz wszystkie wpisy →

Oglądasz widok Kryptografia eSeGeCe.

Pokaż mi inne ujęcie →
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

Bajty na wejściu, bajty na wyjściu, natywny kod

Szyfrowanie AEAD, hashowanie, podpisy, X.509 i kryptografia postkwantowa w 43 jednostkach, z pełnym kodem źródłowym w pakiecie.