cherry-pick.v10-4-g9ec5bf7.add-support-for-rsa-oaep-224-rsa-oaep-384-and-rsa-oaep-512.patch 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. Subject: Add support for RSA-OAEP-224, RSA-OAEP-384 and RSA-OAEP-512
  2. Origin: v10-4-g9ec5bf7 <https://github.com/latchset/jose/commit/v10-4-g9ec5bf7>
  3. Upstream-Author: Nathaniel McCallum <npmccallum@redhat.com>
  4. Date: Tue May 1 11:03:10 2018 -0400
  5. --- a/lib/openssl/rsaes.c
  6. +++ b/lib/openssl/rsaes.c
  7. @@ -26,7 +26,7 @@
  8. #include <string.h>
  9. #ifdef EVP_PKEY_CTX_set_rsa_oaep_md
  10. -#define NAMES "RSA1_5", "RSA-OAEP", "RSA-OAEP-256"
  11. +#define NAMES "RSA1_5", "RSA-OAEP", "RSA-OAEP-224", "RSA-OAEP-256", "RSA-OAEP-384", "RSA-OAEP-512"
  12. #define HAVE_OAEP
  13. #else
  14. #define NAMES "RSA1_5"
  15. @@ -116,7 +116,10 @@
  16. switch (str2enum(alg->name, NAMES, NULL)) {
  17. case 0: pad = RSA_PKCS1_PADDING; tmp = 11; md = EVP_sha1(); break;
  18. case 1: pad = RSA_PKCS1_OAEP_PADDING; tmp = 41; md = EVP_sha1(); break;
  19. - case 2: pad = RSA_PKCS1_OAEP_PADDING; tmp = 41; md = EVP_sha256(); break;
  20. + case 2: pad = RSA_PKCS1_OAEP_PADDING; tmp = 41; md = EVP_sha224(); break;
  21. + case 3: pad = RSA_PKCS1_OAEP_PADDING; tmp = 41; md = EVP_sha256(); break;
  22. + case 4: pad = RSA_PKCS1_OAEP_PADDING; tmp = 41; md = EVP_sha384(); break;
  23. + case 5: pad = RSA_PKCS1_OAEP_PADDING; tmp = 41; md = EVP_sha512(); break;
  24. default: return false;
  25. }
  26. @@ -206,7 +209,10 @@
  27. switch (str2enum(alg->name, NAMES, NULL)) {
  28. case 0: pad = RSA_PKCS1_PADDING; md = EVP_sha1(); break;
  29. case 1: pad = RSA_PKCS1_OAEP_PADDING; md = EVP_sha1(); break;
  30. - case 2: pad = RSA_PKCS1_OAEP_PADDING; md = EVP_sha256(); break;
  31. + case 2: pad = RSA_PKCS1_OAEP_PADDING; md = EVP_sha224(); break;
  32. + case 3: pad = RSA_PKCS1_OAEP_PADDING; md = EVP_sha256(); break;
  33. + case 4: pad = RSA_PKCS1_OAEP_PADDING; md = EVP_sha384(); break;
  34. + case 5: pad = RSA_PKCS1_OAEP_PADDING; md = EVP_sha512(); break;
  35. default: return false;
  36. }
  37. @@ -309,6 +315,14 @@
  38. .wrap.enc = alg_wrap_enc,
  39. .wrap.wrp = alg_wrap_wrp,
  40. .wrap.unw = alg_wrap_unw },
  41. + { .kind = JOSE_HOOK_ALG_KIND_WRAP,
  42. + .name = "RSA-OAEP-224",
  43. + .wrap.eprm = "wrapKey",
  44. + .wrap.dprm = "unwrapKey",
  45. + .wrap.alg = alg_wrap_alg,
  46. + .wrap.enc = alg_wrap_enc,
  47. + .wrap.wrp = alg_wrap_wrp,
  48. + .wrap.unw = alg_wrap_unw },
  49. { .kind = JOSE_HOOK_ALG_KIND_WRAP,
  50. .name = "RSA-OAEP-256",
  51. .wrap.eprm = "wrapKey",
  52. @@ -317,6 +331,22 @@
  53. .wrap.enc = alg_wrap_enc,
  54. .wrap.wrp = alg_wrap_wrp,
  55. .wrap.unw = alg_wrap_unw },
  56. + { .kind = JOSE_HOOK_ALG_KIND_WRAP,
  57. + .name = "RSA-OAEP-384",
  58. + .wrap.eprm = "wrapKey",
  59. + .wrap.dprm = "unwrapKey",
  60. + .wrap.alg = alg_wrap_alg,
  61. + .wrap.enc = alg_wrap_enc,
  62. + .wrap.wrp = alg_wrap_wrp,
  63. + .wrap.unw = alg_wrap_unw },
  64. + { .kind = JOSE_HOOK_ALG_KIND_WRAP,
  65. + .name = "RSA-OAEP-512",
  66. + .wrap.eprm = "wrapKey",
  67. + .wrap.dprm = "unwrapKey",
  68. + .wrap.alg = alg_wrap_alg,
  69. + .wrap.enc = alg_wrap_enc,
  70. + .wrap.wrp = alg_wrap_wrp,
  71. + .wrap.unw = alg_wrap_unw },
  72. #endif
  73. {}
  74. };