Hello community,

here is the log from the commit of package uacme for openSUSE:Factory checked 
in at 2020-02-04 19:52:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/uacme (Old)
 and      /work/SRC/openSUSE:Factory/.uacme.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "uacme"

Tue Feb  4 19:52:48 2020 rev:2 rq:769544 version:1.0.22

Changes:
--------
--- /work/SRC/openSUSE:Factory/uacme/uacme.changes      2020-01-13 
22:21:05.510506191 +0100
+++ /work/SRC/openSUSE:Factory/.uacme.new.26092/uacme.changes   2020-02-04 
19:53:10.129315145 +0100
@@ -1,0 +2,12 @@
+Sun Feb  2 10:56:22 UTC 2020 - Martin Hauke <[email protected]>
+
+- Update to version 1.0.22
+  * relax account status check (compatibility with buypass.no)
+  * allow client challenge retry requests (RFC8555 sec. 7.1.6)
+  * pass -L flag to a2x in order to avoid depending on xmllint
+  * add wildcard clarification in manpage
+- Update to version 1.0.21
+  * Fixed uacme.sh: https://github.com/ndilieto/uacme/pull/12
+  * Added LFS support (AC_SYS_LARGEFILE)
+
+-------------------------------------------------------------------

Old:
----
  uacme-1.0.20.tar.gz

New:
----
  uacme-1.0.22.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ uacme.spec ++++++
--- /var/tmp/diff_new_pack.KAuEWc/_old  2020-02-04 19:53:10.917315605 +0100
+++ /var/tmp/diff_new_pack.KAuEWc/_new  2020-02-04 19:53:10.941315618 +0100
@@ -1,6 +1,7 @@
 #
 # spec file for package uacme
 #
+# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany.
 # Copyright (c) 2020, Martin Hauke <[email protected]>
 #
 # All modifications and additions to the file contributed by third parties
@@ -15,8 +16,9 @@
 # Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
+
 Name:           uacme
-Version:        1.0.20
+Version:        1.0.22
 Release:        0
 Summary:        A minimal ACMEv2 client
 License:        GPL-3.0-or-later

++++++ uacme-1.0.20.tar.gz -> uacme-1.0.22.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/ChangeLog new/uacme-1.0.22/ChangeLog
--- old/uacme-1.0.20/ChangeLog  2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/ChangeLog  2020-02-01 10:59:29.000000000 +0100
@@ -1,3 +1,15 @@
+2020-02-01 Nicola Di Lieto <[email protected]>
+       * Release 1.0.22
+       - relax account status check (compatibility with buypass.no)
+       - allow client challenge retry requests (RFC8555 sec. 7.1.6)
+       - pass -L flag to a2x in order to avoid depending on xmllint
+       - add wildcard clarification in manpage
+
+2020-01-12 Nicola Di Lieto <[email protected]>
+       * Release 1.0.21
+       - Fixed uacme.sh: https://github.com/ndilieto/uacme/pull/12
+       - Added LFS support (AC_SYS_LARGEFILE)
+
 2019-10-03 Nicola Di Lieto <[email protected]>
        * Release 1.0.20
        - improved HTTP header parsing to fix problem that
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/Makefile.am new/uacme-1.0.22/Makefile.am
--- old/uacme-1.0.20/Makefile.am        2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/Makefile.am        2020-02-01 10:59:29.000000000 +0100
@@ -1,4 +1,4 @@
-# Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+# Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
 #
 # This file is part of uacme.
 #
@@ -38,7 +38,7 @@
 dist_html_DATA = uacme.1.html
 
 uacme.1: uacme.1.txt $(top_srcdir)/.version
-       $(A2X) -d manpage -f manpage -a revision=$(VERSION) $<
+       $(A2X) -L -d manpage -f manpage -a revision=$(VERSION) $<
 
 uacme.1.html: uacme.1.txt $(top_srcdir)/.version
        $(ASCIIDOC) -d manpage -b html5 -a revision=$(VERSION) $<
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/Makefile.in new/uacme-1.0.22/Makefile.in
--- old/uacme-1.0.20/Makefile.in        2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/Makefile.in        2020-02-01 10:59:29.000000000 +0100
@@ -14,7 +14,7 @@
 
 @SET_MAKE@
 
-# Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+# Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
 #
 # This file is part of uacme.
 #
@@ -929,7 +929,7 @@
        echo $(VERSION) > $(distdir)/.tarball-version
 
 @[email protected]: uacme.1.txt $(top_srcdir)/.version
-@ENABLE_DOCS_TRUE@     $(A2X) -d manpage -f manpage -a revision=$(VERSION) $<
+@ENABLE_DOCS_TRUE@     $(A2X) -L -d manpage -f manpage -a revision=$(VERSION) 
$<
 
 @[email protected]: uacme.1.txt $(top_srcdir)/.version
 @ENABLE_DOCS_TRUE@     $(ASCIIDOC) -d manpage -b html5 -a revision=$(VERSION) 
$<
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/NEWS new/uacme-1.0.22/NEWS
--- old/uacme-1.0.20/NEWS       2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/NEWS       2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,16 @@
 uacme NEWS
-Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
+
+## [1.0.22] - 2020-02-01
+### Changed
+- relax account status check (compatibility with buypass.no)
+- allow client challenge retry requests (RFC8555 section 7.1.6)
+- add wildcard clarification in manpage
+
+## [1.0.21] - 2020-01-12
+### Changed
+- Quote variables in uacme.sh
+- Added LFS support (AC_SYS_LARGEFILE)
 
 ## [1.0.20] - 2019-10-03
 ### Changed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/README new/uacme-1.0.22/README
--- old/uacme-1.0.20/README     2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/README     2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,5 @@
 uacme README 
-Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
 
 uacme is a client for the RFC8555 ACMEv2 protocol. Additional
 information can be found at <https://github.com/ndilieto/uacme>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/README.md new/uacme-1.0.22/README.md
--- old/uacme-1.0.20/README.md  2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/README.md  2020-02-01 10:59:29.000000000 +0100
@@ -44,6 +44,9 @@
 by specifying the **--verbose** flag once or more.
 
 ## Installation
+**Please do not use the master branch. Pristine releases are in the 
upstream/latest
+branch, tagged as upstream/x.x.x**
+
 ```
 mkdir uacme
 wget -O - https://github.com/ndilieto/uacme/archive/upstream/latest.tar.gz | 
tar zx -C uacme --strip-components=1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/base64.c new/uacme-1.0.22/base64.c
--- old/uacme-1.0.20/base64.c   2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/base64.c   2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+ * Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/base64.h new/uacme-1.0.22/base64.h
--- old/uacme-1.0.20/base64.h   2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/base64.h   2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+ * Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/configure new/uacme-1.0.22/configure
--- old/uacme-1.0.20/configure  2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/configure  2020-02-01 10:59:29.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for uacme 1.0.20.
+# Generated by GNU Autoconf 2.69 for uacme 1.0.22.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@
 # Identity of this package.
 PACKAGE_NAME='uacme'
 PACKAGE_TARNAME='uacme'
-PACKAGE_VERSION='1.0.20'
-PACKAGE_STRING='uacme 1.0.20'
+PACKAGE_VERSION='1.0.22'
+PACKAGE_STRING='uacme 1.0.22'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -732,6 +732,7 @@
 enable_maintainer_mode
 enable_debug
 enable_dependency_tracking
+enable_largefile
 with_libcurl
 with_mbedtls
 with_openssl
@@ -1290,7 +1291,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures uacme 1.0.20 to adapt to many kinds of systems.
+\`configure' configures uacme 1.0.22 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1356,7 +1357,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of uacme 1.0.20:";;
+     short | recursive ) echo "Configuration of uacme 1.0.22:";;
    esac
   cat <<\_ACEOF
 
@@ -1375,6 +1376,7 @@
                           do not reject slow dependency extractors
   --disable-dependency-tracking
                           speeds up one-time build
+  --disable-largefile     omit support for large files
   --disable-docs          do not build and install documentation
 
 Optional Packages:
@@ -1469,7 +1471,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-uacme configure 1.0.20
+uacme configure 1.0.22
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1834,7 +1836,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by uacme $as_me 1.0.20, which was
+It was created by uacme $as_me 1.0.22, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2699,7 +2701,7 @@
 
 # Define the identity of the package.
  PACKAGE='uacme'
- VERSION='1.0.20'
+ VERSION='1.0.22'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -5538,6 +5540,206 @@
   :
 fi
 
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+  enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler 
options needed for large files" >&5
+$as_echo_n "checking for special C compiler options needed for large files... 
" >&6; }
+if ${ac_cv_sys_largefile_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_sys_largefile_CC=no
+     if test "$GCC" != yes; then
+       ac_save_CC=$CC
+       while :; do
+        # IRIX 6.2 and later do not support large files by default,
+        # so use the C compiler's -n32 option if that helps.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+        if ac_fn_c_try_compile "$LINENO"; then :
+  break
+fi
+rm -f core conftest.err conftest.$ac_objext
+        CC="$CC -n32"
+        if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+        break
+       done
+       CC=$ac_save_CC
+       rm -f conftest.$ac_ext
+    fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+  if test "$ac_cv_sys_largefile_CC" != no; then
+    CC=$CC$ac_cv_sys_largefile_CC
+  fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS 
value needed for large files" >&5
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " 
>&6; }
+if ${ac_cv_sys_file_offset_bits+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  while :; do
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_file_offset_bits=unknown
+  break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" 
>&5
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+  if test $ac_cv_sys_file_offset_bits = unknown; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value 
needed for large files" >&5
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
+if ${ac_cv_sys_large_files+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  while :; do
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+                      && LARGE_OFF_T % 2147483647 == 1)
+                     ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_large_files=unknown
+  break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+$as_echo "$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+  fi
+
+
+fi
+
 
 if test -n "$PKG_CONFIG"; then
     PKGCONFIG="$PKG_CONFIG"
@@ -6935,7 +7137,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by uacme $as_me 1.0.20, which was
+This file was extended by uacme $as_me 1.0.22, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6992,7 +7194,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-uacme config.status 1.0.20
+uacme config.status 1.0.22
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/configure.ac 
new/uacme-1.0.22/configure.ac
--- old/uacme-1.0.20/configure.ac       2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/configure.ac       2020-02-01 10:59:29.000000000 +0100
@@ -1,4 +1,4 @@
-# Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+# Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
 #
 # This file is part of uacme.
 #
@@ -46,6 +46,7 @@
 AX_CHECK_COMPILE_FLAG([$CFLAGS -Wall], [CFLAGS="$CFLAGS -Wall"])
 AX_CHECK_COMPILE_FLAG([$CFLAGS -Wextra], [CFLAGS="$CFLAGS -Wextra"])
 AX_CHECK_COMPILE_FLAG([$CFLAGS -pedantic], [CFLAGS="$CFLAGS -pedantic"])
+AC_SYS_LARGEFILE
 
 if test -n "$PKG_CONFIG"; then
     PKGCONFIG="$PKG_CONFIG"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/crypto.c new/uacme-1.0.22/crypto.c
--- old/uacme-1.0.20/crypto.c   2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/crypto.c   2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+ * Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/crypto.h new/uacme-1.0.22/crypto.h
--- old/uacme-1.0.20/crypto.h   2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/crypto.h   2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+ * Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/curlwrap.c new/uacme-1.0.22/curlwrap.c
--- old/uacme-1.0.20/curlwrap.c 2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/curlwrap.c 2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+ * Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/curlwrap.h new/uacme-1.0.22/curlwrap.h
--- old/uacme-1.0.20/curlwrap.h 2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/curlwrap.h 2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+ * Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/docs/index.html 
new/uacme-1.0.22/docs/index.html
--- old/uacme-1.0.20/docs/index.html    2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/docs/index.html    2020-02-01 10:59:29.000000000 +0100
@@ -869,7 +869,7 @@
 <p>
     Challenge hook program. If not specified <strong>uacme</strong> interacts 
with
     the user for every ACME challenge, printing information about the
-    challenge type, token and authorization on stderr.  If specified,
+    challenge type, token and authorization on stderr.  If specified
     <strong>uacme</strong> executes <em>PROGRAM</em> (a binary, a shell script 
or any file that
     can be executed by the operating system) for every challenge with
     the following 5 string arguments:
@@ -963,7 +963,7 @@
 <dd>
 <p>
     By default <strong>uacme</strong> creates directories/keys if they do not 
exist.
-    When this option is specified, <strong>uacme</strong> never does so and 
instead
+    When this option is specified <strong>uacme</strong> never does so and 
instead
     exits with an error if anything required is missing.
 </p>
 </dd>
@@ -1048,8 +1048,8 @@
 <dd>
 <p>
     Update the <em>EMAIL</em> associated with the ACME account corresponding to
-    the account private key. If <em>EMAIL</em> is not specified, the account
-    contact email will be dropped.
+    the account private key. If <em>EMAIL</em> is not specified the account
+    contact email is removed.
 </p>
 </dd>
 <dt class="hdlist1">
@@ -1084,14 +1084,19 @@
 <p>
     Issue a certificate for <em>DOMAIN</em> with zero or more 
<em>ALTNAMEs</em>.
     If a certificate is already available at <em>CONFDIR/DOMAIN/cert.pem</em>
-    for the specified <em>DOMAIN</em> and <em>ALTNAMEs</em>, and is still 
valid for
-    longer than <em>DAYS</em>, no action is taken unless <strong>-f, 
--force</strong> is
+    for the specified <em>DOMAIN</em> and <em>ALTNAMEs</em> and is still valid 
for
+    longer than <em>DAYS</em> no action is taken unless <strong>-f, 
--force</strong> is
     specified. The new certificate is saved to 
<em>CONFDIR/DOMAIN/cert.pem</em>.
-    If the certificate file already exists, it is hardlinked to
+    If the certificate file already exists it is hardlinked to
     <em>CONFDIR/DOMAIN/cert-TIMESTAMP.pem</em> before overwriting.
     The private key for the certificate is loaded from
     <em>CONFDIR/private/DOMAIN/key.pem</em>. If no such file exists,
     a new key is generated unless <strong>-n, --never-create</strong> is 
specified.
+    Wildcard DOMAINs or ALTNAMEs are dealt with correctly, as long as
+    the ACME server supports them; note that any such wildcards are
+    automatically removed from the configuration subdirectory name:
+    for example a certificate for <em>*.test.com</em> is saved to
+    <em>CONFDIR/test.com/cert.pem</em>.
 </p>
 </dd>
 <dt class="hdlist1">
@@ -1157,7 +1162,7 @@
 <div class="content monospaced">
 <pre>if test $# -ne "$ARGS"
 then
-    echo "Usage: `basename $0` method type ident token auth" 1&gt;&amp;2
+    echo "Usage: $(basename "$0") method type ident token auth" 1&gt;&amp;2
     exit $E_BADARGS
 fi</pre>
 </div></div>
@@ -1175,27 +1180,32 @@
     "begin")
         case "$TYPE" in
             http-01)
-                echo -n "${AUTH}" &gt; ${CHALLENGE_PATH}/${TOKEN}
+                echo -n "${AUTH}" &gt; "${CHALLENGE_PATH}/${TOKEN}"
                 exit $?
                 ;;
             *)
                 exit 1
                 ;;
         esac
-        ;;
-    "done"|"failed")
-        case "$TYPE" in
-            http-01)
-                rm ${CHALLENGE_PATH}/${TOKEN}
-                exit $?
-                ;;
-            *)
-                exit 1
-                ;;
-        esac
-        exit 0
-        ;;
-    *)
+        ;;</pre>
+</div></div>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>"done"|"failed")
+    case "$TYPE" in
+        http-01)
+            rm "${CHALLENGE_PATH}/${TOKEN}"
+            exit $?
+            ;;
+        *)
+            exit 1
+            ;;
+    esac
+    ;;</pre>
+</div></div>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>    *)
         echo "$0: invalid method" 1&gt;&amp;2
         exit 1
 esac</pre>
@@ -1219,7 +1229,7 @@
 <div class="sect1">
 <h2 id="_copyright">COPYRIGHT</h2>
 <div class="sectionbody">
-<div class="paragraph"><p>Copyright &#169; 2019 Nicola Di Lieto &lt;<a 
href="mailto:[email protected]";>[email protected]</a>&gt;</p></div>
+<div class="paragraph"><p>Copyright &#169; 2019,2020 Nicola Di Lieto &lt;<a 
href="mailto:[email protected]";>[email protected]</a>&gt;</p></div>
 <div class="paragraph"><p>This file is part of 
<strong>uacme</strong>.</p></div>
 <div class="paragraph"><p><strong>uacme</strong> is free software: you can 
redistribute it and/or modify it
 under the terms of the GNU General Public License as published by
@@ -1237,9 +1247,9 @@
 <div id="footnotes"><hr></div>
 <div id="footer">
 <div id="footer-text">
-Version 1.0.20<br>
+Version 1.0.22<br>
 Last updated
- 2019-10-03 20:44:42 CEST
+ 2020-02-01 10:53:00 CET
 </div>
 </div>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/json.c new/uacme-1.0.22/json.c
--- old/uacme-1.0.20/json.c     2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/json.c     2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+ * Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/json.h new/uacme-1.0.22/json.h
--- old/uacme-1.0.20/json.h     2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/json.h     2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+ * Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/msg.c new/uacme-1.0.22/msg.c
--- old/uacme-1.0.20/msg.c      2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/msg.c      2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+ * Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/msg.h new/uacme-1.0.22/msg.h
--- old/uacme-1.0.20/msg.h      2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/msg.h      2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+ * Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
  *
  * This file is part of uacme.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/uacme.1 new/uacme-1.0.22/uacme.1
--- old/uacme-1.0.20/uacme.1    2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/uacme.1    2020-02-01 10:59:29.000000000 +0100
@@ -1,13 +1,13 @@
 '\" t
 .\"     Title: uacme
 .\"    Author: [see the "AUTHOR" section]
-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 10/03/2019
+.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
+.\"      Date: 02/01/2020
 .\"    Manual: User Commands
-.\"    Source: uacme 1.0.20
+.\"    Source: uacme 1.0.22
 .\"  Language: English
 .\"
-.TH "UACME" "1" "10/03/2019" "uacme 1\&.0\&.20" "User Commands"
+.TH "UACME" "1" "02/01/2020" "uacme 1\&.0\&.22" "User Commands"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -107,7 +107,7 @@
 .RS 4
 Challenge hook program\&. If not specified
 \fBuacme\fR
-interacts with the user for every ACME challenge, printing information about 
the challenge type, token and authorization on stderr\&. If specified,
+interacts with the user for every ACME challenge, printing information about 
the challenge type, token and authorization on stderr\&. If specified
 \fBuacme\fR
 executes
 \fIPROGRAM\fR
@@ -180,7 +180,7 @@
 .RS 4
 By default
 \fBuacme\fR
-creates directories/keys if they do not exist\&. When this option is specified,
+creates directories/keys if they do not exist\&. When this option is specified
 \fBuacme\fR
 never does so and instead exits with an error if anything required is 
missing\&.
 .RE
@@ -244,7 +244,7 @@
 \fIEMAIL\fR
 associated with the ACME account corresponding to the account private key\&. If
 \fIEMAIL\fR
-is not specified, the account contact email will be dropped\&.
+is not specified the account contact email is removed\&.
 .RE
 .PP
 \fBuacme\fR [\fIOPTIONS\fR \&...] \fBdeactivate\fR
@@ -278,16 +278,21 @@
 for the specified
 \fIDOMAIN\fR
 and
-\fIALTNAMEs\fR, and is still valid for longer than
-\fIDAYS\fR, no action is taken unless
+\fIALTNAMEs\fR
+and is still valid for longer than
+\fIDAYS\fR
+no action is taken unless
 \fB\-f, \-\-force\fR
 is specified\&. The new certificate is saved to
-\fICONFDIR/DOMAIN/cert\&.pem\fR\&. If the certificate file already exists, it 
is hardlinked to
+\fICONFDIR/DOMAIN/cert\&.pem\fR\&. If the certificate file already exists it 
is hardlinked to
 \fICONFDIR/DOMAIN/cert\-TIMESTAMP\&.pem\fR
 before overwriting\&. The private key for the certificate is loaded from
 \fICONFDIR/private/DOMAIN/key\&.pem\fR\&. If no such file exists, a new key is 
generated unless
 \fB\-n, \-\-never\-create\fR
-is specified\&.
+is specified\&. Wildcard DOMAINs or ALTNAMEs are dealt with correctly, as long 
as the ACME server supports them; note that any such wildcards are 
automatically removed from the configuration subdirectory name: for example a 
certificate for
+\fI*\&.test\&.com\fR
+is saved to
+\fICONFDIR/test\&.com/cert\&.pem\fR\&.
 .RE
 .PP
 \fBuacme\fR [\fIOPTIONS\fR \&...] \fBrevoke\fR \fICERTFILE\fR
@@ -337,7 +342,7 @@
 .nf
 if test $# \-ne "$ARGS"
 then
-    echo "Usage: `basename $0` method type ident token auth" 1>&2
+    echo "Usage: $(basename "$0") method type ident token auth" 1>&2
     exit $E_BADARGS
 fi
 .fi
@@ -367,26 +372,43 @@
     "begin")
         case "$TYPE" in
             http\-01)
-                echo \-n "${AUTH}" > ${CHALLENGE_PATH}/${TOKEN}
-                exit $?
-                ;;
-            *)
-                exit 1
-                ;;
-        esac
-        ;;
-    "done"|"failed")
-        case "$TYPE" in
-            http\-01)
-                rm ${CHALLENGE_PATH}/${TOKEN}
+                echo \-n "${AUTH}" > "${CHALLENGE_PATH}/${TOKEN}"
                 exit $?
                 ;;
             *)
                 exit 1
                 ;;
         esac
-        exit 0
         ;;
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+"done"|"failed")
+    case "$TYPE" in
+        http\-01)
+            rm "${CHALLENGE_PATH}/${TOKEN}"
+            exit $?
+            ;;
+        *)
+            exit 1
+            ;;
+    esac
+    ;;
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
     *)
         echo "$0: invalid method" 1>&2
         exit 1
@@ -403,7 +425,7 @@
 \fBuacme\fR was written by Nicola Di Lieto
 .SH "COPYRIGHT"
 .sp
-Copyright \(co 2019 Nicola Di Lieto <nicola\&.dilieto@gmail\&.com>
+Copyright \(co 2019,2020 Nicola Di Lieto <nicola\&.dilieto@gmail\&.com>
 .sp
 This file is part of \fBuacme\fR\&.
 .sp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/uacme.1.html 
new/uacme-1.0.22/uacme.1.html
--- old/uacme-1.0.20/uacme.1.html       2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/uacme.1.html       2020-02-01 10:59:29.000000000 +0100
@@ -869,7 +869,7 @@
 <p>
     Challenge hook program. If not specified <strong>uacme</strong> interacts 
with
     the user for every ACME challenge, printing information about the
-    challenge type, token and authorization on stderr.  If specified,
+    challenge type, token and authorization on stderr.  If specified
     <strong>uacme</strong> executes <em>PROGRAM</em> (a binary, a shell script 
or any file that
     can be executed by the operating system) for every challenge with
     the following 5 string arguments:
@@ -963,7 +963,7 @@
 <dd>
 <p>
     By default <strong>uacme</strong> creates directories/keys if they do not 
exist.
-    When this option is specified, <strong>uacme</strong> never does so and 
instead
+    When this option is specified <strong>uacme</strong> never does so and 
instead
     exits with an error if anything required is missing.
 </p>
 </dd>
@@ -1048,8 +1048,8 @@
 <dd>
 <p>
     Update the <em>EMAIL</em> associated with the ACME account corresponding to
-    the account private key. If <em>EMAIL</em> is not specified, the account
-    contact email will be dropped.
+    the account private key. If <em>EMAIL</em> is not specified the account
+    contact email is removed.
 </p>
 </dd>
 <dt class="hdlist1">
@@ -1084,14 +1084,19 @@
 <p>
     Issue a certificate for <em>DOMAIN</em> with zero or more 
<em>ALTNAMEs</em>.
     If a certificate is already available at <em>CONFDIR/DOMAIN/cert.pem</em>
-    for the specified <em>DOMAIN</em> and <em>ALTNAMEs</em>, and is still 
valid for
-    longer than <em>DAYS</em>, no action is taken unless <strong>-f, 
--force</strong> is
+    for the specified <em>DOMAIN</em> and <em>ALTNAMEs</em> and is still valid 
for
+    longer than <em>DAYS</em> no action is taken unless <strong>-f, 
--force</strong> is
     specified. The new certificate is saved to 
<em>CONFDIR/DOMAIN/cert.pem</em>.
-    If the certificate file already exists, it is hardlinked to
+    If the certificate file already exists it is hardlinked to
     <em>CONFDIR/DOMAIN/cert-TIMESTAMP.pem</em> before overwriting.
     The private key for the certificate is loaded from
     <em>CONFDIR/private/DOMAIN/key.pem</em>. If no such file exists,
     a new key is generated unless <strong>-n, --never-create</strong> is 
specified.
+    Wildcard DOMAINs or ALTNAMEs are dealt with correctly, as long as
+    the ACME server supports them; note that any such wildcards are
+    automatically removed from the configuration subdirectory name:
+    for example a certificate for <em>*.test.com</em> is saved to
+    <em>CONFDIR/test.com/cert.pem</em>.
 </p>
 </dd>
 <dt class="hdlist1">
@@ -1157,7 +1162,7 @@
 <div class="content monospaced">
 <pre>if test $# -ne "$ARGS"
 then
-    echo "Usage: `basename $0` method type ident token auth" 1&gt;&amp;2
+    echo "Usage: $(basename "$0") method type ident token auth" 1&gt;&amp;2
     exit $E_BADARGS
 fi</pre>
 </div></div>
@@ -1175,27 +1180,32 @@
     "begin")
         case "$TYPE" in
             http-01)
-                echo -n "${AUTH}" &gt; ${CHALLENGE_PATH}/${TOKEN}
+                echo -n "${AUTH}" &gt; "${CHALLENGE_PATH}/${TOKEN}"
                 exit $?
                 ;;
             *)
                 exit 1
                 ;;
         esac
-        ;;
-    "done"|"failed")
-        case "$TYPE" in
-            http-01)
-                rm ${CHALLENGE_PATH}/${TOKEN}
-                exit $?
-                ;;
-            *)
-                exit 1
-                ;;
-        esac
-        exit 0
-        ;;
-    *)
+        ;;</pre>
+</div></div>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>"done"|"failed")
+    case "$TYPE" in
+        http-01)
+            rm "${CHALLENGE_PATH}/${TOKEN}"
+            exit $?
+            ;;
+        *)
+            exit 1
+            ;;
+    esac
+    ;;</pre>
+</div></div>
+<div class="literalblock">
+<div class="content monospaced">
+<pre>    *)
         echo "$0: invalid method" 1&gt;&amp;2
         exit 1
 esac</pre>
@@ -1219,7 +1229,7 @@
 <div class="sect1">
 <h2 id="_copyright">COPYRIGHT</h2>
 <div class="sectionbody">
-<div class="paragraph"><p>Copyright &#169; 2019 Nicola Di Lieto &lt;<a 
href="mailto:[email protected]";>[email protected]</a>&gt;</p></div>
+<div class="paragraph"><p>Copyright &#169; 2019,2020 Nicola Di Lieto &lt;<a 
href="mailto:[email protected]";>[email protected]</a>&gt;</p></div>
 <div class="paragraph"><p>This file is part of 
<strong>uacme</strong>.</p></div>
 <div class="paragraph"><p><strong>uacme</strong> is free software: you can 
redistribute it and/or modify it
 under the terms of the GNU General Public License as published by
@@ -1237,9 +1247,9 @@
 <div id="footnotes"><hr></div>
 <div id="footer">
 <div id="footer-text">
-Version 1.0.20<br>
+Version 1.0.22<br>
 Last updated
- 2019-10-03 20:44:42 CEST
+ 2020-02-01 10:53:00 CET
 </div>
 </div>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/uacme.1.txt new/uacme-1.0.22/uacme.1.txt
--- old/uacme-1.0.20/uacme.1.txt        2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/uacme.1.txt        2020-02-01 10:59:29.000000000 +0100
@@ -66,7 +66,7 @@
 *-h, --hook*='PROGRAM'::
     Challenge hook program. If not specified *uacme* interacts with
     the user for every ACME challenge, printing information about the
-    challenge type, token and authorization on stderr.  If specified,
+    challenge type, token and authorization on stderr.  If specified
     *uacme* executes 'PROGRAM' (a binary, a shell script or any file that
     can be executed by the operating system) for every challenge with
     the following 5 string arguments:
@@ -90,7 +90,7 @@
 
 *-n, --never-create*::
     By default *uacme* creates directories/keys if they do not exist.
-    When this option is specified, *uacme* never does so and instead
+    When this option is specified *uacme* never does so and instead
     exits with an error if anything required is missing.
 
 *-s, --staging*::
@@ -132,8 +132,8 @@
 
 *uacme* ['OPTIONS' ...] *update* ['EMAIL']::
     Update the 'EMAIL' associated with the ACME account corresponding to
-    the account private key. If 'EMAIL' is not specified, the account
-    contact email will be dropped.
+    the account private key. If 'EMAIL' is not specified the account
+    contact email is removed.
 
 *uacme* ['OPTIONS' ...] *deactivate*::
     Deactivate the ACME account corresponding to the account private
@@ -151,16 +151,21 @@
     renaming 'CONFDIR/private/newkey.pem' to 'CONFDIR/private/key.pem'.
 
 *uacme* ['OPTIONS' ...] *issue* 'DOMAIN' ['ALTNAME' ...]::
-    Issue a certificate for 'DOMAIN' with zero or more 'ALTNAMEs'.
+    Issue a certificate for 'DOMAIN' with zero or more 'ALTNAMEs'. 
     If a certificate is already available at 'CONFDIR/DOMAIN/cert.pem'
-    for the specified 'DOMAIN' and 'ALTNAMEs', and is still valid for
-    longer than 'DAYS', no action is taken unless *-f, --force* is
+    for the specified 'DOMAIN' and 'ALTNAMEs' and is still valid for
+    longer than 'DAYS' no action is taken unless *-f, --force* is
     specified. The new certificate is saved to 'CONFDIR/DOMAIN/cert.pem'.
-    If the certificate file already exists, it is hardlinked to
+    If the certificate file already exists it is hardlinked to
     'CONFDIR/DOMAIN/cert-TIMESTAMP.pem' before overwriting.
     The private key for the certificate is loaded from
     'CONFDIR/private/DOMAIN/key.pem'. If no such file exists,
     a new key is generated unless *-n, --never-create* is specified.
+    Wildcard DOMAINs or ALTNAMEs are dealt with correctly, as long as
+    the ACME server supports them; note that any such wildcards are 
+    automatically removed from the configuration subdirectory name:
+    for example a certificate for '*.test.com' is saved to
+    'CONFDIR/test.com/cert.pem'.
 
 *uacme* ['OPTIONS' ...] *revoke* 'CERTFILE'::
     Revoke the certificate stored in 'CERTFILE'. Only certificates
@@ -189,6 +194,7 @@
 provided a web server for the domain being validated runs on the 
 same machine, with webroot at /var/www
 
+
     #!/bin/sh
     CHALLENGE_PATH=/var/www/.well-known/acme-challenge
     ARGS=5
@@ -196,7 +202,7 @@
     
     if test $# -ne "$ARGS"
     then
-        echo "Usage: `basename $0` method type ident token auth" 1>&2
+        echo "Usage: $(basename "$0") method type ident token auth" 1>&2
         exit $E_BADARGS
     fi
     
@@ -210,7 +216,7 @@
         "begin")
             case "$TYPE" in
                 http-01)
-                    echo -n "${AUTH}" > ${CHALLENGE_PATH}/${TOKEN}
+                    echo -n "${AUTH}" > "${CHALLENGE_PATH}/${TOKEN}"
                     exit $?
                     ;;
                 *)
@@ -218,18 +224,19 @@
                     ;;
             esac
             ;;
+    
         "done"|"failed")
             case "$TYPE" in
                 http-01)
-                    rm ${CHALLENGE_PATH}/${TOKEN}
+                    rm "${CHALLENGE_PATH}/${TOKEN}"
                     exit $?
                     ;;
                 *)
                     exit 1
                     ;;
             esac
-            exit 0
             ;;
+    
         *)
             echo "$0: invalid method" 1>&2 
             exit 1
@@ -249,7 +256,7 @@
 
 COPYRIGHT
 ---------
-Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
 
 This file is part of *uacme*.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/uacme.c new/uacme-1.0.22/uacme.c
--- old/uacme-1.0.20/uacme.c    2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/uacme.c    2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+ * Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
  *
  * This file is part of uacme.
  *
@@ -582,10 +582,10 @@
             acme_error(a);
             return false;
     }
-    if (json_compare_string(a->json, "status", "valid"))
+    const char* status = json_find_string(a->json, "status");
+    if (status && strcmp(status, "valid"))
     {
-        const char* status = json_find_string(a->json, "status");
-        warnx("invalid account status (%s)", status ? status : "unknown");
+        warnx("invalid account status (%s)", status);
         return false;
     }
     if (!(a->kid = find_header(a->headers, "Location")))
@@ -893,8 +893,10 @@
         bool chlg_done = false;
         for (size_t j=0; j<chlgs->v.array.size && !chlg_done; j++)
         {
-            if (json_compare_string(chlgs->v.array.values+j,
-                        "status", "pending") == 0)
+            const char *status = json_find_string(
+                    chlgs->v.array.values+j, "status");
+            if (status && (strcmp(status, "pending") == 0
+                        || strcmp(status, "processing") == 0))
             {
                 const char *url = json_find_string(
                         chlgs->v.array.values+j, "url");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/uacme-1.0.20/uacme.sh new/uacme-1.0.22/uacme.sh
--- old/uacme-1.0.20/uacme.sh   2019-10-03 20:46:24.000000000 +0200
+++ new/uacme-1.0.22/uacme.sh   2020-02-01 10:59:29.000000000 +0100
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Copyright (C) 2019 Nicola Di Lieto <[email protected]>
+# Copyright (C) 2019,2020 Nicola Di Lieto <[email protected]>
 #
 # This file is part of uacme.
 #
@@ -16,13 +16,13 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-CHALLENGE_PATH="${UACME_CHALLENGE_PATH:-'/var/www/.well-known/acme-challenge'}"
+CHALLENGE_PATH="${UACME_CHALLENGE_PATH:-/var/www/.well-known/acme-challenge}"
 ARGS=5
 E_BADARGS=85
 
 if test $# -ne "$ARGS"
 then
-    echo "Usage: `basename $0` method type ident token auth" 1>&2
+    echo "Usage: $(basename "$0") method type ident token auth" 1>&2
     exit $E_BADARGS
 fi
 
@@ -36,7 +36,7 @@
     "begin")
         case "$TYPE" in
             http-01)
-                echo -n "${AUTH}" > ${CHALLENGE_PATH}/${TOKEN}
+                echo -n "${AUTH}" > "${CHALLENGE_PATH}/${TOKEN}"
                 exit $?
                 ;;
             *)
@@ -48,14 +48,13 @@
     "done"|"failed")
         case "$TYPE" in
             http-01)
-                rm ${CHALLENGE_PATH}/${TOKEN}
+                rm "${CHALLENGE_PATH}/${TOKEN}"
                 exit $?
                 ;;
             *)
                 exit 1
                 ;;
         esac
-        exit 0
         ;;
 
     *)


Reply via email to