read more than one certificate from a file; take file names in command line arguments
This commit is contained in:
@@ -181,6 +181,8 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
|
|||||||
_AM_SUBST_NOTMAKE([AUTHOR])
|
_AM_SUBST_NOTMAKE([AUTHOR])
|
||||||
DISTRO=$(lsb_release -sc 2>/dev/null || uname -s 2>/dev/null)
|
DISTRO=$(lsb_release -sc 2>/dev/null || uname -s 2>/dev/null)
|
||||||
AX_SUBST(DISTRO)
|
AX_SUBST(DISTRO)
|
||||||
|
ARCH=$((@<:@@<:@ $(uname -sm) =~ 64 @:>@@:>@ && echo amd64) || (@<:@@<:@ $(uname -sm) =~ 'i?86' @:>@@:>@ && echo i386 || uname -sm))
|
||||||
|
AX_SUBST(ARCH)
|
||||||
DISTRIBUTOR=$(lsb_release -si 2>/dev/null || uname -s 2>/dev/null)
|
DISTRIBUTOR=$(lsb_release -si 2>/dev/null || uname -s 2>/dev/null)
|
||||||
case "${DISTRIBUTOR// /-}" in
|
case "${DISTRIBUTOR// /-}" in
|
||||||
(Ubuntu) UBUNTU=1; AX_SUBST(UBUNTU);;
|
(Ubuntu) UBUNTU=1; AX_SUBST(UBUNTU);;
|
||||||
|
14
bootstrap.sh
14
bootstrap.sh
@@ -31,8 +31,9 @@ while test $# -gt 0; do
|
|||||||
(--configure|-c) configure=1;;
|
(--configure|-c) configure=1;;
|
||||||
(--docker|-d) docker=1;;
|
(--docker|-d) docker=1;;
|
||||||
(--build|-b) configure=1; build=1; buildtarget+=" distcheck";;
|
(--build|-b) configure=1; build=1; buildtarget+=" distcheck";;
|
||||||
(--target|-t) shift; configure=1; build=1; buildtarget+=" $1";;
|
(--all|-a) shift; configure=1; build=1; buildtarget+=" all";;
|
||||||
(--clean) shift; configure=1; build=1; buildtarget+=" maintainer-clean";;
|
(--clean) shift; configure=1; build=1; buildtarget+=" maintainer-clean";;
|
||||||
|
(--target|-t) shift; configure=1; build=1; buildtarget+=" $1";;
|
||||||
(--overwrite|-o) overwrite=1;;
|
(--overwrite|-o) overwrite=1;;
|
||||||
(--rebuild|-r) rebuild=1;;
|
(--rebuild|-r) rebuild=1;;
|
||||||
(--rebuild-file|-f) shift; rebuildfiles+=("$1");;
|
(--rebuild-file|-f) shift; rebuildfiles+=("$1");;
|
||||||
@@ -51,6 +52,8 @@ OPTIONS
|
|||||||
--configure, -c call ./configure after initialization
|
--configure, -c call ./configure after initialization
|
||||||
--docker, -d build and run tests in a docker instance
|
--docker, -d build and run tests in a docker instance
|
||||||
--build, -b build, also call ./configure && make distcheck
|
--build, -b build, also call ./configure && make distcheck
|
||||||
|
--all, -a same as -b, but make target all
|
||||||
|
--clean same as -b, but make target maintainer-clean
|
||||||
--target, -t <target> same as -b, but specify target instead of distcheck
|
--target, -t <target> same as -b, but specify target instead of distcheck
|
||||||
--overwrite, -o overwrite all basic files (bootstrap.sh, m4-macros)
|
--overwrite, -o overwrite all basic files (bootstrap.sh, m4-macros)
|
||||||
--rebuild, -r force rebuild of generated files, even if modified
|
--rebuild, -r force rebuild of generated files, even if modified
|
||||||
@@ -129,6 +132,7 @@ GENERATED FILES
|
|||||||
* resolve-debbuilddeps.sh - script to install debian package dependencies
|
* resolve-debbuilddeps.sh - script to install debian package dependencies
|
||||||
* resolve-rpmbuilddeps.sh - script to install RPM package dependencies
|
* resolve-rpmbuilddeps.sh - script to install RPM package dependencies
|
||||||
* build-in-docker.sh - script to build the project encapsulated in a docker container
|
* build-in-docker.sh - script to build the project encapsulated in a docker container
|
||||||
|
* build-in-docker.conf - additional configuration for build-in-docker.sh
|
||||||
* build-resource-file.sh - build resource.qrc file from a resource directory
|
* build-resource-file.sh - build resource.qrc file from a resource directory
|
||||||
* sql-to-dot.sed - script to convert SQL schema files to graphviz dot in doxygen
|
* sql-to-dot.sed - script to convert SQL schema files to graphviz dot in doxygen
|
||||||
* mac-create-app-bundle.sh - script to create apple mac os-x app-bundle
|
* mac-create-app-bundle.sh - script to create apple mac os-x app-bundle
|
||||||
@@ -845,7 +849,7 @@ if testtag AX_USE_DOXYGEN; then
|
|||||||
doxyreplace PROJECT_NAME "@PACKAGE_NAME@"
|
doxyreplace PROJECT_NAME "@PACKAGE_NAME@"
|
||||||
doxyreplace PROJECT_NUMBER "@PACKAGE_VERSION@"
|
doxyreplace PROJECT_NUMBER "@PACKAGE_VERSION@"
|
||||||
doxyreplace PROJECT_BRIEF "@DESCRIPTION@"
|
doxyreplace PROJECT_BRIEF "@DESCRIPTION@"
|
||||||
doxyreplace PROJECT_LOGO "@top_srcdir@/@PACKACE_LOGO@"
|
doxyreplace PROJECT_LOGO "@top_srcdir@/@PACKAGE_LOGO@"
|
||||||
doxyreplace INLINE_INHERITED_MEMB YES
|
doxyreplace INLINE_INHERITED_MEMB YES
|
||||||
doxyreplace MULTILINE_CPP_IS_BRIEF YES
|
doxyreplace MULTILINE_CPP_IS_BRIEF YES
|
||||||
doxyreplace TAB_SIZE 2
|
doxyreplace TAB_SIZE 2
|
||||||
@@ -1162,6 +1166,12 @@ Libs: -L\${libdir} -l${PACKAGE_NAME#lib} @LDFLAGS@
|
|||||||
Cflags: -I\${includedir} @CPPFLAGS@
|
Cflags: -I\${includedir} @CPPFLAGS@
|
||||||
Requires: @PKG_REQUIREMENTS@
|
Requires: @PKG_REQUIREMENTS@
|
||||||
EOF
|
EOF
|
||||||
|
to build-in-docker.conf <<EOF
|
||||||
|
repos+=("Debian|Ubuntu-precise::::::universe")
|
||||||
|
repos+=("Ubuntu-precise:::'deb http://archive.ubuntu.com/ubuntu precise universe'")
|
||||||
|
envs+=("-e 'HOME=\${HOME}'")
|
||||||
|
dirs+=("-v \${HOME}/.gnupg:\${HOME}/.gnupg:ro")
|
||||||
|
EOF
|
||||||
|
|
||||||
#### Cleanup If Makefile Exists ####
|
#### Cleanup If Makefile Exists ####
|
||||||
if test -f makefile; then
|
if test -f makefile; then
|
||||||
|
4
build-in-docker.conf
Normal file
4
build-in-docker.conf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
repos+=("Debian|Ubuntu-precise::::::universe")
|
||||||
|
repos+=("Ubuntu-precise:::'deb http://archive.ubuntu.com/ubuntu precise universe'")
|
||||||
|
envs+=("-e 'HOME=${HOME}'")
|
||||||
|
dirs+=("-v ${HOME}/.gnupg:${HOME}/.gnupg:ro")
|
@@ -12,10 +12,17 @@
|
|||||||
|
|
||||||
SCHROOTNAME="$1"
|
SCHROOTNAME="$1"
|
||||||
PACKAGE_NAME=$(sed -n 's/^ *m4_define(x_package_name, \(.*\)).*/\1/p' configure.ac)
|
PACKAGE_NAME=$(sed -n 's/^ *m4_define(x_package_name, \(.*\)).*/\1/p' configure.ac)
|
||||||
|
PKGCONFIGS="${2:-epel-release}" # packages to configure yum
|
||||||
|
|
||||||
if test -n "${SCHROOTNAME}"; then
|
if test -n "${SCHROOTNAME}"; then
|
||||||
FILES=$(LANG= schroot -c ${SCHROOTNAME} -- rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p')
|
FILES=$(LANG= schroot -c ${SCHROOTNAME} -- rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p')
|
||||||
if test -n "${FILES}"; then
|
if test -n "${FILES}"; then
|
||||||
|
FIRST=$(echo "${FILES}" | egrep -o "${PKGCONFIGS// /|}")
|
||||||
|
if test -n "${FIRST}"; then
|
||||||
|
schroot -c ${SCHROOTNAME} -u root -- yum install -y ${FIRST} || \
|
||||||
|
schroot -c ${SCHROOTNAME} -u root -- zypper install -y ${FIRST} || \
|
||||||
|
schroot -c ${SCHROOTNAME} -u root -- dnf install -y ${FIRST}
|
||||||
|
fi
|
||||||
schroot -c ${SCHROOTNAME} -u root -- yum install -y ${FILES} || \
|
schroot -c ${SCHROOTNAME} -u root -- yum install -y ${FILES} || \
|
||||||
schroot -c ${SCHROOTNAME} -u root -- zypper install -y ${FILES} || \
|
schroot -c ${SCHROOTNAME} -u root -- zypper install -y ${FILES} || \
|
||||||
schroot -c ${SCHROOTNAME} -u root -- dnf install -y ${FILES}
|
schroot -c ${SCHROOTNAME} -u root -- dnf install -y ${FILES}
|
||||||
@@ -23,6 +30,12 @@ if test -n "${SCHROOTNAME}"; then
|
|||||||
else
|
else
|
||||||
FILES=$(LANG= rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p')
|
FILES=$(LANG= rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p')
|
||||||
if test -n "${FILES}"; then
|
if test -n "${FILES}"; then
|
||||||
|
FIRST=$(echo "${FILES}" | egrep -o "${PKGCONFIGS// /|}")
|
||||||
|
if test -n "${FIRST}"; then
|
||||||
|
yum install -y ${FIRST} || \
|
||||||
|
zypper install -y ${FIRST} || \
|
||||||
|
dnf install -y ${FIRST}
|
||||||
|
fi
|
||||||
yum install -y ${FILES} || \
|
yum install -y ${FILES} || \
|
||||||
zypper install -y ${FILES} || \
|
zypper install -y ${FILES} || \
|
||||||
dnf install -y ${FILES}
|
dnf install -y ${FILES}
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
|
#include <QMessageBox>
|
||||||
#include <QRegExp>
|
#include <QRegExp>
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
@@ -33,24 +34,34 @@ class CertMan: public QMainWindow, protected Ui::CertMan {
|
|||||||
connect(&_openFromURL, SIGNAL(certificate(QUrl, QSslCertificate)),
|
connect(&_openFromURL, SIGNAL(certificate(QUrl, QSslCertificate)),
|
||||||
SLOT(certificate(QUrl, QSslCertificate)));
|
SLOT(certificate(QUrl, QSslCertificate)));
|
||||||
}
|
}
|
||||||
|
bool open(const QString& fileName) {
|
||||||
|
bool status(true);
|
||||||
|
QFile file(fileName);
|
||||||
|
file.open(QIODevice::ReadOnly);
|
||||||
|
while (!file.atEnd()) {
|
||||||
|
QSslCertificate c(&file);
|
||||||
|
if (!c.isNull()) {
|
||||||
|
Certificate* win(new Certificate(_mdi));
|
||||||
|
_mdi->addSubWindow(win)->setWindowTitle(QFileInfo(fileName).fileName());
|
||||||
|
win->show();
|
||||||
|
win->certificate(c);
|
||||||
|
} else {
|
||||||
|
status = false;
|
||||||
|
qDebug()<<QObject::trUtf8("Cannot read PEM certificate from file: %1")
|
||||||
|
.arg(fileName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file.close();
|
||||||
|
return status;
|
||||||
|
}
|
||||||
virtual ~CertMan() {}
|
virtual ~CertMan() {}
|
||||||
protected slots:
|
protected slots:
|
||||||
void on__actionOpenCertificate_triggered() {
|
void on__actionOpenCertificate_triggered() {
|
||||||
QString fileName = QFileDialog::getOpenFileName(this);
|
QString fileName = QFileDialog::getOpenFileName(this);
|
||||||
if (fileName.isEmpty()) return;
|
if (fileName.isEmpty()) return;
|
||||||
QFile file(fileName);
|
if (!open(fileName))
|
||||||
file.open(QIODevice::ReadOnly);
|
QMessageBox::warning(this, "Error Loading File",
|
||||||
QSslCertificate c(&file);
|
QString("Error loading file:\n%1").arg(fileName));
|
||||||
file.close();
|
|
||||||
if (c.isNull()) {
|
|
||||||
qDebug()<<QObject::trUtf8("Cannot read PEM certificate from file: %1")
|
|
||||||
.arg(fileName);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Certificate* win(new Certificate(_mdi));
|
|
||||||
_mdi->addSubWindow(win)->setWindowTitle(QFileInfo(fileName).fileName());
|
|
||||||
win->show();
|
|
||||||
win->certificate(c);
|
|
||||||
}
|
}
|
||||||
void on__actionOpenFromURL_triggered() {
|
void on__actionOpenFromURL_triggered() {
|
||||||
if (_openFromURL.exec()==QDialog::Accepted) {
|
if (_openFromURL.exec()==QDialog::Accepted) {
|
||||||
|
@@ -18,8 +18,12 @@ int main(int argc, char *argv[]) try {
|
|||||||
QCommandLineParser parser;
|
QCommandLineParser parser;
|
||||||
parser.addHelpOption();
|
parser.addHelpOption();
|
||||||
parser.process(a);
|
parser.process(a);
|
||||||
QStringList scripts(parser.positionalArguments());
|
QStringList files(parser.positionalArguments());
|
||||||
CertMan w;
|
CertMan w;
|
||||||
|
for (const QString& file: files) {
|
||||||
|
if (!w.open(file))
|
||||||
|
std::cerr<<"Error reading file: "<<file.toStdString()<<std::endl;
|
||||||
|
}
|
||||||
w.show();
|
w.show();
|
||||||
return a.exec();
|
return a.exec();
|
||||||
} catch (std::exception &x) {
|
} catch (std::exception &x) {
|
||||||
|
Reference in New Issue
Block a user