| Firma / verificación Ed25519 | sgcEd25519_Sign / sgcEd25519_Verify | RFC 8032. Clave pública de 32 bytes, firma de 64 bytes. La verificación rechaza puntos no canónicos y S >= L según la sección 5.1.7. |
| Intercambio de claves X25519 | sgcX25519, sgcX25519_PublicKey, sgcX25519_SharedSecret | Diffie-Hellman RFC 7748 sobre Curve25519. |
| Firma / verificación Ed448 | sgcEd448_GenerateKeyPair, sgcEd448_Sign, sgcEd448_Verify | RFC 8032, la curva EdDSA de 448 bits (Goldilocks). |
| Intercambio de claves X448 | sgcX448, sgcX448_PublicKey, sgcX448_SharedSecret | Diffie-Hellman RFC 7748 sobre Curve448. |
| secp256k1 | sgcECDSA_SignHash / VerifyHash con eccSecp256k1 | La curva de Bitcoin/Ethereum, SEC 2, en sgcCrypto_ECCurves. |
| Brainpool P256r1 / P384r1 / P512r1 | mismas funciones con eccBrainpoolP256r1 / P384r1 / P512r1 | RFC 5639, habitual en perfiles eIDAS de la UE y gubernamentales. |
| NIST P-256 / P-384 / P-521 | mismas funciones con eccP256 / eccP384 / eccP521 | TsgcECCurve ahora nombra siete curvas, así que la generación de claves, la firma, la verificación, el ECDH y la compresión de puntos alcanzan todos las curvas primas NIST a partir de bytes de clave en bruto, no solo desde un archivo PEM. |
| Nonce ECDSA determinista | integrado en sgcECDSA_SignHash | RFC 6979: el nonce se deriva de la clave privada y el mensaje, sin modo de fallo del RNG. |
| ECDH (secp256k1 / Brainpool) | sgcECDH_SharedSecret | Secreto compartido sobre las mismas cuatro curvas. |
| Compresión de puntos | sgcEC_Compress / sgcEC_Decompress | Almacena o transmite la forma comprimida más corta de la clave pública. |
| EC como JWS (ES256/384/512) | sgcECDSA_SignJWS / sgcECDSA_VerifyJWS | La curva se selecciona automáticamente según la longitud en bits solicitada, firma/verifica directamente desde una clave PEM, hermana orientada a JOSE de ECCurves. |
| ECDH genérico | sgcECDH | Secreto compartido a partir de una clave privada en bruto y el punto público del interlocutor. |
| Verificación ECDSA en bruto / DER | sgcECDSA_VerifyRaw / sgcECDSA_VerifyDER | Verifica contra una tupla en bruto (Qx, Qy, r, s) o una firma codificada en DER. |
| Firma DER ECDSA y conversión | sgcECDSA_SignDER / sgcECDSA_VerifyDER, sgcECDSA_RawToDER / sgcECDSA_DERToRaw | X.509, CMS y TLS llevan el ECDSA-Sig-Value DER, una SEQUENCE de INTEGER r seguido de INTEGER s. JOSE y WebAuthn llevan en su lugar el par en bruto R || S. Firme directamente en cualquiera de las dos formas, o convierta una firma existente entre ellas. |
| Firmas Schnorr (BIP-340) | sgcSchnorr_PublicKey, sgcSchnorr_Sign, sgcSchnorr_Verify | Solo secp256k1, con claves públicas x-only de 32 bytes y firmas de 64 bytes: lo que usan Taproot, Nostr y Lightning. sgcSchnorr_TaggedHash se expone para que las etiquetas de BIP-341 y BIP-342 se puedan construir sobre la misma construcción. |
| Firma RSA (PKCS#1 v1.5) | sgcRSA_SignPKCS1 | Desde una clave privada PEM, resumen SHA-1/256/384/512. |
| Verificación RSA (PKCS#1 v1.5 / PSS) | sgcRSA_VerifyPKCS1, sgcRSA_VerifyPSS, y variantes _Raw sobre un módulo/exponente | RFC 8017. La verificación funciona desde una clave PEM o un módulo y exponente en bruto, sin necesidad de construir un objeto de clave. |
| Generación de claves RSA | sgcRSA_GenerateKey | Cualquier longitud en bits solicitada, comprobación de primalidad Miller-Rabin. |
| Cifrado RSA-OAEP | sgcRSA_OAEP_Encrypt / sgcRSA_OAEP_Decrypt | Relleno de cifrado asimétrico óptimo RFC 8017. |
| RSA-OAEP con un hash MGF1 independiente | las sobrecargas de cinco parámetros de sgcRSA_OAEP_Encrypt / sgcRSA_OAEP_Decrypt | Fija el hash de la etiqueta y el hash MGF1 por separado. OAEPWithSHA256AndMGF1Padding significa SHA-256 para ambos en Bouncy Castle pero SHA-256 con MGF1-SHA1 en SunJCE, y ese desajuste es el motivo habitual por el que falla la interoperabilidad con Java. |
| Cifrado RSA PKCS#1 v1.5 | sgcRSA_PKCS1_Encrypt / sgcRSA_PKCS1_Decrypt | RFC 8017 sección 7.2, el modo que Java llama RSA/ECB/PKCS1Padding. El descifrado sigue el mismo camino ante todo fallo, de modo que no le da nada con lo que trabajar a un oráculo de relleno. Prefiera OAEP para cualquier cosa nueva. |
| Firma RSA-PSS / PKCS#1 | sgcRSA_PSS_Sign / Verify, sgcRSA_PKCS1_Sign / Verify | Firma directamente desde un TsgcRSAPrivateKey generado. |
| Exportación de claves RSA | sgcRSA_ExportPrivateKeyPEM, sgcRSA_ExportPublicKeyPEM, llamadas DER equivalentes | Codificaciones PKCS#1 y SubjectPublicKeyInfo. |
| Exportación de claves PKCS#8 y SEC 1 | sgcRSA_ExportPrivateKeyPKCS8DER / PKCS8PEM, sgcEC_ExportPrivateKeyPKCS8DER / PKCS8PEM, sgcEC_ExportPrivateKeySEC1DER / SEC1PEM, sgcEC_ExportSubjectPublicKeyInfo, sgcEC_ExportPublicKeyPEM | El contenedor BEGIN PRIVATE KEY que esperan Java, .NET y la mayoría de las herramientas modernas, junto con la forma SEC 1 BEGIN EC PRIVATE KEY y el SubjectPublicKeyInfo que incrusta un certificado. Sin cifrar, así que lo que se obtiene es material de clave desnudo. |
| Importación de claves RSA y EC | sgcRSA_ImportPrivateKeyDER / PEM, sgcRSA_ImportPublicKeyDER / PEM, sgcEC_ImportPrivateKeyDER / PEM, sgcEC_ImportPublicKeyDER / PEM | Esto no existía antes: una clave generada se podía escribir pero nunca volver a leer. La importación acepta PKCS#1, PKCS#8, SEC 1 y SubjectPublicKeyInfo, DER o PEM, recalcula los parámetros CRT o el punto público cuando el archivo los omite, y devuelve False ante una entrada malformada en lugar de lanzar una excepción, así que es seguro entregarle archivos no confiables. |
| ECIES seal / open | sgcECIES_GenerateKeyPair, sgcECIES_Seal, sgcECIES_Open | Cifrado híbrido hacia una clave pública X25519: ECDH efímero más un AEAD, una llamada en cada sentido. |