0001-kcapi-enc.patch 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. diff -Nurp libkcapi-1.3.1/apps/kcapi-enc.c libkcapi-1.3.1_new/apps/kcapi-enc.c
  2. --- libkcapi-1.3.1/apps/kcapi-enc.c 2021-05-17 20:34:44.000000000 +0800
  3. +++ libkcapi-1.3.1_new/apps/kcapi-enc.c 2022-01-13 17:12:03.441098213 +0800
  4. @@ -731,78 +731,9 @@ static int set_key(struct kcapi_handle *
  5. /* Transform password into a key using PBKDF2. */
  6. if (passwdptr && passwdlen) {
  7. - uint8_t *saltbuf = NULL;
  8. - uint32_t saltbuflen = 0;
  9. -
  10. - dolog(KCAPI_LOG_DEBUG, "password %s", passwdptr);
  11. -
  12. - /* Determine the number of PBKDF2 iterations. */
  13. - if (!opts->pbkdf_iterations) {
  14. - opts->pbkdf_iterations =
  15. - kcapi_pbkdf_iteration_count(opts->pbkdf_hash, 0);
  16. -
  17. - dolog(KCAPI_LOG_WARN, "PBKDF2 iterations used: %u",
  18. - opts->pbkdf_iterations);
  19. - }
  20. -
  21. - /* Convert the salt hex representation into binary. */
  22. - if (opts->salt) {
  23. - ret = hex2bin_alloc(opts->salt,
  24. - (uint32_t)strlen(opts->salt),
  25. - &saltbuf, &saltbuflen);
  26. - if (ret)
  27. - goto out;
  28. - } else {
  29. - /* No salt provided, generate a random number. */
  30. - struct kcapi_handle *rng;
  31. - uint32_t j = 0;
  32. -
  33. - ret = kcapi_rng_init(&rng, "stdrng", 0);
  34. - if (ret)
  35. - goto out;
  36. - ret = kcapi_rng_seed(rng, NULL, 0);
  37. - if (ret) {
  38. - kcapi_rng_destroy(rng);
  39. - goto out;
  40. - }
  41. -
  42. - saltbuflen = 32;
  43. - saltbuf = malloc(saltbuflen);
  44. - if (!saltbuf) {
  45. - ret = -ENOMEM;
  46. - kcapi_rng_destroy(rng);
  47. - goto out;
  48. - }
  49. -
  50. - while (j < saltbuflen) {
  51. - ret = kcapi_rng_generate(rng, saltbuf,
  52. - saltbuflen);
  53. - if (ret < 0) {
  54. - kcapi_rng_destroy(rng);
  55. - free(saltbuf);
  56. - goto out;
  57. - }
  58. - j += (uint32_t)ret;
  59. - }
  60. - kcapi_rng_destroy(rng);
  61. -
  62. - dolog_bin(KCAPI_LOG_WARN, saltbuf, saltbuflen,
  63. - "PBKDF2 salt used");
  64. - }
  65. -
  66. - /*
  67. - * PBKDF2 operation: generate a key from password --
  68. - * reading of sizeof(keybuf) implies 256 bit key.
  69. - */
  70. - ret = kcapi_pbkdf(opts->pbkdf_hash, passwdptr, passwdlen,
  71. - saltbuf, saltbuflen, opts->pbkdf_iterations,
  72. - keybuf, sizeof(keybuf));
  73. - free(saltbuf);
  74. - if (ret)
  75. - goto out;
  76. -
  77. have_key = 1;
  78. - keybuflen = sizeof(keybuf);
  79. + memcpy(keybuf,passwdptr,passwdlen);
  80. + keybuflen = passwdlen;
  81. dolog(KCAPI_LOG_VERBOSE,
  82. "Data Encryption Key derived from Password using PBKDF2 using %s with %u iterations",