From de55387977531e51b3ce242539160f6091984852 Mon Sep 17 00:00:00 2001 From: James Antill Date: Thu, 26 May 2022 01:07:03 -0400 Subject: [PATCH] Auto sync2gitlab import of certmonger-0.79.13-5.el8.src.rpm --- .gitignore | 1 + ...t-run-the-002-keygen-tests-when-root.patch | 38 + ...e-certmaster-CA-from-the-028-dbus-te.patch | 195 +++ 0003-Fix-local-CA-to-work-under-FIPS.patch | 38 + ...option-to-treat-the-challenge-passwo.patch | 123 ++ ...before-string-compares-when-analyzin.patch | 42 + ...Display-not_before-in-getcert-output.patch | 386 +++++ ...iptor-leak-when-executing-CA-helpers.patch | 40 + 0008-Use-extensions-template-from-NSS.patch | 80 + ...-implicit-empty-FALSE-for-extensions.patch | 280 ++++ EMPTY | 1 - certmonger.spec | 1384 +++++++++++++++++ sources | 1 + 13 files changed, 2608 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 0001-Don-t-run-the-002-keygen-tests-when-root.patch create mode 100644 0002-Revert-Remove-the-certmaster-CA-from-the-028-dbus-te.patch create mode 100644 0003-Fix-local-CA-to-work-under-FIPS.patch create mode 100644 0004-Add-SCEP-config-option-to-treat-the-challenge-passwo.patch create mode 100644 0005-Add-NULL-checks-before-string-compares-when-analyzin.patch create mode 100644 0006-Display-not_before-in-getcert-output.patch create mode 100644 0007-Fix-file-descriptor-leak-when-executing-CA-helpers.patch create mode 100644 0008-Use-extensions-template-from-NSS.patch create mode 100644 0009-Use-implicit-empty-FALSE-for-extensions.patch delete mode 100644 EMPTY create mode 100644 certmonger.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..28809e0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/certmonger-0.79.13.tar.gz diff --git a/0001-Don-t-run-the-002-keygen-tests-when-root.patch b/0001-Don-t-run-the-002-keygen-tests-when-root.patch new file mode 100644 index 0000000..8590858 --- /dev/null +++ b/0001-Don-t-run-the-002-keygen-tests-when-root.patch @@ -0,0 +1,38 @@ +From a176d474644e0f1f2ce520ed69b04dc649ed2bed Mon Sep 17 00:00:00 2001 +From: Rob Crittenden +Date: Thu, 29 Oct 2020 10:13:08 -0400 +Subject: [PATCH] Don't run the 002-keygen-* tests when root + +The permissions tests will fail. +--- + tests/002-keygen-dbm/prequal.sh | 5 +++++ + tests/002-keygen-sql/prequal.sh | 5 +++++ + 2 files changed, 10 insertions(+) + create mode 100755 tests/002-keygen-dbm/prequal.sh + create mode 100755 tests/002-keygen-sql/prequal.sh + +diff --git a/tests/002-keygen-dbm/prequal.sh b/tests/002-keygen-dbm/prequal.sh +new file mode 100755 +index 00000000..d146a650 +--- /dev/null ++++ b/tests/002-keygen-dbm/prequal.sh +@@ -0,0 +1,5 @@ ++#!/bin/sh ++if test `id -u` -eq 0 ; then ++ echo "This test won't work right if run as root." ++ exit 1 ++fi +diff --git a/tests/002-keygen-sql/prequal.sh b/tests/002-keygen-sql/prequal.sh +new file mode 100755 +index 00000000..d146a650 +--- /dev/null ++++ b/tests/002-keygen-sql/prequal.sh +@@ -0,0 +1,5 @@ ++#!/bin/sh ++if test `id -u` -eq 0 ; then ++ echo "This test won't work right if run as root." ++ exit 1 ++fi +-- +2.25.4 + diff --git a/0002-Revert-Remove-the-certmaster-CA-from-the-028-dbus-te.patch b/0002-Revert-Remove-the-certmaster-CA-from-the-028-dbus-te.patch new file mode 100644 index 0000000..528271a --- /dev/null +++ b/0002-Revert-Remove-the-certmaster-CA-from-the-028-dbus-te.patch @@ -0,0 +1,195 @@ +From 73b1729b9ca740174ef2fa14332f890c5cd17a26 Mon Sep 17 00:00:00 2001 +From: Rob Crittenden +Date: Tue, 10 Nov 2020 18:48:05 -0500 +Subject: [PATCH] Revert "Remove the certmaster CA from the 028-dbus test" + +This reverts commit dd8dcb899e0a159d1141b713993805565ffb6d28. +--- + tests/028-dbus/expected.out | 130 ++++++++++++++++++++++++++++++++++-- + 1 file changed, 124 insertions(+), 6 deletions(-) + +diff --git a/tests/028-dbus/expected.out b/tests/028-dbus/expected.out +index ca7de34f..4d6a9a59 100644 +--- a/tests/028-dbus/expected.out ++++ b/tests/028-dbus/expected.out +@@ -34,6 +34,10 @@ CA 'IPA': + is-default: no + ca-type: EXTERNAL + helper-location: $libexecdir/ipa-submit ++CA 'certmaster': ++ is-default: no ++ ca-type: EXTERNAL ++ helper-location: $libexecdir/certmaster-submit + CA 'dogtag-ipa-renew-agent': + is-default: no + ca-type: EXTERNAL +@@ -41,8 +45,8 @@ CA 'dogtag-ipa-renew-agent': + + [[ API ]] + [ simpleprop.py ] +-/org/fedorahosted/certmonger/cas/CA5 +-/org/fedorahosted/certmonger/cas/CA5 ++/org/fedorahosted/certmonger/cas/CA6 ++/org/fedorahosted/certmonger/cas/CA6 + : -> : -k admin@localhost -> : + 0 -> 1 -> 0 + [ walk.py ] +@@ -178,7 +182,7 @@ OK + OK + + [ /org/fedorahosted/certmonger: org.fedorahosted.certmonger.get_known_cas ] +-dbus.Array([dbus.ObjectPath('/org/fedorahosted/certmonger/cas/CA1'), dbus.ObjectPath('/org/fedorahosted/certmonger/cas/CA2'), dbus.ObjectPath('/org/fedorahosted/certmonger/cas/CA3'), dbus.ObjectPath('/org/fedorahosted/certmonger/cas/CA4')], signature=dbus.Signature('o')) ++dbus.Array([dbus.ObjectPath('/org/fedorahosted/certmonger/cas/CA1'), dbus.ObjectPath('/org/fedorahosted/certmonger/cas/CA2'), dbus.ObjectPath('/org/fedorahosted/certmonger/cas/CA3'), dbus.ObjectPath('/org/fedorahosted/certmonger/cas/CA4'), dbus.ObjectPath('/org/fedorahosted/certmonger/cas/CA5')], signature=dbus.Signature('o')) + + [ /org/fedorahosted/certmonger: org.fedorahosted.certmonger.get_requests ] + dbus.Array([dbus.ObjectPath('/org/fedorahosted/certmonger/requests/Request2')], signature=dbus.Signature('o')) +@@ -504,6 +508,7 @@ After setting template-eku to 1.2.3.4.5.6.7.8.9.10, we got dbus.Array([dbus.Stri + + + ++ + + + [ /org/fedorahosted/certmonger/cas/CA1: org.freedesktop.DBus.Introspectable.Introspect ] +@@ -937,10 +942,10 @@ dbus.Array([], signature=dbus.Signature('s')) + + + [ /org/fedorahosted/certmonger/cas/CA4: org.fedorahosted.certmonger.ca.get_config_file_path ] +-$tmpdir/cas/20180327134236-3 ++$tmpdir/cas/20180327134236-2 + + [ /org/fedorahosted/certmonger/cas/CA4: org.fedorahosted.certmonger.ca.get_nickname ] +-dogtag-ipa-renew-agent ++certmaster + + [ /org/fedorahosted/certmonger/cas/CA4: org.fedorahosted.certmonger.ca.get_is_default ] + 0 +@@ -952,7 +957,7 @@ EXTERNAL + None + + [ /org/fedorahosted/certmonger/cas/CA4: org.fedorahosted.certmonger.ca.get_location ] +-$libexecdir/dogtag-ipa-renew-agent-submit ++$libexecdir/certmaster-submit + + [ /org/fedorahosted/certmonger/cas/CA4: org.fedorahosted.certmonger.ca.get_issuer_names ] + dbus.Array([], signature=dbus.Signature('s')) +@@ -960,3 +965,116 @@ dbus.Array([], signature=dbus.Signature('s')) + [ /org/fedorahosted/certmonger/cas/CA4: org.fedorahosted.certmonger.ca.refresh ] + 1 + ++[ /org/fedorahosted/certmonger/cas/CA5: org.freedesktop.DBus.Introspectable.Introspect ] ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++[ /org/fedorahosted/certmonger/cas/CA5: org.fedorahosted.certmonger.ca.get_config_file_path ] ++$tmpdir/cas/20180327134236-3 ++ ++[ /org/fedorahosted/certmonger/cas/CA5: org.fedorahosted.certmonger.ca.get_nickname ] ++dogtag-ipa-renew-agent ++ ++[ /org/fedorahosted/certmonger/cas/CA5: org.fedorahosted.certmonger.ca.get_is_default ] ++0 ++ ++[ /org/fedorahosted/certmonger/cas/CA5: org.fedorahosted.certmonger.ca.get_type ] ++EXTERNAL ++ ++[ /org/fedorahosted/certmonger/cas/CA5: org.fedorahosted.certmonger.ca.get_serial ] ++None ++ ++[ /org/fedorahosted/certmonger/cas/CA5: org.fedorahosted.certmonger.ca.get_location ] ++$libexecdir/dogtag-ipa-renew-agent-submit ++ ++[ /org/fedorahosted/certmonger/cas/CA5: org.fedorahosted.certmonger.ca.get_issuer_names ] ++dbus.Array([], signature=dbus.Signature('s')) ++ ++[ /org/fedorahosted/certmonger/cas/CA5: org.fedorahosted.certmonger.ca.refresh ] ++1 ++ +-- +2.25.4 + diff --git a/0003-Fix-local-CA-to-work-under-FIPS.patch b/0003-Fix-local-CA-to-work-under-FIPS.patch new file mode 100644 index 0000000..7f90105 --- /dev/null +++ b/0003-Fix-local-CA-to-work-under-FIPS.patch @@ -0,0 +1,38 @@ +From 62a6634867db5d9f79b613055b8788136d4cb41d Mon Sep 17 00:00:00 2001 +From: Ade Lee +Date: Wed, 14 Apr 2021 15:34:48 -0400 +Subject: [PATCH] Fix local CA to work under FIPS + +The PKCS12 file used for the local CA fails to be created because +it uses default OpenSSL encryption algorithms that are disallowed +under FIPS. This patch simply updates the PKCS12_create() command +to use allowed encryption algorithms. +--- + src/local.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/local.c b/src/local.c +index 92bea144..2f50ac77 100644 +--- a/src/local.c ++++ b/src/local.c +@@ -39,6 +39,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -372,7 +373,8 @@ get_signer_info(void *parent, char *localdir, X509 ***roots, + return CM_SUBMIT_STATUS_UNREACHABLE; + } + p12 = PKCS12_create(NULL, CONSTANTCN, *signer_key, *signer_cert, +- cas, 0, 0, 0, 0, 0); ++ cas, NID_aes_128_cbc, NID_aes_128_cbc, ++ 0, 0, 0); + if (p12 != NULL) { + if (!i2d_PKCS12_fp(fp, p12)) { + fclose(fp); +-- +2.26.3 + diff --git a/0004-Add-SCEP-config-option-to-treat-the-challenge-passwo.patch b/0004-Add-SCEP-config-option-to-treat-the-challenge-passwo.patch new file mode 100644 index 0000000..fcb1b1f --- /dev/null +++ b/0004-Add-SCEP-config-option-to-treat-the-challenge-passwo.patch @@ -0,0 +1,123 @@ +From b38981c6e140ada6dd34bc817c508e8dd9714494 Mon Sep 17 00:00:00 2001 +From: Your Name +Date: Fri, 9 Jul 2021 20:49:28 +0000 +Subject: [PATCH] Add SCEP config option to treat the challenge password as an + OTP + +SCEP RFC 8894 specifies that a challenge password SHOULD be +removed from subsequent requests but that it MAY be included. + +This adds a new configuration option to treat the challenge password +as a one-time password (OTP) so that it will not be sent on +subsequent requests, like renewals, by removing it completely +from the tracking request. + +This allows certmonger to be able to renew AD-issued SCEP certificates +if the AD registry entry DisableRenewalSubjectNameMatch is set to 1. + +https://bugzilla.redhat.com/show_bug.cgi?id=1577570 + +Signed-off-by: Rob Crittenden +--- + src/certmonger.conf.5.in | 9 +++++++++ + src/certsave.c | 13 +++++++++++++ + src/prefs.c | 15 +++++++++++++++ + src/prefs.h | 4 ++++ + 4 files changed, 41 insertions(+) + +diff --git a/src/certmonger.conf.5.in b/src/certmonger.conf.5.in +index 6a42d3cb..1b941b9d 100644 +--- a/src/certmonger.conf.5.in ++++ b/src/certmonger.conf.5.in +@@ -126,6 +126,15 @@ If not set, the value of the \fIvalidity_period\fR setting from the + \fIselfsign\fR section, if one is set there, will be used. The default value + is \fI@CM_DEFAULT_CERT_LIFETIME@\fR. + ++.SH SCEP ++Within the \fIscep\fR section, these variables and values are recognized: ++ ++.IP challenge_password_otp ++This controls whether the SCEP challenge password is treated as a one-time ++password. If set to yes then the challenge password and/or challenge password ++file will be removed from the tracking request after the first certificate ++issuance so will not be sent with renewal requests. The default is no. ++ + .SH BUGS + Please file tickets for any that you find at https://fedorahosted.org/certmonger/ + +diff --git a/src/certsave.c b/src/certsave.c +index 6eaafe59..f8503662 100644 +--- a/src/certsave.c ++++ b/src/certsave.c +@@ -18,12 +18,25 @@ + #include "config.h" + #include "certsave.h" + #include "certsave-int.h" ++#include "prefs.h" + #include "store-int.h" ++#include "talloc.h" + + /* Start writing the certificate from the entry to the configured location. */ + struct cm_certsave_state * + cm_certsave_start(struct cm_store_entry *entry) + { ++ /* If saving a SCEP certificate wipe out the challenge password */ ++ if ((cm_prefs_scep_password_otp()) && ++ (entry->cm_template_challenge_password != NULL) && ++ (entry->cm_scep_nonce != NULL)) ++ { ++ talloc_free(entry->cm_template_challenge_password); ++ entry->cm_template_challenge_password = NULL; ++ talloc_free(entry->cm_template_challenge_password_file); ++ entry->cm_template_challenge_password_file = NULL; ++ } ++ + switch (entry->cm_cert_storage_type) { + #ifdef HAVE_OPENSSL + case cm_cert_storage_file: +diff --git a/src/prefs.c b/src/prefs.c +index 669e8f1f..52ffc908 100644 +--- a/src/prefs.c ++++ b/src/prefs.c +@@ -595,3 +595,18 @@ prefs_max_key_use_count(void) + } + return count; + } ++ ++int ++cm_prefs_scep_password_otp(void) ++{ ++ static int populate = -1; ++ if (populate == -1) { ++ const char *val; ++ val = cm_prefs_config("scep", "challenge_password_otp"); ++ if (val == NULL) { ++ val = "no"; ++ } ++ populate = cm_prefs_yesno(val); ++ } ++ return populate != -1 ? populate : 0; ++} +diff --git a/src/prefs.h b/src/prefs.h +index 248e1016..a107fb6c 100644 +--- a/src/prefs.h ++++ b/src/prefs.h +@@ -18,6 +18,8 @@ + #ifndef cmprefs_h + #define cmprefs_h + ++#include ++ + enum cm_prefs_cipher { + cm_prefs_aes128, + cm_prefs_aes192, +@@ -73,4 +75,6 @@ const char *cm_prefs_dogtag_sslpinfile(void); + long long prefs_key_end_of_life(time_t ref); + long prefs_max_key_use_count(void); + ++int cm_prefs_scep_password_otp(void); ++ + #endif +-- +2.31.1 + diff --git a/0005-Add-NULL-checks-before-string-compares-when-analyzin.patch b/0005-Add-NULL-checks-before-string-compares-when-analyzin.patch new file mode 100644 index 0000000..7fd494e --- /dev/null +++ b/0005-Add-NULL-checks-before-string-compares-when-analyzin.patch @@ -0,0 +1,42 @@ +From 0eec70b9dbd0a50a24fe173a68fd9ab72857e08d Mon Sep 17 00:00:00 2001 +From: Rob Crittenden +Date: Wed, 17 Feb 2021 13:40:52 -0500 +Subject: [PATCH] Add NULL checks before string compares when analyzing a cert + +A user reported a segfault which was due to a broken request. +How it got broken I have no idea but it was effectively empty. + +It had everything as defaults: 0, -1, UNSPECIFIED or not +present at all. + +So when trying to analyze the request it did a NULL compare. + +https://pagure.io/certmonger/issue/191 +--- + src/tdbush.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/tdbush.c b/src/tdbush.c +index a10a1aff..fb81c477 100644 +--- a/src/tdbush.c ++++ b/src/tdbush.c +@@ -678,14 +678,14 @@ base_add_request(DBusConnection *conn, DBusMessage *msg, + if (cert_storage != e->cm_cert_storage_type) { + continue; + } +- if (strcmp(cert_location, e->cm_cert_storage_location) != 0) { ++ if ((e->cm_cert_storage_location == NULL) || strcmp(cert_location, e->cm_cert_storage_location) != 0) { + continue; + } + switch (cert_storage) { + case cm_cert_storage_file: + break; + case cm_cert_storage_nssdb: +- if (strcmp(cert_nickname, e->cm_cert_nickname) != 0) { ++ if ((e->cm_cert_nickname == NULL) || strcmp(cert_nickname, e->cm_cert_nickname) != 0) { + continue; + } + break; +-- +2.31.1 + diff --git a/0006-Display-not_before-in-getcert-output.patch b/0006-Display-not_before-in-getcert-output.patch new file mode 100644 index 0000000..dff0f8e --- /dev/null +++ b/0006-Display-not_before-in-getcert-output.patch @@ -0,0 +1,386 @@ +From 84d575da7516cae1ee94099317cf0f8fae2c7ea1 Mon Sep 17 00:00:00 2001 +From: Rob Crittenden +Date: Thu, 8 Apr 2021 14:07:22 -0400 +Subject: [PATCH] Display not_before in getcert output + +Including not_before can help with troubleshooting +renewal problems and if time needs to be reversed +helping identify the maximum one can go back. + +https://bugzilla.redhat.com/show_bug.cgi?id=1940261 + +Signed-off-by: Rob Crittenden +--- + src/getcert.c | 21 ++++- + src/tdbush.c | 10 ++- + src/tdbusm-check.c | 32 ++++++++ + src/tdbusm.c | 150 ++++++++++++++++++++++++++++++++++++ + src/tdbusm.h | 9 +++ + tests/028-dbus/expected.out | 4 +- + tests/028-dbus/run.sh | 1 + + 7 files changed, 220 insertions(+), 7 deletions(-) + +diff --git a/src/getcert.c b/src/getcert.c +index 078f5aa1..4afafcb1 100644 +--- a/src/getcert.c ++++ b/src/getcert.c +@@ -3389,7 +3389,7 @@ list(const char *argv0, int argc, const char **argv) + const char *capath, *request; + dbus_bool_t b; + char *s1, *s2, *s3, *s4, *s5, *s6; +- long n1, n2; ++ long n1, n2, n3; + char **as, **as1, **as2, **as3, **as4, **as5, t[25]; + int requests_only = 0, tracking_only = 0, verbose = 0, c, i, j; + unsigned int k; +@@ -3754,10 +3754,10 @@ list(const char *argv0, int argc, const char **argv) + /* Information from the certificate. */ + rep = query_rep(bus, requests[i], CM_DBUS_REQUEST_INTERFACE, + "get_cert_info", verbose); +- if (cm_tdbusm_get_sssnasasasnas(rep, globals.tctx, ++ if (cm_tdbusm_get_sssnasasasnasn(rep, globals.tctx, + &s1, &s2, &s3, &n1, + &as1, &as2, &as3, +- &n2, &as4) != 0) { ++ &n2, &as4, &n3) != 0) { + printf(_("Error parsing server response.\n")); + exit(1); + } +@@ -3768,6 +3768,21 @@ list(const char *argv0, int argc, const char **argv) + printf(_("\tissuer: %s\n"), s1); + printf(_("\tsubject: %s\n"), s3); + when = _("unknown"); ++ if (n3 != 0) { ++ if (force_utc) { ++ when = cm_store_timestamp_from_time_for_display(n3, t); ++ printf(_("\tissued: %s\n"), when); ++ } else { ++ when = cm_store_local_timestamp_from_time_for_display(n3); ++ if (when != NULL) { ++ printf(_("\tissued: %s\n"), when); ++ free(when); ++ } ++ } ++ } else { ++ printf(_("\tissued: %s\n"), when); ++ } ++ when = _("unknown"); + if (n1 != 0) { + if (force_utc) { + when = cm_store_timestamp_from_time_for_display(n1, t); +diff --git a/src/tdbush.c b/src/tdbush.c +index 3587f84f..6fc1b4be 100644 +--- a/src/tdbush.c ++++ b/src/tdbush.c +@@ -2701,7 +2701,7 @@ request_get_cert_info(DBusConnection *conn, DBusMessage *msg, + rep = dbus_message_new_method_return(msg); + if (rep != NULL) { + eku = eku_splitv(entry, entry->cm_cert_eku); +- cm_tdbusm_set_sssnasasasnas(rep, ++ cm_tdbusm_set_sssnasasasnasn(rep, + entry->cm_cert_issuer, + entry->cm_cert_serial, + entry->cm_cert_subject, +@@ -2710,7 +2710,8 @@ request_get_cert_info(DBusConnection *conn, DBusMessage *msg, + (const char **) entry->cm_cert_hostname, + (const char **) entry->cm_cert_principal, + ku_from_string(entry->cm_cert_ku), +- (const char **) eku); ++ (const char **) eku, ++ entry->cm_cert_not_before); + dbus_connection_send(conn, rep, NULL); + dbus_message_unref(rep); + talloc_free(eku); +@@ -6563,7 +6564,10 @@ cm_tdbush_iface_request(void) + DBUS_TYPE_ARRAY_AS_STRING + DBUS_TYPE_STRING_AS_STRING, + cm_tdbush_method_arg_out, +- NULL))))))))), ++ make_method_arg("not_before", ++ DBUS_TYPE_INT64_AS_STRING, ++ cm_tdbush_method_arg_out, ++ NULL)))))))))), + NULL), + make_interface_item(cm_tdbush_interface_property, + make_property(CM_DBUS_PROP_CERT_ISSUER, +diff --git a/src/tdbusm-check.c b/src/tdbusm-check.c +index 385b1849..31880732 100644 +--- a/src/tdbusm-check.c ++++ b/src/tdbusm-check.c +@@ -539,6 +539,38 @@ get_sssnasasasnas(DBusMessage *rep, int msgid) + return ret; + } + static int ++get_sssnasasasnasn(DBusMessage *rep, int msgid) ++{ ++ int ret, i; ++ long n1, n2, n3; ++ char *s1, *s2, *s3, **as1, **as2, **as3, **as4; ++ ++ ret = cm_tdbusm_get_sssnasasasnasn(rep, NULL, ++ &s1, &s2, &s3, &n1, ++ &as1, &as2, &as3, &n2, &as4, &n3); ++ if (ret == 0) { ++ printf("Message %d - s:%s,s:%s,s:%s," "n:%ld,[", ++ msgid, s1, s2, s3, n1); ++ for (i = 0; (as1 != NULL) && (as1[i] != NULL); i++) { ++ printf("%ss:%s", i > 0 ? "," : "", as1[i]); ++ } ++ printf("],["); ++ for (i = 0; (as2 != NULL) && (as2[i] != NULL); i++) { ++ printf("%ss:%s", i > 0 ? "," : "", as2[i]); ++ } ++ printf("],["); ++ for (i = 0; (as3 != NULL) && (as3[i] != NULL); i++) { ++ printf("%ss:%s", i > 0 ? "," : "", as3[i]); ++ } ++ printf("],n:%ld,n:%ld,[", n2, n3); ++ for (i = 0; (as4 != NULL) && (as4[i] != NULL); i++) { ++ printf("%ss:%s", i > 0 ? "," : "", as4[i]); ++ } ++ printf("]\n"); ++ } ++ return ret; ++} ++static int + get_sasasasnas(DBusMessage *rep, int msgid) + { + int ret, i; +diff --git a/src/tdbusm.c b/src/tdbusm.c +index bc39e1d4..24e03e4c 100644 +--- a/src/tdbusm.c ++++ b/src/tdbusm.c +@@ -935,6 +935,105 @@ cm_tdbusm_get_sssnasasasnas(DBusMessage *msg, void *parent, + return 0; + } + ++int ++cm_tdbusm_get_sssnasasasnasn(DBusMessage *msg, void *parent, ++ char **s1, char **s2, char **s3, long *n1, ++ char ***as1, char ***as2, char ***as3, ++ long *n2, char ***as4, long *n3) ++{ ++ DBusError err; ++ char **tmp1, **tmp2, **tmp3, **tmp4; ++ int64_t i641, i642, i643; ++ int32_t i321, i322, i323; ++ int16_t i161, i162, i163; ++ int i, j, k, l; ++ *s1 = NULL; ++ *s2 = NULL; ++ *s3 = NULL; ++ *as1 = NULL; ++ *as2 = NULL; ++ *as3 = NULL; ++ *as4 = NULL; ++ dbus_error_init(&err); ++ if (!dbus_message_get_args(msg, &err, ++ DBUS_TYPE_STRING, s1, ++ DBUS_TYPE_STRING, s2, ++ DBUS_TYPE_STRING, s3, ++ DBUS_TYPE_INT64, &i641, ++ DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &tmp1, &i, ++ DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &tmp2, &j, ++ DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &tmp3, &k, ++ DBUS_TYPE_INT64, &i642, ++ DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &tmp4, &l, ++ DBUS_TYPE_INT64, &i643, ++ DBUS_TYPE_INVALID)) { ++ if (dbus_error_is_set(&err)) { ++ dbus_error_free(&err); ++ dbus_error_init(&err); ++ } ++ if (!dbus_message_get_args(msg, &err, ++ DBUS_TYPE_STRING, s1, ++ DBUS_TYPE_STRING, s2, ++ DBUS_TYPE_STRING, s3, ++ DBUS_TYPE_INT32, &i321, ++ DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, ++ &tmp1, &i, ++ DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, ++ &tmp2, &j, ++ DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, ++ &tmp3, &k, ++ DBUS_TYPE_INT32, &i322, ++ DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, ++ &tmp4, &l, ++ DBUS_TYPE_INT32, &i323, ++ DBUS_TYPE_INVALID)) { ++ if (dbus_error_is_set(&err)) { ++ dbus_error_free(&err); ++ dbus_error_init(&err); ++ } ++ if (!dbus_message_get_args(msg, &err, ++ DBUS_TYPE_STRING, s1, ++ DBUS_TYPE_STRING, s2, ++ DBUS_TYPE_STRING, s3, ++ DBUS_TYPE_INT16, &i161, ++ DBUS_TYPE_ARRAY, ++ DBUS_TYPE_STRING, &tmp1, &i, ++ DBUS_TYPE_ARRAY, ++ DBUS_TYPE_STRING, &tmp2, &j, ++ DBUS_TYPE_ARRAY, ++ DBUS_TYPE_STRING, &tmp3, &k, ++ DBUS_TYPE_INT16, &i162, ++ DBUS_TYPE_ARRAY, ++ DBUS_TYPE_STRING, &tmp4, &l, ++ DBUS_TYPE_INT16, &i163, ++ DBUS_TYPE_INVALID)) { ++ if (dbus_error_is_set(&err)) { ++ dbus_error_free(&err); ++ dbus_error_init(&err); ++ } ++ return -1; ++ } ++ i321 = i161; ++ i322 = i162; ++ i323 = i163; ++ } ++ i641 = i321; ++ i642 = i322; ++ i643 = i323; ++ } ++ *s1 = *s1 ? talloc_strdup(parent, *s1) : NULL; ++ *s2 = *s2 ? talloc_strdup(parent, *s2) : NULL; ++ *s3 = *s3 ? talloc_strdup(parent, *s3) : NULL; ++ *n1 = i641; ++ *n2 = i642; ++ *n3 = i643; ++ *as1 = cm_tdbusm_take_dbus_string_array(parent, tmp1, i); ++ *as2 = cm_tdbusm_take_dbus_string_array(parent, tmp2, j); ++ *as3 = cm_tdbusm_take_dbus_string_array(parent, tmp3, k); ++ *as4 = cm_tdbusm_take_dbus_string_array(parent, tmp4, l); ++ return 0; ++} ++ + int + cm_tdbusm_get_sasasasnas(DBusMessage *msg, void *parent, char **s, + char ***as1, char ***as2, char ***as3, +@@ -1856,6 +1955,57 @@ cm_tdbusm_set_sssnasasasnas(DBusMessage *msg, + } + } + ++int ++cm_tdbusm_set_sssnasasasnasn(DBusMessage *msg, ++ const char *s1, const char *s2, const char *s3, ++ long n1, const char **as1, const char **as2, ++ const char **as3, long n2, const char **as4, ++ long n3) ++{ ++ int64_t i1 = n1, i2 = n2, i3 = n3; ++ if (s1 == NULL) { ++ s1 = empty_string; ++ } ++ if (s2 == NULL) { ++ s2 = empty_string; ++ } ++ if (s3 == NULL) { ++ s3 = empty_string; ++ } ++ if (as1 == NULL) { ++ as1 = empty_string_array; ++ } ++ if (as2 == NULL) { ++ as2 = empty_string_array; ++ } ++ if (as3 == NULL) { ++ as3 = empty_string_array; ++ } ++ if (as4 == NULL) { ++ as4 = empty_string_array; ++ } ++ if (dbus_message_append_args(msg, ++ DBUS_TYPE_STRING, &s1, ++ DBUS_TYPE_STRING, &s2, ++ DBUS_TYPE_STRING, &s3, ++ DBUS_TYPE_INT64, &i1, ++ DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, ++ &as1, cm_tdbusm_array_length(as1), ++ DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, ++ &as2, cm_tdbusm_array_length(as2), ++ DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, ++ &as3, cm_tdbusm_array_length(as3), ++ DBUS_TYPE_INT64, &i2, ++ DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, ++ &as4, cm_tdbusm_array_length(as4), ++ DBUS_TYPE_INT64, &i3, ++ DBUS_TYPE_INVALID)) { ++ return 0; ++ } else { ++ return -1; ++ } ++} ++ + int + cm_tdbusm_set_sasasasnas(DBusMessage *msg, const char *s, + const char **as1, const char **as2, +diff --git a/src/tdbusm.h b/src/tdbusm.h +index fe021eff..250a9b0a 100644 +--- a/src/tdbusm.h ++++ b/src/tdbusm.h +@@ -55,6 +55,10 @@ int cm_tdbusm_get_sssnasasasnas(DBusMessage *msg, void *parent, + char **s1, char **s2, char **s3, long *n1, + char ***as1, char ***as2, + char ***as3, long *n2, char ***as4); ++int cm_tdbusm_get_sssnasasasnasn(DBusMessage *msg, void *parent, ++ char **s1, char **s2, char **s3, long *n1, ++ char ***as1, char ***as2, ++ char ***as3, long *n2, char ***as4, long *n3); + int cm_tdbusm_get_sasasasnas(DBusMessage *msg, void *parent, + char **s, + char ***as1, char ***as2, +@@ -124,6 +128,11 @@ int cm_tdbusm_set_sssnasasasnas(DBusMessage *msg, + const char *s3, long n1, + const char **as1, const char **as2, + const char **as3, long n2, const char **as4); ++int cm_tdbusm_set_sssnasasasnasn(DBusMessage *msg, ++ const char *s1, const char *s2, ++ const char *s3, long n1, ++ const char **as1, const char **as2, ++ const char **as3, long n2, const char **as4, long n3); + int cm_tdbusm_set_sasasasnas(DBusMessage *msg, + const char *s, + const char **as1, const char **as2, +diff --git a/tests/028-dbus/expected.out b/tests/028-dbus/expected.out +index ca7de34f..4cecbe15 100644 +--- a/tests/028-dbus/expected.out ++++ b/tests/028-dbus/expected.out +@@ -11,6 +11,7 @@ Request ID 'Buddy': + CA: local + issuer: CN=$UUID,CN=Local Signing Authority + subject: CN=localhost ++ issued: sometime + expires: sometime + dns: localhost + principal name: host/localhost@LOCALHOST +@@ -269,6 +270,7 @@ OK + + + ++ + + + +@@ -430,7 +432,7 @@ Buddy + + + [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_cert_info ] +-(dbus.String('CN=$UUID,CN=Local Signing Authority'), dbus.String('$UUID'), dbus.String('CN=localhost'), dbus.Int64(tomorrow), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([dbus.String('localhost')], signature=dbus.Signature('s')), dbus.Array([dbus.String('host/localhost@LOCALHOST')], signature=dbus.Signature('s')), dbus.Int64(9), dbus.Array([dbus.String('1.3.6.1.5.5.7.3.1')], signature=dbus.Signature('s'))) ++(dbus.String('CN=$UUID,CN=Local Signing Authority'), dbus.String('$UUID'), dbus.String('CN=localhost'), dbus.Int64(tomorrow), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([dbus.String('localhost')], signature=dbus.Signature('s')), dbus.Array([dbus.String('host/localhost@LOCALHOST')], signature=dbus.Signature('s')), dbus.Int64(9), dbus.Array([dbus.String('1.3.6.1.5.5.7.3.1')], signature=dbus.Signature('s')), dbus.Int64(recently)) + + [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_cert_last_checked ] + recently +diff --git a/tests/028-dbus/run.sh b/tests/028-dbus/run.sh +index d0be6ad8..a457834f 100755 +--- a/tests/028-dbus/run.sh ++++ b/tests/028-dbus/run.sh +@@ -42,5 +42,6 @@ sed -r -e 's,CN=........-........-........-........,CN=$UUID,g' \ + -e '/^-----BEGIN/,/^-----END/d' \ + -e "s|$libexecdir|\$libexecdir|g" \ + -e "s|$tmpdir|\$tmpdir|g" \ ++ -e "s|issued:.*|issued: sometime|g" \ + -e "s|expires:.*|expires: sometime|g" \ + -e "s|'(00)?[0-9a-fA-F]{32}|'"'$UUID|g' \ +-- +2.31.1 + diff --git a/0007-Fix-file-descriptor-leak-when-executing-CA-helpers.patch b/0007-Fix-file-descriptor-leak-when-executing-CA-helpers.patch new file mode 100644 index 0000000..2a7925d --- /dev/null +++ b/0007-Fix-file-descriptor-leak-when-executing-CA-helpers.patch @@ -0,0 +1,40 @@ +From f9c774f737a060b355533c215d7443b9865992a0 Mon Sep 17 00:00:00 2001 +From: Rob Crittenden +Date: Thu, 12 Aug 2021 16:26:09 -0400 +Subject: [PATCH] Fix file descriptor leak when executing CA helpers + +cm_cadata_start_generic() creates a pipe. One half is passed +to fetch(), the function that does all helper calls, +via the cm_cadata_state variable ret. The other half is the +reader and is used to detect execution errors. There is a pair +of write/read on this descriptor which on error would be the +errno. + +This second half wasn't being closed after reading to test for +errors. + +https://bugzilla.redhat.com/show_bug.cgi?id=1992439 + +Signed-off-by: Rob Crittenden +--- + src/cadata.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/cadata.c b/src/cadata.c +index 3e916c9..d851b9e 100644 +--- a/src/cadata.c ++++ b/src/cadata.c +@@ -772,8 +772,10 @@ cm_cadata_start_generic(struct cm_store_ca *ca, const char *op, + cm_log(1, "Error running enrollment helper \"%s\": %s.\n", + ca->cm_ca_external_helper, strerror(u)); + talloc_free(ret); ++ close(error_fd[0]); + return NULL; + } ++ close(error_fd[0]); + return ret; + } + +-- +2.31.1 + diff --git a/0008-Use-extensions-template-from-NSS.patch b/0008-Use-extensions-template-from-NSS.patch new file mode 100644 index 0000000..99e98c3 --- /dev/null +++ b/0008-Use-extensions-template-from-NSS.patch @@ -0,0 +1,80 @@ +From 9312d1892c611d9f0e814cb915488182da2b76cc Mon Sep 17 00:00:00 2001 +From: Christian Heimes +Date: Mon, 4 Oct 2021 15:55:44 +0200 +Subject: [PATCH] Use extensions template from NSS + +Drop certmonger's custom extension template and use the sequence of X509v3 +extensions template from NSS. + +The certmonger template had a bug that caused certmonger to create CSRs +with invalid DER. It was encoding extension's critical element even for +default value FALSE. + +Fixes: https://pagure.io/certmonger/issue/223 +Signed-off-by: Christian Heimes +--- + src/certext.c | 41 +---------------------------------------- + 1 file changed, 1 insertion(+), 40 deletions(-) + +diff --git a/src/certext.c b/src/certext.c +index be536987..0d66971e 100644 +--- a/src/certext.c ++++ b/src/certext.c +@@ -203,45 +203,6 @@ cm_ms_template_template[] = { + {0, 0, NULL, 0}, + }; + +-/* RFC 5280, 4.1 */ +-const SEC_ASN1Template +-cm_certext_cert_extension_template[] = { +- { +- .kind = SEC_ASN1_SEQUENCE, +- .offset = 0, +- .sub = NULL, +- .size = sizeof(CERTCertExtension), +- }, +- { +- .kind = SEC_ASN1_OBJECT_ID, +- .offset = offsetof(CERTCertExtension, id), +- .sub = NULL, +- .size = sizeof(SECItem), +- }, +- { +- .kind = SEC_ASN1_BOOLEAN, +- .offset = offsetof(CERTCertExtension, critical), +- .sub = NULL, +- .size = sizeof(SECItem), +- }, +- { +- .kind = SEC_ASN1_OCTET_STRING, +- .offset = offsetof(CERTCertExtension, value), +- .sub = NULL, +- .size = sizeof(SECItem), +- }, +- {0, 0, NULL, 0}, +-}; +-const SEC_ASN1Template +-cm_certext_sequence_of_cert_extension_template[] = { +- { +- .kind = SEC_ASN1_SEQUENCE_OF, +- .offset = 0, +- .sub = cm_certext_cert_extension_template, +- .size = sizeof(CERTCertExtension **), +- }, +-}; +- + /* Windows 2000-style UPN */ + static unsigned char oid_ms_upn_name_bytes[] = {0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x14, 0x02, 0x03}; + static const SECOidData oid_ms_upn_name = { +@@ -1960,7 +1921,7 @@ cm_certext_build_csr_extensions(struct cm_store_entry *entry, + /* Encode the sequence. */ + memset(&encoded, 0, sizeof(encoded)); + if (i > 1) { +- template = cm_certext_sequence_of_cert_extension_template; ++ template = CERT_SequenceOfCertExtensionTemplate; + if (SEC_ASN1EncodeItem(arena, &encoded, &exts_ptr, + template) == &encoded) { + *extensions = talloc_memdup(entry, encoded.data, +-- +2.31.1 + diff --git a/0009-Use-implicit-empty-FALSE-for-extensions.patch b/0009-Use-implicit-empty-FALSE-for-extensions.patch new file mode 100644 index 0000000..9264e87 --- /dev/null +++ b/0009-Use-implicit-empty-FALSE-for-extensions.patch @@ -0,0 +1,280 @@ +From e3e4679693efc60bc7a25983909ddfa6883ab2ec Mon Sep 17 00:00:00 2001 +From: Christian Heimes +Date: Mon, 4 Oct 2021 18:52:53 +0200 +Subject: [PATCH] Use implicit, empty FALSE for extensions + +Cemplate had a bug that caused certmonger to create CSRs with invalid DER. +It was encoding extension's critical element even for default value FALSE. + +Fixes: https://pagure.io/certmonger/issue/223 +Signed-off-by: Christian Heimes +--- + src/certext.c | 7 +- + tests/003-csrgen-rsa/expected.out | 82 ++++++++++------------ + tests/003-csrgen/expected.out | 110 +++++++++++++----------------- + 3 files changed, 91 insertions(+), 108 deletions(-) + +diff --git a/src/certext.c b/src/certext.c +index 0d66971e..e5e0b4dc 100644 +--- a/src/certext.c ++++ b/src/certext.c +@@ -1706,9 +1706,12 @@ cm_certext_build_csr_extensions(struct cm_store_entry *entry, + CERTCertExtension ext[13], *exts[14], **exts_ptr; + SECOidData *oid; + SECItem *item, encoded; ++ /* X509v3 extension's critical element has an implicit default, ++ * see https://pagure.io/certmonger/issue/223 ++ */ + SECItem der_false = { +- .len = 1, +- .data = (unsigned char *) "\000", ++ .len = 0, ++ .data = NULL, + }; + SECItem der_true = { + .len = 1, +diff --git a/tests/003-csrgen-rsa/expected.out b/tests/003-csrgen-rsa/expected.out +index def53fe4..0fb88323 100644 +--- a/tests/003-csrgen-rsa/expected.out ++++ b/tests/003-csrgen-rsa/expected.out +@@ -8,8 +8,8 @@ pk12util: PKCS12 EXPORT SUCCESSFUL + 4096 OK. + Signature OK + The last CSR (the one with everything) was: +- 0:d=0 hl=4 l=1413 cons: SEQUENCE +- 4:d=1 hl=4 l=1133 cons: SEQUENCE ++ 0:d=0 hl=4 l=1389 cons: SEQUENCE ++ 4:d=1 hl=4 l=1109 cons: SEQUENCE + 8:d=2 hl=2 l= 1 prim: INTEGER :00 + 11:d=2 hl=2 l= 22 cons: SEQUENCE + 13:d=3 hl=2 l= 20 cons: SET +@@ -21,7 +21,7 @@ The last CSR (the one with everything) was: + 41:d=4 hl=2 l= 9 prim: OBJECT :rsaEncryption + 52:d=4 hl=2 l= 0 prim: NULL + 54:d=3 hl=4 l= 271 prim: BIT STRING +- 329:d=2 hl=4 l= 808 cons: cont [ 0 ] ++ 329:d=2 hl=4 l= 784 cons: cont [ 0 ] + 333:d=3 hl=2 l= 52 cons: SEQUENCE + 335:d=4 hl=2 l= 9 prim: OBJECT :challengePassword + 346:d=4 hl=2 l= 39 cons: SET +@@ -30,48 +30,40 @@ The last CSR (the one with everything) was: + 389:d=4 hl=2 l= 9 prim: OBJECT :friendlyName + 400:d=4 hl=2 l= 48 cons: SET + 402:d=5 hl=2 l= 46 prim: BMPSTRING +- 450:d=3 hl=4 l= 687 cons: SEQUENCE ++ 450:d=3 hl=4 l= 663 cons: SEQUENCE + 454:d=4 hl=2 l= 9 prim: OBJECT :Extension Request +- 465:d=4 hl=4 l= 672 cons: SET +- 469:d=5 hl=4 l= 668 cons: SEQUENCE +- 473:d=6 hl=2 l= 14 cons: SEQUENCE ++ 465:d=4 hl=4 l= 648 cons: SET ++ 469:d=5 hl=4 l= 644 cons: SEQUENCE ++ 473:d=6 hl=2 l= 11 cons: SEQUENCE + 475:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Key Usage +- 480:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 483:d=7 hl=2 l= 4 prim: OCTET STRING [HEX DUMP]:030205E0 +- 489:d=6 hl=4 l= 264 cons: SEQUENCE +- 493:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Subject Alternative Name +- 498:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 501:d=7 hl=3 l= 253 prim: OCTET STRING [HEX DUMP]:3081FA82096C6F63616C686F737482156C6F63616C686F73742E6C6F63616C646F6D61696E810E726F6F74406C6F63616C686F7374811A726F6F74406C6F63616C686F73742E6C6F63616C646F6D61696EA020060A2B060104018237140203A0120C10726F6F74404558414D504C452E434F4DA02E06062B0601050202A0243022A00D1B0B4558414D504C452E434F4DA111300FA003020101A10830061B04726F6F74A024060A2B060104018237140203A0160C14726F6F7440464F4F2E4558414D504C452E434F4DA03206062B0601050202A0283026A0111B0F464F4F2E4558414D504C452E434F4DA111300FA003020101A10830061B04726F6F74 +- 757:d=6 hl=2 l= 32 cons: SEQUENCE +- 759:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Extended Key Usage +- 764:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 767:d=7 hl=2 l= 22 prim: OCTET STRING [HEX DUMP]:301406082B0601050507030206082B06010505070304 +- 791:d=6 hl=2 l= 18 cons: SEQUENCE +- 793:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Basic Constraints +- 798:d=7 hl=2 l= 1 prim: BOOLEAN :255 +- 801:d=7 hl=2 l= 8 prim: OCTET STRING [HEX DUMP]:30060101FF020103 +- 811:d=6 hl=2 l= 34 cons: SEQUENCE +- 813:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Authority Key Identifier +- 818:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 821:d=7 hl=2 l= 24 prim: OCTET STRING [HEX DUMP]:30168014A9993E364706816ABA3E25717850C26C9CD0D89D +- 847:d=6 hl=2 l= 32 cons: SEQUENCE +- 849:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Subject Key Identifier +- 854:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 857:d=7 hl=2 l= 22 prim: OCTET STRING [HEX DUMP]:0414A9993E364706816ABA3E25717850C26C9CD0D89D +- 881:d=6 hl=2 l= 107 cons: SEQUENCE +- 883:d=7 hl=2 l= 8 prim: OBJECT :Authority Information Access +- 893:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 896:d=7 hl=2 l= 92 prim: OCTET STRING [HEX DUMP]:305A302B06082B06010505073001861F687474703A2F2F6F6373702D312E6578616D706C652E636F6D3A3132333435302B06082B06010505073001861F687474703A2F2F6F6373702D322E6578616D706C652E636F6D3A3132333435 +- 990:d=6 hl=2 l= 96 cons: SEQUENCE +- 992:d=7 hl=2 l= 3 prim: OBJECT :X509v3 CRL Distribution Points +- 997:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 1000:d=7 hl=2 l= 86 prim: OCTET STRING [HEX DUMP]:30543028A026A0248622687474703A2F2F63726C2D312E6578616D706C652E636F6D3A31323334352F6765743028A026A0248622687474703A2F2F63726C2D322E6578616D706C652E636F6D3A31323334352F676574 +- 1088:d=6 hl=2 l= 51 cons: SEQUENCE +- 1090:d=7 hl=2 l= 9 prim: OBJECT :Netscape Comment +- 1101:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 1104:d=7 hl=2 l= 35 prim: OCTET STRING [HEX DUMP]:1621636572746D6F6E6765722067656E65726174656420746869732072657175657374 +- 1141:d=1 hl=2 l= 13 cons: SEQUENCE +- 1143:d=2 hl=2 l= 9 prim: OBJECT :sha256WithRSAEncryption +- 1154:d=2 hl=2 l= 0 prim: NULL +- 1156:d=1 hl=4 l= 257 prim: BIT STRING ++ 480:d=7 hl=2 l= 4 prim: OCTET STRING [HEX DUMP]:030205E0 ++ 486:d=6 hl=4 l= 261 cons: SEQUENCE ++ 490:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Subject Alternative Name ++ 495:d=7 hl=3 l= 253 prim: OCTET STRING [HEX DUMP]:3081FA82096C6F63616C686F737482156C6F63616C686F73742E6C6F63616C646F6D61696E810E726F6F74406C6F63616C686F7374811A726F6F74406C6F63616C686F73742E6C6F63616C646F6D61696EA020060A2B060104018237140203A0120C10726F6F74404558414D504C452E434F4DA02E06062B0601050202A0243022A00D1B0B4558414D504C452E434F4DA111300FA003020101A10830061B04726F6F74A024060A2B060104018237140203A0160C14726F6F7440464F4F2E4558414D504C452E434F4DA03206062B0601050202A0283026A0111B0F464F4F2E4558414D504C452E434F4DA111300FA003020101A10830061B04726F6F74 ++ 751:d=6 hl=2 l= 29 cons: SEQUENCE ++ 753:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Extended Key Usage ++ 758:d=7 hl=2 l= 22 prim: OCTET STRING [HEX DUMP]:301406082B0601050507030206082B06010505070304 ++ 782:d=6 hl=2 l= 18 cons: SEQUENCE ++ 784:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Basic Constraints ++ 789:d=7 hl=2 l= 1 prim: BOOLEAN :255 ++ 792:d=7 hl=2 l= 8 prim: OCTET STRING [HEX DUMP]:30060101FF020103 ++ 802:d=6 hl=2 l= 31 cons: SEQUENCE ++ 804:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Authority Key Identifier ++ 809:d=7 hl=2 l= 24 prim: OCTET STRING [HEX DUMP]:30168014A9993E364706816ABA3E25717850C26C9CD0D89D ++ 835:d=6 hl=2 l= 29 cons: SEQUENCE ++ 837:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Subject Key Identifier ++ 842:d=7 hl=2 l= 22 prim: OCTET STRING [HEX DUMP]:0414A9993E364706816ABA3E25717850C26C9CD0D89D ++ 866:d=6 hl=2 l= 104 cons: SEQUENCE ++ 868:d=7 hl=2 l= 8 prim: OBJECT :Authority Information Access ++ 878:d=7 hl=2 l= 92 prim: OCTET STRING [HEX DUMP]:305A302B06082B06010505073001861F687474703A2F2F6F6373702D312E6578616D706C652E636F6D3A3132333435302B06082B06010505073001861F687474703A2F2F6F6373702D322E6578616D706C652E636F6D3A3132333435 ++ 972:d=6 hl=2 l= 93 cons: SEQUENCE ++ 974:d=7 hl=2 l= 3 prim: OBJECT :X509v3 CRL Distribution Points ++ 979:d=7 hl=2 l= 86 prim: OCTET STRING [HEX DUMP]:30543028A026A0248622687474703A2F2F63726C2D312E6578616D706C652E636F6D3A31323334352F6765743028A026A0248622687474703A2F2F63726C2D322E6578616D706C652E636F6D3A31323334352F676574 ++ 1067:d=6 hl=2 l= 48 cons: SEQUENCE ++ 1069:d=7 hl=2 l= 9 prim: OBJECT :Netscape Comment ++ 1080:d=7 hl=2 l= 35 prim: OCTET STRING [HEX DUMP]:1621636572746D6F6E6765722067656E65726174656420746869732072657175657374 ++ 1117:d=1 hl=2 l= 13 cons: SEQUENCE ++ 1119:d=2 hl=2 l= 9 prim: OBJECT :sha256WithRSAEncryption ++ 1130:d=2 hl=2 l= 0 prim: NULL ++ 1132:d=1 hl=4 l= 257 prim: BIT STRING + Test complete (32 combinations). +diff --git a/tests/003-csrgen/expected.out b/tests/003-csrgen/expected.out +index 46e010cf..1081a678 100644 +--- a/tests/003-csrgen/expected.out ++++ b/tests/003-csrgen/expected.out +@@ -11,8 +11,8 @@ Signature OK + minicert.openssl.4096.pem: OK + 4096 OK. + The last CSR (the one with everything) was: +- 0:d=0 hl=4 l=1635 cons: SEQUENCE +- 4:d=1 hl=4 l=1355 cons: SEQUENCE ++ 0:d=0 hl=4 l=1599 cons: SEQUENCE ++ 4:d=1 hl=4 l=1319 cons: SEQUENCE + 8:d=2 hl=2 l= 1 prim: INTEGER :00 + 11:d=2 hl=2 l= 22 cons: SEQUENCE + 13:d=3 hl=2 l= 20 cons: SET +@@ -24,7 +24,7 @@ The last CSR (the one with everything) was: + 41:d=4 hl=2 l= 9 prim: OBJECT :rsaEncryption + 52:d=4 hl=2 l= 0 prim: NULL + 54:d=3 hl=4 l= 271 prim: BIT STRING +- 329:d=2 hl=4 l=1030 cons: cont [ 0 ] ++ 329:d=2 hl=4 l= 994 cons: cont [ 0 ] + 333:d=3 hl=2 l= 52 cons: SEQUENCE + 335:d=4 hl=2 l= 9 prim: OBJECT :challengePassword + 346:d=4 hl=2 l= 39 cons: SET +@@ -33,64 +33,52 @@ The last CSR (the one with everything) was: + 389:d=4 hl=2 l= 9 prim: OBJECT :friendlyName + 400:d=4 hl=2 l= 48 cons: SET + 402:d=5 hl=2 l= 46 prim: BMPSTRING +- 450:d=3 hl=4 l= 909 cons: SEQUENCE ++ 450:d=3 hl=4 l= 873 cons: SEQUENCE + 454:d=4 hl=2 l= 9 prim: OBJECT :Extension Request +- 465:d=4 hl=4 l= 894 cons: SET +- 469:d=5 hl=4 l= 890 cons: SEQUENCE +- 473:d=6 hl=2 l= 14 cons: SEQUENCE ++ 465:d=4 hl=4 l= 858 cons: SET ++ 469:d=5 hl=4 l= 854 cons: SEQUENCE ++ 473:d=6 hl=2 l= 11 cons: SEQUENCE + 475:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Key Usage +- 480:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 483:d=7 hl=2 l= 4 prim: OCTET STRING [HEX DUMP]:030205E0 +- 489:d=6 hl=4 l= 290 cons: SEQUENCE +- 493:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Subject Alternative Name +- 498:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 501:d=7 hl=4 l= 278 prim: OCTET STRING [HEX DUMP]:3082011282096C6F63616C686F737482156C6F63616C686F73742E6C6F63616C646F6D61696E810E726F6F74406C6F63616C686F7374811A726F6F74406C6F63616C686F73742E6C6F63616C646F6D61696EA020060A2B060104018237140203A0120C10726F6F74404558414D504C452E434F4DA02E06062B0601050202A0243022A00D1B0B4558414D504C452E434F4DA111300FA003020101A10830061B04726F6F74A024060A2B060104018237140203A0160C14726F6F7440464F4F2E4558414D504C452E434F4DA03206062B0601050202A0283026A0111B0F464F4F2E4558414D504C452E434F4DA111300FA003020101A10830061B04726F6F7487047F000001871000000000000000000000000000000001 +- 783:d=6 hl=2 l= 32 cons: SEQUENCE +- 785:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Extended Key Usage +- 790:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 793:d=7 hl=2 l= 22 prim: OCTET STRING [HEX DUMP]:301406082B0601050507030206082B06010505070304 +- 817:d=6 hl=2 l= 18 cons: SEQUENCE +- 819:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Basic Constraints +- 824:d=7 hl=2 l= 1 prim: BOOLEAN :255 +- 827:d=7 hl=2 l= 8 prim: OCTET STRING [HEX DUMP]:30060101FF020103 +- 837:d=6 hl=2 l= 34 cons: SEQUENCE +- 839:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Authority Key Identifier +- 844:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 847:d=7 hl=2 l= 24 prim: OCTET STRING [HEX DUMP]:30168014A9993E364706816ABA3E25717850C26C9CD0D89D +- 873:d=6 hl=2 l= 32 cons: SEQUENCE +- 875:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Subject Key Identifier +- 880:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 883:d=7 hl=2 l= 22 prim: OCTET STRING [HEX DUMP]:0414A9993E364706816ABA3E25717850C26C9CD0D89D +- 907:d=6 hl=2 l= 107 cons: SEQUENCE +- 909:d=7 hl=2 l= 8 prim: OBJECT :Authority Information Access +- 919:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 922:d=7 hl=2 l= 92 prim: OCTET STRING [HEX DUMP]:305A302B06082B06010505073001861F687474703A2F2F6F6373702D312E6578616D706C652E636F6D3A3132333435302B06082B06010505073001861F687474703A2F2F6F6373702D322E6578616D706C652E636F6D3A3132333435 +- 1016:d=6 hl=2 l= 96 cons: SEQUENCE +- 1018:d=7 hl=2 l= 3 prim: OBJECT :X509v3 CRL Distribution Points +- 1023:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 1026:d=7 hl=2 l= 86 prim: OCTET STRING [HEX DUMP]:30543028A026A0248622687474703A2F2F63726C2D312E6578616D706C652E636F6D3A31323334352F6765743028A026A0248622687474703A2F2F63726C2D322E6578616D706C652E636F6D3A31323334352F676574 +- 1114:d=6 hl=2 l= 106 cons: SEQUENCE +- 1116:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Freshest CRL +- 1121:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 1124:d=7 hl=2 l= 96 prim: OCTET STRING [HEX DUMP]:305E302DA02BA0298627687474703A2F2F63726C2D312E6578616D706C652E636F6D3A31323334352F67657464656C7461302DA02BA0298627687474703A2F2F63726C2D322E6578616D706C652E636F6D3A31323334352F67657464656C7461 +- 1222:d=6 hl=2 l= 51 cons: SEQUENCE +- 1224:d=7 hl=2 l= 9 prim: OBJECT :Netscape Comment +- 1235:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 1238:d=7 hl=2 l= 35 prim: OCTET STRING [HEX DUMP]:1621636572746D6F6E6765722067656E65726174656420746869732072657175657374 +- 1275:d=6 hl=2 l= 18 cons: SEQUENCE +- 1277:d=7 hl=2 l= 9 prim: OBJECT :OCSP No Check +- 1288:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 1291:d=7 hl=2 l= 2 prim: OCTET STRING [HEX DUMP]:0500 +- 1295:d=6 hl=2 l= 44 cons: SEQUENCE +- 1297:d=7 hl=2 l= 9 prim: OBJECT :1.3.6.1.4.1.311.20.2 +- 1308:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 1311:d=7 hl=2 l= 28 prim: OCTET STRING [HEX DUMP]:1E1A006300610041007700650073006F006D00650043006500720074 +- 1341:d=6 hl=2 l= 20 cons: SEQUENCE +- 1343:d=7 hl=2 l= 9 prim: OBJECT :Netscape Cert Type +- 1354:d=7 hl=2 l= 1 prim: BOOLEAN :0 +- 1357:d=7 hl=2 l= 4 prim: OCTET STRING [HEX DUMP]:030205A0 +- 1363:d=1 hl=2 l= 13 cons: SEQUENCE +- 1365:d=2 hl=2 l= 9 prim: OBJECT :sha256WithRSAEncryption +- 1376:d=2 hl=2 l= 0 prim: NULL +- 1378:d=1 hl=4 l= 257 prim: BIT STRING ++ 480:d=7 hl=2 l= 4 prim: OCTET STRING [HEX DUMP]:030205E0 ++ 486:d=6 hl=4 l= 287 cons: SEQUENCE ++ 490:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Subject Alternative Name ++ 495:d=7 hl=4 l= 278 prim: OCTET STRING [HEX DUMP]:3082011282096C6F63616C686F737482156C6F63616C686F73742E6C6F63616C646F6D61696E810E726F6F74406C6F63616C686F7374811A726F6F74406C6F63616C686F73742E6C6F63616C646F6D61696EA020060A2B060104018237140203A0120C10726F6F74404558414D504C452E434F4DA02E06062B0601050202A0243022A00D1B0B4558414D504C452E434F4DA111300FA003020101A10830061B04726F6F74A024060A2B060104018237140203A0160C14726F6F7440464F4F2E4558414D504C452E434F4DA03206062B0601050202A0283026A0111B0F464F4F2E4558414D504C452E434F4DA111300FA003020101A10830061B04726F6F7487047F000001871000000000000000000000000000000001 ++ 777:d=6 hl=2 l= 29 cons: SEQUENCE ++ 779:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Extended Key Usage ++ 784:d=7 hl=2 l= 22 prim: OCTET STRING [HEX DUMP]:301406082B0601050507030206082B06010505070304 ++ 808:d=6 hl=2 l= 18 cons: SEQUENCE ++ 810:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Basic Constraints ++ 815:d=7 hl=2 l= 1 prim: BOOLEAN :255 ++ 818:d=7 hl=2 l= 8 prim: OCTET STRING [HEX DUMP]:30060101FF020103 ++ 828:d=6 hl=2 l= 31 cons: SEQUENCE ++ 830:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Authority Key Identifier ++ 835:d=7 hl=2 l= 24 prim: OCTET STRING [HEX DUMP]:30168014A9993E364706816ABA3E25717850C26C9CD0D89D ++ 861:d=6 hl=2 l= 29 cons: SEQUENCE ++ 863:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Subject Key Identifier ++ 868:d=7 hl=2 l= 22 prim: OCTET STRING [HEX DUMP]:0414A9993E364706816ABA3E25717850C26C9CD0D89D ++ 892:d=6 hl=2 l= 104 cons: SEQUENCE ++ 894:d=7 hl=2 l= 8 prim: OBJECT :Authority Information Access ++ 904:d=7 hl=2 l= 92 prim: OCTET STRING [HEX DUMP]:305A302B06082B06010505073001861F687474703A2F2F6F6373702D312E6578616D706C652E636F6D3A3132333435302B06082B06010505073001861F687474703A2F2F6F6373702D322E6578616D706C652E636F6D3A3132333435 ++ 998:d=6 hl=2 l= 93 cons: SEQUENCE ++ 1000:d=7 hl=2 l= 3 prim: OBJECT :X509v3 CRL Distribution Points ++ 1005:d=7 hl=2 l= 86 prim: OCTET STRING [HEX DUMP]:30543028A026A0248622687474703A2F2F63726C2D312E6578616D706C652E636F6D3A31323334352F6765743028A026A0248622687474703A2F2F63726C2D322E6578616D706C652E636F6D3A31323334352F676574 ++ 1093:d=6 hl=2 l= 103 cons: SEQUENCE ++ 1095:d=7 hl=2 l= 3 prim: OBJECT :X509v3 Freshest CRL ++ 1100:d=7 hl=2 l= 96 prim: OCTET STRING [HEX DUMP]:305E302DA02BA0298627687474703A2F2F63726C2D312E6578616D706C652E636F6D3A31323334352F67657464656C7461302DA02BA0298627687474703A2F2F63726C2D322E6578616D706C652E636F6D3A31323334352F67657464656C7461 ++ 1198:d=6 hl=2 l= 48 cons: SEQUENCE ++ 1200:d=7 hl=2 l= 9 prim: OBJECT :Netscape Comment ++ 1211:d=7 hl=2 l= 35 prim: OCTET STRING [HEX DUMP]:1621636572746D6F6E6765722067656E65726174656420746869732072657175657374 ++ 1248:d=6 hl=2 l= 15 cons: SEQUENCE ++ 1250:d=7 hl=2 l= 9 prim: OBJECT :OCSP No Check ++ 1261:d=7 hl=2 l= 2 prim: OCTET STRING [HEX DUMP]:0500 ++ 1265:d=6 hl=2 l= 41 cons: SEQUENCE ++ 1267:d=7 hl=2 l= 9 prim: OBJECT :1.3.6.1.4.1.311.20.2 ++ 1278:d=7 hl=2 l= 28 prim: OCTET STRING [HEX DUMP]:1E1A006300610041007700650073006F006D00650043006500720074 ++ 1308:d=6 hl=2 l= 17 cons: SEQUENCE ++ 1310:d=7 hl=2 l= 9 prim: OBJECT :Netscape Cert Type ++ 1321:d=7 hl=2 l= 4 prim: OCTET STRING [HEX DUMP]:030205A0 ++ 1327:d=1 hl=2 l= 13 cons: SEQUENCE ++ 1329:d=2 hl=2 l= 9 prim: OBJECT :sha256WithRSAEncryption ++ 1340:d=2 hl=2 l= 0 prim: NULL ++ 1342:d=1 hl=4 l= 257 prim: BIT STRING + Test complete (69 combinations). +-- +2.31.1 + diff --git a/EMPTY b/EMPTY deleted file mode 100644 index 0519ecb..0000000 --- a/EMPTY +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/certmonger.spec b/certmonger.spec new file mode 100644 index 0000000..1132402 --- /dev/null +++ b/certmonger.spec @@ -0,0 +1,1384 @@ +%global systemd 1 +%global sysvinit 0 + +%global systemdsysv 0 + +%global tmpfiles 1 + +%global sysvinitdir %{_initddir} + +%bcond_without xmlrpc + +Name: certmonger +Version: 0.79.13 +Release: 5%{?dist} +Summary: Certificate status monitor and PKI enrollment client + +Group: System Environment/Daemons +License: GPLv3+ +URL: http://pagure.io/certmonger/ +Source0: http://releases.pagure.org/certmonger/certmonger-%{version}.tar.gz + +Patch0001: 0001-Don-t-run-the-002-keygen-tests-when-root.patch +Patch0002: 0002-Revert-Remove-the-certmaster-CA-from-the-028-dbus-te.patch +Patch0003: 0003-Fix-local-CA-to-work-under-FIPS.patch +Patch0004: 0004-Add-SCEP-config-option-to-treat-the-challenge-passwo.patch +Patch0005: 0005-Add-NULL-checks-before-string-compares-when-analyzin.patch +Patch0006: 0006-Display-not_before-in-getcert-output.patch +Patch0007: 0007-Fix-file-descriptor-leak-when-executing-CA-helpers.patch +Patch0008: 0008-Use-extensions-template-from-NSS.patch +Patch0009: 0009-Use-implicit-empty-FALSE-for-extensions.patch + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gettext-devel +BuildRequires: gcc +BuildRequires: openldap-devel +BuildRequires: libidn2-devel +BuildRequires: python3-dbus +BuildRequires: dbus-devel +BuildRequires: nspr-devel +BuildRequires: nss-devel +BuildRequires: openssl-devel +BuildRequires: libuuid-devel +BuildRequires: libtalloc-devel, libtevent-devel +BuildRequires: libcurl-devel +BuildRequires: libxml2-devel +%if %{with xmlrpc} +BuildRequires: xmlrpc-c-devel +%endif +BuildRequires: jansson-devel +# Required for 'make check': +# for diff and cmp +BuildRequires: diffutils +# for expect +BuildRequires: expect +# for certutil and pk12util +BuildRequires: nss-tools +# for openssl +BuildRequires: openssl +# for dbus-launch +BuildRequires: /usr/bin/dbus-launch +# for dos2unix +BuildRequires: /usr/bin/dos2unix +BuildRequires: /usr/bin/unix2dos +# for which +BuildRequires: /usr/bin/which +BuildRequires: popt-devel +# for make check +BuildRequires: python3-devel +BuildRequires: krb5-devel + +# we need a running system bus +Requires: dbus +Requires(post): %{_bindir}/dbus-send + +%if %{systemd} +BuildRequires: systemd-units +Requires(post): systemd-units +Requires(preun): systemd-units, dbus, sed +Requires(postun): systemd-units +%endif + +%if %{systemdsysv} +Requires(post): systemd-sysv +%global systemdsysvsave \ +# Save the current service runlevel info, in case the user wants \ +# to apply the enabled status manually later, by running \ +# "systemd-sysv-convert --apply certmonger". \ +%{_bindir}/systemd-sysv-convert --save certmonger >/dev/null 2>&1 ||: +%else +%global systemdsysvsave %{nil} +%endif + +%if %{sysvinit} +Requires(post): /sbin/chkconfig, /sbin/service +Requires(preun): /sbin/chkconfig, /sbin/service, dbus, sed +%endif + + +%description +Certmonger is a service which is primarily concerned with getting your +system enrolled with a certificate authority (CA) and keeping it enrolled. + +%prep +%autosetup -p1 + +%build +autoreconf -i -f +%configure \ +%if %{systemd} + --enable-systemd \ +%endif +%if %{sysvinit} + --enable-sysvinit=%{sysvinitdir} \ +%endif +%if %{tmpfiles} + --enable-tmpfiles \ +%endif + --with-homedir=/run/certmonger \ +%if %{with xmlrpc} + --with-xmlrpc \ +%endif + --with-tmpdir=/run/certmonger --enable-pie --enable-now +%if %{with xmlrpc} +# For some reason, some versions of xmlrpc-c-config in Fedora and RHEL just +# tell us about libxmlrpc_client, but we need more. Work around. +make %{?_smp_mflags} XMLRPC_LIBS="-lxmlrpc_client -lxmlrpc_util -lxmlrpc" +%else +make %{?_smp_mflags} +%endif + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/certmonger/{cas,requests} +install -m755 -d $RPM_BUILD_ROOT/run/certmonger +%{find_lang} %{name} + +%check +# Seed then openssl RNG if not set +if [ ! -e $HOME/.rnd ] ; then + openssl rand -writerand $HOME/.rnd +fi +make check + +%post +if test $1 -eq 1 ; then + %{_bindir}/dbus-send --system --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig 2>&1 || : +fi +%if %{without xmlrpc} +# remove any existing certmaster CA configuration +if test $1 -gt 1 ; then + %{_bindir}/getcert remove-ca -c certmaster 2>&1 || : +fi +%endif +%if %{systemd} +if test $1 -eq 1 ; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi +%endif +%if %{sysvinit} +/sbin/chkconfig --add certmonger +%endif + +%triggerin -- certmonger < 0.58 +if test $1 -gt 1 ; then + # If the daemon is running, remove knowledge of the dogtag renewer. + objpath=`dbus-send --system --reply-timeout=10000 --dest=org.fedorahosted.certmonger --print-reply=o /org/fedorahosted/certmonger org.fedorahosted.certmonger.find_ca_by_nickname string:dogtag-ipa-renew-agent 2> /dev/null | sed -r 's,^ +,,g' || true` + if test -n "$objpath" ; then + dbus-send --system --dest=org.fedorahosted.certmonger --print-reply /org/fedorahosted/certmonger org.fedorahosted.certmonger.remove_known_ca objpath:"$objpath" >/dev/null 2> /dev/null + fi + # Remove the data file, in case it isn't running. + for cafile in %{_localstatedir}/lib/certmonger/cas/* ; do + if grep -q '^id=dogtag-ipa-renew-agent$' "$cafile" ; then + rm -f "$cafile" + fi + done +fi +exit 0 + +%postun +%if %{systemd} +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +if [ $1 -ge 1 ] ; then + /bin/systemctl try-restart certmonger.service >/dev/null 2>&1 || : +fi +%endif +%if %{sysvinit} +if test $1 -gt 0 ; then + /sbin/service certmonger condrestart 2>&1 > /dev/null +fi +%endif +exit 0 + +%preun +%if %{systemd} +if test $1 -eq 0 ; then + /bin/systemctl --no-reload disable certmonger.service > /dev/null 2>&1 || : + /bin/systemctl stop certmonger.service > /dev/null 2>&1 || : +fi +%endif +%if %{sysvinit} +if test $1 -eq 0 ; then + /sbin/service certmonger stop 2>&1 > /dev/null + /sbin/chkconfig --del certmonger +fi +%endif +exit 0 + +%if %{systemd} +%triggerun -- certmonger < 0.43 +%{systemdsysvsave} +# Do this because the old package's %%postun doesn't know we need to do it. +/sbin/chkconfig --del certmonger >/dev/null 2>&1 || : +# Do this because the old package's %%postun wouldn't have tried. +/bin/systemctl try-restart certmonger.service >/dev/null 2>&1 || : +exit 0 +%endif + +%files -f %{name}.lang +%defattr(-,root,root,-) +%doc README.md LICENSE STATUS doc/*.txt +%config(noreplace) %{_sysconfdir}/dbus-1/system.d/* +%{_datadir}/dbus-1/services/* +%dir %{_sysconfdir}/certmonger +%config(noreplace) %{_sysconfdir}/certmonger/certmonger.conf +%dir /run/certmonger +%{_bindir}/* +%{_sbindir}/certmonger +%{_mandir}/man*/* +%{_libexecdir}/%{name} +%{_localstatedir}/lib/certmonger +%if %{sysvinit} +%{sysvinitdir}/certmonger +%endif +%if %{tmpfiles} +%attr(0644,root,root) %config(noreplace) %{_tmpfilesdir}/certmonger.conf +%endif +%if %{systemd} +%{_unitdir}/* +%{_datadir}/dbus-1/system-services/* +%endif + +%changelog +* Mon Oct 18 2021 Rob Crittenden - 0.79.13-5 +- certmonger creates CSRs with invalid DER syntax for X509v3 extensions + with critical=FALSE (#2012258) + +* Wed Oct 06 2021 Rob Crittenden - 0.79.13-4 +- Certmonger SCEP renewal should not use old challenges (#1577570) +- Certmonger segfault after cert renewal request (#1881500) +- Include certificate NotBefore date in output of the 'getcert list' command + (#1940261) +- Certmonger certificates stuck in NEED_GUIDANCE (#2001079) + +* Wed Apr 28 2021 Rob Crittenden - 0.79.13-3 +- Fix local CA to work under FIPS (#1950132) + +* Tue Nov 10 2020 Rob Crittenden - 0.79.13-2 +- Rebuild with xmlrpc-c support enabled (#1687698) + +* Wed Oct 28 2020 Rob Crittenden - 0.79.13-1 +- Rebase to 0.79.13 (#1891743) + +* Thu Jul 30 2020 Rob Crittenden - 0.79.7-15 +- Replace the previous fix for dbus restarting with PartOf in the + certmonger systemd service file to link the two (#1687698) + +* Tue Jun 2 2020 Rob Crittenden - 0.79.7-14 +- Include &message=CA-IDENT with GetCACaps/GetCACert requests (#1843009) + +* Mon May 18 2020 Rob Crittenden - 0.79.7-13 +- Exit gracefully if dbus is restarted (#1687698) + +* Thu May 14 2020 Rob Crittenden - 0.79.7-12 +- Add long command-line options to man pages and help output (#1782838) + +* Mon May 4 2020 Rob Crittenden - 0.79.7-11 +- Fix test failure in 039-fromfile + +* Mon May 4 2020 Rob Crittenden - 0.79.7-10 +- Ensure that files read in have a trailing new-line (#1829490) + +* Thu Apr 30 2020 Rob Crittenden - 0.79.7-9 +- Call the secport equivalent of PR_ErrorToString +- Remove a couple of unused varaibles found by coverity + +* Mon Apr 13 2020 Rob Crittenden - 0.79.7-8 +- Move systemd tmpfiles from /var/run to /run (#1804928) +- Improve logging in the SCEP helper (#1807691) +- Fix sort order of certificates passed into PKCS7_verify (#1808052) +- Add -N option to SCEP helper to separate web server chain from + SCEP issuer chain (#1808613) +- Add template profile, MS v2 template and issuer to getcert list + output (#1734451) + +* Tue Dec 17 2019 Rob Crittenden - 0.79.7-7 +- Update gating requirements + +* Mon Dec 16 2019 Rob Crittenden - 0.79.7-6 +- Rebuild + +* Mon Dec 2 2019 Rob Crittenden - 0.79.7-5 +- Fix use-after-free issue when retrieving CA chain (#1710632) + +* Mon Dec 2 2019 Rob Crittenden - 0.79.7-4 +- Optimize closing of file descriptors on fork (#1763745) +- Remove NOMODDB flag flag from context init, look for full tokens (#1746543) +- Retrieve full IPA CA chain (#1710632) + +* Tue May 14 2019 Rob Crittenden - 0.79.7-3 +- Rebuild for new annobin (#1708095) + +* Fri May 10 2019 Rob Crittenden - 0.79.7-2 +- Rebuild for new annobin (#1708095) + +* Thu May 9 2019 Alexander Bokovoy - 0.79.7-1 +- Rebase to 0.79.7 (#1708095) + +* Mon Oct 8 2018 Rob Crittenden - 0.79.6-5 +- Address more issues uncovered by static analysis (#1632449) + +* Tue Oct 2 2018 Rob Crittenden - 0.79.6-4 +- Improve handling of NSS tokens (#1624930) +- Pull in upstream fixes discovered in coverity and clang (#1632449) + +* Mon Aug 13 2018 Rob Crittenden - 0.79.6-3 +- Add BuildRequires on python3-devel (#1615507) + +* Thu Aug 2 2018 Rob Crittenden - 0.79.6-2 +- Fix test failure on some platforms + +* Wed Aug 1 2018 Rob Crittenden - 0.79.6-1 +- Update to upstream 0.79.6 +- Fix unit tests to work with python 3 + +* Fri Feb 23 2018 Rob Crittenden 0.79.5-6 +- Fix unit tests. NSS crypto policy disallows keys < 1024 + +* Wed Feb 21 2018 Rob Crittenden 0.79.5-5 +- Add BuildRequires on gcc + +* Wed Feb 07 2018 Fedora Release Engineering - 0.79.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Jan 10 2018 Rob Crittenden 0.79.5-3 +- Remove BR on mktemp. It is now provided by coreutils. +- Patch to fix NSS handling of keys in sqlite databases +- Patches to fix tests now that sqlite is the NSS default. + +* Wed Oct 4 2017 Rob Crittenden 0.79.5-2 +- Switch BR from /usr/include/popt.h to popt-devel + +* Fri Sep 1 2017 Rob Crittenden 0.79.5-1 +- update to 0.79.5: + - getcert start-tracking: use issuer option when specified + - add support for specifying the MS certificate template + - Reformat certificates returned by Dogtag to strip extra newline + +* Wed Aug 16 2017 Rob Crittenden 0.79.4-2 +- Reformat certificates returned by Dogtag. Dogtag was including + a spurious newline before -----END CERTIFICATE----- + +* Mon Aug 7 2017 Rob Crittenden 0.79.4-1 +- update to 0.79.4 + - fix CA option name for ipa cert-request + - fix minor memory leak + - fix build warnings + - fix an incorrect date in the .spec changelog + - bump gettext version to avoid warning + +* Wed Aug 02 2017 Fedora Release Engineering - 0.79.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.79.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Tue Feb 28 2017 Nalin Dahyabhai 0.79.3-1 +- update to 0.79.3: + - fix self-signing self-test cases that used DSA or EC keys + +* Mon Feb 27 2017 Nalin Dahyabhai 0.79.2-2 +- update %%docs list because README is now README.md + +* Mon Feb 27 2017 Nalin Dahyabhai 0.79.2-1 +- update to 0.79.2: + - fix 'make distcheck' target + +* Sun Feb 19 2017 Nalin Dahyabhai 0.79.1-1 +- update to 0.79.1: + - update translations + - fix 'make archive' target + +* Sun Feb 19 2017 Nalin Dahyabhai 0.79-1 +- update to 0.79: + - getcert now offers an option (-X) for requesting processing by a particular + CA if the server we're contacting is running more than one + - getcert also offers options (--for-ca, --not-for-ca, --ca-path-length) for + requesting BasicConstraints values + - getcert now displays times in local time instead of UTC, which was + previously the only way they were displayed; the --utc option can often be + used to switch back to its previous behavior + - the SCEP enrollment helper now correctly issues GetCACertChain requests to + SCEP servers, instead of issuing a GetCAChain request, which isn't part of + the protocol; from report by Jason Garland + - when issuing SCEP requests, the ID of the CA included in the HTTP request + is now URL-encoded, as it should be + - renewal or notification-of-impending-expiration logic is now triggered + closer to TTL thresholds rather than waiting for a periodic check to pass a + threshold + - properly builds with OpenSSL 1.1, thanks to Lukas Slebodnik and Tomas Mraz + for a lot of the legwork +- resync .spec file with Fedora +- upstream project migrated from fedorahosted.org to pagure.io + +* Fri Feb 10 2017 Fedora Release Engineering - 0.78.6-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sat Jan 21 2017 Igor Gnatenko - 0.78.6-5 +- Rebuild for xmlrpc-c + +* Wed Jul 6 2016 Nalin Dahyabhai 0.78.6-4 +- add backported fix to wait a reasonable amount of time after calling the + 'resubmit' method for a new certificate to be issued when we're exercising + the D-Bus API during tests (Jan Cholasta, #1351052) + +* Wed Jul 6 2016 Nalin Dahyabhai 0.78.6-3 +- instead of using killall to send a SIGHUP to the system bus daemon in %%post + to get it to reload its configuration, use dbus-send to send a ReloadConfig + request over the bus (should fix #1277573) + +* Wed Feb 03 2016 Fedora Release Engineering - 0.78.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jan 13 2016 Nalin Dahyabhai 0.78.6-1 +- document the -R, -N, -o, and -t flags for dogtag-ipa-renew-agent-submit +- stop checking that we can generate 512 bit keys during self-tests + +* Thu Nov 12 2015 Nalin Dahyabhai 0.78.5-1 +- fix a possible uninitialized memory read (possibly #1260871) +- log a diagnostic error when we fail to initialize libkrb5 + +* Tue Aug 4 2015 Nalin Dahyabhai 0.78.4-1 +- fix the "getcert start-tracking" -L and -l options (#1249753) +- output diagnostics about the second request when scep-submit encounters an + error during a second request to the SCEP server + +* Mon Jul 20 2015 Nalin Dahyabhai 0.78.3-1 +- call poptGetOptArg() correctly, to fix parsing of the -R flag to scep-submit + and the -O and -o flags to dogtag-submit (#1244914) + +* Thu Jul 9 2015 Nalin Dahyabhai 0.78.2-1 +- tweak initialization so that we set up for providing our D-Bus API before we + register our name with the bus, so that we can handle any requests that + arrive before the acknowledgement of that registration +- on systems that run systemd, add the right data file so that the service gets + started when someone tries to talk to the daemon (ticket #38) +- correctly check for error responses when sending GetCAChain requests to SCEP + servers + +* Sun Jun 21 2015 Nalin Dahyabhai 0.78.1-1 +- self-tests: assume that certutil won't generate DSA keys with more than 1024 + bits, and will often short us by a few + +* Sat Jun 20 2015 Nalin Dahyabhai 0.78-1 +- switch to using popt for parsing command line arguments, continuing to + use old help text for now so that we can catch up with translations (print + old text for --help, new text (with longopts!) for -H) +- add some plumbing for eventually receiving per-certificate roots in + addition to issued certificates and chain certificates +- add a "rekey" command to getcert, for triggering enrollment using a new + key pair (#1087932) +- scep-submit: check for the Renewal capability, and default to taking + advantage of it during rekeying, unless the new -n flag is specified to it +- dogtag-submit: add flags for passing user names, UDNs, passwords, and PINs + to the helper (part of ticket #12) +- dogtag-submit: add a flag for using the agent creds to do TLS client auth + while submitting enrollment requests (more of ticket #12) +- dogtag-submit: handle cases where we submit a request and the server + returns a success code rather than just queuing the request (#12 again) +- ipa-submit: pass requested profile names to the server as an argument + named "profile_id"; if the server gives us an "unrecognized argument" + error, retry without it for compatibility's sake (part of IPA ticket #57) +- keygen: fix a possible crash if keygen fails to return a key from NSS +- correct the certmonger(8) man page's description of the -c flag, which it + used to call the -C flag +- add logic for setting ownership and permissions on certificates and keys + when saving them to disk +- add configuration options "max_key_lifetime" and "max_key_use_count" for + making automatic renewal prefer rekeying + +* Wed Jun 17 2015 Fedora Release Engineering - 0.77.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu May 28 2015 Nalin Dahyabhai 0.77.5-1 +- pass $CERTMONGER_REQ_IP_ADDRESS to enrollment helpers if the signing request + includes IP address subjectAltName values +- correctly verify signatures on SCEP server replies when the signer is neither + the top-level CA nor the RA (feedback in #1161768) +- correctly verify signatures on SCEP server replies when there is more than + one certificate in the chain between the RA and the top-level CA (feedback in + #1161768) + +* Fri May 15 2015 Nalin Dahyabhai 0.77.4-1 +- don't display PINs in "getcert list" output (#42) +- clean up launching of a private instance in "getcert" +- expand on the don't-delete-private-key fix from 0.77.3 by letting NSS's + own safety checks have an effect +- backport record-keeping of key generation dates and counts of how many + times we've gotten certificates using a given key pair + +* Thu May 7 2015 Nalin Dahyabhai 0.77.3-1 +- fix a data loss bug when saving renewed certificates to NSS databases - the + private key could be removed in error since 0.77 +- fixes for bugs found by static analysis +- fix self-tests when built with OpenSSL 1.0.2 + +* Tue Apr 14 2015 Nalin Dahyabhai 0.77.2-1 +- expose the certificate's not-valid-before and not-valid-after dates as a + property over D-Bus (ticket #41) +- give the local signer its own configuration option to set the lifetime + of its signing certificate, falling back to the lifetime configured for + the self-signer as a default to match the previous behavior +- fix a potential read segfault parsing the output of an enrollment helper, + introduced in 0.77 (thanks to Steve Neuharth) +- read the ns-certtype extension value in certificates +- request an enrollment certtype extension to CSRs if we have a profile name + that we want to use (ticket #17, possibly part of IPA ticket #57) + +* Fri Feb 27 2015 Nalin Dahyabhai 0.77.1-1 +- update to 0.77 + - add initial, still rough, SCEP support (#1140241,#1161768) + - add an scep-submit helper to handle part of it + - getcert: add add-ca/add-scep-ca/modify-ca/remove-ca commands + - getcert: add -l, -L flags to request/resubmit/start-tracking commands + to provide a way to set a ChallengePassword in signing requests + - lay some groundwork for rekeying support + - bundled dogtag enrollment helpers now output debugging info to stderr (#) + - ipa-getcert: fix a crash when using DNS discovery to locate servers (#39) + - getcert: fix displaying of pre-request pre-/post-save commands (#1178190, + #1181022, patch by David Kupka) + - use Zanata for translations + - getcert list: list the certificate's profile name, if it contains one + +* Tue Nov 18 2014 Nalin Dahyabhai 0.76.8-1 +- dogtag-submit: accept additional options to pass to the server when + approving requests using agent creds (#1165155, patch by Jan Cholasta) +- getcert: print help output when 'status' isn't given any args (#1163541) + +* Tue Nov 11 2014 Nalin Dahyabhai 0.76.7-1 +- correctly read CA not-valid-after dates on 32-bit machines (also reported by + Natxo Asenjo), so that we don't spin on polling them (#1163023) + +* Mon Nov 10 2014 Nalin Dahyabhai 0.76.6-1 +- don't discard the priority value in DNS SRV records + +* Mon Nov 10 2014 Nalin Dahyabhai 0.76.5-1 +- avoid premature exit on CA data analysis failures (should fix an issue + reported by Natxo Asenjo) + +* Mon Nov 10 2014 Nalin Dahyabhai 0.76.4-1 +- fix a failure in self-tests + +* Mon Nov 10 2014 Nalin Dahyabhai 0.76.3-1 +- fixes for bugs found by static analysis +- handle IDN correctly when doing service location using SRV records +- documentation updates + +* Wed Nov 5 2014 Nalin Dahyabhai +- rework the state machine so that we save an issued certificate's associated + CA certificates, then re-read the certificate, then run the post hook and + issue notifications, in that order, instead of saving CA certificates after + running the post hook, which was always a surprising order (#1131700) +- add a generic dogtag-submit helper that doesn't include any IPA defaults, + to make it easier to know the difference between paramenters it requires + and parameters which are optional (#12) + +* Tue Nov 4 2014 Nalin Dahyabhai 0.76.2-1 +- ipa-submit: when we fail to locate/contact LDAP or XML-RPC servers, + use discovery to find them (#1136900) + +* Fri Oct 31 2014 Nalin Dahyabhai 0.76.1-1 +- allow for 'certmonger -P abstract:...' to work, too + +* Fri Oct 31 2014 Nalin Dahyabhai 0.76-1 +- require a single certificate to be specified to 'getcert status' (#1148001, + #1163541, #1163539) +- shorten the default help message which getcert prints when it's not given + a specific command (#1131704) +- add private listener (-l, -L, -P) mode to certmonger, to allow it to listen + for connections directly from clients running under the same UID +- add a command mode (-c) to certmonger, in which once it's started, it + launches a specified command, and after that command exits, the daemon exits +- when getcert is invoked with no bus running, if it's running as root, run + certmonger in private listener mode with the same invocation of getcert as + the command to start and wait for (#1134497) + +* Thu Aug 28 2014 Nalin Dahyabhai 0.75.14-1 +- make pathname canonicalization slightly smarter, to handle ".." in + locations (#1131758) +- updates to self-tests (#1144082) + +* Thu Aug 21 2014 Kevin Fenzi - 0.75.13-2 +- Rebuild for rpm bug 1131960 + +* Mon Aug 18 2014 Nalin Dahyabhai 0.75.13-1 +- add a missing test case file (whoops) + +* Mon Aug 18 2014 Nalin Dahyabhai 0.75.12-1 +- correct encoding/decoding of variant-typed data which we receive and send + as part of the org.freedesktop.DBus.Properties interface over the bus, and + add some tests for them (based on patch from David Kupka, ticket #36) + +* Fri Aug 15 2014 Fedora Release Engineering - 0.75.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Aug 12 2014 Nalin Dahyabhai 0.75.11-1 +- when getcert is passed a -a flag, to indicate that CA root certificates + should be stored in the specified database, don't ignore locations which + don't include a storage scheme (#1129537) +- when called to 'start-tracking' with the -a or -F flags, if we have + applicable certificates on-hand for a CA that we're either told to use + or which we decide is the correct one, save the certificates (#1129696) + +* Tue Aug 5 2014 Nalin Dahyabhai 0.75.10-1 +- when attempting to contact an IPA LDAP server, if no "ldap_uri" is set in + default.conf, and no "host" is set either, try to construct the server URI + using the "server" setting (#1126985) + +* Thu Jul 31 2014 Nalin Dahyabhai 0.75.9-1 +- avoid potential use-after-free after a CA is removed dynamically (thanks to + Keenan Brock) (#1125342) +- add a "external-helper" property to CA objects + +* Mon Jul 21 2014 Nalin Dahyabhai 0.75.8-1 +- add a 'refresh' option to the getcert command +- add a '-a' flag to the getcert command's 'refresh-ca' option + +* Thu Jul 17 2014 Nalin Dahyabhai 0.75.7-2 +- reintroduce package Requires: on systemd-sysv on F19 and EL6 and older, + conditionalized it so that it's ignored on newer releases, and make + whether or not we call systemd-sysv-convert in triggers depend on that, + too (#1104138) + +* Thu Jul 17 2014 Nalin Dahyabhai 0.75.7-1 +- fix an inconsistency in how we parse cookie values returned by CA helpers, + in that single-line values would lose the end-of-line after a daemon + restart, but not before +- handle timeout values and exit status values when calling CA helpers + in non-SUBMIT, non-POLL modes (#1118468) +- rework how we save CA certificates so that we save CA certificates associated + with end-entity certificates when we save that end-entity certificate, which + requires running all of the involved pre- and post-save commands +- drop package Requires: on systemd-sysv (#1104138) + +* Thu Jun 26 2014 Nalin Dahyabhai 0.75.6-1 +- avoid potential use-after-free and read overrun after a CA is added + dynamically (thanks to Jan Cholasta) + +* Fri Jun 20 2014 Nalin Dahyabhai 0.75.5-1 +- documentation updates + +* Fri Jun 20 2014 Nalin Dahyabhai 0.75.4-2 +- add a %%trigger to remove knowledge of the "dogtag-ipa-renew-agent" CA + when we detect certmonger versions prior to 0.58 being installed, to + avoid cases where some older versions choke on CAs with nicknames that + contain characters that can't legally be part of a D-Bus name (#948993) + +* Thu Jun 19 2014 Nalin Dahyabhai 0.75.4-1 +- fix creation and packaging of the "local" CA's data directory + +* Wed Jun 18 2014 Nalin Dahyabhai 0.75.3-1 +- read and cache whether or not we saw a noOCSPcheck extension in certificates +- documentation updates + +* Mon Jun 16 2014 Nalin Dahyabhai 0.75.2-1 +- when generating keys using OpenSSL, if key generation fails, try + again with the default key size, in case we're in FIPS mode +- documentation updates + +* Sat Jun 14 2014 Nalin Dahyabhai 0.75.1-1 +- log the state in 'getcert status' verbose mode + +* Fri Jun 13 2014 Nalin Dahyabhai 0.75-1 +- add a -w (wait) flag to the getcert's request/resubmit/start-tracking + commands, and add a non-waiting status command + +* Wed Jun 11 2014 Nalin Dahyabhai 0.74.96-1 +- make the trust settings we apply to CA-supplied certificates while + saving them to NSS databases run-time configurable +- fix compiling against EL5-era OpenSSL +- when saving CA certificates we pull from an IPA server, nickname + it using the realm name with " IPA CA" appended rather than just + naming it "IPA CA" +- fix the local signer so that when it issues itself a new certificate, + it uses the same subject name +- add a -w flag to getcert's request, resubmit, and start-tracking + commands, telling it to wait until either the certificate is issued, + we get to a state where we know that we won't be able to get one, or + we are waiting for a CA + +* Mon Jun 9 2014 Nalin Dahyabhai 0.74.95-1 +- add the "local" signer, a local toy CA that signs anything you'll + ask it to sign + +* Sat Jun 07 2014 Fedora Release Engineering - 0.74-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri Jun 6 2014 Nalin Dahyabhai 0.74.94-1 +- fix self-test errors that we trigger with new OpenSSL +- fix a build error that would sometimes happen when we're told to + build PIE binaries +- quiet a compile warning + +* Thu Jun 5 2014 Nalin Dahyabhai 0.74.93-1 +- add some self-tests +- simplify the internal submit-to-CA logic +- fixes for more problems found through static analysis + +* Tue Jun 3 2014 Nalin Dahyabhai 0.74.92-1 +- retrieve CA information from CAs, if the helpers can do so, and + add a command to explicitly refresh that data: "getcert refresh-ca" +- offer to save CA certificates to files and databases, when specified with + new -a and -F flags to getcert request/resubmit/start-tracking (#1098208, + trac #31) +- add IP address subject alternate names when getcert request/resubmit + is passed the -A option (trac #35) +- read and cache the freshestCRL extension in certificates +- properly interpret KDC-unreachable errors encountered in the IPA + submission error as a server-unreachable error that we will retry, + rather than a misconfiguration error which we won't +- don't let tests get tripped up by new formatting used in dos2unix status + messages (#1099080) +- updated translations +- be explicit that we are going to use bashisms in test scripts by calling + the shell interpreter as 'bash' rather than 'sh' (trac #27) + +* Thu Apr 3 2014 Nalin Dahyabhai 0.74-1 +- also save state when we exit due to SIGHUP +- don't get tripped up when enrollment helpers hand us certificates which + include CRLF line terminators (ticket #25) +- be tolerant of certificate issuer names, subject names, DNS, email, and + Kerberos principal namem subjectAltNames, and crl distribution point URLs + that contain newlines +- read and cache the certificate template extension in certificates +- enforce different minimum key sizes depending on the type of key we're + trying to generate +- store DER versions of subject, issuer and template subject, if we have + them (Jan Cholasta, ticket #26) +- when generating signing requests with subject names that don't quite parse + as subject names, encode what we're given as PrintableString rather than + as a UTF8String +- always chdir() to a known location at startup, even if we're not becoming + a daemon +- fix a couple of memory leaks (static analysis) +- add missing buildrequires: on which + +* Thu Feb 20 2014 Nalin Dahyabhai 0.73-1 +- updates to 0.73 + - getcert no longer claims to be stuck when a CA is unreachable, + because the daemon isn't actually stuck + +* Mon Feb 17 2014 Nalin Dahyabhai +- updates to 0.73 + - also pass the key type to enrollment helpers in the environment as + a the value of "CERTMONGER_KEY_TYPE" + +* Mon Feb 10 2014 Nalin Dahyabhai +- move the tmpfiles.d file from /etc/tmpfiles.d to %%{_tmpfilesdir}, + where it belongs (#1180978) + +* Mon Feb 10 2014 Nalin Dahyabhai +- updates for 0.73 + - set the flag to encode EC public key parameters using named curves + instead of the default of all-the-details when using OpenSSL + - don't break when NSS supports secp521r1 but OpenSSL doesn't + - also pass the CA nickname to enrollment helpers in the environment as + a text value in "CERTMONGER_CA_NICKNAME", so they can use that value + when reading configuration settings + - also pass the SPKAC value to enrollment helpers in the environment as + a base64 value in "CERTMONGER_SPKAC" + - also pass the request's SubjectPublicKeyInfo value to enrollment helpers + in the environment as a base64 value in "CERTMONGER_SPKI" (part of #16) + - when generating signing requests using NSS, be more accommodating of + requested subject names that don't parse properly + +* Mon Feb 3 2014 Nalin Dahyabhai 0.72-1 +- update to 0.72 + - support generating DSA parameters and keys on sufficiently-new OpenSSL + and NSS + - support generating EC keys when OpenSSL and NSS support it, using key + size to select the curve to use from among secp256r1, secp384r1, + secp521r1 (which are the ones that are usually available, though + secp521r1 isn't always, even if the other two are) + - stop trying to cache public key parameters at all and instead cache public + key info properly + - encode the friendlyName attribute in signing requests as a BMPString, + not as a PrintableString + - catch more filesystem permissions problems earlier (more of #996581) + +* Mon Jan 27 2014 Nalin Dahyabhai 0.71-1 +- check for cases where we fail to allocate memory while reading a request + or CA entry from disk (John Haxby) +- only handle one watch at a time, which should avoid abort() during + attempts to reconnect to the message bus after losing our connection + to it (#1055521) + +* Fri Jan 24 2014 Daniel Mach - 0.70-2 +- Mass rebuild 2014-01-24 + +* Thu Jan 2 2014 Nalin Dahyabhai 0.70-1 +- add a --with-homedir option to configure, and use it, since subprocesses + which we run and which use NSS may attempt to write to $HOME/.pki, and + 0.69's strategy of setting that to "/" was rightly hitting SELinux policy + denials (#1047798) + +* Fri Dec 27 2013 Daniel Mach - 0.69-2 +- Mass rebuild 2013-12-27 + +* Mon Dec 9 2013 Nalin Dahyabhai 0.69-1 +- tweak how we decide whether we're on the master or a minion when we're + told to use certmaster as a CA +- clean up one of the tests so that it doesn't have to work around internal + logging producing duplicate messages +- when logging errors while setting up to contact xmlrpc servers, explicitly + note that the error is client-side +- don't abort() due to incorrect locking when an attempt to save an issued + certificate to the designated location fails (part of #1032760/#1033333, + ticket #22) +- when reading an issued certificate from an enrollment helper, ignore + noise before or after the certificate itself (more of #1032760/1033333, + ticket #22) +- run subprocesses in a cleaned-up environment (more of #1032760/1033333, + ticket #22) +- clear the ca-error that we saved when we had an error talking to the CA if we + subsequently succeed in talking to the CA +- various other static-analysis fixes + +* Thu Aug 29 2013 Nalin Dahyabhai 0.68-1 +- notice when the OpenSSL RNG isn't seeded +- notice when saving certificates or keys fails due to filesystem-related + permission denial (#996581) + +* Tue Aug 6 2013 Nalin Dahyabhai 0.67-3 +- pull up a patch from master to adapt self-tests to certutil's diagnostic + output having changed (#992050) + +* Sat Aug 03 2013 Fedora Release Engineering - 0.67-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon Mar 11 2013 Nalin Dahyabhai 0.67-1 +- when saving certificates to NSS databases, try to preserve the trust + value assigned to a previously-present certificate with the same nickname + and subject, if one is found +- when saving certificates to NSS databases, also prune certificates from + the database which have both the same nickname and subject as the one + we're adding, to avoid tripping up tools that only fetch one certificate + by nickname + +* Wed Feb 13 2013 Fedora Release Engineering - 0.65-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jan 23 2013 Nalin Dahyabhai 0.66-1 +- build as position-independent executables with early binding (#883966) +- also don't tag the unit file as a configuration file (internal tooling) + +* Wed Jan 23 2013 Nalin Dahyabhai 0.65-2 +- don't tag the D-Bus session .service file as a configuration file (internal + tooling) + +* Tue Jan 8 2013 Nalin Dahyabhai 0.65-1 +- fix a crash in the self-tests + +* Tue Jan 8 2013 Nalin Dahyabhai 0.64-1 +- at startup, if we resume the state machine for a given certificate to a state + which expects to have the newly-added lock already acquired, acquire it + before moving on with the certificate's work (still aimed at fixing #883484) + +* Tue Dec 18 2012 Nalin Dahyabhai 0.63-1 +- serialize access to NSS databases and the running of pre- and post-save + commands which might also access them (possibly fixing part of #883484) + +* Thu Nov 29 2012 Nalin Dahyabhai 0.62-1 +- add a -u flag to getcert to enable requesting a keyUsage extension value +- request subjectKeyIdentifier extensions from CAs, and include them in + self-signed certificates +- request basicConstraints from CAs, defaulting to requests for end-entity + certificates +- when requesting CA certificates, also request authorityKeyIdentifier +- add support for requesting CRL distribution point and authorityInfoAccess + extensions that specify OCSP responder locations +- don't crash when OpenSSL can't build a template certificate from a request + when we're in FIPS mode +- put NSS in FIPS mode, when the system booted that way, except when we're + trying to write certificates to a database +- fix CSR generation and self-signing in FIPS mode with NSS +- fix self-signing in FIPS mode with OpenSSL +- new languages from the translation team: mai, ml, nn, ga + +* Tue Nov 27 2012 Nalin Dahyabhai 0.61-3 +- backport change from git to not choke if X509_REQ_to_X509() fails when we're + self-signing using OpenSSL +- backport another change from git to represent this as a CA-rejected error + +* Mon Sep 24 2012 Nalin Dahyabhai 0.61-1 +- fix a regression in reading old request tracking files where the + request was in state NEED_TO_NOTIFY or NOTIFYING + +* Wed Sep 5 2012 Nalin Dahyabhai 0.60-1 +- adjust internals of logic for talking to dogtag to at least have a + concept of non-agent cases +- when talking to an IPA server's internal Dogtag instance, infer which + ports the CA is listening on from the "dogtag_version" setting in the + IPA configuration (Ade Lee) +- send a notification (or log a message, whatever) when we save a new + certificate (#766167) + +* Mon Jul 30 2012 Nalin Dahyabhai +- fix a bad %%preun scriptlet + +* Wed Jul 18 2012 Fedora Release Engineering - 0.59-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jun 29 2012 Nalin Dahyabhai 0.59-1 +- mostly documentation updates + +* Fri Jun 29 2012 Nalin Dahyabhai 0.58-1 +- add a "dogtag-ipa-renew-agent" CA so that we can renew certificates using + an IPA server's internal Dogtag instance +- export the requested profile and old certificate to enrollment helpers +- make libxml and libcurl into hard build-time requirements +- serialize all pre/save/post sequences to make sure that stop/save/start + doesn't become stop1/save1/stop2/start1/save2/start2 when we're stopping + a service while we muck with more than one of its certificates + +* Fri Jun 15 2012 Nalin Dahyabhai +- add a command option (-T) to getcert for specifying which enrollment + profile to tell a CA that we're using, in case it cares (#10) + +* Thu Jun 14 2012 Nalin Dahyabhai 0.57-1 +- clarify that the command passed to getcert -C is a "post"-save command +- add a "pre"-save command option to getcert, specified with the -B flag (#9) +- after we notify of an impending not-valid-after approaching, don't do it + again immediately + +* Sat Mar 3 2012 Nalin Dahyabhai 0.56-1 +- when a caller sets the is-default flag on a CA, and another CA is no longer + the default, emit the PropertiesChanged signal on the CA which is not the + default, instead on the new default a second time +- drop some dead code from the D-Bus message handlers (static analysis, + #796813) +- cache public keys when we read private keys +- go back to printing an error indicating that we're missing a required + argument when we're missing a required argument, not that the option is + invalid (broken since 0.51, #796542) + +* Wed Feb 15 2012 Nalin Dahyabhai 0.55-1 +- allow root to use our implementation of org.freedesktop.DBus.Properties +- take more care to not emit useless PropertiesChanged signals + +* Wed Feb 15 2012 Nalin Dahyabhai 0.54-1 +- fix setting the group ID when spawning the post-save command + +* Tue Feb 14 2012 Nalin Dahyabhai 0.53-1 +- large changes to the D-Bus glue, exposing a lot of data which we were + providing via D-Bus getter methods as properties, and providing more + accurate introspection data +- emit a signal when the daemon saves a certificate to the destination + location, and provide an option to have the daemon spawn an arbitrary + command at that point, too (#766167) +- enable starting the service by default on RHEL (#765600) + +* Thu Jan 12 2012 Fedora Release Engineering - 0.52-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Dec 16 2011 Nalin Dahyabhai 0.52-1 +- note that SELinux usually confines us to writing only to cert_t in + doc/getting-started.txt (#765599) +- fix crashes when we add a request during our first run when we're + populating the hard-coded CA list +- properly deal with cases where a path is passed to us is "./XXX" +- in session mode, create our data directories as we go + +* Tue Dec 6 2011 Nalin Dahyabhai 0.51-1 +- api: lift restrictions on characters used in request and CA nicknames by + making their object names not incorporate their nicknames +- api: add find_request_by_nickname and find_ca_by_nickname +- certmonger-ipa-submit.8: list -k, -K, -t in the summary, document -K +- getcert: print "invalid option" error messages ourselves (#756291) +- ipa-submit: supply a Referer: header when submitting requests to IPA + (#750617, needed for #747710) + +* Fri Oct 14 2011 Nalin Dahyabhai 0.50-1 +- really fix these this time: + - getcert: error out when "list -c" finds no matching CA (#743488) + - getcert: error out when "list -i" finds no matching request (#743485) + +* Wed Oct 12 2011 Nalin Dahyabhai 0.49-1 +- when using an NSS database, skip loading the module database (#743042) +- when using an NSS database, skip loading root certs +- generate SPKAC values when generating CSRs, though we don't do anything + with SPKAC values yet +- internally maintain and use challenge passwords, if we have them +- behave better when certificates have shorter lifetimes +- add/recognize/handle notification type "none" +- getcert: error out when "list -c" finds no matching CA (#743488) +- getcert: error out when "list -i" finds no matching request (#743485) + +* Thu Sep 29 2011 Nalin Dahyabhai 0.48-1 +- don't incorrectly assume that CERT_ImportCerts() returns a NULL-terminated + array (#742348) + +* Tue Sep 27 2011 Nalin Dahyabhai 0.47-1 +- getcert: distinguish between {stat() succeeds but isn't a directory} and + {stat() failed} when printing an error message (#739903) +- getcert resubmit/start-tracking: when we're looking for an existing request + by ID, and we don't find one, note that specifically (#741262) + +* Mon Aug 29 2011 Stephen Gallagher - 0.46-1.1 +- Rebuild against fixed libtevent version + +* Mon Aug 15 2011 Nalin Dahyabhai 0.46-1 +- treat the ability to access keys in an NSS database without using a PIN, + when we've been told we need one, as an error (#692766, really this time) + +* Thu Aug 11 2011 Nalin Dahyabhai 0.45-1 +- modify the systemd .service file to be a proper 'dbus' service (more + of #718172) + +* Thu Aug 11 2011 Nalin Dahyabhai 0.44-1 +- check specifically for cases where a specified token that we need to + use just isn't present for whatever reason (#697058) + +* Wed Aug 10 2011 Nalin Dahyabhai 0.43-1 +- add a -K option to ipa-submit, to use the current ccache, which makes + it easier to test + +* Fri Aug 5 2011 Nalin Dahyabhai +- if xmlrpc-c's struct xmlrpc_curl_xportparms has a gss_delegate field, set + it to TRUE when we're doing Negotiate auth (#727864, #727863, #727866) + +* Wed Jul 13 2011 Nalin Dahyabhai +- treat the ability to access keys in an NSS database without using a PIN, + when we've been told we need one, as an error (#692766) +- when handling "getcert resubmit" requests, if we don't have a key yet, + make sure we go all the way back to generating one (#694184) +- getcert: try to clean up tests for NSS and PEM file locations (#699059) +- don't try to set reconnect-on-exit policy unless we managed to connect + to the bus (#712500) +- handle cases where we specify a token but the storage token isn't + known (#699552) +- getcert: recognize -i and storage options to narrow down which requests + the user wants to know about (#698772) +- output hints when the daemon has startup problems, too (#712075) +- add flags to specify whether we're bus-activated or not, so that we can + exit if we have nothing to do after handling a request received over + the bus if some specified amount of time has passed +- explicitly disallow non-root access in the D-Bus configuration (#712072) +- migrate to systemd on releases newer than Fedora 15 or RHEL 6 (#718172) +- fix a couple of incorrect calls to talloc_asprintf() (#721392) + +* Wed Apr 13 2011 Nalin Dahyabhai 0.42-1 +- getcert: fix a buffer overrun preparing a request for the daemon when + there are more parameters to encode than space in the array (#696185) +- updated translations: de, es, id, pl, ru, uk + +* Mon Apr 11 2011 Nalin Dahyabhai 0.41-1 +- read information about the keys we've just generated before proceeding + to generating a CSR (part of #694184, part of #695675) +- when processing a "resubmit" request from getcert, go back to key + generation if we don't have keys yet, else go back to CSR generation as + before (#694184, #695675) +- configure with --with-tmpdir=/var/run/certmonger and own /var/run/certmonger + (#687899), and add a systemd tmpfiles.d control file for creating + /var/run/certmonger on Fedora 15 and later +- let session instances exit when they get disconnected from the bus +- use a lock file to make sure there's only one session instance messing + around with the user's files at a time +- fix errors saving certificates to NSS databases when there's already a + certificate there with the same nickname (#695672) +- make key and certificate location output from 'getcert list' more properly + translatable (#7) + +* Mon Mar 28 2011 Nalin Dahyabhai 0.40-1 +- update to 0.40 + - fix validation check on EKU OIDs in getcert (#691351) + - get session bus mode sorted + - add a list of recognized EKU values to the getcert-request man page + +* Fri Mar 25 2011 Nalin Dahyabhai 0.39-1 +- update to 0.39 + - fix use of an uninitialized variable in the xmlrpc-based submission + helpers (#690886) + +* Thu Mar 24 2011 Nalin Dahyabhai 0.38-1 +- update to 0.38 + - catch cases where we can't read a PIN file, but we never have to log + in to the token to access the private key (more of #688229) + +* Tue Mar 22 2011 Nalin Dahyabhai 0.37-1 +- update to 0.37 + - be more careful about checking if we can read a PIN file successfully + before we even call an API that might need us to try (#688229) + - fix strict aliasing warnings + +* Tue Mar 22 2011 Nalin Dahyabhai 0.36-1 +- update to 0.36 + - fix some use-after-free bugs in the daemon (#689776) + - fix a copy/paste error in certmonger-ipa-submit(8) + - getcert now suppresses error details when not given its new -v option + (#683926, more of #681641/#652047) + - updated translations + - de, es, pl, ru, uk + - indonesian translation is now for "id" rather than "in" + +* Wed Mar 2 2011 Nalin Dahyabhai 0.35.1-1 +- fix a self-test that broke because one-year-from-now is now a day's worth + of seconds further out than it was a few days ago + +* Mon Feb 14 2011 Nalin Dahyabhai 0.35-1 +- update to 0.35 + - self-test fixes to rebuild properly in mock (#670322) + +* Tue Feb 08 2011 Fedora Release Engineering - 0.34-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Jan 14 2011 Nalin Dahyabhai 0.34-1 +- update to 0.34 + - explicitly note the number of requests we're tracking in the output of + "getcert list" (#652049) + - try to offer some suggestions when we get certain specific errors back + in "getcert" (#652047) + - updated translations + - es + +* Thu Dec 23 2010 Nalin Dahyabhai 0.33-1 +- update to 0.33 + - new translations + - id by Okta Purnama Rahadian! + - updated translations + - pl, uk + - roll up assorted fixes for defects + +* Fri Nov 12 2010 Nalin Dahyabhai 0.32-2 +- depend on the e2fsprogs libuuid on Fedora and RHEL releases where it's + not part of util-linux-ng + +* Wed Oct 13 2010 Nalin Dahyabhai 0.32-1 +- oops, rfc5280 says we shouldn't be populating unique identifiers, so + make it a configuration option and default the behavior to off + +* Tue Oct 12 2010 Nalin Dahyabhai 0.31-1 +- start populating the optional unique identifier fields in self-signed + certificates + +* Thu Sep 30 2010 Nalin Dahyabhai 0.30-4 +- explicitly require "dbus" to try to ensure we have a running system bus + when we get started (#639126) + +* Wed Sep 29 2010 jkeating - 0.30-3 +- Rebuilt for gcc bug 634757 + +* Thu Sep 23 2010 Nalin Dahyabhai 0.30-2 +- try to SIGHUP the messagebus daemon at first install so that it'll + let us claim our service name if it isn't restarted before we are + first started (#636876) + +* Wed Aug 25 2010 Nalin Dahyabhai 0.30-1 +- update to 0.30 + - fix errors computing the time at the end of an interval that were + caught by self-tests + +* Mon Aug 23 2010 Nalin Dahyabhai 0.29-1 +- update to 0.29 + - fix 64-bit cleanliness issue using libdbus + - actually include the full set of tests in tarballs + +* Tue Aug 17 2010 Nalin Dahyabhai 0.28-1 +- update to 0.28 + - fix self-signing certificate notBefore and notAfter values on 32-bit + machines + +* Tue Aug 17 2010 Nalin Dahyabhai 0.27-1 +- update to 0.27 + - portability and test fixes + +* Fri Aug 13 2010 Nalin Dahyabhai 0.26-1 +- update to 0.26 + - when canceling a submission request that's being handled by a helper, + reap the child process's status after killing it (#624120) + +* Fri Aug 13 2010 Nalin Dahyabhai 0.25-1 +- update to 0.25 + - new translations + - in by Okta Purnama Rahadian! + - fix detection of cases where we can't access a private key in an NSS + database because we don't have the PIN + - teach '*getcert start-tracking' about the -p and -P options which the + '*getcert request' commands already understand (#621670), and also + the -U, -K, -E, and -D flags + - double-check that the nicknames of keys we get back from + PK11_ListPrivKeysInSlot() match the desired nickname before accepting + them as matches, so that our tests won't all blow up on EL5 + - fix dynamic addition and removal of CAs implemented through helpers + +* Mon Jun 28 2010 Nalin Dahyabhai 0.24-4 +- init script: ensure that the subsys lock is created whenever we're called to + "start" when we're already running (even more of #596719) + +* Tue Jun 15 2010 Nalin Dahyabhai 0.24-3 +- more gracefully handle manual daemon startups and cleaning up of unexpected + crashes (still more of #596719) + +* Thu Jun 10 2010 Nalin Dahyabhai 0.24-2 +- don't create the daemon pidfile until after we've connected to the D-Bus + (still more of #596719) + +* Tue Jun 8 2010 Nalin Dahyabhai 0.24-1 +- update to 0.24 + - keep the lock on the pid file, if we have one, when we fork, and cancel + daemon startup if we can't gain ownership of the lock (the rest of #596719) + - make the man pages note which external configuration files we consult when + submitting requests to certmaster and ipa CAs + +* Thu May 27 2010 Nalin Dahyabhai 0.23-1 +- update to 0.23 + - new translations + - pl by Piotr Drąg! + - cancel daemon startup if we can't gain ownership of our well-known + service name on the DBus (#596719) + +* Fri May 14 2010 Nalin Dahyabhai 0.22-1 +- update to 0.22 + - new translations + - de by Fabian Affolter! + - certmaster-submit: don't fall over when we can't find a certmaster.conf + or a minion.conf (i.e., certmaster isn't installed) (#588932) + - when reading extension values from certificates, prune out duplicate + principal names, email addresses, and hostnames + +* Tue May 4 2010 Nalin Dahyabhai 0.21-1 +- update to 0.21 + - getcert/*-getcert: relay the desired CA to the local service, whether + specified on the command line (in getcert) or as a built-in hard-wired + default (in *-getcert) (#584983) + - flesh out the default certmonger.conf so that people can get a feel for + the expected formatting (Jenny Galipeau) + +* Wed Apr 21 2010 Nalin Dahyabhai 0.20-1 +- update to 0.20 + - correctly parse certificate validity periods given in years (spotted by + Stephen Gallagher) + - setup for translation + - es by Héctor Daniel Cabrera! + - ru by Yulia Poyarkova! + - uk by Yuri Chornoivan! + - fix unpreprocessed defaults in certmonger.conf's man page + - tweak the IPA-specific message that indicates a principal name also needs + to be specified if we're not using the default subject name (#579542) + - make the validity period of self-signed certificates into a configuration + setting and not a piece of the state information we track about the signer + - init script: exit with status 2 instead of 1 when invoked with an + unrecognized argument (#584517) + +* Tue Mar 23 2010 Nalin Dahyabhai 0.19-1 +- update to 0.19 + - correctly initialize NSS databases that need to be using a PIN + - add certmonger.conf, for customizing notification timings and settings, + and use of digests other than the previously-hard-coded SHA256, and + drop those settings from individual requests + - up the default self-sign validity interval from 30 days to 365 days + - drop the first default notification interval from 30 days to 28 days + (these two combined to create a fun always-reissuing loop earlier) + - record the token which contains the key or certificate when we're + storing them in an NSS database, and report it + - improve handling of cases where we're supposed to use a PIN but we + either don't have one or we have the wrong one + - teach getcert to accept a PIN file's name or a PIN value when adding + a new entry + - update the IPA submission helper to use the new 'request_cert' signature + that's landing soon + - more tests + +* Fri Feb 12 2010 Nalin Dahyabhai 0.18-1 +- update to 0.18 + - add support for using encrypted storage for keys, using PIN values + supplied directly or read from files whose names are supplied + - don't choke on NSS database locations that use the "sql:" or "dbm:" + prefix + +* Mon Jan 25 2010 Nalin Dahyabhai 0.17-2 +- make the D-Bus configuration file (noreplace) (#541072) +- make the %%check section and the deps we have just for it conditional on + the same macro (#541072) + +* Wed Jan 6 2010 Nalin Dahyabhai 0.17-1 +- update to 0.17 + - fix a hang in the daemon (Rob Crittenden) + - documentation updates + - fix parsing of submission results from IPA (Rob Crittenden) + +* Fri Dec 11 2009 Nalin Dahyabhai 0.16-1 +- update to 0.16 + - set a umask at startup (Dan Walsh) + +* Tue Dec 8 2009 Nalin Dahyabhai 0.15-1 +- update to 0.15 + - notice that a directory with a trailing '/' is the same location as the + directory without it + - fix handling of the pid file when we write one (by actually giving it + contents) + +* Wed Nov 25 2009 Nalin Dahyabhai 0.14-1 +- update to 0.14 + - check key and certificate location at add-time to make sure they're + absolute paths to files or directories, as appropriate + - IPA: dig into the 'result' item if the named result value we're looking + for isn't in the result struct + +* Tue Nov 24 2009 Nalin Dahyabhai 0.13-1 +- update to 0.13 + - change the default so that we default to trying to auto-refresh + certificates unless told otherwise + - preemptively enforce limitations on request nicknames so that they + make valid D-Bus object path components + +* Tue Nov 24 2009 Nalin Dahyabhai 0.12-1 +- update to 0.12 + - add a crucial bit of error reporting when CAs reject our requests + - count the number of configured CAs correctly + +* Mon Nov 23 2009 Nalin Dahyabhai 0.11-1 +- update to 0.11 + - add XML-RPC submission for certmaster and IPA + - prune entries with duplicate names from the data store + +* Fri Nov 13 2009 Nalin Dahyabhai 0.10-1 +- update to 0.10 + - add some compiler warnings and then fix them + +* Fri Nov 13 2009 Nalin Dahyabhai 0.9-1 +- update to 0.9 + - run external submission helpers correctly + - fix signing of signing requests generated for keys stored in files + - only care about new interface and route notifications from netlink, + and ignore notifications that don't come from pid 0 + - fix logic for determining expiration status + - correct the version number in self-signed certificates + +* Tue Nov 10 2009 Nalin Dahyabhai 0.8-1 +- update to 0.8 + - encode windows UPN values in requests correctly + - watch for netlink routing changes and restart stalled submission requests + - 'getcert resubmit' can force a regeneration of the CSR and submission + +* Fri Nov 6 2009 Nalin Dahyabhai 0.7-1 +- update to 0.7 + - first cut at a getting-started document + - refactor some internal key handling with NSS + - check for duplicate request nicknames at add-time + +* Tue Nov 3 2009 Nalin Dahyabhai 0.6-1 +- update to 0.6 + - man pages + - 'getcert stop-tracking' actually makes the server forget now + - 'getcert request -e' was redundant, dropped the -e option + - 'getcert request -i' now sets the request nickname + - 'getcert start-tracking -i' now sets the request nickname + +* Mon Nov 2 2009 Nalin Dahyabhai 0.5-1 +- update to 0.5 + - packaging fixes + - add a selfsign-getcert client + - self-signed certs now get basic constraints and their own serial numbers + - accept id-ms-kp-sc-logon as a named EKU value in a request + +* Thu Oct 29 2009 Nalin Dahyabhai 0.4-1 +- update to 0.4 + +* Thu Oct 22 2009 Nalin Dahyabhai 0.1-1 +- update to 0.1 + +* Sun Oct 18 2009 Nalin Dahyabhai 0.0-1 +- initial package diff --git a/sources b/sources new file mode 100644 index 0000000..9cde2d4 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (certmonger-0.79.13.tar.gz) = 4d7f8e1e001991886c4f5d999a906d3adb3900c3667c6a1c808f1f9baaf297693e0d85e25a0ff44e1c7a0eac9495ae346dd1bcd45e823582c9f18cab14ccdc9f