From 3f35cdccf89cfa2b30fe51ef113463111dc506dd Mon Sep 17 00:00:00 2001 From: Christian Hohnstaedt Date: Wed, 31 Jan 2018 22:16:04 +0100 Subject: [PATCH] Cleanup the OID text files, remove senseless aia.txt - Remove all aia.txt from the Code, Documentation and ToolTip - Add an Operating system dependent help hint - Replace unix LF by DOS CR-LF for windows installation --- Makefile | 6 +++--- doc/xca-doc.tgz | Bin 24530 -> 24600 bytes doc/xca.sgml | 15 +++++++++++++-- lib/oid.cpp | 2 +- misc/Makefile | 25 ++++++++++++++++++++++--- misc/aia.txt | 3 --- misc/{dn.txt => dn.text} | 1 - misc/{eku.txt => eku.text} | 1 - misc/{oids.txt => oids.text} | 2 -- misc/xca.nsi | 8 ++++---- ui/NewX509.ui | 3 --- widgets/MainWindow.cpp | 6 +----- widgets/MainWindow.h | 2 +- widgets/NewX509.cpp | 2 +- xca.pro | 2 +- 15 files changed, 47 insertions(+), 31 deletions(-) delete mode 100644 misc/aia.txt rename misc/{dn.txt => dn.text} (74%) rename misc/{eku.txt => eku.text} (76%) rename misc/{oids.txt => oids.text} (91%) diff --git a/Makefile b/Makefile index b0dda520..d63f0912 100644 --- a/Makefile +++ b/Makefile @@ -68,7 +68,7 @@ xca$(SUFFIX): $(OBJECTS) @$(PRINT) " LINK $@" $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(patsubst %,@%, $^) $(LIBS) -o $@ -do.ui do.doc do.lang: do.%: +do.ui do.doc do.lang do.misc: do.%: mkdir -p $* $(MAKE) -C $* -f $(TOPDIR)/$*/Makefile VPATH=$(TOPDIR)/$* $* @@ -100,7 +100,7 @@ clean: -o -name ".depend" \ -o -name "moc_*.cpp" | xargs rm -f rm -f ui/ui_*.h lang/xca_*.qm doc/*.html doc/xca.1.gz doc/xca_db_stat.1.gz img/imgres.cpp - rm -f lang/*.xml lang/.build-stamp + rm -f lang/*.xml lang/.build-stamp misc/dn.txt misc/eku.txt misc/oids.txt rm -f xca$(SUFFIX) setup_xca*.exe xca_db_stat$(SUFFIX) lib/xca_db_stat$(SUFFIX) *.dmg rm -rf xca-$(VERSION)* @@ -133,7 +133,7 @@ install: xca$(SUFFIX) xca_db_stat$(SUFFIX) $(INSTTARGET) $(STRIP) $(destdir)$(bindir)/xca setup.exe: setup_xca-$(VERSION).exe -setup_xca-$(VERSION).exe: xca$(SUFFIX) xca_db_stat$(SUFFIX) do.doc do.lang +setup_xca-$(VERSION).exe: xca$(SUFFIX) xca_db_stat$(SUFFIX) do.doc do.lang do.misc setup_xca-$(VERSION).exe: misc/xca.nsi for binary in xca$(SUFFIX) xca_db_stat$(SUFFIX); do \ $(STRIP) xca$(SUFFIX); \ diff --git a/doc/xca-doc.tgz b/doc/xca-doc.tgz index 92ab36bf1bb8071318e72a20221edad84d0d3751..a9f57dd7cb5887cf8a5cfb6397ea6ca51f154cfe 100644 GIT binary patch delta 22509 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]Szq+B4aNOFDqj7la@Myh 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.txt addidtional Object IDs eku.txt Content of ExtendedKeyUsage dn.txt Content of DistinguishedName - aia.txt Content of AuthorityInformationAccess The search path for all the files is listed below. @@ -1441,11 +1440,23 @@ The oids.txt file is searched in reversed order and all Windows + CSIDL_APPDATA\xca, which is something like + C:\Documents and Settings\username\Application Data\xca + or C:\Users\username\AppData\Roaming\xca Installation directory e.g.: C:\Programs\xca

+MacOSX + + + $HOME/.xca/ + Application dir: xca.app/Resources + + +

+ New OIDs

@@ -1465,7 +1476,7 @@ Lines starting with a # are ignored.

-The files containing OID lists (eku.txt, dn.txt, aia.txt) +The files containing OID lists (eku.txt, dn.txt) are handled in a different way, only the first one found is used. The format of this files is one entry per line. The entry can be either the numerical OID like 1.3.6.1.5.5.8.2.2, the short name like diff --git a/lib/oid.cpp b/lib/oid.cpp index 138b9be7..cc434f03 100644 --- a/lib/oid.cpp +++ b/lib/oid.cpp @@ -112,8 +112,8 @@ void initOIDs() #if !defined(Q_OS_MAC) readOIDs(QString(ETC) + oids); #endif - readOIDs(getUserSettingsDir() + oids); #endif + readOIDs(getUserSettingsDir() + oids); } /* reads a list of OIDs/SNs from a file and turns them into a QValueList diff --git a/misc/Makefile b/misc/Makefile index 683c14b0..3be588f5 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -1,15 +1,34 @@ SRCPATH=$(VPATH)/ - -all: +ifeq ($(TOPDIR),) +TOPDIR=.. +BUILD=.. +endif include $(TOPDIR)/Rules.mak +CONFIG_OBJ = dn.txt oids.txt eku.txt + +misc all: $(CONFIG_OBJ) + +MSG := \# Do not edit this file, rather use + +%.txt: %.text + @$(PRINT) " GEN [$(BASENAME)] $@" +ifeq ($(HOST), w32) + (echo "$(MSG) PROFILE\Application Data\xca\$@" && cat $^) | sed 's/$$/\r/' > $@ +else ifneq ($(DARWIN),) + (echo "$(MSG) HOME/Library/Preferences/xca/$@" && cat $^) > $@ +else + (echo "$(MSG) /etc/xca/$@ or HOME/.xca/$@" && cat $^) > $@ +endif + + install: install -m 755 -d $(destdir)$(xca_prefix) \ $(destdir)$(datarootdir)/applications \ $(destdir)$(datarootdir)/mime/packages - install -m 644 $(SRCPATH)*.txt $(SRCPATH)*.xca \ + install -m 644 $(CONFIG_OBJ) $(SRCPATH)*.xca \ $(destdir)$(xca_prefix) install -m 644 $(SRCPATH)xca.desktop $(destdir)$(datarootdir)/applications install -m 644 $(SRCPATH)xca.xml $(destdir)$(datarootdir)/mime/packages diff --git a/misc/aia.txt b/misc/aia.txt deleted file mode 100644 index 1bcad0b5..00000000 --- a/misc/aia.txt +++ /dev/null @@ -1,3 +0,0 @@ -# Do not edit this file, rather use /etc/xca/aia.txt or $HOME/.xca/aia.txt -OCSP -caIssuers diff --git a/misc/dn.txt b/misc/dn.text similarity index 74% rename from misc/dn.txt rename to misc/dn.text index d3f0fcb7..6bea5cd0 100644 --- a/misc/dn.txt +++ b/misc/dn.text @@ -1,4 +1,3 @@ -# Do not edit this file, rather use /etc/xca/dn.txt or $HOME/.xca/dn.txt C ST L diff --git a/misc/eku.txt b/misc/eku.text similarity index 76% rename from misc/eku.txt rename to misc/eku.text index ba3ccdc6..988ef517 100644 --- a/misc/eku.txt +++ b/misc/eku.text @@ -1,4 +1,3 @@ -# Do not edit this file, rather use /etc/xca/eku.txt or $HOME/.xca/eku.txt serverAuth clientAuth codeSigning diff --git a/misc/oids.txt b/misc/oids.text similarity index 91% rename from misc/oids.txt rename to misc/oids.text index 7a1ee741..d1939eff 100644 --- a/misc/oids.txt +++ b/misc/oids.text @@ -1,5 +1,3 @@ -# Do not edit this file, add your own OIDs in /etc/xca/oids.txt -# or $HOME/.xca # OID short name long name 1.3.6.1.4.1.311.20.2: dom: Domain Controller diff --git a/misc/xca.nsi b/misc/xca.nsi index 3fb4b8c2..c20a0aa0 100755 --- a/misc/xca.nsi +++ b/misc/xca.nsi @@ -68,10 +68,9 @@ Section "xca (required)" SecMain ; Put files there File "xca.exe" File "xca_db_stat.exe" - File "${TOPDIR}/misc\dn.txt" - File "${TOPDIR}/misc\eku.txt" - File "${TOPDIR}/misc\oids.txt" - File "${TOPDIR}/misc\aia.txt" + File "misc\dn.txt" + File "misc\eku.txt" + File "misc\oids.txt" File "${TOPDIR}/misc\*.xca" File "doc\*.html" @@ -96,6 +95,7 @@ Section "xca (required)" SecMain Delete "$INSTDIR\QtGui4.dll" Delete "$INSTDIR\QtCore4.dll" Delete "$INSTDIR\mingwm10.dll" + Delete "$INSTDIR\aia.txt" ; remove old images ; Write the installation path into the registry diff --git a/ui/NewX509.ui b/ui/NewX509.ui index 94fdeba1..d3d82068 100644 --- a/ui/NewX509.ui +++ b/ui/NewX509.ui @@ -878,9 +878,6 @@ - - can be altered by the file "aia.txt" - diff --git a/widgets/MainWindow.cpp b/widgets/MainWindow.cpp index c068c58b..452f8109 100644 --- a/widgets/MainWindow.cpp +++ b/widgets/MainWindow.cpp @@ -55,7 +55,6 @@ db_crl *MainWindow::crls = NULL; NIDlist *MainWindow::eku_nid = NULL; NIDlist *MainWindow::dn_nid = NULL; -NIDlist *MainWindow::aia_nid = NULL; QString MainWindow::mandatory_dn; QString MainWindow::explicit_dn; @@ -141,7 +140,6 @@ MainWindow::MainWindow(QWidget *parent) eku_nid = read_nidlist("eku.txt"); dn_nid = read_nidlist("dn.txt"); - aia_nid = read_nidlist("aia.txt"); setAcceptDrops(true); @@ -218,9 +216,9 @@ NIDlist *MainWindow::read_nidlist(QString name) NIDlist nl; name = QDir::separator() + name; -#if !defined(Q_OS_WIN32) /* first try $HOME/xca/ */ nl = readNIDlist(getUserSettingsDir() + name); +#if !defined(Q_OS_WIN32) #if !defined(Q_OS_MAC) if (nl.count() == 0){ /* next is /etx/xca/... */ @@ -580,8 +578,6 @@ MainWindow::~MainWindow() delete eku_nid; if (dn_nid) delete dn_nid; - if (aia_nid) - delete aia_nid; delete dbindex; #ifdef MDEBUG fprintf(stderr, "Memdebug:\n"); diff --git a/widgets/MainWindow.h b/widgets/MainWindow.h index 8a30d4e4..9f728c9e 100644 --- a/widgets/MainWindow.h +++ b/widgets/MainWindow.h @@ -110,7 +110,7 @@ class MainWindow: public QMainWindow, public Ui::MainWindow static QPixmap *keyImg, *csrImg, *certImg, *tempImg, *nsImg, *revImg, *appIco, *scardImg, *doneIco, *warnIco; - static NIDlist *eku_nid, *dn_nid, *aia_nid; + static NIDlist *eku_nid, *dn_nid; static QString mandatory_dn; static QString explicit_dn; static QString explicit_dn_default; diff --git a/widgets/NewX509.cpp b/widgets/NewX509.cpp index 3dba87e5..844eb42c 100644 --- a/widgets/NewX509.cpp +++ b/widgets/NewX509.cpp @@ -32,7 +32,7 @@ NewX509::NewX509(QWidget *parent) int i; eku_nid = *MainWindow::eku_nid; dn_nid = *MainWindow::dn_nid; - aia_nid = *MainWindow::aia_nid; + aia_nid << OBJ_sn2nid("OCSP") << OBJ_sn2nid("caIssuers"); attr_nid << NID_pkcs9_unstructuredName << NID_pkcs9_challengePassword; foreach(QString dn, MainWindow::explicit_dn.split(",")) expl_dn_nid << OBJ_sn2nid(CCHAR(dn)); diff --git a/xca.pro b/xca.pro index 23b11607..ab2ed139 100644 --- a/xca.pro +++ b/xca.pro @@ -12,7 +12,7 @@ RC_FILE = img/w32res.rc macx { ICON = img/xca-mac-icon.icns CONFIG += release_and_debug - XCA_RESOURCES.files = misc/oids.txt misc/aia.txt misc/CA.xca misc/dn.txt misc/eku.txt misc/HTTPS_client.xca misc/HTTPS_server.xca + XCA_RESOURCES.files = misc/oids.txt misc/CA.xca misc/dn.txt misc/eku.txt misc/HTTPS_client.xca misc/HTTPS_server.xca XCA_RESOURCES.files += lang/xca_de.qm lang/xca_es.qm lang/xca_ru.qm lang/xca_fr.qm lang/xca_hr.qm XCA_RESOURCES.path = Contents/Resources QMAKE_BUNDLE_DATA += XCA_RESOURCES