| Podpis / weryfikacja Ed25519 | sgcEd25519_Sign / sgcEd25519_Verify | RFC 8032. 32-bajtowy klucz publiczny, 64-bajtowy podpis. Weryfikacja odrzuca punkty niekanoniczne oraz S >= L zgodnie z sekcją 5.1.7. |
| Wymiana kluczy X25519 | sgcX25519, sgcX25519_PublicKey, sgcX25519_SharedSecret | Diffie-Hellman RFC 7748 nad Curve25519. |
| Podpis / weryfikacja Ed448 | sgcEd448_GenerateKeyPair, sgcEd448_Sign, sgcEd448_Verify | RFC 8032, 448-bitowa krzywa EdDSA (Goldilocks). |
| Wymiana kluczy X448 | sgcX448, sgcX448_PublicKey, sgcX448_SharedSecret | Diffie-Hellman RFC 7748 nad Curve448. |
| secp256k1 | sgcECDSA_SignHash / VerifyHash z eccSecp256k1 | Krzywa Bitcoin/Ethereum, SEC 2, w sgcCrypto_ECCurves. |
| Brainpool P256r1 / P384r1 / P512r1 | te same funkcje z eccBrainpoolP256r1 / P384r1 / P512r1 | RFC 5639, powszechne w profilach eIDAS UE i rządowych. |
| NIST P-256 / P-384 / P-521 | te same funkcje z eccP256 / eccP384 / eccP521 | TsgcECCurve nazywa teraz siedem krzywych, więc generowanie kluczy, podpisywanie, weryfikacja, ECDH i kompresja punktu docierają teraz do krzywych pierwszych NIST z surowych bajtów klucza, a nie tylko z pliku PEM. |
| Deterministyczny nonce ECDSA | wbudowany w sgcECDSA_SignHash | RFC 6979: nonce jest wyprowadzany z klucza prywatnego i wiadomości, bez trybu awarii RNG. |
| ECDH (secp256k1 / Brainpool) | sgcECDH_SharedSecret | Sekret współdzielony nad tymi samymi czterema krzywymi. |
| Kompresja punktu | sgcEC_Compress / sgcEC_Decompress | Przechowuj lub przesyłaj krótszą, skompresowaną postać klucza publicznego. |
| EC jako JWS (ES256/384/512) | sgcECDSA_SignJWS / sgcECDSA_VerifyJWS | Krzywa wybierana automatycznie na podstawie żądanej długości bitowej, podpis/weryfikacja bezpośrednio z klucza PEM, bliźniak zorientowany na JOSE dla ECCurves. |
| Ogólne ECDH | sgcECDH | Sekret współdzielony z surowego klucza prywatnego i publicznego punktu drugiej strony. |
| Weryfikacja ECDSA raw / DER | sgcECDSA_VerifyRaw / sgcECDSA_VerifyDER | Weryfikacja wobec surowej krotki (Qx, Qy, r, s) lub podpisu zakodowanego w DER. |
| Podpisywanie ECDSA w DER i konwersja | sgcECDSA_SignDER / sgcECDSA_VerifyDER, sgcECDSA_RawToDER / sgcECDSA_DERToRaw | X.509, CMS i TLS niosą DER ECDSA-Sig-Value, SEQUENCE złożony z INTEGER r, a potem INTEGER s. JOSE i WebAuthn niosą zamiast tego surową parę R || S. Podpisuj wprost w dowolną z tych postaci albo konwertuj istniejący podpis między nimi. |
| Podpisy Schnorra (BIP-340) | sgcSchnorr_PublicKey, sgcSchnorr_Sign, sgcSchnorr_Verify | Wyłącznie secp256k1, z 32-bajtowymi kluczami publicznymi x-only i 64-bajtowymi podpisami: to, czego używają Taproot, Nostr i Lightning. sgcSchnorr_TaggedHash jest udostępniony, aby na tej samej konstrukcji można było zbudować tagi BIP-341 i BIP-342. |
| Podpis RSA (PKCS#1 v1.5) | sgcRSA_SignPKCS1 | Z klucza prywatnego PEM, skrót SHA-1/256/384/512. |
| Weryfikacja RSA (PKCS#1 v1.5 / PSS) | sgcRSA_VerifyPKCS1, sgcRSA_VerifyPSS, oraz warianty _Raw nad modułem/wykładnikiem | RFC 8017. Weryfikacja działa z klucza PEM albo surowego modułu i wykładnika, bez potrzeby budowania obiektu klucza. |
| Generowanie klucza RSA | sgcRSA_GenerateKey | Dowolna żądana długość bitowa, test pierwszości Millera-Rabina. |
| Szyfrowanie RSA-OAEP | sgcRSA_OAEP_Encrypt / sgcRSA_OAEP_Decrypt | Optymalne asymetryczne wypełnienie szyfrujące RFC 8017. |
| RSA-OAEP z niezależnym skrótem MGF1 | pięcioparametrowe przeciążenia sgcRSA_OAEP_Encrypt / sgcRSA_OAEP_Decrypt | Ustal skrót etykiety i skrót MGF1 osobno. OAEPWithSHA256AndMGF1Padding oznacza SHA-256 dla obu w Bouncy Castle, ale SHA-256 z MGF1-SHA1 w SunJCE, i ta niezgodność jest zwykłą przyczyną niepowodzeń interoperacyjności z Javą. |
| Szyfrowanie RSA PKCS#1 v1.5 | sgcRSA_PKCS1_Encrypt / sgcRSA_PKCS1_Decrypt | RFC 8017 sekcja 7.2, tryb, który Java nazywa RSA/ECB/PKCS1Padding. Deszyfrowanie przechodzi tę samą ścieżkę dla każdego niepowodzenia, więc nie daje padding oracle niczego do wykorzystania. Do wszystkiego nowego preferuj OAEP. |
| Podpisywanie RSA-PSS / PKCS#1 | sgcRSA_PSS_Sign / Verify, sgcRSA_PKCS1_Sign / Verify | Podpis bezpośrednio z wygenerowanego TsgcRSAPrivateKey. |
| Eksport klucza RSA | sgcRSA_ExportPrivateKeyPEM, sgcRSA_ExportPublicKeyPEM, odpowiadające wywołania DER | Kodowania PKCS#1 i SubjectPublicKeyInfo. |
| Eksport kluczy PKCS#8 i SEC 1 | sgcRSA_ExportPrivateKeyPKCS8DER / PKCS8PEM, sgcEC_ExportPrivateKeyPKCS8DER / PKCS8PEM, sgcEC_ExportPrivateKeySEC1DER / SEC1PEM, sgcEC_ExportSubjectPublicKeyInfo, sgcEC_ExportPublicKeyPEM | Kontener BEGIN PRIVATE KEY, jakiego oczekują Java, .NET i większość nowoczesnych narzędzi, obok postaci SEC 1 BEGIN EC PRIVATE KEY oraz SubjectPublicKeyInfo osadzanego w certyfikacie. Niezaszyfrowane, więc to, co wraca, to nagi materiał klucza. |
| Import kluczy RSA i EC | sgcRSA_ImportPrivateKeyDER / PEM, sgcRSA_ImportPublicKeyDER / PEM, sgcEC_ImportPrivateKeyDER / PEM, sgcEC_ImportPublicKeyDER / PEM | To wcześniej nie istniało: wygenerowany klucz dało się zapisać, ale nigdy wczytać z powrotem. Import przyjmuje PKCS#1, PKCS#8, SEC 1 i SubjectPublicKeyInfo, DER albo PEM, przelicza na nowo parametry CRT albo punkt publiczny, gdy plik ich nie zawiera, i zwraca False przy zniekształconych danych wejściowych zamiast zgłaszać wyjątek, więc niezaufane pliki można mu bezpiecznie przekazywać. |
| ECIES seal / open | sgcECIES_GenerateKeyPair, sgcECIES_Seal, sgcECIES_Open | Hybrydowe szyfrowanie do klucza publicznego X25519: efemeryczny ECDH plus AEAD, jedno wywołanie w każdą stronę. |