| Ed25519 signer / vérifier | sgcEd25519_Sign / sgcEd25519_Verify | RFC 8032. Clé publique de 32 octets, signature de 64 octets. La vérification rejette les points non canoniques et S >= L selon la section 5.1.7. |
| Échange de clés X25519 | sgcX25519, sgcX25519_PublicKey, sgcX25519_SharedSecret | Diffie-Hellman RFC 7748 sur Curve25519. |
| Ed448 signer / vérifier | sgcEd448_GenerateKeyPair, sgcEd448_Sign, sgcEd448_Verify | RFC 8032, la courbe EdDSA 448 bits (Goldilocks). |
| Échange de clés X448 | sgcX448, sgcX448_PublicKey, sgcX448_SharedSecret | Diffie-Hellman RFC 7748 sur Curve448. |
| secp256k1 | sgcECDSA_SignHash / VerifyHash avec eccSecp256k1 | La courbe Bitcoin/Ethereum, SEC 2, dans sgcCrypto_ECCurves. |
| Brainpool P256r1 / P384r1 / P512r1 | mêmes fonctions avec eccBrainpoolP256r1 / P384r1 / P512r1 | RFC 5639, courante dans eIDAS UE et les profils gouvernementaux. |
| NIST P-256 / P-384 / P-521 | mêmes fonctions avec eccP256 / eccP384 / eccP521 | TsgcECCurve nomme désormais sept courbes, si bien que la génération de clé, la signature, la vérification, l'ECDH et la compression de point atteignent toutes les courbes premières NIST à partir d'octets de clé bruts, pas seulement depuis un fichier PEM. |
| Nonce ECDSA déterministe | intégré dans sgcECDSA_SignHash | RFC 6979 : le nonce est dérivé de la clé privée et du message, aucun mode d'échec du générateur aléatoire. |
| ECDH (secp256k1 / Brainpool) | sgcECDH_SharedSecret | Secret partagé sur les quatre mêmes courbes. |
| Compression de point | sgcEC_Compress / sgcEC_Decompress | Stocke ou transmet la forme compressée, plus courte, de la clé publique. |
| EC en JWS (ES256/384/512) | sgcECDSA_SignJWS / sgcECDSA_VerifyJWS | Courbe sélectionnée automatiquement selon la longueur de bit demandée, signature/vérification directement depuis une clé PEM, variante orientée JOSE de ECCurves. |
| ECDH générique | sgcECDH | Secret partagé à partir d'une clé privée brute et du point public du pair. |
| Vérification ECDSA brute / DER | sgcECDSA_VerifyRaw / sgcECDSA_VerifyDER | Vérifie contre un tuple brut (Qx, Qy, r, s) ou une signature encodée en DER. |
| Signature ECDSA DER et conversion | sgcECDSA_SignDER / sgcECDSA_VerifyDER, sgcECDSA_RawToDER / sgcECDSA_DERToRaw | X.509, CMS et TLS transportent l'ECDSA-Sig-Value au format DER, une SEQUENCE d'un INTEGER r suivi d'un INTEGER s. JOSE et WebAuthn transportent à la place la paire brute R || S. Signe directement dans l'une ou l'autre forme, ou convertis une signature existante entre les deux. |
| Signatures Schnorr (BIP-340) | sgcSchnorr_PublicKey, sgcSchnorr_Sign, sgcSchnorr_Verify | secp256k1 uniquement, avec des clés publiques x-only de 32 octets et des signatures de 64 octets : ce qu'utilisent Taproot, Nostr et Lightning. sgcSchnorr_TaggedHash est exposée pour que les tags BIP-341 et BIP-342 puissent être construits sur la même base. |
| Signature RSA (PKCS#1 v1.5) | sgcRSA_SignPKCS1 | Depuis une clé privée PEM, condensé SHA-1/256/384/512. |
| Vérification RSA (PKCS#1 v1.5 / PSS) | sgcRSA_VerifyPKCS1, sgcRSA_VerifyPSS, et variantes _Raw sur un module/exposant | RFC 8017. La vérification fonctionne depuis une clé PEM ou un module et exposant bruts, sans construction d'objet clé. |
| Génération de clé RSA | sgcRSA_GenerateKey | N'importe quelle longueur de bit demandée, test de primalité de Miller-Rabin. |
| Chiffrement RSA-OAEP | sgcRSA_OAEP_Encrypt / sgcRSA_OAEP_Decrypt | Padding de chiffrement asymétrique optimal RFC 8017. |
| RSA-OAEP avec un hachage MGF1 indépendant | les surcharges à cinq paramètres de sgcRSA_OAEP_Encrypt / sgcRSA_OAEP_Decrypt | Fixe le hachage du label et le hachage MGF1 séparément. OAEPWithSHA256AndMGF1Padding signifie SHA-256 pour les deux dans Bouncy Castle, mais SHA-256 avec MGF1-SHA1 dans SunJCE, et cette discordance est la cause habituelle des échecs d'interopérabilité avec Java. |
| Chiffrement RSA PKCS#1 v1.5 | sgcRSA_PKCS1_Encrypt / sgcRSA_PKCS1_Decrypt | RFC 8017 section 7.2, le mode que Java nomme RSA/ECB/PKCS1Padding. Le déchiffrement emprunte le même chemin pour chaque échec, ce qui ne donne rien à exploiter à un oracle de remplissage. Préfère OAEP pour tout ce qui est nouveau. |
| Signature RSA-PSS / PKCS#1 | sgcRSA_PSS_Sign / Verify, sgcRSA_PKCS1_Sign / Verify | Signe directement depuis une TsgcRSAPrivateKey générée. |
| Export de clé RSA | sgcRSA_ExportPrivateKeyPEM, sgcRSA_ExportPublicKeyPEM, appels DER équivalents | Encodages PKCS#1 et SubjectPublicKeyInfo. |
| Export de clé PKCS#8 et SEC 1 | sgcRSA_ExportPrivateKeyPKCS8DER / PKCS8PEM, sgcEC_ExportPrivateKeyPKCS8DER / PKCS8PEM, sgcEC_ExportPrivateKeySEC1DER / SEC1PEM, sgcEC_ExportSubjectPublicKeyInfo, sgcEC_ExportPublicKeyPEM | Le conteneur BEGIN PRIVATE KEY qu'attendent Java, .NET et la plupart des outils modernes, ainsi que la forme SEC 1 BEGIN EC PRIVATE KEY et le SubjectPublicKeyInfo qu'intègre un certificat. Non chiffré, ce qui revient donc n'est que du matériel de clé nu. |
| Import de clé RSA et EC | sgcRSA_ImportPrivateKeyDER / PEM, sgcRSA_ImportPublicKeyDER / PEM, sgcEC_ImportPrivateKeyDER / PEM, sgcEC_ImportPublicKeyDER / PEM | Cela n'existait pas auparavant : une clé générée pouvait être écrite mais jamais relue. L'import accepte PKCS#1, PKCS#8, SEC 1 et SubjectPublicKeyInfo, en DER ou en PEM, recalcule les paramètres CRT ou le point public quand le fichier les omet, et renvoie False sur une entrée malformée plutôt que de lever une exception, si bien que des fichiers non fiables peuvent lui être confiés sans risque. |
| ECIES seal / open | sgcECIES_GenerateKeyPair, sgcECIES_Seal, sgcECIES_Open | Chiffrement hybride vers une clé publique X25519 : ECDH éphémère plus un AEAD, un appel dans chaque sens. |