]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
algorithms: register RSA-OAEP
authorDaiki Ueno <ueno@gnu.org>
Thu, 8 Feb 2024 08:07:39 +0000 (17:07 +0900)
committerDaiki Ueno <ueno@gnu.org>
Sun, 18 Feb 2024 07:12:43 +0000 (16:12 +0900)
Signed-off-by: Daiki Ueno <ueno@gnu.org>
lib/algorithms/publickey.c
lib/includes/gnutls/gnutls.h.in
lib/x509/common.h
tests/privkey-keygen.c

index 2ddc52456c26d2849068da541a82811bd98a66b1..0ef0834933ca0f556ccf529d4ea09f297cae1da3 100644 (file)
@@ -132,6 +132,10 @@ static const gnutls_pk_entry pk_algorithms[] = {
          .oid = PK_PKIX1_RSA_PSS_OID,
          .id = GNUTLS_PK_RSA_PSS,
          .curve = GNUTLS_ECC_CURVE_INVALID },
+       { .name = "RSA-OAEP",
+         .oid = PK_PKIX1_RSA_OAEP_OID,
+         .id = GNUTLS_PK_RSA_OAEP,
+         .curve = GNUTLS_ECC_CURVE_INVALID },
        { .name = "RSA (X.509)",
          .oid = PK_X509_RSA_OID,
          .id = GNUTLS_PK_RSA,
index 53164d0a2b5309288df10ec5394e5b1fd0f60da8..e31aad3a0ce0ab8ea6db28c29c8ddcfdb0d9ddf4 100644 (file)
@@ -876,6 +876,7 @@ typedef enum gnutls_certificate_print_formats {
  * gnutls_pk_algorithm_t:
  * @GNUTLS_PK_UNKNOWN: Unknown public-key algorithm.
  * @GNUTLS_PK_RSA: RSA public-key algorithm.
+ * @GNUTLS_PK_RSA_OAEP: RSA public-key algorithm, with OAEP padding.
  * @GNUTLS_PK_RSA_PSS: RSA public-key algorithm, with PSS padding.
  * @GNUTLS_PK_DSA: DSA public-key algorithm.
  * @GNUTLS_PK_DH: Diffie-Hellman algorithm. Used to generate parameters.
@@ -904,7 +905,8 @@ typedef enum {
        GNUTLS_PK_GOST_12_512 = 10,
        GNUTLS_PK_ECDH_X448 = 11,
        GNUTLS_PK_EDDSA_ED448 = 12,
-       GNUTLS_PK_MAX = GNUTLS_PK_EDDSA_ED448
+       GNUTLS_PK_RSA_OAEP = 13,
+       GNUTLS_PK_MAX = GNUTLS_PK_RSA_OAEP
 } gnutls_pk_algorithm_t;
 
 const char *gnutls_pk_algorithm_get_name(gnutls_pk_algorithm_t algorithm);
index 5d2ef3af622070848efbd69b6d66fd7caa3179c2..6f48ec76222a2d23639b58e3fceee192b24a1dfc 100644 (file)
@@ -52,6 +52,7 @@
  */
 #define PK_PKIX1_RSA_OID "1.2.840.113549.1.1.1"
 #define PK_PKIX1_RSA_PSS_OID "1.2.840.113549.1.1.10"
+#define PK_PKIX1_RSA_OAEP_OID "1.2.840.113549.1.1.7"
 #define PK_X509_RSA_OID "2.5.8.1.1"
 #define PK_DSA_OID "1.2.840.10040.4.1"
 #define PK_GOST_R3410_94_OID "1.2.643.2.2.20"
index 184e508ef774d4c7e35f5af9f5e6c8cf2aff7240..c7b7d756917f2d93618099bc2850dec32dff5b0a 100644 (file)
@@ -157,6 +157,9 @@ void doit(void)
 #endif
                        }
 
+                       if (algorithm == GNUTLS_PK_RSA_OAEP)
+                               continue;
+
                        ret = gnutls_x509_privkey_init(&pkey);
                        if (ret < 0) {
                                fail("gnutls_x509_privkey_init: %d\n", ret);