sgcCrypto Kryptografia, w czystym Pascalu. Bez DLL do dołączania.

43 jednostki, żadnych komponentów, zero śladu w czasie projektowania: podajesz TBytes i dostajesz TBytes z powrotem. AES-GCM i ChaCha20-Poly1305 do szyfrowania, SHA-3, BLAKE2 i Argon2 do haszowania i 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. Bez zewnętrznej biblioteki DLL, bez powiązania z OpenSSL, a ten sam kod źródłowy kompiluje się bez zmian od Delphi 7 po RAD Studio 13.

  • Delphi 7 do 13
  • C++ Builder
  • Win32, Win64, Linux64
  • macOS, iOS, Android
  • Postkwantowe
  • Pełny kod źródłowy
Szybki start sgcCrypto: sgcAES_GCM_Encrypt i sgcAES_GCM_Decrypt w Delphi, z nonce, szyfrogramem i tagiem oraz zmodyfikowaną wiadomością odrzuconą przy odszyfrowaniu
  • 43Jednostek Object Pascal ze zwykłymi funkcjami
  • 6Rodzin możliwości, od AEAD po postkwantowe
  • 6Platform docelowych: Win32, Win64, Linux64, macOS, iOS i Android
  • 100%Kod źródłowy w każdej licencji
  • 0Zewnętrznych zależności, bez OpenSSL do dopasowywania wersji
Zobacz, jak działa

Zobacz sgcCrypto w dwie minuty.

Haszowanie, szyfrowanie uwierzytelnione, przechowywanie haseł, podpisy i postkwantowa enkapsulacja kluczy, jedno wywołanie funkcji po drugim. Z narracją i napisami. Nic się nie pobiera, dopóki nie naciśniesz odtwarzania.

Sześć rodzin możliwości

Szyfruj, haszuj, podpisuj, certyfikuj i wyprzedź pytanie o komputery kwantowe.

Rodziny są podzielone według zadania, które wykonujesz, a nie według stojącej za nim matematyki, więc jednostka, po którą sięgasz, nosi nazwę tego, co chcesz zbudować.

Symetryczne · 5 jednostek

sgcCrypto_AES obsługuje CBC, GCM i CTR, sgcCrypto_Modes dodaje ECB, OFB, CFB, kradzież szyfrogramu, AES-CCM i AES Key Wrap. ChaCha20, XChaCha20, Salsa20 i XSalsa20 łączą się z Poly1305 w szyfry AEAD z RFC 8439. Odszyfrowanie porównuje tag w stałym czasie i odmawia zwrócenia tekstu jawnego, gdy weryfikacja się nie powiedzie.

Jednostki symetryczne →

Haszowanie i KDF · 11 jednostek

SHA-1, SHA-2, SHA-3, SHAKE, cSHAKE i KMAC, a obok nich BLAKE2b i BLAKE2s. PBKDF2, HKDF, scrypt oraz sgcCrypto_Argon2 ze wszystkimi trzema wariantami: d, i oraz id. sgcCrypto_SipHash dla kluczy tablic mieszających oraz sgcCrypto_HMAC dla dowolnego ze skrótów.

Jednostki haszujące →

Podpisy i wymiana kluczy · 10 jednostek

Ed25519 i Ed448 podpisują, X25519 i X448 realizują odpowiedni Diffie-Hellman, a sgcCrypto_ECCurves dodaje ECDSA i ECDH na siedmiu krzywych z deterministycznymi nonce wg RFC 6979 oraz podpisy Schnorra BIP-340. Klucze RSA o dowolnej długości, eksportowane jako DER lub PEM w PKCS#1 i PKCS#8.

Zobacz, co potrafi →

PKI · 5 jednostek

sgcCrypto_X509 parsuje certyfikat, weryfikuje jego wystawcę, przechodzi łańcuch i odczytuje CRL. sgcCrypto_X509_Gen generuje certyfikat z podpisem własnym lub żądanie PKCS#10 CSR z pełną nazwą wyróżniającą, okresem ważności, flagą CA, użyciem klucza, rozszerzonym użyciem klucza i alternatywnymi nazwami podmiotu.

Obsługa certyfikatów →

Postkwantowe · 6 jednostek

Enkapsulacja kluczy FIPS 203 we wszystkich trzech zestawach parametrów, podpisy 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 wspólny klucz nigdy nie jest słabszy niż jego klasyczna połowa.

Jednostki postkwantowe →

OTP i inne · 6 jednostek

sgcCrypto_OTP generuje i weryfikuje kody HOTP i TOTP z oknem w stałym czasie, które pochłania rozbieżność zegarów. Do tego porównanie w stałym czasie, bezpieczne zerowanie buforów, hex, Base64url i Base32, WinZip AES AE-1 i AE-2 dla wpisów ZIP oraz wieloplatformowy CSPRNG stojący za każdym kluczem.

OTP i narzędzia →
Kod

Wywołaj funkcję, odbierz bajty.

Żadnego obiektu do skonstruowania, żadnego kontekstu do zwolnienia, żadnego uchwytu do trzymania otwartego. Oba fragmenty kompilują się tak samo w Delphi 7 do 13 i 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: 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);

  // Decryption checks the tag in constant time and fails closed
  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
  // Ed25519 signature from a 32-byte seed
  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);

  // The peer recovers the same secret from the ciphertext
  sgcMLKEM_Decapsulate(mlkem768, vPrivateKey, vCiphertext, vSharedSecret);
end;
  1. Dodaj jednostkę do klauzuli usesŻadna jednostka nie rejestruje komponentu, więc nic nie pojawia się na palecie i nic nie trafia na formularz.
  2. Wywołaj funkcjęKlucze, nonce, tekst jawny i wyniki to wszystko TBytes. sgcRandomBytes to to samo wywołanie na każdej platformie, oparte na właściwym CSPRNG dla danego celu.
  3. Zaufaj ścieżce błęduOdszyfrowanie AEAD sprawdza tag w stałym czasie i kończy się odmową, więc zmanipulowane dane nigdy nie wracają jako tekst jawny.

Ten sam kształt w Object Pascal i w C++ Builder. Każda jednostka i funkcja jest wymieniona w matrycy funkcji.

Pełna matryca funkcji

Zanim kupisz

Zwykłe funkcje, jedno dołączone środowisko, nic pomiędzy.

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

Szybki start sgcCrypto: zapisanie hasła przez sgcArgon2id i porównanie go przez sgcConstantTimeEquals

Hasła, przechowywane poprawnie

Zamień hasło w klucz przez PBKDF2, scrypt lub Argon2 we wszystkich trzech wariantach, d, i oraz id, a potem porównaj za pomocą pomocnika działającego w stałym czasie z sgcCrypto_Encoding, aby samo porównanie nie zdradzało odpowiedzi.

Szybki start sgcCrypto: pełny wykaz funkcji haszujących, MAC, haseł i KDF, symetrycznych, klucza publicznego, postkwantowych, certyfikatów oraz dodatkowych

Sześć rodzin, czterdzieści trzy jednostki

Symetryczne (5), haszowanie i KDF (11), podpisy i wymiana kluczy (10), PKI (5), postkwantowe (6) oraz OTP i narzędzia (6). Nie ma klasy Tsgc* ani sgcCrypto_Reg.pas: każda jednostka eksportuje zwykłe funkcje, które przechodzisz krok po kroku we własnym debuggerze, zamiast znikać w pliku binarnym.

Brak blokady platformy

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 jednego źródła. sgcCrypto_Random to jedyna jednostka świadoma platformy.

Silnik TLS 1.3 i TLS 1.2

Pakiet zawiera też implementację TLS napisaną na prymitywach sgcCrypto, w jednostkach sgcSSL_NativeTLS* Ustaw IOHandler := iohNativeTLS w dowolnym kliencie lub serwerze sgcWebSockets i nie ma czego wdrażać. Domyślna lista grup zaczyna się od hybrydy X25519MLKEM768.

Jak to włączyć →

Sprawdzone względem standardów

FIPS 197 i 202, RFC 8439, RFC 5280 oraz FIPS 203, 204 i 205. Generowanie kluczy, podpisywanie i weryfikacja ML-KEM, ML-DSA i SLH-DSA są sprawdzane względem wektorów znanych odpowiedzi NIST ACVP w zestawie QA sgcWebSockets.

Każda jednostka i funkcja →
Licencjonowanie

Możesz już posiadać sgcCrypto.

Wszystkie 43 jednostki są dostarczane w sgcWebSockets Standard, Professional i Enterprise oraz w All-Access, bez dodatkowych kosztów. Masz tylko sgcWebSockets Core, albo wcale nie masz licencji sgcWebSockets? Pakiet samodzielny łączy środowisko Core z jednostkami kryptograficznymi. Każda licencja zawiera pełny kod źródłowy i wdrożenia bez opłat licencyjnych.

Edycje sgcWebSockets

sgcCrypto jest dołączony bezpłatnie od edycji Standard wzwyż, razem z WebSocket, HTTP/2, MQTT i resztą biblioteki. Jeśli masz jedną z nich, nie musisz niczego dokupować.

€380 / programista

sgcCrypto samodzielny

Wszystkie 43 jednostki z dołączonym środowiskiem sgcWebSockets Core, dla programistów, którzy mają samo Core albo nie mają licencji sgcWebSockets. Licencje Single, Team i Site.

€149 / programista

Pakiet All-Access

Każdy produkt eSeGeCe na rok, Delphi i .NET, razem z sgcCrypto, z Premium Support.

€1,059 / programista

Bezpłatny instalator próbny to wersja próbna sgcWebSockets All-Access, więc wszystkie 43 jednostki można ocenić już dziś.

Zobacz cennik sgcCrypto
Referencje

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

Bajty wchodzą, bajty wychodzą, kod natywny.

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

Najnowsze wpisy na blogu

Zobacz wszystkie wpisy →

Oglądasz widok Kryptografii 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