0001-Build-and-install-libnssckbi-p11-kit.so.patch 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. From 8a1c9bb1170213498d3386d2a5c2882868e4f535 Mon Sep 17 00:00:00 2001
  2. Message-Id: <8a1c9bb1170213498d3386d2a5c2882868e4f535.1548110948.git.jan.steffens@gmail.com>
  3. From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
  4. Date: Thu, 1 Mar 2018 16:20:59 +0100
  5. Subject: [PATCH] Build and install libnssckbi-p11-kit.so
  6. Create an additional library which is a copy of p11-kit-trust.so but
  7. uses the same label for root certs as libnssckbi.so:
  8. "Builtin Object Token" instead of "Default Trust".
  9. https://bugs.freedesktop.org/show_bug.cgi?id=66161
  10. ---
  11. trust/Makefile.am | 14 ++++++++++++++
  12. trust/module.c | 12 +++++++++++-
  13. 2 files changed, 25 insertions(+), 1 deletion(-)
  14. diff --git a/trust/Makefile.am b/trust/Makefile.am
  15. index c4a65a3..303e1d0 100644
  16. --- a/trust/Makefile.am
  17. +++ b/trust/Makefile.am
  18. @@ -66,6 +66,20 @@ p11_kit_trust_la_LDFLAGS = \
  19. p11_kit_trust_la_SOURCES = $(TRUST_SRCS) trust/module-init.c
  20. +libnssckbi_compatdir = $(libdir)
  21. +libnssckbi_compat_LTLIBRARIES = \
  22. + libnssckbi-p11-kit.la
  23. +
  24. +libnssckbi_p11_kit_la_CFLAGS = \
  25. + -DLIBNSSCKBI_COMPAT \
  26. + $(p11_kit_trust_la_CFLAGS)
  27. +
  28. +libnssckbi_p11_kit_la_LIBADD = $(p11_kit_trust_la_LIBADD)
  29. +
  30. +libnssckbi_p11_kit_la_LDFLAGS = $(p11_kit_trust_la_LDFLAGS)
  31. +
  32. +libnssckbi_p11_kit_la_SOURCES = $(p11_kit_trust_la_SOURCES)
  33. +
  34. libtrust_testable_la_LDFLAGS = \
  35. -no-undefined
  36. diff --git a/trust/module.c b/trust/module.c
  37. index 1722340..e776270 100644
  38. --- a/trust/module.c
  39. +++ b/trust/module.c
  40. @@ -201,7 +201,11 @@ create_tokens_inlock (p11_array *tokens,
  41. int flags;
  42. } labels[] = {
  43. { "~/", "User Trust", P11_TOKEN_FLAG_NONE },
  44. +#ifdef LIBNSSCKBI_COMPAT
  45. + { P11_DEFAULT_TRUST_PREFIX, "Builtin Object Token", P11_TOKEN_FLAG_WRITE_PROTECTED },
  46. +#else
  47. { P11_DEFAULT_TRUST_PREFIX, "Default Trust", P11_TOKEN_FLAG_WRITE_PROTECTED },
  48. +#endif
  49. { P11_SYSTEM_TRUST_PREFIX, "System Trust", P11_TOKEN_FLAG_NONE },
  50. { NULL },
  51. };
  52. @@ -534,8 +538,14 @@ sys_C_GetSlotInfo (CK_SLOT_ID id,
  53. info->flags = CKF_TOKEN_PRESENT;
  54. memcpy ((char*)info->manufacturerID, MANUFACTURER_ID, 32);
  55. +#ifdef LIBNSSCKBI_COMPAT
  56. + /* Change description to match libnssckbi so HPKP works in Chromium */
  57. + if (strcmp (p11_token_get_label (token), "Builtin Object Token") == 0)
  58. + path = "NSS Builtin Objects";
  59. + else
  60. +#endif
  61. + path = p11_token_get_path (token);
  62. /* If too long, copy the first 64 characters into buffer */
  63. - path = p11_token_get_path (token);
  64. length = strlen (path);
  65. if (length > sizeof (info->slotDescription))
  66. length = sizeof (info->slotDescription);
  67. --
  68. 2.20.1