| Ed25519 imzala / doğrula | sgcEd25519_Sign / sgcEd25519_Verify, sgcEd25519_PublicKey | RFC 8032. 32 baytlık genel anahtar, 64 baytlık imza. Doğrulama, kanonik olmayan noktaları ve bölüm 5.1.7'ye göre S >= L'yi reddeder. İmzalama, gizli skalerde ve mesaj başına nonce'ta sabit zamanlıdır: sabit dört bitlik pencereler, on altısının hepsini bir maske altında tarayarak seçilen tablo girdisi ve bölüm 5.1.4'teki tam toplama formülü. Genel anahtar 32 baytlık tohumdan gelir. |
| X25519 anahtar değişimi | sgcX25519, sgcX25519_PublicKey, sgcX25519_SharedSecret | Curve25519 üzerinde RFC 7748 Diffie-Hellman. |
| Ed448 imzala / doğrula | sgcEd448_GenerateKeyPair, sgcEd448_Sign, sgcEd448_Verify | RFC 8032, 448 bitlik (Goldilocks) EdDSA eğrisi. |
| X448 anahtar değişimi | sgcX448, sgcX448_PublicKey, sgcX448_SharedSecret | Curve448 üzerinde RFC 7748 Diffie-Hellman. |
| secp256k1 | eccSecp256k1 ile sgcECDSA_SignHash / VerifyHash | sgcCrypto_ECCurves içinde, Bitcoin/Ethereum eğrisi, SEC 2. |
| Brainpool P256r1 / P384r1 / P512r1 | eccBrainpoolP256r1 / P384r1 / P512r1 ile aynı fonksiyonlar | RFC 5639, AB eIDAS ve devlet profillerinde yaygın. |
| NIST P-256 / P-384 / P-521 | aynı fonksiyonlar eccP256 / eccP384 / eccP521 ile | TsgcECCurve artık yedi eğri adlandırıyor, bu yüzden anahtar üretimi, imzalama, doğrulama, ECDH ve nokta sıkıştırmanın hepsi, yalnızca bir PEM dosyasından değil, ham anahtar baytlarından da NIST asal eğrilerine ulaşır. |
| Deterministik ECDSA nonce'u | sgcECDSA_SignHash'e yerleşik | RFC 6979: nonce, özel anahtardan ve mesajdan türetilir, RNG hata modu yoktur. |
| Sabit zamanlı skaler çarpma | sgcECDSA_SignHash, sgcECDH_SharedSecret ve EC anahtar üretiminin içinde | sgcCrypto_ECCurves içindeki her eğri aynı motoru çalıştırır: veriye bağlı adımı olmayan Montgomery indirgemesi, sayısı eğriden gelen sabit bir pencere, tablo girdilerinin hepsini bir maske altında tarayarak seçilmesi ve hangi durumun geçerli olduğuna karar vermek için hiçbir koordinata bakmayan tam bir toplama formülü. sgcCrypto_EC içindeki JOSE, WebAuthn ve E2EE yolları aynı kodu çalıştırır. |
| ECDH (secp256k1 / Brainpool) | sgcECDH_SharedSecret | Aynı dört eğri üzerinde paylaşılan gizli anahtar. |
| Nokta sıkıştırma | sgcEC_Compress / sgcEC_Decompress | Daha kısa sıkıştırılmış genel anahtar biçimini saklayın veya iletin. |
| JWS olarak EC (ES256/384/512) | sgcECDSA_SignJWS / sgcECDSA_VerifyJWS | İstenen bit uzunluğundan otomatik seçilen eğri, doğrudan bir PEM anahtarından imzala/doğrula; ECCurves'in JOSE odaklı kardeşi. |
| Genel ECDH | sgcECDH | Ham bir özel anahtardan ve eş genel noktasından paylaşılan gizli anahtar. |
| Ham / DER ECDSA doğrulama | sgcECDSA_VerifyRaw / sgcECDSA_VerifyDER | Ham bir (Qx, Qy, r, s) demetine ya da DER kodlu bir imzaya karşı doğrulayın. |
| DER ECDSA imzalama ve dönüştürme | sgcECDSA_SignDER / sgcECDSA_VerifyDER, sgcECDSA_RawToDER / sgcECDSA_DERToRaw | X.509, CMS ve TLS, DER ECDSA-Sig-Value'yu taşır; INTEGER r ve ardından INTEGER s'den oluşan bir SEQUENCE. JOSE ve WebAuthn bunun yerine ham R || S çiftini taşır. Doğrudan iki biçimden birine imzalayın, ya da mevcut bir imzayı aralarında dönüştürün. |
| Schnorr imzaları (BIP-340) | sgcSchnorr_PublicKey, sgcSchnorr_Sign, sgcSchnorr_Verify | Yalnızca secp256k1, yalnızca-x 32 baytlık açık anahtarlar ve 64 baytlık imzalarla: Taproot'un, Nostr'un ve Lightning'in kullandığı budur. sgcSchnorr_TaggedHash, BIP-341 ve BIP-342 etiketlerinin aynı yapı üzerine inşa edilebilmesi için dışa açılmıştır. |
| RSA imzalama (PKCS#1 v1.5) | sgcRSA_SignPKCS1 | Bir PEM özel anahtarından, SHA-1/256/384/512 özeti. |
| RSA özel anahtar işlemleri | sgcRSA_SignPKCS1 ve sgcCrypto_RSA_Keys içindeki diğer imzalama ve şifre çözme çağrıları | Her işlem taze bir rastgele çiftle kör edilir, zamanlaması çarpanlara ya da veriye bağlı olmayan sabit pencereli bir üs alma ve CRT birleştirmesinden geçirilir ve sonuç döndürülmeden önce genel üsse karşı kontrol edilir. CRT yarılarından birindeki bir hata, aksi halde tek bir imzada bir çarpanı ele verirdi; bu yüzden uyumsuzluk halinde hiçbir şey döndürülmez. |
| RSA doğrulama (PKCS#1 v1.5 / PSS) | sgcRSA_VerifyPKCS1, sgcRSA_VerifyPSS ve bir modül/üs üzerinde _Raw varyantları | RFC 8017. Doğrulama, bir anahtar nesnesi oluşturmadan bir PEM anahtarından ya da ham modül ve üsten çalışır. |
| RSA anahtar üretimi | sgcRSA_GenerateKey | İstenen herhangi bir bit uzunluğu, Miller-Rabin asallık testi. |
| RSA-OAEP şifreleme | sgcRSA_OAEP_Encrypt / sgcRSA_OAEP_Decrypt | RFC 8017 optimal asimetrik şifreleme dolgusu. |
| Bağımsız bir MGF1 hash'iyle RSA-OAEP | beş parametreli sgcRSA_OAEP_Encrypt / sgcRSA_OAEP_Decrypt aşırı yüklemeleri | Etiket hash'ini ve MGF1 hash'ini ayrı ayrı sabitleyin. OAEPWithSHA256AndMGF1Padding, Bouncy Castle'da ikisi için de SHA-256 anlamına gelir ama SunJCE'de MGF1-SHA1 ile SHA-256 anlamına gelir, ve bu uyuşmazlık, Java birlikte çalışabilirliğinin başarısız olmasının olağan nedenidir. |
| RSA PKCS#1 v1.5 şifreleme | sgcRSA_PKCS1_Encrypt / sgcRSA_PKCS1_Decrypt | RFC 8017 bölüm 7.2, Java'nın RSA/ECB/PKCS1Padding olarak adlandırdığı mod. Decrypt, her başarısızlık için aynı yoldan geçer, bu yüzden bir padding oracle'a çalışacak hiçbir şey vermez. Yeni herhangi bir şey için OAEP'i tercih edin. |
| RSA-PSS / PKCS#1 imzalama | sgcRSA_PSS_Sign / Verify, sgcRSA_PKCS1_Sign / Verify | Üretilen bir TsgcRSAPrivateKey'den doğrudan imzalayın. |
| RSA anahtar dışa aktarımı | sgcRSA_ExportPrivateKeyPEM, sgcRSA_ExportPublicKeyPEM, eşleşen DER çağrıları | PKCS#1 ve SubjectPublicKeyInfo kodlamaları. |
| PKCS#8 ve SEC 1 anahtar dışa aktarımı | sgcRSA_ExportPrivateKeyPKCS8DER / PKCS8PEM, sgcEC_ExportPrivateKeyPKCS8DER / PKCS8PEM, sgcEC_ExportPrivateKeySEC1DER / SEC1PEM, sgcEC_ExportSubjectPublicKeyInfo, sgcEC_ExportPublicKeyPEM | Java'nın, .NET'in ve çoğu modern araç setinin beklediği BEGIN PRIVATE KEY kabı, SEC 1 BEGIN EC PRIVATE KEY biçiminin ve bir sertifikanın gömdüğü SubjectPublicKeyInfo'nun yanında. Şifresizdir, bu yüzden geri dönen şey çıplak anahtar malzemesidir. |
| RSA ve EC anahtarı içe aktarımı | sgcRSA_ImportPrivateKeyDER / PEM, sgcRSA_ImportPublicKeyDER / PEM, sgcEC_ImportPrivateKeyDER / PEM, sgcEC_ImportPublicKeyDER / PEM | Bu daha önce yoktu: üretilen bir anahtar yazılabiliyordu ama asla geri okunamıyordu. İçe aktarma, PKCS#1, PKCS#8, SEC 1 ve SubjectPublicKeyInfo'yu, DER veya PEM olarak kabul eder, dosya bunları atladığında CRT parametrelerini veya açık noktayı yeniden hesaplar, ve bozuk girdide raise etmek yerine False döndürür; bu yüzden güvenilmeyen dosyalar ona vermek için güvenlidir. |
| ECIES mühürleme / açma | sgcECIES_GenerateKeyPair, sgcECIES_Seal, sgcECIES_Open | Bir X25519 genel anahtarına hibrit şifreleme: geçici ECDH artı bir AEAD, her yönde tek çağrı. |