sgcCrypto Criptografia, em Pascal puro. Sem DLL para distribuir.

43 units, sem componentes, sem presença em tempo de design: passe TBytes e receba TBytes. AES-GCM e ChaCha20-Poly1305 para criptografia, SHA-3, BLAKE2 e Argon2 para hash e derivação de chaves, Ed25519, X25519 e RSA para assinaturas e troca de chaves, leitura e geração de X.509, e os pós-quânticos ML-KEM, ML-DSA e SLH-DSA. Sem DLL externa, sem binding com OpenSSL, e o mesmo código-fonte compila sem alterações do Delphi 7 ao RAD Studio 13.

  • Delphi 7 a 13
  • C++ Builder
  • Win32, Win64, Linux64
  • macOS, iOS, Android
  • Pós-quântico
  • Código-fonte completo
Início rápido do sgcCrypto: sgcAES_GCM_Encrypt e sgcAES_GCM_Decrypt em Delphi, com o nonce, o texto cifrado e a tag, e uma mensagem adulterada rejeitada na decifragem
  • 43units Object Pascal de funções simples
  • 6Famílias de recursos, de AEAD a pós-quântico
  • 6Plataformas: Win32, Win64, Linux64, macOS, iOS e Android
  • 100%Código-fonte incluído em cada licença
  • 0Dependências externas, sem OpenSSL para alinhar versões
Veja funcionando

Veja o sgcCrypto em dois minutos.

Hash, criptografia autenticada, armazenamento de senhas, assinaturas e encapsulamento de chaves pós-quântico, uma chamada de função por vez. Narrado, com legendas. Nada é baixado até você apertar o play.

Seis famílias de recursos

Criptografe, calcule hashes, assine, certifique e supere a questão quântica.

As famílias são divididas pela tarefa que você está fazendo, e não pela matemática por trás dela, então a unit que você procura é a que leva o nome da coisa que você quer construir.

Simétrica · 5 units

sgcCrypto_AES cobre CBC, GCM e CTR, e sgcCrypto_Modes acrescenta ECB, OFB, CFB, ciphertext stealing, AES-CCM e AES Key Wrap. ChaCha20, XChaCha20, Salsa20 e XSalsa20 se combinam com o Poly1305 nas cifras AEAD da RFC 8439. A decifragem compara a tag em tempo constante e se recusa a devolver o texto simples quando ela falha.

As units simétricas →

Hash e KDF · 11 units

SHA-1, SHA-2, SHA-3, SHAKE, cSHAKE e KMAC, com BLAKE2b e BLAKE2s ao lado. PBKDF2, HKDF, scrypt e sgcCrypto_Argon2 com as três variantes, d, i e id. sgcCrypto_SipHash para chaves de tabelas hash e sgcCrypto_HMAC sobre qualquer um dos digests.

As units de hash →

Assinaturas e troca de chaves · 10 units

Ed25519 e Ed448 assinam, X25519 e X448 fazem o Diffie-Hellman correspondente, e sgcCrypto_ECCurves acrescenta ECDSA e ECDH sobre sete curvas, com nonces determinísticos da RFC 6979 e assinatura Schnorr BIP-340. Chaves RSA de qualquer tamanho em bits, exportadas como DER ou PEM em PKCS#1 e PKCS#8.

Veja o que ele faz →

PKI · 5 units

sgcCrypto_X509 lê um certificado, verifica o emissor, percorre uma cadeia e lê uma CRL. sgcCrypto_X509_Gen gera um certificado autoassinado ou uma CSR PKCS#10 com o nome distinto completo, validade, flag de CA, key usage, extended key usage e subject alternative names.

A superfície de certificados →

Pós-quântica · 6 units

Encapsulamento de chaves FIPS 203 nos três conjuntos de parâmetros, assinatura FIPS 204 em ML-DSA-44, 65 e 87, e FIPS 205 nos seis conjuntos de parâmetros SHAKE. sgcCrypto_MLKEM_Hybrid combina um segredo X25519 com um segredo ML-KEM, de modo que a chave compartilhada nunca é mais fraca que a metade clássica.

As units pós-quânticas →

OTP e diversos · 6 units

sgcCrypto_OTP gera e verifica códigos HOTP e TOTP com uma janela em tempo constante que absorve a diferença de relógio. Comparação em tempo constante, zeragem segura de buffers, hex, Base64url e Base32, WinZip AES AE-1 e AE-2 para entradas ZIP, e o CSPRNG multiplataforma por trás de cada chave.

OTP e utilitários →
O código

Chame uma função, receba bytes de volta.

Nenhum objeto para construir, nenhum contexto para liberar, nenhum handle para manter aberto. Os dois trechos compilam igualmente no Delphi 7 ao 13 e no C++ Builder, em todas as plataformas.

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. Adicione a unit à sua cláusula usesNenhuma unit registra um componente, então nada aparece na paleta e nada é solto em um formulário.
  2. Chame a funçãoChaves, nonces, texto simples e resultados são todos TBytes. sgcRandomBytes é a mesma chamada em todas as plataformas, apoiada pelo CSPRNG correto para cada destino.
  3. Confie no caminho de falhaA decifragem AEAD verifica a tag em tempo constante e falha de forma segura, então dados adulterados nunca voltam como texto simples.

O mesmo formato em Object Pascal e em C++ Builder. Cada unit e cada função estão listadas na matriz de recursos.

A matriz de recursos completa

Antes de comprar

Funções simples, um runtime incluído, nada no meio do caminho.

O sgcCrypto implementa as primitivas diretamente, em vez de usar um binding para uma biblioteca que você também teria de distribuir e alinhar por versão. Assim, uma chave, um digest ou uma assinatura é uma única chamada de função, e o código-fonte completo significa que nada no meio do caminho é uma caixa-preta.

Início rápido do sgcCrypto: armazenando uma senha com sgcArgon2id e comparando com sgcConstantTimeEquals

Senhas, armazenadas do jeito certo

Transforme uma senha em chave com PBKDF2, scrypt ou Argon2 nas três variantes, d, i e id, e depois compare com o helper de tempo constante de sgcCrypto_Encoding, para que a própria comparação não revele a resposta.

Início rápido do sgcCrypto: o inventário completo de funções de hash, MAC, senha e KDF, simétricas, de chave pública, pós-quânticas, de certificado e extras

Seis famílias, quarenta e três units

Simétrica (5), hash e KDF (11), assinaturas e troca de chaves (10), PKI (5), pós-quântica (6), e OTP e utilitários (6). Não existe classe Tsgc* nem sgcCrypto_Reg.pas: cada unit exporta funções simples que você percorre no seu próprio depurador, em vez de sumirem dentro de um binário.

Sem restrição de plataforma

Nada em sgcVer.inc restringe o sgcCrypto ao Windows. As units são aritmética comum de Object Pascal, então compilam para Win32, Win64, Linux64, macOS, iOS e Android a partir de um único código-fonte. sgcCrypto_Random é a única unit que depende da plataforma.

Um mecanismo TLS 1.3 e TLS 1.2

O pacote também traz uma implementação de TLS escrita sobre as primitivas do sgcCrypto, nas units sgcSSL_NativeTLS*. Defina IOHandler := iohNativeTLS em qualquer cliente ou servidor sgcWebSockets e não há nada para distribuir. A lista de grupos padrão começa com o híbrido X25519MLKEM768.

Como ativá-lo →

Conferido com os padrões

FIPS 197 e 202, RFC 8439, RFC 5280 e FIPS 203, 204 e 205. A geração de chaves, a assinatura e a verificação de ML-KEM, ML-DSA e SLH-DSA são conferidas com os vetores de resposta conhecida NIST ACVP na suíte de QA do sgcWebSockets.

Cada unit e cada função →
Licenciamento

Você talvez já tenha o sgcCrypto.

Todas as 43 units acompanham o sgcWebSockets Standard, Professional e Enterprise, e o All-Access, sem custo adicional. Tem apenas o sgcWebSockets Core, ou nenhuma licença do sgcWebSockets? O pacote independente reúne o runtime Core com as units de criptografia. Toda licença inclui o código-fonte completo e distribuição livre de royalties.

Edições do sgcWebSockets

O sgcCrypto está incluído sem custo a partir da edição Standard, junto com WebSocket, HTTP/2, MQTT e o restante da biblioteca. Se você tem uma delas, não há mais nada a comprar.

€380 / desenvolvedor

sgcCrypto independente

Todas as 43 units com o runtime do sgcWebSockets Core incluído, para desenvolvedores que têm apenas o Core ou nenhuma licença do sgcWebSockets. Licenças Single, Team e Site.

€149 / desenvolvedor

Pacote All-Access

Todos os produtos da eSeGeCe por um ano, Delphi e .NET, com o sgcCrypto incluído e Suporte Premium.

€1,059 / desenvolvedor

O instalador de avaliação gratuita é a avaliação do sgcWebSockets All-Access, então todas as 43 units podem ser avaliadas hoje.

Ver preços do sgcCrypto
Depoimentos

O Que os Desenvolvedores Dizem

Confiado por desenvolvedores Delphi, C++ Builder, Lazarus e .NET ao redor do mundo.

A biblioteca sgcWebSockets de vocês é muito útil e fácil de configurar. Continuem com o ótimo trabalho!
Simone Moretti Desenvolvedor Delphi
O sgcWebSockets é incrível e o suporte de vocês é o melhor!
Christian Meyer Fundador & CTO
Muito obrigado pela ajuda e pelo suporte, eu adoro os componentes de vocês.
Mark Steinfeld CTO

Bytes de entrada, bytes de saída, código nativo.

Criptografia AEAD, hash, assinaturas, X.509 e criptografia pós-quântica em 43 units, com o código-fonte completo na caixa.

Últimas do blog

Ver todas as publicações →

Você está vendo a visão Criptografia da eSeGeCe.

Mostre outro ângulo →
Garantia de reembolso de 30 diasNão ficou satisfeito? Solicite o reembolso total em até 30 dias após a compra. Ver política de reembolso