sgcCrypto functiematrix

Alles wat sgcCrypto doet, uitgezet over de 43 units op schijf. Er zijn hier geen componenten en geen design-time-eigenschappen: elke rij hieronder is een functie of procedure die je rechtstreeks aanroept. Volledige broncode zit bij elke licentie. De ankers hieronder brengen je naar de zes functiefamilies waarin de units vallen, plus de TLS 1.3- en TLS 1.2-engine die hetzelfde pakket erbovenop bouwt.

sgcCrypto heeft geen componenten. De 43 units hieronder exporteren gewone functies, er is geen Tsgc*-klasse en geen sgcCrypto_Reg.pas. Voeg een unit toe aan je uses-clausule en roep de functie aan.

Al inbegrepen. sgcCrypto wordt gratis meegeleverd met sgcWebSockets Standard, Professional en Enterprise, en met All-Access. Het wordt ook standalone verkocht (met de sgcWebSockets Core runtime inbegrepen) voor klanten die alleen Core bezitten. Zie Prijzen.

Symmetrisch

AES, CCM, ChaCha20, Poly1305, 5 units

Hashing & KDF

SHA-2/3, BLAKE2, Argon2, 11 units

Handtekeningen & sleuteluitwisseling

Ed25519, X25519, Schnorr, RSA, 10 units

PKI

X.509, ASN.1, RSA & EC CSR, 5 units

Post-quantum

ML-KEM, ML-DSA, SLH-DSA, 6 units

OTP & overig

HOTP/TOTP, encoding, ZIP AES, 6 units

TLS 1.3- en 1.2-engine

iohNativeTLS, X25519MLKEM768, puur Pascal

43 broncode-units

Elke unit sgcCrypto_*.pas onder sgcWebSockets/delphi/Source/, gegroepeerd per familie.

UnitFamilieWat het doet
sgcCrypto_AESSymmetrischAES-CBC, AES-GCM (AEAD), AES-CTR.
sgcCrypto_ModesSymmetrischAES-ECB, OFB, CFB, CTS, CCM (AEAD), Key Wrap / Key Wrap with Padding, en de zeven padding-schema's.
sgcCrypto_CMACSymmetrischAES-CMAC en AES-GMAC message authentication.
sgcCrypto_ChaChaSymmetrischChaCha20, XChaCha20, Salsa20, XSalsa20.
sgcCrypto_Poly1305SymmetrischPoly1305-MAC, ChaCha20-Poly1305 en XChaCha20-Poly1305 AEAD.
sgcCrypto_SHA2Hashing & KDFSHA-1, SHA-224, SHA-256, SHA-384, SHA-512.
sgcCrypto_KeccakHashing & KDFSHA-3, SHAKE128/256, cSHAKE, KMAC.
sgcCrypto_Blake2bHashing & KDFBLAKE2b, keyed of unkeyed.
sgcCrypto_Blake2sHashing & KDFBLAKE2s, keyed of unkeyed.
sgcCrypto_HMACHashing & KDFHMAC-SHA1/256/384/512.
sgcCrypto_KDFHashing & KDFPBKDF2, KDF1, KDF2 en X9.63, kiesbare hash.
sgcCrypto_HKDFHashing & KDFHKDF extract-and-expand.
sgcCrypto_ScryptHashing & KDFscrypt memory-hard KDF.
sgcCrypto_Argon2Hashing & KDFArgon2d, Argon2i, Argon2id.
sgcCrypto_SipHashHashing & KDFSipHash-2-4 keyed hash.
sgcCrypto_TLSHHashing & KDFTLSH fuzzy hash en gelijkenis-diff.
sgcCrypto_Ed25519Handtekeningen & sleuteluitwisselingEd25519 ondertekenen / verifiëren.
sgcCrypto_X25519Handtekeningen & sleuteluitwisselingX25519 Diffie-Hellman.
sgcCrypto_Ed448Handtekeningen & sleuteluitwisselingEd448 ondertekenen / verifiëren.
sgcCrypto_X448Handtekeningen & sleuteluitwisselingX448 Diffie-Hellman.
sgcCrypto_GF448Handtekeningen & sleuteluitwisselingInterne GF(2^448-2^224-1)-veldrekenkunde voor Ed448/X448.
sgcCrypto_ECCurvesHandtekeningen & sleuteluitwisselingECDSA / ECDH over secp256k1, Brainpool P256r1/P384r1/P512r1 en NIST P-256/P-384/P-521, DER-handtekeningen, sleutelexport/-import, en BIP-340 Schnorr.
sgcCrypto_ECHandtekeningen & sleuteluitwisselingAlgemene EC-ondertekening/verificatie als JWS (ES256/384/512), ECDH.
sgcCrypto_RSAHandtekeningen & sleuteluitwisselingRSA PKCS#1 v1.5 ondertekenen, PKCS#1 v1.5 / PSS verifiëren, vanuit PEM of raw.
sgcCrypto_RSA_KeysHandtekeningen & sleuteluitwisselingRSA-sleutelgeneratie, OAEP (met onafhankelijke MGF1-hash), PSS, PKCS#1 v1.5 ondertekenen/verifiëren/versleutelen/ontsleutelen, PKCS#1- en PKCS#8-DER/PEM-export en -import.
sgcCrypto_ECIESHandtekeningen & sleuteluitwisselingECIES seal / open hybride versleuteling over X25519.
sgcCrypto_ASN1PKIDER-lezer, PEM-codec, PKCS#1/SEC 1-sleutelparsing.
sgcCrypto_DERPKIDER-schrijverprimitieven.
sgcCrypto_BigIntegerPKIInterne rekenkunde met willekeurige precisie.
sgcCrypto_X509PKIX.509 parsen, verifiëren, keten met pathLenConstraint en nameConstraints, CSR-verificatie, CRL, intrekking. Leest publieke sleutels van RSA, EC, Ed25519, ML-DSA, SLH-DSA en ML-KEM.
sgcCrypto_X509_GenPKIGeneratie van self-signed certificaat, door een CA uitgegeven certificaat en PKCS#10-CSR, ondertekend met RSA, EC, ML-DSA of SLH-DSA, met URI- en IPv6-subject-alternative-names en nameConstraints.
sgcCrypto_MLKEMPost-quantumML-KEM-sleutelencapsulatie (FIPS 203), 3 parametersets, met import en export van sleutels als SubjectPublicKeyInfo, PKCS#8 en PEM.
sgcCrypto_MLKEM_PolyPost-quantumInterne polynoom-ringrekenkunde achter ML-KEM.
sgcCrypto_MLKEM_HybridPost-quantumHybride X25519 + ML-KEM-sleutelencapsulatie, X-Wing, en de hybride TLS 1.3-key shares van RFC 10024.
sgcCrypto_MLDSAPost-quantumML-DSA digitale handtekeningen (FIPS 204), 3 parametersets, met import en export van sleutels als SubjectPublicKeyInfo, PKCS#8 en PEM.
sgcCrypto_MLDSA_PolyPost-quantumInterne polynoom-ringrekenkunde achter ML-DSA.
sgcCrypto_SLHDSAPost-quantumSLH-DSA-handtekeningen (FIPS 205), 6 SHAKE-parametersets, met import en export van sleutels als SubjectPublicKeyInfo, PKCS#8 en PEM.
sgcCrypto_OTPOTP & overigHOTP, TOTP, verificatievenster in constante tijd.
sgcCrypto_EncodingOTP & overigVergelijking in constante tijd, veilig wissen, hex/Base64url/Base32.
sgcCrypto_Zip_AE2OTP & overigWinZip AES-versleuteling voor ZIP-entries, AE-1 / AE-2.
sgcCrypto_LegacyOTP & overigMD4, MD5, HMAC-MD5, DES-ECB, RIPEMD-160 en HMAC-RIPEMD160, alleen voor interoperabiliteit.
sgcCrypto_RandomOTP & overigPlatformonafhankelijke CSPRNG.
sgcCrypto_Int64OTP & overigInterne 64-bit-integer-emulatie voor Delphi 7.

Versleuteling & MAC's

AES in de modi die productiecode daadwerkelijk gebruikt, plus de ChaCha20/Poly1305-AEAD-familie.

MogelijkheidFunctieOpmerkingen
AES-CBCsgcAES_CBC_Encrypt / sgcAES_CBC_DecryptPKCS#7-padding, 16-byte IV. Sleutellengte bepaalt de cipher: 16/24/32 bytes = AES-128/192/256.
AES-CBC, geen paddingsgcAES_CBC_Encrypt_NoPad / sgcAES_CBC_Decrypt_NoPadDe modus die Java schrijft als AES/CBC/NoPadding. De invoer moet al een veelvoud van 16 bytes zijn; een niet-uitgelijnde invoer gooit een exception in plaats van stilzwijgend te worden opgevuld tot iets wat de andere kant niet kan lezen.
AES-GCM (AEAD)sgcAES_GCM_Encrypt / sgcAES_GCM_Decrypt12-byte IV aanbevolen. 16-byte tag, vergeleken in constante tijd; decrypt geeft False en lege plaintext terug bij een mislukte tag.
AES-kernsgcAES_GetCore / sgcAES_SetCoreaescConstantTime is de standaard, een bitsliced kern die het geheugen nooit indexeert met een geheime byte en er nooit op vertakt, wat het cache-timingkanaal op de sleutel en de plaintext sluit. aescTable is de klassieke tabelkern, die lekt via de datacache en in elke meting trager was, dus hij blijft alleen als terugvaloptie behouden. GHASH, dat GCM authenticeert, vermenigvuldigt onder een masker in plaats van op de sleutel te vertakken. Stel de kern één keer in bij het opstarten, voordat er een workerthread draait.
AES-CCM (AEAD)sgcAES_CCM_Encrypt / sgcAES_CCM_DecryptDe AEAD-modus die constrained en IoT-stacks voorschrijven, Zigbee, 802.15.4, Bluetooth en de TLS CCM-suites, omdat er alleen het blokcijfer nodig is en geen GHASH-tabel. Nonce 7 tot 13 bytes, tag 4 tot 16 bytes, geverifieerd in constante tijd.
AES-CTRsgcAES_CTRSRTP-stijl AES-CM (RFC 3711). Symmetrische aanroep, geen padding, 128-bit big-endian-teller.
AES-ECBsgcAES_ECB_Encrypt / sgcAES_ECB_DecryptGeen IV, geen chaining. Inbegrepen voor interoperabiliteit met formaten die het voorschrijven.
Padding-schema'ssgcPad_Add / sgcPad_Remove, sgcAES_CBC_EncryptPad / DecryptPad, sgcAES_ECB_EncryptPad / DecryptPadTsgcPadding dekt None, PKCS#7, Zero, ANSI X9.23, ISO 7816-4, ISO 10126-2 en TBC, zodat CBC en ECB data kunnen lezen en schrijven van een systeem dat niet voor PKCS#7 heeft gekozen. sgcPad_Remove geeft False terug via hetzelfde pad voor elke soort foute pad.
AES-OFB / AES-CFBsgcAES_OFB, sgcAES_CFB_Encrypt / sgcAES_CFB_DecryptFeedbackmodi in stream-cipher-stijl.
AES-CTSsgcAES_CTS_Encrypt / sgcAES_CTS_DecryptCiphertext stealing: versleutelt data die geen veelvoud van de blokgrootte is, zonder padding-overhead.
AES Key WrapsgcAES_KeyWrap / sgcAES_KeyUnwrapRFC 3394, voor het wrappen van één sleutel onder een andere.
AES Key Wrap with PaddingsgcAES_KeyWrapPad / sgcAES_KeyUnwrapPadRFC 5649, voor sleutelmateriaal dat geen veelvoud van 8 bytes is.
AES-CMACsgcAES_CMAC / sgcAES_CMAC_VerifyRFC 4493 message authentication code.
AES-GMACsgcAES_GMAC / sgcAES_GMAC_VerifyDe authenticatie-only-modus van GCM: het hele bericht reist als additional data, er wordt niets versleuteld. De IV mag nooit worden hergebruikt onder dezelfde sleutel, en de 16-byte tag wordt vergeleken in constante tijd.
Low-level blokprimitievensgcAES_ExpandKey, sgcAES_EncryptBlock, sgcAES_DecryptBlockBlootgesteld voor de mode- en MAC-units hierboven; roep deze rechtstreeks alleen aan om een nog niet geleverde modus te bouwen.
ChaCha20sgcChaCha20RFC 8439, 96-bit nonce, 32-bit teller.
XChaCha20sgcXChaCha20192-bit uitgebreide nonce, veilig voor willekeurige nonce-generatie op schaal.
Salsa20 / XSalsa20sgcSalsa20 / sgcXSalsa20De voorgaande stream-cipher-familie, beide nonce-groottes.
SubsleutelafleidingsgcHChaCha20 / sgcHSalsa20Wat de X-varianten intern gebruiken om een subsleutel af te leiden uit de eerste 16 nonce-bytes.
Poly1305-MACsgcPoly1305 / sgcPoly1305_VerifyEenmalige authenticator, RFC 8439. Hergebruik nooit een Poly1305-sleutel.
ChaCha20-Poly1305 AEADsgcChaCha20Poly1305_Encrypt / _DecryptDe AEAD-cipher achter de tweede ciphersuite van TLS 1.3 en SSH.
XChaCha20-Poly1305 AEADsgcXChaCha20Poly1305_Encrypt / _DecryptDezelfde AEAD, 192-bit nonce, de constructie die libsodium crypto_aead_xchacha20poly1305_ietf noemt.

Digests, MAC's & wachtwoordhashing

Elke gangbare hashfamilie, plus PBKDF2, HKDF, scrypt en alle drie Argon2-varianten.

MogelijkheidFunctieOpmerkingen
SHA-1 / SHA-2sgcSHA1, sgcSHA224, sgcSHA256, sgcSHA384, sgcSHA512FIPS 180-4. SHA-1 wordt aangehouden voor interoperabiliteit, niet aanbevolen voor nieuwe handtekeningen.
SHA-3sgcSHA3_224 / _256 / _384 / _512FIPS 202, de Keccak-sponge, structureel onafhankelijk van SHA-2.
SHAKE128 / SHAKE256sgcSHAKE128 / sgcSHAKE256Extendable-output-functies: vraag elke digestlengte op.
cSHAKE128 / cSHAKE256sgcCSHAKE128 / sgcCSHAKE256Domeingescheiden SHAKE, NIST SP 800-185, de basis voor KMAC.
KMAC128 / KMAC256sgcKMAC128 / sgcKMAC256Op Keccak gebaseerde MAC met variabele uitvoerlengte.
BLAKE2bsgcBlake2b / sgcBlake2b_KeyedRFC 7693, digests tot 64 bytes, ingebouwde keying (geen aparte HMAC nodig).
BLAKE2ssgcBlake2s / sgcBlake2s_KeyedRFC 7693, digests tot 32 bytes, afgestemd op 32-bit platforms.
Streaming digestssgcBlake2b_Init/_Update/_Final, overeenkomende aanroepen op Keccak/Blake2sVoor het hashen van data die te groot is om in één keer in het geheugen te houden.
HMACsgcHMAC_SHA1 / _SHA256 / _SHA384 / _SHA512RFC 2104 keyed hashing over de SHA-1/2-familie.
RIPEMD-160 / HMAC-RIPEMD160sgcRIPEMD160, sgcHMAC_RIPEMD160ISO/IEC 10118-3 en RFC 2286. De 160-bit digest die Bitcoin-adressen over SHA-256 heen leggen, en de digest die OpenPGP met naam voorschrijft.
PBKDF2sgcPBKDF2, sgcPBKDF2_SHA1 / _SHA256 / _SHA512RFC 8018. Slechts licht memory-hard; geef de voorkeur aan Argon2id of scrypt als je kunt kiezen.
HKDFsgcHKDF_Extract_SHA256 / _SHA384, sgcHKDF_Expand_SHA256 / _SHA384, sgcHKDF_SHA256 / _SHA384RFC 5869, extract-then-expand-sleutelafleiding, de standaardmanier om een gedeeld geheim in meerdere sleutels om te zetten.
KDF1 / KDF2 / X9.63sgcKDF1, sgcKDF2, sgcKDF_X963De counter-mode-afleidingen die ISO 18033-2, IEEE 1363a en ANSI X9.63 definiëren, wat is wat RSA-KEM en ECIES met naam noemen. KDF1 telt vanaf 0 en KDF2 vanaf 1, een verschil dat al echte interoperabiliteitsbugs heeft veroorzaakt, dus controleer welke je spec bedoelt.
scryptsgcScryptRFC 7914, memory-hard, weerstaat GPU/ASIC-aanvallen veel beter dan PBKDF2.
Argon2sgcArgon2 (d / i / id), sgcArgon2id gemaksfunctieRFC 9106, de winnaar van de Password Hashing Competition. Volledige interface met optioneel geheim (pepper) en geassocieerde data.
SipHash-2-4sgcSipHash24 / sgcSipHash24_ValueSnelle keyed PRF voor hashtabelsleutels, weerstaat hash-flooding denial of service.
TLSH fuzzy hashsgcTLSH, sgcTLSH_Init/_Update/_FinalLocality-sensitive hash voor het detecteren van bijna-duplicaten, geen cryptografische digest.
TLSH-gelijkenisscoresgcTLSH_DiffAfstand tussen twee TLSH-digests; lager betekent gelijkender.

Ed25519/Ed448, X25519/X448, secp256k1, Brainpool & RSA

Onderteken, verifieer en leid gedeelde geheimen af over vijf verschillende curvefamilies plus RSA.

MogelijkheidFunctieOpmerkingen
Ed25519 ondertekenen / verifiërensgcEd25519_Sign / sgcEd25519_Verify, sgcEd25519_PublicKeyRFC 8032. Publieke sleutel van 32 byte, handtekening van 64 byte. De verificatie weigert niet-canonieke punten en S >= L volgens sectie 5.1.7. Ondertekenen gebeurt in constante tijd in de geheime scalar en in de nonce per bericht: vaste vensters van vier bit, de tabelinvoer gekozen door alle zestien onder een masker te scannen, en de volledige optelformule van sectie 5.1.4. De publieke sleutel komt uit de seed van 32 byte.
X25519-sleuteluitwisselingsgcX25519, sgcX25519_PublicKey, sgcX25519_SharedSecretRFC 7748 Diffie-Hellman over Curve25519.
Ed448 ondertekenen / verifiërensgcEd448_GenerateKeyPair, sgcEd448_Sign, sgcEd448_VerifyRFC 8032, de 448-bit (Goldilocks) EdDSA-curve.
X448-sleuteluitwisselingsgcX448, sgcX448_PublicKey, sgcX448_SharedSecretRFC 7748 Diffie-Hellman over Curve448.
secp256k1sgcECDSA_SignHash / VerifyHash met eccSecp256k1De Bitcoin/Ethereum-curve, SEC 2, in sgcCrypto_ECCurves.
Brainpool P256r1 / P384r1 / P512r1dezelfde functies met eccBrainpoolP256r1 / P384r1 / P512r1RFC 5639, gangbaar in EU-eIDAS- en overheidsprofielen.
NIST P-256 / P-384 / P-521dezelfde functies met eccP256 / eccP384 / eccP521TsgcECCurve noemt nu zeven curves, zodat sleutelgeneratie, ondertekenen, verifiëren, ECDH en puntcompressie allemaal de NIST-priemcurves bereiken vanuit raw sleutelbytes, niet alleen vanuit een PEM-bestand.
Deterministische ECDSA-nonceingebouwd in sgcECDSA_SignHashRFC 6979: de nonce wordt afgeleid van de private sleutel en het bericht, geen RNG-faalmodus.
Scalaire vermenigvuldiging in constante tijdbinnen sgcECDSA_SignHash, sgcECDH_SharedSecret en EC-sleutelgeneratieElke curve in sgcCrypto_ECCurves draait dezelfde engine: Montgomery-reductie, die geen datagevoelige stap kent, een vast venster waarvan het aantal uit de curve komt, tabelinvoer gekozen door ze allemaal onder een masker te scannen, en een volledige optelformule die nooit naar een coördinaat kijkt om te bepalen welk geval van toepassing is. De JOSE-, WebAuthn- en E2EE-paden van sgcCrypto_EC draaien dezelfde code.
ECDH (secp256k1 / Brainpool)sgcECDH_SharedSecretGedeeld geheim over dezelfde vier curves.
PuntcompressiesgcEC_Compress / sgcEC_DecompressSla de kortere gecomprimeerde publieke-sleutelvorm op of verstuur die.
EC als JWS (ES256/384/512)sgcECDSA_SignJWS / sgcECDSA_VerifyJWSCurve automatisch gekozen op basis van de gevraagde bitlengte, ondertekenen/verifiëren rechtstreeks vanuit een PEM-sleutel, JOSE-georiënteerde tegenhanger van ECCurves.
Generieke ECDHsgcECDHGedeeld geheim uit een raw private sleutel en een remote publiek punt.
Raw / DER ECDSA-verificatiesgcECDSA_VerifyRaw / sgcECDSA_VerifyDERVerifieer tegen een raw (Qx, Qy, r, s)-tuple of een DER-gecodeerde handtekening.
ECDSA DER-ondertekening & -conversiesgcECDSA_SignDER / sgcECDSA_VerifyDER, sgcECDSA_RawToDER / sgcECDSA_DERToRawX.509, CMS en TLS dragen de DER ECDSA-Sig-Value, een SEQUENCE van INTEGER r gevolgd door INTEGER s. JOSE en WebAuthn dragen in plaats daarvan het raw paar R || S. Onderteken rechtstreeks in beide vormen, of converteer een bestaande handtekening ertussen.
Schnorr-handtekeningen (BIP-340)sgcSchnorr_PublicKey, sgcSchnorr_Sign, sgcSchnorr_VerifyAlleen secp256k1, met x-only publieke sleutels van 32 bytes en handtekeningen van 64 bytes: wat Taproot, Nostr en Lightning gebruiken. sgcSchnorr_TaggedHash wordt blootgesteld zodat de BIP-341- en BIP-342-tags op dezelfde constructie kunnen worden gebouwd.
RSA-ondertekening (PKCS#1 v1.5)sgcRSA_SignPKCS1Vanuit een PEM private sleutel, SHA-1/256/384/512-digest.
RSA-bewerkingen met privésleutelsgcRSA_SignPKCS1 en de andere ondertekenings- en decryptieaanroepen van sgcCrypto_RSA_KeysElke bewerking wordt geblindeerd met een vers willekeurig paar, uitgevoerd via een machtsverheffing met vast venster en een CRT-hercombinatie waarvan de timing niet afhangt van de factoren of de data, en gecontroleerd tegen de publieke exponent voordat het resultaat wordt teruggegeven. Een fout in één CRT-helft zou anders in één enkele handtekening een factor prijsgeven, dus bij een afwijking wordt niets teruggegeven.
RSA-verificatie (PKCS#1 v1.5 / PSS)sgcRSA_VerifyPKCS1, sgcRSA_VerifyPSS, en _Raw-varianten over een modulus/exponentRFC 8017. Verify werkt vanuit een PEM-sleutel of raw modulus en exponent, geen key-object-constructie nodig.
RSA-sleutelgeneratiesgcRSA_GenerateKeyElke gevraagde bitlengte, Miller-Rabin-priemtest.
RSA-OAEP-versleutelingsgcRSA_OAEP_Encrypt / sgcRSA_OAEP_DecryptRFC 8017 optimal asymmetric encryption padding.
RSA-OAEP met een onafhankelijke MGF1-hashde vijf-parameteroverloads van sgcRSA_OAEP_Encrypt / sgcRSA_OAEP_DecryptLeg de labelhash en de MGF1-hash apart vast. OAEPWithSHA256AndMGF1Padding betekent SHA-256 voor beide in Bouncy Castle maar SHA-256 met MGF1-SHA1 in SunJCE, en die mismatch is meestal de reden waarom Java-interoperabiliteit faalt.
RSA PKCS#1 v1.5-versleutelingsgcRSA_PKCS1_Encrypt / sgcRSA_PKCS1_DecryptRFC 8017 sectie 7.2, de modus die Java RSA/ECB/PKCS1Padding noemt. Decrypt doorloopt voor elke fout hetzelfde pad, zodat een padding-oracle er niets aan heeft. Geef de voorkeur aan OAEP voor iets nieuws.
RSA-PSS / PKCS#1-ondertekeningsgcRSA_PSS_Sign / Verify, sgcRSA_PKCS1_Sign / VerifyOnderteken rechtstreeks vanuit een gegenereerde TsgcRSAPrivateKey.
RSA-sleutelexportsgcRSA_ExportPrivateKeyPEM, sgcRSA_ExportPublicKeyPEM, overeenkomende DER-aanroepenPKCS#1- en SubjectPublicKeyInfo-encoderingen.
PKCS#8- en SEC 1-sleutelexportsgcRSA_ExportPrivateKeyPKCS8DER / PKCS8PEM, sgcEC_ExportPrivateKeyPKCS8DER / PKCS8PEM, sgcEC_ExportPrivateKeySEC1DER / SEC1PEM, sgcEC_ExportSubjectPublicKeyInfo, sgcEC_ExportPublicKeyPEMDe container BEGIN PRIVATE KEY die Java, .NET en de meeste moderne tools verwachten, naast de SEC 1-vorm BEGIN EC PRIVATE KEY en de SubjectPublicKeyInfo die een certificaat insluit. Onversleuteld, dus wat terugkomt is kaal sleutelmateriaal.
RSA- en EC-sleutelimportsgcRSA_ImportPrivateKeyDER / PEM, sgcRSA_ImportPublicKeyDER / PEM, sgcEC_ImportPrivateKeyDER / PEM, sgcEC_ImportPublicKeyDER / PEMDit bestond eerder niet: een gegenereerde sleutel kon worden weggeschreven maar nooit worden teruggelezen. Import accepteert PKCS#1, PKCS#8, SEC 1 en SubjectPublicKeyInfo, DER of PEM, herberekent de CRT-parameters of het publieke punt wanneer het bestand ze weglaat, en geeft False terug bij misvormde invoer in plaats van een exception te gooien, zodat niet-vertrouwde bestanden er veilig aan kunnen worden meegegeven.
ECIES seal / opensgcECIES_GenerateKeyPair, sgcECIES_Seal, sgcECIES_OpenHybride versleuteling naar een X25519-publieke sleutel: ephemere ECDH plus een AEAD, één aanroep per richting.

X.509-certificaten & ASN.1

Lees een certificaat dat iemand anders uitgaf, of genereer er zelf een, met een DER-encoder en -decoder eronder.

MogelijkheidFunctieOpmerkingen
DER-lezersgcASN1_Read, sgcASN1_Next, sgcASN1_ContentDoorloopt een DER-structuur knoop voor knoop.
Strikte DERsgcASN1_Read, sgcASN1_IsMinimalUnsignedIntegerElke structuur die de unit leest is per specificatie DER, dus lengtes worden aan de DER-regels gehouden: de onbepaalde vorm wordt geweigerd, en ook een lange vorm die de korte vorm had kunnen dragen. Een ECDSA-handtekening waarvan de INTEGERs niet minimaal zijn gecodeerd wordt eveneens geweigerd, zodat één handtekening niet op twee manieren kan worden geschreven en voor twee verschillende waarden kan worden gehouden.
PEM-codecsgcPEM_Decode / sgcPEM_EncodeRFC 7468, de wrapper -----BEGIN ... -----END rond DER.
RSA-sleutelparsingsgcASN1_ParseRSAPrivateKey / PublicKeyPKCS#1-structuren (RFC 8017).
EC-sleutelparsingsgcASN1_ParseECPrivateKey / PublicKeySEC 1-sleutelstructuren.
DER-schrijver, structureelsgcDER_Sequence, sgcDER_Set, sgcDER_Tagged, sgcDER_ContextExplicit / ImplicitDe bouwstenen waaruit elk certificaatveld wordt samengesteld.
DER-schrijver, waardensgcDER_Integer, sgcDER_OctetString, sgcDER_BitString, sgcDER_Boolean, sgcDER_NullPrimitieve waarde-encoders.
DER-schrijver, strings & identifierssgcDER_OID, sgcDER_UTF8String, sgcDER_PrintableString, sgcDER_IA5String, sgcDER_TimeObject-identifiers, de drie stringtypes die X.509 gebruikt, en UTCTime/GeneralizedTime.
CertificaatparsingsgcX509_ParseVolledige certificaatstructuur: subject, issuer, geldigheid, publieke sleutel, extensies.
Handtekening-/ketenverificatiesgcX509_VerifySignedBy, sgcX509_VerifyChainVerifieer één certificaat tegen een issuer, of doorloop en verifieer een array van DER-certificaten.
CRL-parsing & intrekkingsgcX509_CRL_Parse, sgcX509_IsRevoked, sgcX509_CRL_VerifySignedByParseer een Certificate Revocation List en controleer een serienummer erin.
NaamformatteringsgcX509_SubjectRFC2253, sgcX509_IssuerRFC2253, sgcX509_SubjectOneLineRFC 2253 distinguished-name-strings, voor logging en weergave.
Extensies & SAN'ssgcX509_GetExtension, sgcX509_GetCRLDistributionURIsLees willekeurige extensie-OID's en CRL-distributiepunt-URI's.
Generatie van self-signed certificaatsgcX509_CreateSelfSignedVolledige TsgcX509Options: subject-DN, geldigheidsvenster, serienummer, CA-vlag met path-length-beperking, key usage, extended key usage, subject-alternative-names (inclusief IPv4-SAN's).
URI subject alternative namesTsgcX509Options.URIsuniformResourceIdentifier-SAN's, voor een SPIFFE-achtige service-identiteit in plaats van een hostnaam. De waarde wordt letterlijk geschreven als IA5String-inhoud, geef dus een volledige URI mee.
Generatie van PKCS#10-CSRsgcX509_CreateCSRRFC 2986 certificate signing request vanuit hetzelfde optiesrecord.
EC-ondertekende certificaten & CSR'ssgcX509_CreateSelfSignedEx, sgcX509_CreateCSREx, sgcX509_ECKey, sgcX509_RSAKeyOnderteken met een EC-sleutel naast RSA door een van beide te omwikkelen in een TsgcX509SignKey. Een EC-certificaat is ruwweg een derde van de grootte van een RSA-certificaat en verifieert veel sneller. TsgcX509Options.Hash noemt nog steeds alleen de SHA, het algoritme volgt de sleutel, dus rhSHA256 met een EC-sleutel betekent ecdsa-with-SHA256.
CA-uitgiftesgcX509_CreateSigned, sgcX509_CreateSignedFromCSRGeef een certificaat uit dat door een CA-sleutel is ondertekend, vanuit een optiesrecord of vanuit een geparseerde PKCS#10-aanvraag.
Post-quantum ondertekeningssleutelssgcX509_MLDSAKey, sgcX509_SLHDSAKeyOmwikkel een ML-DSA- of SLH-DSA-sleutel in een TsgcX509SignKey en geef die mee aan sgcX509_CreateSelfSignedEx, sgcX509_CreateCSREx of de CA-uitgevers. RFC 9881 voor ML-DSA, RFC 9909 voor SLH-DSA.
ML-KEM-certificatensgcX509_CreateSigned met een ML-KEM-subjectsleutelRFC 9935. Een CA kan een publieke ML-KEM-sleutel certificeren, die niet kan ondertekenen, dus bezit moet op een andere manier worden aangetoond voordat het certificaat wordt uitgegeven.
Post-quantum sleuteltypes bij het lezenTsgcX509PublicKeyTypex509pkMLDSA, x509pkSLHDSA en x509pkMLKEM naast x509pkRSA, x509pkEC en x509pkEd25519. sgcX509_Parse, sgcX509_VerifySignedBy en sgcX509_CSR_Verify gaan er alle drie mee om.
KetenbeperkingensgcX509_VerifyChainHandhaaft de pathLenConstraint van basicConstraints en de nameConstraints-extensie, over dNSName, iPAddress, rfc822Name, uniformResourceIdentifier en directoryName.
nameConstraints bij generatieTsgcX509Options.PermittedDNSNames, ExcludedDNSNames, PermittedIPRanges, ExcludedIPRangesSchrijft de toegestane en uitgesloten subtrees in een CA-certificaat, zodat de ketenverificatie hierboven ze kan handhaven.
IPv6-adres-SAN'sTsgcX509Options.IPAddressesAccepteert IPv6 in elke tekstvorm van RFC 4291, naast IPv4.
PEM-uitvoersgcX509_ToPEMWrapt de gegenereerde DER als een direct opslaanbaar PEM-bestand.

ML-KEM, ML-DSA & SLH-DSA

De drie algoritmen die NIST in augustus 2024 finaliseerde als FIPS 203, 204 en 205, plus een hybride combiner voor de migratieperiode.

MogelijkheidFunctieOpmerkingen
ML-KEM-sleutelgeneratiesgcMLKEM_GenerateKeyPair, sgcMLKEM_GenerateKeyPairFromSeedFIPS 203, voorheen Kyber. Drie parametersets: mlkem512, mlkem768, mlkem1024.
ML-KEM-encapsulatiesgcMLKEM_Encapsulate, sgcMLKEM_EncapsulateWithSeedLevert een nieuw gedeeld geheim van 32 byte op en de ciphertext die het draagt. De publieke sleutel ondergaat eerst de invoercontroles van FIPS 203 sectie 7.2, dus een sleutel van de verkeerde lengte, of een die de modulocontrole niet doorstaat, veroorzaakt een exception.
ML-KEM-decapsulatiesgcMLKEM_DecapsulateEen ciphertext van de juiste lengte die niet decrypteert levert een pseudorandom geheim op (impliciete afwijzing) in plaats van een fout, zodat timing en foutgedrag niets onthullen. Een ciphertext of privésleutel van de verkeerde lengte, of een privésleutel die de hashcontrole niet doorstaat, veroorzaakt eerst een exception, volgens de invoercontroles van FIPS 203 sectie 7.3.
ML-KEM-groottessgcMLKEM_PublicKeySize, PrivateKeySize, CiphertextSize, SharedSecretSizeBytelengtes per parameterset, voor buffergrootte.
Hybride X25519 + ML-KEMsgcHybrid_GenerateKeyPair, sgcHybrid_Encapsulate, sgcHybrid_DecapsulateCombineert een klassiek en een post-quantum gedeeld geheim via een KDF, zodat het resultaat nooit zwakker is dan X25519 alleen. De aanbevolen manier om ML-KEM vandaag te implementeren.
ML-DSA-sleutelgeneratiesgcMLDSA_GenerateKeyPair, sgcMLDSA_GenerateKeyPairFromSeedFIPS 204, voorheen Dilithium. Drie parametersets: mldsa44, mldsa65, mldsa87.
ML-DSA ondertekenen / verifiërensgcMLDSA_Sign / sgcMLDSA_VerifyDeterministisch of gerandomiseerd ondertekenen volgens de FIPS 204-interface, plus een contextstring.
ML-DSA-groottessgcMLDSA_PublicKeySize, PrivateKeySize, SignatureSizeBytelengtes per parameterset.
SLH-DSA-sleutelgeneratiesgcSLHDSA_GenerateKeyPair, sgcSLHDSA_GenerateKeyPairFromSeedFIPS 205, voorheen SPHINCS+. Stateless hash-based handtekeningen: veiligheid rust alleen op de hashfunctie, niet op een lattice- of curve-aanname.
SLH-DSA ondertekenen / verifiërensgcSLHDSA_Sign / sgcSLHDSA_VerifyZes SHAKE-parametersets: slhShake128s, slhShake128f, slhShake192s, slhShake192f, slhShake256s, slhShake256f. De s-sets bevoordelen kleine handtekeningen, de f-sets bevoordelen snel ondertekenen.
SLH-DSA-groottes & naamgevingsgcSLHDSA_PublicKeySize, PrivateKeySize, SignatureSize, sgcSLHDSA_ParamsNameSLH-DSA-handtekeningen zijn groot (7,8 KB tot 49 KB afhankelijk van de set); bepaal de buffergrootte voordat je ondertekent.
Export & import van publieke sleutel, DERsgcMLDSA_ExportSubjectPublicKeyInfo / ImportSubjectPublicKeyInfo, en de identieke paren sgcMLKEM_* en sgcSLHDSA_*X.509 SubjectPublicKeyInfo, zodat een publieke post-quantum sleutel in dezelfde structuur past als een RSA- of EC-sleutel. RFC 9881, RFC 9909 en RFC 9935.
Export & import van privésleutel, DERsgcMLDSA_ExportPrivateKeyInfo / ImportPrivateKeyInfo, en de paren sgcMLKEM_* en sgcSLHDSA_*PKCS#8 OneAsymmetricKey, versies 0 en 1. Import controleert de sleutel op consistentie: een ingesloten publieke sleutel die niet overeenkomt wordt geweigerd, de seed- en de uitgebreide vorm van dezelfde sleutel moeten overeenstemmen, en een ML-DSA-sleutel moet zijn opgeslagen t0 en tr reproduceren. SLH-DSA berekent PK.root opnieuw uit de seed, wat ongeveer één sleutelgeneratie kost, dus die imports nemen een parameter aVerify, standaard True, die je als False kunt doorgeven voor een sleutel die je eigen applicatie heeft gegenereerd.
PEM-export & -importsgcMLDSA_ExportPublicKeyPEM, ExportPrivateKeyPEM, ImportPublicKeyPEM, ImportPrivateKeyPEM, en de sets sgcMLKEM_* en sgcSLHDSA_*RFC 7468, de wrapper -----BEGIN ... -----END, zodat de sleutels in dezelfde bestanden en tooling passen als de rest van de PKI.
Vorm van de private sleutelTsgcPQCPrivateKeyFormatPrivate sleutels van ML-DSA en ML-KEM hebben drie vormen. pqkfSeed schrijft alleen de seed (32 bytes voor ML-DSA, de d||z-seed van 64 bytes voor ML-KEM), pqkfExpanded schrijft de uitgeklapte sleutel, pqkfBoth draagt beide. SLH-DSA heeft maar één vorm van private sleutel.
Sleutelgeneratie met de seedsgcMLDSA_GenerateKeyPairAndSeed, sgcMLKEM_GenerateKeyPairAndSeedGeven de seed samen met het sleutelpaar terug, zodat een PKCS#8- of PEM-bestand in seed-vorm meteen na het genereren geschreven kan worden.
X-Wing hybride KEMsgcXWing_GenerateKeyPair, sgcXWing_Encapsulate, sgcXWing_Decapsulatedraft-connolly-cfrg-xwing-kem-10: X25519 met ML-KEM-768 als één KEM. Publieke sleutel 1216 bytes, private sleutel 32 bytes (de seed), ciphertext 1120 bytes, gedeeld geheim 32 bytes.
Hybride TLS 1.3-key sharessgcTLSHybrid_ClientKeyShare, sgcTLSHybrid_ServerKeyShare, sgcTLSHybrid_ClientSharedSecret, sgcTLSHybrid_GroupName, sgcTLSHybrid_AvailableDe RFC 10024-groepen X25519MLKEM768, SecP256r1MLKEM768 en SecP384r1MLKEM1024 (IANA-codepoints 0x11EC, 0x11EB, 0x11ED). Dit zijn geen zelfstandige KEM's, ze bouwen alleen een TLS-key share.
ML-DSA voor JSON Web TokensJWTOptions.Algorithms.MLDSA.PrivateKey, PublicKey, Enabled, sgcMLDSA_ExportPublicJWK, sgcMLDSA_ExportPrivateJWK, sgcMLDSA_ImportJWK, sgcMLDSA_ImportJWKAsPEMRFC 9964, in sgcHTTP_JWT_MLDSA in plaats van in een sgcCrypto_*-unit. De JWS-algoritmen ML-DSA-44, ML-DSA-65 en ML-DSA-87 (jwtMLDSA44, jwtMLDSA65, jwtMLDSA87), een PKCS#8-PEM op de client, een SubjectPublicKeyInfo-PEM op de server, AKP JSON Web Keys, en nergens OpenSSL in het pad.
Known-answer-validatieNIST ACVP-vectorenML-KEM-sleutelgeneratie, -encapsulatie en -decapsulatie, en ML-DSA- en SLH-DSA-sleutelgeneratie, handtekeninggeneratie en handtekeningverificatie, worden gecontroleerd tegen de NIST ACVP known-answer-vectoren in de QA-suite van sgcWebSockets.

sgcCrypto claimt geen ed25519187 of SPECK. ed25519187 heeft geen gepubliceerde specificatie, en SPECK werd in 2018 teruggetrokken uit de ISO-standaardisatie; geen van beide is hier geïmplementeerd.

Een TLS 1.3- en TLS 1.2-stack bovenop deze units

Geschreven in Object Pascal op de sgcCrypto-primitieven en meegeleverd in hetzelfde pakket. Ze zit in de sgcSSL_NativeTLS*-units, niet in sgcCrypto_*, dus ze hoort niet bij de 43 die hierboven geteld zijn.

MogelijkheidAPIOpmerkingen
Selecteer hem op een clientTLSOptions.IOHandler := iohNativeTLSVervangt OpenSSL, SChannel en de platform-TLS-backends door de in-process Pascal-engine. Op geen enkel doelplatform valt er iets te implementeren.
Selecteer hem op een serverSSLOptions.IOHandler := iohNativeTLSWerkt met de standaard Indy-serverengine en met de IOCP- en EPOLL-engines.
ProtocolversieTLSOptions.VersionDe laagst toegestane versie. tls1_2 of tlsUndefined onderhandelt over TLS 1.3 of TLS 1.2, tls1_3 staat alleen TLS 1.3 toe, en tls1_0 of tls1_1 veroorzaakt een configuratiefout. SSLOptions.Version doet hetzelfde op een server. Voor alleen TLS 1.2 vermeld je alleen TLS 1.2-suites in CipherSuites.
Groepen voor sleuteluitwisselingTLSOptions.NativeTLS_Options.GroupsGescheiden door dubbele punten, in OpenSSL-stijl. Standaard X25519MLKEM768:X25519:secp256r1:secp384r1, zodat een handshake post-quantum hybride is zodra de peer akkoord gaat. Een build met SGC_CRYPTO_FIPS gebruikt in plaats daarvan standaard SecP256r1MLKEM768:SecP384r1MLKEM1024:secp256r1:secp384r1. De drie hybride groepen bestaan alleen in TLS 1.3, dus een TLS 1.2-verbinding gebruikt X25519, secp256r1 of secp384r1.
Cipher suitesTLSOptions.NativeTLS_Options.CipherSuitesGescheiden door dubbele punten, in OpenSSL-stijl. Standaard TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 voor TLS 1.3, plus ECDHE_ECDSA en ECDHE_RSA met AES-128-GCM, AES-256-GCM en ChaCha20-Poly1305 voor TLS 1.2. ECDHE met AES-CBC en de RSA-sleuteluitwisseling worden alleen gebruikt wanneer ze met naam zijn opgegeven, voor in totaal 20 TLS 1.2-suites. Een build met SGC_CRYPTO_FIPS laat ChaCha20-Poly1305 en de RSA-sleuteluitwisseling weg.
Vertrouwde rootsTLSOptions.RootCertFile, TLSOptions.NativeTLS_Options.UseSystemRootsDe roots komen uit RootCertFile. Zet UseSystemRoots op True om de roots toe te voegen die het besturingssysteem al vertrouwt: de ROOT-opslag op Windows, en op elk ander platform de eerste CA-bundel die wordt gevonden op de standaardlocaties. Het leest nooit de sleutelhanger van macOS of iOS, of de opslag van Android. Het staat standaard uit, dus RootCertFile blijft de bron. Dezelfde eigenschap op SSLOptions geldt voor de clientcertificaten die een server verifieert.
Ketenopbouwde certificaatketen die de peer verstuurtDe keten wordt doorzocht op een pad van het leaf-certificaat naar een vertrouwde root, dus extra certificaten en elke volgorde worden geaccepteerd, zoals RFC 8446 sectie 4.4.2 vraagt. De zoekactie kan teruggaan, dus een certificaat dat de juiste uitgever noemt maar nergens toe leidt, verbergt niet langer een geldig pad erachter. Intrekking en certificaatbeleid worden niet gecontroleerd.
ProtocolbereikRFC 8446, RFC 5246TLS 1.3 en TLS 1.2. Geen TLS 1.1, TLS 1.0 of SSL. TLS 1.2 gebruikt het extended master secret van RFC 7627 en de downgradebescherming van RFC 8446 aan beide kanten, weigert renegotiation en SHA-1-handtekeningen (RFC 9155), en controleert CBC-records in constante tijd.
Niet geïmplementeerdn/aGeen sessiehervatting en geen PSK, geen 0-RTT, en geen QUIC.
Event voor peerverificatieOnSSLVerifyPeerNiet beschikbaar voor deze engine, die eigen verificatiehooks heeft. Blijf bij OpenSSL of een platform-backend als je code van dat event afhangt.

Eenmalige wachtwoorden, codecs & versleutelde ZIP

De hulplaag: eenmalige codes, de encoderingen waarop de rest van de bibliotheek leunt, en WinZip AES-versleuteling.

MogelijkheidFunctieOpmerkingen
HOTPsgcHOTPRFC 4226, op teller gebaseerd eenmalig wachtwoord.
TOTPsgcTOTP, sgcTOTP_FromBase32RFC 6238, op tijd gebaseerd eenmalig wachtwoord; de Base32-variant accepteert het geheim precies zoals een authenticator-app het toont.
TOTP-verificatiesgcTOTP_VerifyControleert een ingediende code over een venster van stappen in constante tijd, zodat noch het resultaat noch de positie ervan lekt via timing. Stopt zelf geen replay; de aanroeper houdt gebruikte codes bij.
Vergelijking in constante tijdsgcConstantTimeEqualsOveral in de bibliotheek gebruikt voor tag- en MAC-vergelijkingen.
Veilig wissensgcSecureZeroOverschrijft een bytebuffer zodat sleutelmateriaal niet in het geheugen blijft hangen.
HexsgcHexEncode / sgcHexDecodeKleine letters hex, hoofdletterongevoelig decoderen.
Base64urlsgcBase64UrlEncode / sgcBase64UrlDecodeRFC 4648 sectie 5, zonder padding, de encoding die JWT en JOSE gebruiken.
Base32sgcBase32Encode / sgcBase32DecodeRFC 4648 sectie 6, de encoding die TOTP-geheimen en authenticator-apps gebruiken.
WinZip AES-sleutelafleidingsgcZipAE2_DeriveKeysOp PBKDF2 gebaseerde sleutel, authenticatiesleutel en wachtwoordverifier uit een wachtwoord en salt.
WinZip AES versleutelen / ontsleutelensgcZipAE2_Encrypt / sgcZipAE2_DecryptAE-1 en AE-2, AES-128/192/256, saltgrootte per entry via TsgcZipAESStrength.
WinZip-entryverpakkingsgcZipAE2_PackEntry / sgcZipAE2_UnpackEntryCombineert salt, verifier, ciphertext en authenticatiecode in de on-disk-lay-out.
WinZip extra-veldsgcZipAE2_BuildExtraField / sgcZipAE2_ParseExtraFieldHet extra-veld 0x9901 dat een ZIP-entry markeert als AES-versleuteld.
Legacy hashes (alleen interop)sgcMD4, sgcMD5, sgcHMAC_MD5Aangehouden voor het lezen van oudere formaten en protocollen; niet gebruiken in een nieuw ontwerp.
Legacy cipher (alleen interop)sgcDES_EncryptECB / sgcDES_DecryptECB, sgcDES_NTLM7to8DES-ECB en de op DES gebaseerde NTLM-sleuteluitbreidingsstap, beide teruggetrokken (FIPS 46-3), aangehouden voor legacy-interoperabiliteit.
Veilige willekeurige bytessgcRandomBytes / sgcRandomFillBCryptGenRandom (Windows CNG) onder MSWINDOWS, /dev/urandom elders, één aanroep in beide gevallen.

Waar sgcCrypto draait

Wat wordt ondersteund, precies beschreven.

GebiedDetail
BesturingssysteemGeen MSWINDOWS-guard, of enige andere platformguard, omhult SGC_CRYPTO in sgcVer.inc. Alle 43 units compileren voor Win32, Win64, Linux64, macOS, iOS en Android.
Willekeurige-getallenbronDe ene platformbewuste unit, sgcCrypto_Random, kiest een CSPRNG per doelplatform: BCryptGenRandom (Windows CNG) onder MSWINDOWS, /dev/urandom op POSIX-doelen, achter dezelfde aanroep sgcRandomBytes. De bytes komen rechtstreeks uit de generator van het besturingssysteem, zonder eigen generator erbovenop. Op Windows worden RtlGenRandom en daarna CryptGenRandom alleen gebruikt als BCryptGenRandom niet beschikbaar is, en als geen enkele bron gelezen kan worden, volgt een exceptie in plaats van zwakke bytes.
FIPS-modusOptionele define SGC_CRYPTO_FIPS, standaard uitgeschakeld, die bij het compileren elk niet goedgekeurd algoritme uit de 43 units verwijdert en tijdens runtime enkele parameterregels controleert. De bibliotheek blijft zo binnen de door FIPS goedgekeurde algoritmen, maar sgcCrypto is geen volgens FIPS 140-3 gevalideerde module en de define is geen validatieclaim. FIPS-modus
DelphiDelphi 7 tot en met RAD Studio 13 Florence. Er wordt nergens een native 64-bit integertype verondersteld: sgcCrypto_Int64 en het type TsgcBigInt in sgcCrypto_BigInteger emuleren de rekenkunde die de hashes, curves en post-quantum-units nodig hebben.
C++ BuilderC++ Builder via de gegenereerde headers, dezelfde broncodeboom.
Design-time footprintGeen. Er is geen sgcCrypto_Reg.pas, niets wordt met RegisterComponents geregistreerd, en geen enkele unit verschijnt op een paletpagina.
DependenciesGeen OpenSSL-binding, geen externe DLL. Elke primitief is rechtstreeks geïmplementeerd in Object Pascal in de unit waarnaar je verwijst.
BroncodeVolledige Object Pascal-broncode in elke betaalde tier, en in de editiepakketten die sgcCrypto al bevatten.
HerdistributieBinaries die je bouwt zijn royaltyvrij, zonder vergoeding per zetel of per server.
De beste deal: All-AccessElk eSeGeCe-product, inclusief Premium-ondersteuning, vanaf €1,059 per jaar.
Bekijk de All-Access-prijzen

Bouw met sgcCrypto

Download de gratis proefversie en roep een functie aan, geen component vereist.