diff -Nru yubikey-personalization-1.17.2/aclocal.m4 yubikey-personalization-1.17.3/aclocal.m4 --- yubikey-personalization-1.17.2/aclocal.m4 2015-09-22 13:43:46.000000000 +0000 +++ yubikey-personalization-1.17.3/aclocal.m4 2015-11-05 12:11:22.000000000 +0000 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.14.1 -*- Autoconf -*- +# generated automatically by aclocal 1.15 -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,7 +20,7 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# Copyright (C) 2002-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -32,10 +32,10 @@ # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.14' +[am__api_version='1.15' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14.1], [], +m4_if([$1], [1.15], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,12 +51,12 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14.1])dnl +[AM_AUTOMAKE_VERSION([1.15])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) -# Copyright (C) 2011-2013 Free Software Foundation, Inc. +# Copyright (C) 2011-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -118,7 +118,7 @@ # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -163,15 +163,14 @@ # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -202,7 +201,7 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -393,7 +392,7 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -469,7 +468,7 @@ # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -559,8 +558,8 @@ # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl @@ -633,7 +632,11 @@ END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi -fi]) +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further @@ -662,7 +665,7 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -673,7 +676,7 @@ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -683,7 +686,7 @@ fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2013 Free Software Foundation, Inc. +# Copyright (C) 2003-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -704,7 +707,7 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -754,7 +757,7 @@ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -793,7 +796,7 @@ # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -822,7 +825,7 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -869,7 +872,7 @@ # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -888,7 +891,7 @@ # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -969,7 +972,7 @@ rm -f conftest.file ]) -# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# Copyright (C) 2009-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1029,7 +1032,7 @@ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1057,7 +1060,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# Copyright (C) 2006-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1076,7 +1079,7 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# Copyright (C) 2004-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff -Nru yubikey-personalization-1.17.2/build-and-test.sh yubikey-personalization-1.17.3/build-and-test.sh --- yubikey-personalization-1.17.2/build-and-test.sh 2015-03-27 10:12:30.000000000 +0000 +++ yubikey-personalization-1.17.3/build-and-test.sh 2015-10-26 10:11:53.000000000 +0000 @@ -5,6 +5,17 @@ autoreconf -i +if [ "x$TRAVIS_OS_NAME" != "xosx" ]; then + sudo apt-get update -qq || true + sudo apt-get remove -qq -y $REMOVE + sudo apt-get autoremove -qq + sudo apt-get install -qq -y --no-install-recommends libyubikey-dev asciidoc docbook-xml xsltproc libxml2-utils $EXTRA +else + brew install libyubikey + brew install json-c + brew install asciidoc +fi + if [ "x$LIBUSB" = "xwindows" ]; then ./configure --with-backend=stub touch ChangeLog diff -Nru yubikey-personalization-1.17.2/build-aux/ar-lib yubikey-personalization-1.17.3/build-aux/ar-lib --- yubikey-personalization-1.17.2/build-aux/ar-lib 2015-01-20 12:29:07.000000000 +0000 +++ yubikey-personalization-1.17.3/build-aux/ar-lib 2015-11-05 12:11:23.000000000 +0000 @@ -4,7 +4,7 @@ me=ar-lib scriptversion=2012-03-01.08; # UTC -# Copyright (C) 2010-2013 Free Software Foundation, Inc. +# Copyright (C) 2010-2014 Free Software Foundation, Inc. # Written by Peter Rosin . # # This program is free software; you can redistribute it and/or modify diff -Nru yubikey-personalization-1.17.2/build-aux/compile yubikey-personalization-1.17.3/build-aux/compile --- yubikey-personalization-1.17.2/build-aux/compile 2015-01-20 12:29:07.000000000 +0000 +++ yubikey-personalization-1.17.3/build-aux/compile 2015-11-05 12:11:23.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2012-10-14.11; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify diff -Nru yubikey-personalization-1.17.2/build-aux/config.guess yubikey-personalization-1.17.3/build-aux/config.guess --- yubikey-personalization-1.17.2/build-aux/config.guess 2015-01-20 12:29:07.000000000 +0000 +++ yubikey-personalization-1.17.3/build-aux/config.guess 2015-11-05 12:11:23.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2013 Free Software Foundation, Inc. +# Copyright 1992-2014 Free Software Foundation, Inc. -timestamp='2013-06-10' +timestamp='2014-03-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2013 Free Software Foundation, Inc. +Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -149,7 +149,7 @@ LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ;; esac @@ -826,7 +826,7 @@ *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; - i*:MSYS*:*) + *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) @@ -969,10 +969,10 @@ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; - or1k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} exit ;; - or32:Linux:*:*) + or32:Linux:*:* | or1k*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) @@ -1260,16 +1260,26 @@ if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; @@ -1361,154 +1371,6 @@ exit ;; esac -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - cat >&2 <&2 - exit 1;; - esac - shift;; + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; -o) chowncmd="$chownprog $2" - shift;; + shift;; -s) stripcmd=$stripprog;; - -t) dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; - -T) no_target_directory=true;; + -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; - --) shift - break;; + --) shift + break;; - -*) echo "$0: invalid option: $1" >&2 - exit 1;; + -*) echo "$0: invalid option: $1" >&2 + exit 1;; *) break;; esac shift done +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. @@ -208,6 +204,15 @@ fi if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 @@ -223,16 +228,16 @@ *[0-7]) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw='% 200' + u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw=,u+rw + u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac @@ -269,41 +274,15 @@ # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - + dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi @@ -314,74 +293,74 @@ if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; esac if $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else @@ -391,53 +370,51 @@ # directory the slow way, step by step, checking for races as we go. case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; esac - eval "$initialize_posix_glob" - oIFS=$IFS IFS=/ - $posix_glob set -f + set -f set fnord $dstdir shift - $posix_glob set +f + set +f IFS=$oIFS prefixes= for d do - test X"$d" = X && continue + test X"$d" = X && continue - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ done if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true fi fi fi @@ -472,15 +449,12 @@ # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - + set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then @@ -493,24 +467,24 @@ # to itself, or perhaps because mv is so ancient that it does not # support -f. { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 diff -Nru yubikey-personalization-1.17.2/build-aux/ltmain.sh yubikey-personalization-1.17.3/build-aux/ltmain.sh --- yubikey-personalization-1.17.2/build-aux/ltmain.sh 2015-01-20 12:29:04.000000000 +0000 +++ yubikey-personalization-1.17.3/build-aux/ltmain.sh 2015-11-05 12:11:20.000000000 +0000 @@ -70,7 +70,7 @@ # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1 +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.11 # automake: $automake_version # autoconf: $autoconf_version # @@ -80,7 +80,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.2 Debian-2.4.2-1.7ubuntu1" +VERSION="2.4.2 Debian-2.4.2-1.11" TIMESTAMP="" package_revision=1.3337 diff -Nru yubikey-personalization-1.17.2/build-aux/missing yubikey-personalization-1.17.3/build-aux/missing --- yubikey-personalization-1.17.2/build-aux/missing 2015-01-20 12:29:07.000000000 +0000 +++ yubikey-personalization-1.17.3/build-aux/missing 2015-11-05 12:11:23.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2013-10-28.13; # UTC -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify diff -Nru yubikey-personalization-1.17.2/build-aux/test-driver yubikey-personalization-1.17.3/build-aux/test-driver --- yubikey-personalization-1.17.2/build-aux/test-driver 2015-01-20 12:29:07.000000000 +0000 +++ yubikey-personalization-1.17.3/build-aux/test-driver 2015-11-05 12:11:23.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2013-07-13.22; # UTC -# Copyright (C) 2011-2013 Free Software Foundation, Inc. +# Copyright (C) 2011-2014 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -106,11 +106,14 @@ # Test script is run here. "$@" >$log_file 2>&1 estatus=$? + if test $enable_hard_errors = no && test $estatus -eq 99; then - estatus=1 + tweaked_estatus=1 +else + tweaked_estatus=$estatus fi -case $estatus:$expect_failure in +case $tweaked_estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; @@ -119,6 +122,12 @@ *:*) col=$red res=FAIL recheck=yes gcopy=yes;; esac +# Report the test outcome and exit status in the logs, so that one can +# know whether the test passed or failed simply by looking at the '.log' +# file, without the need of also peaking into the corresponding '.trs' +# file (automake bug#11814). +echo "$res $test_name (exit status: $estatus)" >>$log_file + # Report outcome to console. echo "${col}${res}${std}: $test_name" diff -Nru yubikey-personalization-1.17.2/ChangeLog yubikey-personalization-1.17.3/ChangeLog --- yubikey-personalization-1.17.2/ChangeLog 2015-09-22 13:43:52.000000000 +0000 +++ yubikey-personalization-1.17.3/ChangeLog 2015-12-28 11:56:22.000000000 +0000 @@ -1,3 +1,149 @@ +2015-12-28 Klas Lindfors + + * NEWS: NEWS for 1.17.3 + +2015-12-28 Klas Lindfors + + * ykchalresp.c, ykpers-args.c: add extern declarations for getopt() + parameters + +2015-11-20 Klas Lindfors + + * : Merge pull request #70 from KyleOndy/69_readme_update Update readme to add asciidoc dependency + +2015-11-19 Kyle Ondy + + * README: Move asciidoc section to 'building from git' section + +2015-11-18 Kyle Ondy + + * README: Update readme to add asciidoc dependency + +2015-11-05 Klas Lindfors + + * tests/test_yk_utilities.c: make tests work + +2015-11-05 Klas Lindfors + + * ykcore/ykcore.c: raise minor to 3 for 4 + +2015-10-26 Klas Lindfors + + * ykpersonalize.c: correct logic for mode switch question + +2015-10-26 Klas Lindfors + + * Makefile.am: drop dropped docs + +2015-10-26 Klas Lindfors + + * doc/Windows-Build.asciidoc: drop old Windows documentation + +2015-10-26 Klas Lindfors + + * NEWS: add header for 1.17.3 to NEWS + +2015-10-26 Klas Lindfors + + * doc/Compatibility.asciidoc: update Compatibility + +2015-10-26 Klas Lindfors + + * doc/Make-Release.asciidoc: drop old release documentation + +2015-10-26 Klas Lindfors + + * .gitignore: ignore man artefacts + +2015-10-26 Klas Lindfors + + * Makefile.am, man/ykchalresp.1.adoc => ykchalresp.1.adoc, + man/ykinfo.1.adoc => ykinfo.1.adoc, man/ykpersonalize.1.adoc => + ykpersonalize.1.adoc: put manpages in root dir + +2015-10-26 Klas Lindfors + + * build-and-test.sh: try to use no-install-recommends + +2015-10-26 Klas Lindfors + + * .travis.yml, build-and-test.sh: move installation of asciidoc to + build-and-test + +2015-10-26 Klas Lindfors + + * .travis.yml: add a2x as extra to all builds windows build will probably still fail + +2015-10-26 Jean Paul Galea + + * man/ykpersonalize.1.adoc: Fix broken link for yubikey manual doc. + +2015-10-26 Klas Lindfors + + * Makefile.am, configure.ac, ykchalresp.1, ykinfo.1, + ykpersonalize.1: use a2x to generate the manpages fixes #63 + +2015-10-26 Klas Lindfors + + * man/ykchalresp.1.adoc, man/ykinfo.1.adoc: add space to make + examples line up + +2015-10-26 Klas Lindfors + + * man/ykchalresp.1.adoc: try to show better which options are + alternatives to each other + +2015-10-26 Klas Lindfors + + * man/ykinfo.1.adoc: convert ykinfo manpage to asciidoc + +2015-10-16 Klas Lindfors + + * man/ykchalresp.1.adoc: fix + +2015-10-16 Klas Lindfors + + * man/ykchalresp.1.adoc: convert ykchalresp manpage to adoc + +2015-10-16 Klas Lindfors + + * man/ykpersonalize.1.adoc: minor fixes + +2015-10-16 Henrik Stråth + + * man/ykpersonalize.1.adoc: Added Asciidoc version of the man page + ykpersonalize.1 + +2015-10-16 Klas Lindfors + + * ykpersonalize.1: Add some text about updatable to swap and update relates #64 + +2015-10-16 Klas Lindfors + + * ykpersonalize.1: try to make the allow-update parameter clearer relates #64 + +2015-10-08 Klas Lindfors + + * .travis.yml, build-and-test.sh: start adding travis for osx + +2015-10-08 Klas Lindfors + + * ykcore/ykcore.c: sizeof(pids) will return entries * 4 here, divide + with sizeof(int) + +2015-10-08 Klas Lindfors + + * tests/Makefile.am: actually run valgrind for the tests + +2015-09-24 Simon Josefsson + + * tests/selftest.c: Avoid -Wimplicit-function-declaration warning + regarding strcmp. + +2015-09-22 Klas Lindfors + + * configure.ac: bump version + 2015-09-22 Klas Lindfors * configure.ac: fixup diff -Nru yubikey-personalization-1.17.2/configure yubikey-personalization-1.17.3/configure --- yubikey-personalization-1.17.2/configure 2015-09-22 13:43:47.000000000 +0000 +++ yubikey-personalization-1.17.3/configure 2015-11-05 12:11:22.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for yubikey-personalization 1.17.2. +# Generated by GNU Autoconf 2.69 for yubikey-personalization 1.17.3. # # Report bugs to . # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='yubikey-personalization' PACKAGE_TARNAME='ykpers' -PACKAGE_VERSION='1.17.2' -PACKAGE_STRING='yubikey-personalization 1.17.2' +PACKAGE_VERSION='1.17.3' +PACKAGE_STRING='yubikey-personalization 1.17.3' PACKAGE_BUGREPORT='yubico-devel@googlegroups.com' PACKAGE_URL='https://developers.yubico.com/yubikey-personalization/' @@ -671,6 +671,7 @@ LTLIBYUBIKEY LIBYUBIKEY HAVE_LIBYUBIKEY +A2X PKG_CONFIG CPP OTOOL64 @@ -1371,7 +1372,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 yubikey-personalization 1.17.2 to adapt to many kinds of systems. +\`configure' configures yubikey-personalization 1.17.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1441,7 +1442,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of yubikey-personalization 1.17.2:";; + short | recursive ) echo "Configuration of yubikey-personalization 1.17.3:";; esac cat <<\_ACEOF @@ -1573,7 +1574,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -yubikey-personalization configure 1.17.2 +yubikey-personalization configure 1.17.3 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1851,7 +1852,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by yubikey-personalization $as_me 1.17.2, which was +It was created by yubikey-personalization $as_me 1.17.3, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2236,12 +2237,12 @@ # Interfaces removed: AGE=0 LT_CURRENT=18 -LT_REVISION=2 +LT_REVISION=3 LT_AGE=17 -am__api_version='1.14' +am__api_version='1.15' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -2413,8 +2414,8 @@ ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in @@ -2433,7 +2434,7 @@ $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -2727,7 +2728,7 @@ # Define the identity of the package. PACKAGE='ykpers' - VERSION='1.17.2' + VERSION='1.17.3' cat >>confdefs.h <<_ACEOF @@ -2761,8 +2762,8 @@ # mkdir_p='$(MKDIR_P)' -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' @@ -2819,6 +2820,7 @@ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi + # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; @@ -12432,6 +12434,9 @@ fi +A2X=${A2X-"${am_missing_run}a2x"} + + if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" @@ -15941,7 +15946,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by yubikey-personalization $as_me 1.17.2, which was +This file was extended by yubikey-personalization $as_me 1.17.3, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15999,7 +16004,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -yubikey-personalization config.status 1.17.2 +yubikey-personalization config.status 1.17.3 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru yubikey-personalization-1.17.2/configure.ac yubikey-personalization-1.17.3/configure.ac --- yubikey-personalization-1.17.2/configure.ac 2015-09-22 13:43:17.000000000 +0000 +++ yubikey-personalization-1.17.3/configure.ac 2015-10-26 09:36:13.000000000 +0000 @@ -26,7 +26,7 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -AC_INIT([yubikey-personalization], [1.17.2], +AC_INIT([yubikey-personalization], [1.17.3], [yubico-devel@googlegroups.com], [ykpers], [https://developers.yubico.com/yubikey-personalization/]) AC_CONFIG_AUX_DIR([build-aux]) @@ -37,7 +37,7 @@ # Interfaces added: AGE++ # Interfaces removed: AGE=0 AC_SUBST(LT_CURRENT, 18) -AC_SUBST(LT_REVISION, 2) +AC_SUBST(LT_REVISION, 3) AC_SUBST(LT_AGE, 17) AM_INIT_AUTOMAKE([1.11.3 -Wall -Werror]) @@ -57,6 +57,7 @@ AC_PROG_LIBTOOL AC_CANONICAL_HOST PKG_PROG_PKG_CONFIG +AM_MISSING_PROG([A2X], a2x, $missing_dir) AC_LIB_HAVE_LINKFLAGS(yubikey,, [#include ], diff -Nru yubikey-personalization-1.17.2/debian/changelog yubikey-personalization-1.17.3/debian/changelog --- yubikey-personalization-1.17.2/debian/changelog 2016-04-27 22:40:39.000000000 +0000 +++ yubikey-personalization-1.17.3/debian/changelog 2016-08-10 04:17:48.000000000 +0000 @@ -1,8 +1,13 @@ -yubikey-personalization (1.17.2-1build1) yakkety; urgency=medium +yubikey-personalization (1.17.3-1) unstable; urgency=low - * Rebuild against libjson-c3. + * New upstream release. + * Update upstream-signing-key.pgp. + * Maintainer is now pkg-pkg-auth-maintainers, Tollef moved to Uploader. + * Use https URLs in Vcs-Git. + * Update Standards-Version from 3.9.6 to 3.9.8. + * Build with hardening=+all. - -- Gianfranco Costamagna Thu, 28 Apr 2016 00:40:39 +0200 + -- Simon Josefsson Wed, 10 Aug 2016 06:17:48 +0200 yubikey-personalization (1.17.2-1) unstable; urgency=low diff -Nru yubikey-personalization-1.17.2/debian/control yubikey-personalization-1.17.3/debian/control --- yubikey-personalization-1.17.2/debian/control 2015-09-24 07:20:56.000000000 +0000 +++ yubikey-personalization-1.17.3/debian/control 2016-08-10 04:17:48.000000000 +0000 @@ -1,13 +1,13 @@ Source: yubikey-personalization Section: utils Priority: extra -Maintainer: Tollef Fog Heen -Uploaders: Simon Josefsson , Klas Lindfors , Dain Nilsson +Maintainer: Debian Authentication Maintainers +Uploaders: Simon Josefsson , Klas Lindfors , Dain Nilsson , Tollef Fog Heen Build-Depends: debhelper (>= 9), libusb-1.0-0-dev [!hurd-i386], libusb-dev [hurd-i386], libyubikey-dev(>= 1.5), libjson-c-dev, chrpath, pkg-config, dh-autoreconf, udev [linux-any] -Standards-Version: 3.9.6 +Standards-Version: 3.9.8 Homepage: https://developers.yubico.com/yubikey-personalization/ -Vcs-Git: git://github.com/Yubico/yubikey-personalization-dpkg.git Vcs-Browser: https://github.com/Yubico/yubikey-personalization-dpkg +Vcs-Git: https://github.com/Yubico/yubikey-personalization-dpkg.git Package: yubikey-personalization Architecture: any diff -Nru yubikey-personalization-1.17.2/debian/rules yubikey-personalization-1.17.3/debian/rules --- yubikey-personalization-1.17.2/debian/rules 2015-09-24 07:20:56.000000000 +0000 +++ yubikey-personalization-1.17.3/debian/rules 2016-08-10 04:17:48.000000000 +0000 @@ -1,6 +1,6 @@ #! /usr/bin/make -f -#export DH_VERBOSE=1 +export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: dh $@ --parallel --with autoreconf --builddirectory=build diff -Nru yubikey-personalization-1.17.2/debian/source/options yubikey-personalization-1.17.3/debian/source/options --- yubikey-personalization-1.17.2/debian/source/options 2015-09-24 07:20:56.000000000 +0000 +++ yubikey-personalization-1.17.3/debian/source/options 2016-08-10 04:17:48.000000000 +0000 @@ -1 +1,3 @@ -extend-diff-ignore=build-and-test.sh|.travis.yml|.gitignore|.gitmodules|contrib/draft-josefsson-yubikey-config.xml|ykpers4mac.mk|tests/ykpers-args.h|tests/ykpers-args.c|BLURB|README.adoc +# These are files in git but not in the tarball. So you know how to avoid +# manually maintaining this list? Tell simon@josefsson.org +extend-diff-ignore=build-and-test.sh|.travis.yml|.gitignore|.gitmodules|contrib/draft-josefsson-yubikey-config.xml|ykpers4mac.mk|tests/ykpers-args.h|tests/ykpers-args.c|BLURB|README.adoc|ykchalresp.1.adoc|ykinfo.1.adoc|ykpersonalize.1.adoc diff -Nru yubikey-personalization-1.17.2/debian/upstream-signing-key.pgp yubikey-personalization-1.17.3/debian/upstream-signing-key.pgp --- yubikey-personalization-1.17.2/debian/upstream-signing-key.pgp 2015-09-24 07:20:56.000000000 +0000 +++ yubikey-personalization-1.17.3/debian/upstream-signing-key.pgp 2016-08-10 04:17:48.000000000 +0000 @@ -1,1266 +1,1189 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.12 (GNU/Linux) +Version: GnuPG v1 -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 -GGRuczpzaW1vbi5qb3NlZnNzb24ub3JnP3R5cGU9Q0VSVAUCQkBc0AUJBlijpAAK -CRDtoh6UtWVxb9EIBP4pk/ztQF+XV5L4krXEmbjAsGb9C+I+4OoRUY/mWDvNAjGp -pkhFD+8Q3oQvg+1dcPsJ5rQHSXgA2w1bOsTknK9DamyY35LHd9T0ZSllXOUX9q3Q -eKiDBYc2KB35ZtxKNIA4Lt5qDgYbSgtlERxDY94BCSy4YApdwATei3O32t5IoR+B -roeIr+w+zn9mVulkn3pRXByYDX/scxcTtWwRL+UNiPsEEwECAEUCGwMECwcDAgMV -AgMDFgIBAh4BAheAIhhkbnM6c2ltb24uam9zZWZzc29uLm9yZz90eXBlPUNFUlQF -AkMVrNEFCQcvRSYACgkQ7aIelLVlcW+ahgUAnWORH5p6Cdk/zhen4sUwwnzsFyAO -Z7vaVPrQPq58Czl2FymLm5kJgsGXH8b6KLxVMo8hjTZnsm+zO6XTLXsnnK7nXk70 -gBJ0AAM0XGlG53qDvvQmq3RkfFMHuSmxL+zL8pXTmnywIlEpgDHPVKbPKF3c508H -FEPKFnDjuyRwPgq3q2mhC/qYYBRvw9hjjeRCqDTdC5wHuWLzs5MCLeG+3YhGBBAR -AgAGBQJEc4b8AAoJEAixI47drUe278gAn15puEaeLjlpaTndlvxT+LAH/951AJ9b -0Hlo7Py6F9c1liLsMNWNDnyvZ4j7BBMBAgBFAhsDBAsHAwIDFQIDAxYCAQIeAQIX -gCIYZG5zOnNpbW9uLmpvc2Vmc3Nvbi5vcmc/dHlwZT1DRVJUBQJD8ykBBQkIC2/U -AAoJEO2iHpS1ZXFvrF0FAJLVqSWQ2fYNGCvBH4xRS4n2LruzdubmzNuCIZrc75M+ -RfTvYeHwCNDY8H+PggYuXMT8armHvFvyL7jln864M9LTX4TwROrqKlkNgOkfxdSg -Oz4QE9RHxxooF1GMl1yhxCoumixYE5w0z0LGYRKy/Xzd3+VMcUaFXvEqY6Q+cnQo -qChCvKRmsIFhF4b4SAqzRePdx6U3PBpC4FbIlkQkpbaIRgQQEQIABgUCRYwLkgAK -CRApqihSMz58I53iAJ47ZGEOrZrMqV6WKmfKa8+5907zeQCeI9LFETr1SK3IHx/7 -S7RlQhoqAzeI+wQTAQIARQIbAwQLBwMCAxUCAwMWAgECHgECF4AiGGRuczpzaW1v -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 -Cea0B0l4ANsNWzrE5JyvQ2psmN+Sx3fU9GUpZVzlF/at0HiogwWHNigd+WbcSjSA -OC7eag4GG0oLZREcQ2PeAQksuGAKXcAE3otzt9reSKEfga6HiK/sPs5/ZlbpZJ96 -UVwcmA1/7HMXE7VsES/lDYj7BBMBAgBFAhsDBAsHAwIDFQIDAxYCAQIeAQIXgCIY -ZG5zOnNpbW9uLmpvc2Vmc3Nvbi5vcmc/dHlwZT1DRVJUBQJDFazSBQkHL0UmAAoJ -EO2iHpS1ZXFv+CkE/iKshcx+BSBC2d5EK24Dww6sBDPNF4P5mqLCMfa2VbGeWZff -VQlGgJeLfTt2mtIAGRoCyaUazWjj206K41Of7G0ZVFeCyfPyjBtKFlwNLrjMWz7k -AGtLtXF/bKns4Mr3lB8KXJKiOTj5uFI9m+b5emAMDXJyQG3Dna/WRcegpI+urrnR -0PdZhYBvYPPY6ggctLsXtfL3E/bes1XLsyLWzSOI+wQTAQIARQIbAwQLBwMCAxUC -AwMWAgECHgECF4AiGGRuczpzaW1vbi5qb3NlZnNzb24ub3JnP3R5cGU9Q0VSVAUC -Q/Mo/wUJCAtv1AAKCRDtoh6UtWVxb5wvBP9pt+ced/OUwn6QQVC28XSEj+Q2XE5T -PTt9C/l2Z59ZRVQBQ0HrO2bSyX0LRlGM0j6ANddBu3JKvGJizeOofvrVdXBHVDQv -/qavmfoW/sBk3Vy/c9nBmFx+GMlEzxWIKgL3oBRKVEG9gKT/bTn5zZQLt4Lu+BlA -TeADNUlUjncggKSXXp3uYQghWqZQHrEs3tk0NwzBxYPW97DmtYcjSNaQiPsEEwEC -AEUCGwMECwcDAgMVAgMDFgIBAh4BAheAIhhkbnM6c2ltb24uam9zZWZzc29uLm9y -Zz90eXBlPUNFUlQFAkTm6HUFCQj/L0gACgkQ7aIelLVlcW+BZAT/bQQwknXnUb9e -aIXx+aSbAeoO5gcowyFzlgcinaUyHu6J/1ogOwilkoQPsxhgRE6A/unk3ZackvBr -zpN2mw9YnVGRC+Nc9queRWKFhBfKNUFwMCcpVIy1IjCR/fAz1xlV4kpJ5QQX5bPe -8TYUqfKRS6hfWRvBZd0SUuC1s15IyqgKq9RZEQnq7GOzyQvMbSBeRkrb4GuvZIdw -dbR+qD2PmYj7BBMBAgBFAhsDBAsHAwIDFQIDAxYCAQIeAQIXgCIYZG5zOnNpbW9u -Lmpvc2Vmc3Nvbi5vcmc/dHlwZT1DRVJUBQJF1dVYBQkLk/wtAAoJEO2iHpS1ZXFv -6DQE+wZ2PqLW1saep7l9mik555l1bFV0tQ1hVyz6ZRsAKem9q3Za5vKXY9QbF6/S -eJi0wT3RpnCau2Le0q8PaPy294/S6nGWASED9dPKFDDkKAwIMYMZZ/REtArnEQGx -a643iBXmfVjN3HqKOJ5nA0l8Th04s4zg4I+RpoTb0mLRNVf8GcRIE9bPdb9HTQWM -N1z+XXh4E7k6WbJBX/MApP5HS0GI+wQTAQIARQIbAwQLBwMCAxUCAwMWAgECHgEC -F4AiGGRuczpzaW1vbi5qb3NlZnNzb24ub3JnP3R5cGU9Q0VSVAUCSGH5iQUJDRh0 -XgAKCRDtoh6UtWVxbz4eBPsHj7IiAP6zHbcDHsBHBMjSpn3HUb20liyVcpCe+gSD -FE3toAQKw5pPCE/mt/MnW2F+13x/jJiA7Sn07hrGTJk47JRFUl9BwnPYQ2m4WaXU -ryM6W9krOKWJMskwp9DGane90wmTF/x7TMNHBk98D7adX3RY+07x+yHjA5HP7wkj -3GXMSblaUb4Ksx3Cihq8aDvfCHhdFy2ucxAadCbTbh3iiPsEEwECAEUCGwMECwcD -AgMVAgMDFgIBAh4BAheAIhhkbnM6c2ltb24uam9zZWZzc29uLm9yZz90eXBlPUNF -UlQFAkmhLgAFCQ6tWk4ACgkQ7aIelLVlcW/pRAT/X8oFdC6KZMRTukipZfy2cp2z -QWmYs93T5Itr5VrqU4kGzIyeGpYlIS+7jD1/jILjK3DYQLXpwNOf3ABwulLYYTeX -5SmHk5KJhi/UW059X6tOZ6lppW24fRL93OzX6gVBHGpj4qfirLzM7eq+VyJf93he -8znYOWJ/vy3mXa/QdMLmIL1eC+Z2AysulpDAOeIDzQbQNqbPMoNrmcO6VnZyHYj7 -BBMBAgBFAhsDBAsHAwIDFQIDAxYCAQIeAQIXgCIYZG5zOnNpbW9uLmpvc2Vmc3Nv -bi5vcmc/dHlwZT1DRVJUBQJJ7efaBQkO+hQrAAoJEO2iHpS1ZXFvRykE/jfUlsz/ -UF7QSAP3mKh+oTH0iqFRennYRUJP+xXowF91ROmVaOzNYj3e9Hvvt58JVGFPYlKe -02njjyyo3QgFLA26cDRkro/aHNvwWs0XY84wap3GWjmu+iM7CLwaSzfUzwnLs0TG -oILtaQEDIhkXhZgKU4WsQpDhsIxXZnFm8nW9J4DuJG3h4ugVzs8tQU00XSt2O04X -ERb32KHXhUWQ1laI+wQTAQIARQIbAwQLBwMCAxUCAwMWAgECHgECF4AiGGRuczpz -aW1vbi5qb3NlZnNzb24ub3JnP3R5cGU9Q0VSVAUCS4PgMQUJEL4w/wAKCRDtoh6U -tWVxbwwIBPwM2B+NDntNU5bx+udY1LkdjyNhCVzoKPtknTXpF3a1oyg544se0yFC -3gm4UQhgN1U+0+qaxjlc3i1D7dA6MDSxOQ/bI3quG0b3wU9EHfrUA7Fj4cOt64UQ -Gjk9HikSdRgHMm7D9pf1Yfye7HmETrWnlALoqVkwR39/VuSDkI45P6UUzK4JyKKf -gKZ3Ls8UB3w1yJhqs4wkyLu+8ypEl7TBiPsEEwECAEUCGwMECwcDAgMVAgMDFgIB -Ah4BAheAIhhkbnM6c2ltb24uam9zZWZzc29uLm9yZz90eXBlPUNFUlQFAk2TeDwF -CRJJ8wYACgkQ7aIelLVlcW+W1gT/Qu8EV4NVtq2bsQc794b8mTVXUgQob8PCz0sn -4Bp2uP+ZIsAS52CgrglGQANX2tFDjw1LMZXycYHkkZsm4dtNn0pBbx4gL0+an90w -wSmU2QcrGe3Mb4VE4EywPZeaVXrWCKZQqPfuZKmr9G9DrspJWhZfwcDvWXAmoJR+ -qE3i+MebbRFxowvfFeVHpg/ZyiBTy6g/RsnMYLbnRBVZYcvNh4j7BBMBAgBFAhsD -BAsHAwIDFQIDAxYCAQIeAQIXgCIYZG5zOnNpbW9uLmpvc2Vmc3Nvbi5vcmc/dHlw -ZT1DRVJUBQJO+bc2BQkUt94JAAoJEO2iHpS1ZXFv0CIFALGsp0sV9VRfHiHtEBQY -kCpBTVIqpREPLCnCRoPwtHEZGkhGLSd3TUDo9lcapqWEdvvzb0y8CuouewH3QEJx -DZwlbOxluVN7XPM06CLrrzawSlbjRiKwuPRHDKX7cOa81GYnqOpYS5opomlKOgeu -WUphB6JnTOCR7lxLRTbHY1PBeAqusXqmjrtnFeBf/2H2J/ecES64KpOFmES89SKz -qoaJARwEEAECAAYFAkXjOnoACgkQ6OBi9g3LBDHt7Qf+O59RTNftjDuxfaIVU3iw -IgVs8nXeSb/vn5brc1EfpaEGdNrXPWHvDy/u6ARZ386G5F4dz3Eb4kugaA+/P4p0 -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 -=+RIY +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 +xAnH0V0MkF8HVoKvN5+Y+Atq+LyI87p41k/Q0tw6qed52cOPow9HSILpDE+iS4WY +YHN1JZ6yisBdgMsKjdWYO/z5zxwgL7pNwrB4c2tmi++riooOzU8vnSUf9MP4G4kB +HAQQAQgABgUCVK5pMAAKCRDwQ2cJb7qV6IhrB/0QWkisRhwqZILQW7m5lbPkEI2V +c7MLaq88Xvc916mNyRt7FVEhCS4Iyouj4RTdZgGxlDAHke4aXfHi/0vPBMMLY5lK +2NFptyCJa46HAOX/ifnkXT32+yLs0MUkZtaFcVhkuYRuJqOJljDqi9oKI+euffDd +w2tBz9SpbdfvhzYIKOVH5LILRJNuXJSls9lY8yr2bZPGK6Iil4R8t0TNdwBUZneD +ju1+msRcfwZpEJWnRcikQFif4xgUD8cc3IwYBsA/33Q6IwzER+FSTEP69/Vgt4YY +PiEvekdd8f9LN/wmFe4X5YGSouC5MCUhTtcfQgg7AuvgoNNCIz55b+CqFIagiQIO +BBMBCgAkAhsDCAsJCAcNDAsKBRUKCQgLAh4BAheABQJT/J4gBQkBGzSTAAoJEAZk +p2lUJl6MNGYOnjgCSBC86zV6tXT2JXFmASg0pKkVDN3xRAKSMAfTVTAcRmLZtCXR +zpWvjcfpkM1dCMHGxdgWqAeeQeXNU4fRa+Hn03yWXKiqZPdEhSXVvsGbbEi3utvz +KOqJXlI/FJFT6vWWP7t4ybnr2XAr6jd/gmJX6NlZUqCl1y2VOZRz1RUAkaS1wrzX +QuaDArdewmQFTZkYClKTCADnaKiS/DV3wJ5GXc+0Lru+t10rNKHDoNes7BvHTxib +Mgo7o/FlI1cmDdOFsaaLe1yNXsiyVaZYnfFLPdp9s172skind5SB2a57tZ1yqe+U +l8jbagsOhP19a6q4hhPgoTCVUsq9l+duVkrJHwMppU3zJ/p9oTLLu2VaQe041qkH +GoOHFPQrcNQwkInOxr/cWnhR4FsSTC2dxZ/g/w/YpSsD1JgO/N7ZEWLl0/fq4vKE +eE3CJLSYCQgUQmc3X2LLcOWpNJBQ5DjTLdbjUGIBhemfyD+f4FTNMD0PVjB6B7cr +UmOiGDRPPmj4n6X6KBrU15N39umtIk5ITNHgQCbZ2cn7WeSb6SqjWIUzYpVlLxm7 +hRDdRkODbeySFPQQfzgUEdE8C5dPnrr4gKEy65CHcNhl1gvxJHQvn7I3IKml6YkC +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 +CfIDgIDXRfRRh7drTg== +=/rhS -----END PGP PUBLIC KEY BLOCK----- diff -Nru yubikey-personalization-1.17.2/doc/Compatibility.asciidoc yubikey-personalization-1.17.3/doc/Compatibility.asciidoc --- yubikey-personalization-1.17.2/doc/Compatibility.asciidoc 2015-03-27 10:12:30.000000000 +0000 +++ yubikey-personalization-1.17.3/doc/Compatibility.asciidoc 2015-10-26 11:16:24.000000000 +0000 @@ -29,6 +29,7 @@ |1.16.2 |4.0 |4.0 is the Plus |1.16.3 |3.4 | |1.17.0 |4.1 | +|1.17.2 |4.2 | |========================================================= diff -Nru yubikey-personalization-1.17.2/doc/Make-Release.asciidoc yubikey-personalization-1.17.3/doc/Make-Release.asciidoc --- yubikey-personalization-1.17.2/doc/Make-Release.asciidoc 2014-09-23 11:28:18.000000000 +0000 +++ yubikey-personalization-1.17.3/doc/Make-Release.asciidoc 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -Maintainer instructions for making releases -=========================================== - -Introduction ------------- - -The point of this document is to describe all steps required to make a -proper release of the yubikey-personalization project. - -Details -------- - -* Make sure the doc/ sub-directory uses the latest revision. Confirm with: - cd doc && git checkout master && git pull && git diff - -* Make sure the version number in configure.ac has been increment in AC_INIT. - -* Make sure the libtool shared library version has been incremented properly, see http://www.gnu.org/software/libtool/manual/html_node/Versioning.html Always increment LT_REVISION on every release -- it makes it possible to have multiple releases installed concurrently which helps testing. - -* Make sure NEWS describes all changes since the last release. Use https://github.com/Yubico/yubikey-personalization/commits/master to review. - -* Change the '(unreleased)' part in NEWS to '(released 20XX-YY-ZZ)' and commit that with a note 'Version Q.P'. - -* Run 'make release'. - -* Prepare Windows & Mac build -- see ykpers4win.mk and ykpers4mac.mk. - -* Upload to Debian. - -* Increment version number in configure.ac and add a NEWS template for the next release. diff -Nru yubikey-personalization-1.17.2/doc/Windows-Build.asciidoc yubikey-personalization-1.17.3/doc/Windows-Build.asciidoc --- yubikey-personalization-1.17.2/doc/Windows-Build.asciidoc 2014-03-07 09:00:06.000000000 +0000 +++ yubikey-personalization-1.17.3/doc/Windows-Build.asciidoc 1970-01-01 00:00:00.000000000 +0000 @@ -1,128 +0,0 @@ -Build yubikey-personalization for Windows -========================================= - -Build yubikey-personalization for Windows ------------------------------------------ - -The yubikey-personalization library and tools works fine on multiple -platforms: GNU/Linux, Mac OS X and Windows. Building for Windows is -relatively easy if you follow these steps. - -First install a Windows cross-compiler on your GNU/Linux system. We -recommend the MinGW-w64 project because it is easy to install and -provides cross-compilers for both 32-bit and 64-bit Windows. For more -information about the MinGW-w64 project please see: - - http://mingw-w64.sourceforge.net/ - -To build the compiler follow these steps: - ------ -$ mkdir mingw-w64-32 -$ cd mingw-w64-32 -$ wget -q http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64/experimental/buildsystem/makebuildroot-test.mk -$ $EDITOR makebuildroot-test.mk ------ - -In the editor, modify TARGET_ARCH to be 'i686-w64-mingw32', set -GCC_FORTRAN and GCC_OBJC to 'N' (unless you have some other use for -Fortran/ObjectiveC cross-compilers), and set GCC_BRANCH to -'tags/gcc_4_5_1_release' which is a known stable GCC release. Then -build your cross-compiler: - ------------ -$ make -f makebuildroot-test.mk -... ------------ - -This will take some time, but when it is finished, place -mingw-w64-32/build/root/bin/ in your PATH or symlink the files into -/usr/local/bin or similar. - -To build the 64-bit compiler (optional), redo the above command but -replace mingw-w64-32 with mingw-w64-64 and 'i686-w64-mingw32' with -'x86_64-w64-mingw32'. - -You also need to install Wine to have 'make check' work. It needs to -be relatively modern in order to work properly. On a dpkg-based -system, here is how to install it: - ------------ -$ apt-get install wine ------------ - -Let's create a directory where all our further work will be done. I'm -assuming it is $HOME/ykpers4win. If you use another path, you need to -replace the occurances of that path with your own path below. - ------------ -$ mkdir $HOME/ykpers4win -$ cd $HOME/ykpers4win ------------ - -The next step is to build and install libyubikey. Follow these steps: - ------------ -$ wget -q http://yubico-c.googlecode.com/files/libyubikey-1.7.tar.gz -$ tar xfa libyubikey-1.7.tar.gz -$ cd libyubikey-1.7 -$ ./configure --host=i686-w64-mingw32 --build=x86_64-unknown-linux-gnu --prefix=$HOME/ykpers4win/root -$ make install check -$ cd .. ------------ - -Now it is time to install the yubikey-personalization library and tool -itself. Follow these steps: - ------------ -$ wget -q http://yubikey-personalization.googlecode.com/files/ykpers-1.5.1.tar.gz -$ tar xfa ykpers-1.5.1.tar.gz -$ cd ykpers-1.5.1/ -$ lt_cv_deplibs_check_method=pass_all ./configure --host=i686-w64-mingw32 --build=x86_64-unknown-linux-gnu --prefix=$HOME/ykpers4win/root LDFLAGS=-L$HOME/ykpers4win/root/lib CPPFLAGS=-I$HOME/ykpers4win/root/include -$ make install check -$ cd .. ------------ - -That's it! You should now have all the necessary files in -$HOME/ykpers4win/root/. - -Test the build by transferring the directory (only the files in bin/ -are necessary) to a Windows machine and start CMD.EXE, change into the -bin/ directory and then invoke: - ------------ -D:\root\bin>ykpersonalize -ofixed=ccccccbbbbbb -... ------------ - -It should query for a passphrase to generate the AES key, and then ask -whether you want to reprogram your YubiKey. It should finish without -any error message. Touch the YubiKey button and it should emit OTPs -correctly. - -On libusb under Windows ------------------------ - -Traditionally, we were using Libusb (both 0.x and 1.0 should work) -under Windows. Libusb 0.x is considered obsolete and libusb 1.x (up -to and including at least 1.0.8) had some bugs under Windows which -made it unusable for us. Therefor, recent versions of -yubikey-personalization do not require libusb, but instead uses native -Windows code. - -If you are interested in building with libusb 1.x instead of the -native Windows code, you may use instructions below to build libusb -1.x. Don't forget to configure yubikey-personalization using ---with-backend=libusb or --with-backend=libusb-1.0. You would build -libusb after libyubikey but before yubikey-personalization. We -provide a somewhat modified libusb-1.0 tar archive that solves some -build issues. - ------------ -$ wget -q http://yubikey-personalization.googlecode.com/files/libusb-1.0.8-windows.tar.bz2 -$ tar xfa libusb-1.0.8-windows.tar.bz2 -$ cd libusb-1.0.8 -$ ./configure --host=i686-w64-mingw32 --build=x86_64-unknown-linux-gnu --prefix=$HOME/ykpers4win/root -$ make install -$ cd .. ------------ diff -Nru yubikey-personalization-1.17.2/.gitignore yubikey-personalization-1.17.3/.gitignore --- yubikey-personalization-1.17.2/.gitignore 2015-03-27 10:12:30.000000000 +0000 +++ yubikey-personalization-1.17.3/.gitignore 2015-10-26 10:52:51.000000000 +0000 @@ -149,3 +149,6 @@ libhmac_la-sha384-512.o libhmac_la-usha.lo libhmac_la-usha.o +ykpersonalize.1 +ykchalresp.1 +ykinfo.1 diff -Nru yubikey-personalization-1.17.2/Makefile.am yubikey-personalization-1.17.3/Makefile.am --- yubikey-personalization-1.17.2/Makefile.am 2015-08-12 08:14:18.000000000 +0000 +++ yubikey-personalization-1.17.3/Makefile.am 2015-10-26 11:18:06.000000000 +0000 @@ -91,9 +91,14 @@ ykinfo_LDADD = ./libykpers-1.la $(LTLIBYUBIKEY) dist_man1_MANS = ykpersonalize.1 ykchalresp.1 ykinfo.1 +DISTCLEANFILES = $(dist_man1_MANS) +MANSOURCES = ykpersonalize.1.adoc ykchalresp.1.adoc ykinfo.1.adoc +SUFFIXES = .1.adoc .1 +.1.adoc.1: + $(A2X) -L --format=manpage -a revdate="Version $(VERSION)" $< # Dist docs from wiki. -EXTRA_DIST = doc/Compatibility.asciidoc doc/Make-Release.asciidoc doc/USB-Hid-Issue.asciidoc doc/Windows-Build.asciidoc +EXTRA_DIST = doc/Compatibility.asciidoc doc/USB-Hid-Issue.asciidoc # Dist contrib stuff. EXTRA_DIST += contrib/README contrib/programming.sh contrib/oath-unlock-reprogram.sh contrib/draft-josefsson-yubikey-config.xml diff -Nru yubikey-personalization-1.17.2/Makefile.in yubikey-personalization-1.17.3/Makefile.in --- yubikey-personalization-1.17.2/Makefile.in 2015-09-22 13:43:47.000000000 +0000 +++ yubikey-personalization-1.17.3/Makefile.in 2015-11-05 12:11:23.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -48,7 +48,17 @@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -119,22 +129,6 @@ ykinfo$(EXEEXT) @ENABLE_COV_TRUE@am__append_5 = --coverage subdir = . -DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ - $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/configure $(am__configure_deps) \ - $(srcdir)/ykpers-1.pc.in $(srcdir)/ykpers-version.h.in \ - $(top_srcdir)/build-aux/depcomp $(dist_man1_MANS) \ - $(dist_udevrules_DATA) $(ykpers_include_HEADERS) COPYING \ - build-aux/ar-lib build-aux/compile build-aux/config.guess \ - build-aux/config.rpath build-aux/config.sub build-aux/depcomp \ - build-aux/install-sh build-aux/missing build-aux/ltmain.sh \ - $(top_srcdir)/build-aux/ar-lib $(top_srcdir)/build-aux/compile \ - $(top_srcdir)/build-aux/config.guess \ - $(top_srcdir)/build-aux/config.rpath \ - $(top_srcdir)/build-aux/config.sub \ - $(top_srcdir)/build-aux/install-sh \ - $(top_srcdir)/build-aux/ltmain.sh \ - $(top_srcdir)/build-aux/missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ @@ -147,6 +141,9 @@ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(dist_udevrules_DATA) \ + $(ykpers_include_HEADERS) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d @@ -311,6 +308,20 @@ CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(dist_man1_MANS) $(srcdir)/Makefile.in \ + $(srcdir)/ykpers-1.pc.in $(srcdir)/ykpers-version.h.in \ + $(top_srcdir)/build-aux/ar-lib $(top_srcdir)/build-aux/compile \ + $(top_srcdir)/build-aux/config.guess \ + $(top_srcdir)/build-aux/config.rpath \ + $(top_srcdir)/build-aux/config.sub \ + $(top_srcdir)/build-aux/depcomp \ + $(top_srcdir)/build-aux/install-sh \ + $(top_srcdir)/build-aux/ltmain.sh \ + $(top_srcdir)/build-aux/missing AUTHORS COPYING ChangeLog \ + INSTALL NEWS README build-aux/ar-lib build-aux/compile \ + build-aux/config.guess build-aux/config.rpath \ + build-aux/config.sub build-aux/depcomp build-aux/install-sh \ + build-aux/ltmain.sh build-aux/missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -353,6 +364,7 @@ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print +A2X = @A2X@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -531,6 +543,9 @@ ykinfo_SOURCES = ykinfo.c ykinfo_LDADD = ./libykpers-1.la $(LTLIBYUBIKEY) dist_man1_MANS = ykpersonalize.1 ykchalresp.1 ykinfo.1 +DISTCLEANFILES = $(dist_man1_MANS) +MANSOURCES = ykpersonalize.1.adoc ykchalresp.1.adoc ykinfo.1.adoc +SUFFIXES = .1.adoc .1 # Dist docs from wiki. @@ -541,8 +556,7 @@ # Dist dev tools as well, to have the tarball complete. # udev rule files -EXTRA_DIST = doc/Compatibility.asciidoc doc/Make-Release.asciidoc \ - doc/USB-Hid-Issue.asciidoc doc/Windows-Build.asciidoc \ +EXTRA_DIST = doc/Compatibility.asciidoc doc/USB-Hid-Issue.asciidoc \ contrib/README contrib/programming.sh \ contrib/oath-unlock-reprogram.sh \ contrib/draft-josefsson-yubikey-config.xml ykpers4win.mk \ @@ -558,7 +572,7 @@ all: all-recursive .SUFFIXES: -.SUFFIXES: .c .lo .o .obj +.SUFFIXES: .1.adoc .1 .c .lo .o .obj am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @@ -574,7 +588,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -1092,15 +1105,15 @@ $(am__post_remove_distdir) dist-tarZ: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir - @echo WARNING: "Support for distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) @@ -1136,17 +1149,17 @@ esac chmod -R a-w $(distdir) chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_inst + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ - --srcdir=.. --prefix="$$dc_install_base" \ + --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ @@ -1235,6 +1248,7 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -1346,6 +1360,10 @@ uninstall-man uninstall-man1 uninstall-pkgconfigDATA \ uninstall-ykpers_includeHEADERS +.PRECIOUS: Makefile + +.1.adoc.1: + $(A2X) -L --format=manpage -a revdate="Version $(VERSION)" $< @ENABLE_COV_TRUE@cov-reset: @ENABLE_COV_TRUE@ rm -fr coverage diff -Nru yubikey-personalization-1.17.2/NEWS yubikey-personalization-1.17.3/NEWS --- yubikey-personalization-1.17.2/NEWS 2015-09-22 13:31:51.000000000 +0000 +++ yubikey-personalization-1.17.3/NEWS 2015-12-28 11:55:57.000000000 +0000 @@ -1,5 +1,15 @@ Yubikey-personalize NEWS -- History of user-visible changes. -*- outline -*- +* Version 1.17.3 (released 2015-12-28) + +** Dont read to much if we don't find a key. + +** Text updates to make options clearer. + +** Correct logic for question when mode switching to non-otp mode. + +** Add 4.3 as supported firmware. + * Version 1.17.2 (released 2015-09-22) ** Let _yk_write() return an error if yk_wait_for_key_status() fails. diff -Nru yubikey-personalization-1.17.2/README yubikey-personalization-1.17.3/README --- yubikey-personalization-1.17.2/README 2015-09-04 10:47:33.000000000 +0000 +++ yubikey-personalization-1.17.3/README 2015-12-28 11:55:34.000000000 +0000 @@ -73,6 +73,9 @@ cd yubikey-personalization ----------- + +When building from source Yubikey-personaliztion depends on link:http://asciidoc.org/INSTALL.html[asciidoc] to build it's manpage. + Autoconf, automake and libtool must be installed. Generate the build system using: diff -Nru yubikey-personalization-1.17.2/tests/Makefile.am yubikey-personalization-1.17.3/tests/Makefile.am --- yubikey-personalization-1.17.2/tests/Makefile.am 2015-03-27 10:12:30.000000000 +0000 +++ yubikey-personalization-1.17.3/tests/Makefile.am 2015-10-08 10:10:25.000000000 +0000 @@ -42,7 +42,7 @@ test_args_to_config_LDADD = ../libykpers_args.la -TESTS_ENVIRONMENT = $(VALGRIND) +LOG_COMPILER = $(VALGRIND) if ENABLE_COV AM_LDFLAGS += --coverage diff -Nru yubikey-personalization-1.17.2/tests/Makefile.in yubikey-personalization-1.17.3/tests/Makefile.in --- yubikey-personalization-1.17.2/tests/Makefile.in 2015-09-22 13:43:47.000000000 +0000 +++ yubikey-personalization-1.17.3/tests/Makefile.in 2015-11-05 12:11:23.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -43,7 +43,17 @@ # Self tests. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -111,9 +121,6 @@ TESTS = $(am__EXEEXT_2) @ENABLE_COV_TRUE@am__append_2 = --coverage subdir = tests -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ @@ -126,6 +133,7 @@ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -442,7 +450,11 @@ TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp \ + $(top_srcdir)/build-aux/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +A2X = @A2X@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -595,7 +607,7 @@ test_ndef_construction test_threaded_calls test_ykpbkdf2 \ test_yk_utilities $(am__append_1) test_args_to_config_LDADD = ../libykpers_args.la -TESTS_ENVIRONMENT = $(VALGRIND) +LOG_COMPILER = $(VALGRIND) all: all-am .SUFFIXES: @@ -612,7 +624,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tests/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -796,7 +807,7 @@ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ - else \ + elif test -n "$$redo_logs"; then \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ @@ -1134,6 +1145,8 @@ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags tags-am uninstall uninstall-am +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru yubikey-personalization-1.17.2/tests/selftest.c yubikey-personalization-1.17.3/tests/selftest.c --- yubikey-personalization-1.17.2/tests/selftest.c 2013-11-18 13:21:00.000000000 +0000 +++ yubikey-personalization-1.17.3/tests/selftest.c 2015-10-08 10:10:04.000000000 +0000 @@ -1,6 +1,6 @@ /* -*- mode:C; c-file-style: "bsd" -*- */ /* - * Copyright (c) 2009-2013 Yubico AB + * Copyright (c) 2009-2015 Yubico AB * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,6 +31,7 @@ #include #include #include +#include int main (void) { diff -Nru yubikey-personalization-1.17.2/tests/test_yk_utilities.c yubikey-personalization-1.17.3/tests/test_yk_utilities.c --- yubikey-personalization-1.17.2/tests/test_yk_utilities.c 2015-09-15 12:16:19.000000000 +0000 +++ yubikey-personalization-1.17.3/tests/test_yk_utilities.c 2015-11-05 12:14:12.000000000 +0000 @@ -65,7 +65,8 @@ {4,1,2,true}, {4,1,10,true}, {4,2,1,true}, - {4,3,7,false}, + {4,3,7,true}, + {4,4,5,false}, {5,0,0,false}, }; diff -Nru yubikey-personalization-1.17.2/.travis.yml yubikey-personalization-1.17.3/.travis.yml --- yubikey-personalization-1.17.2/.travis.yml 2015-05-05 15:15:32.000000000 +0000 +++ yubikey-personalization-1.17.3/.travis.yml 2015-10-26 10:07:51.000000000 +0000 @@ -1,19 +1,15 @@ language: c +os: linux compiler: - gcc - clang env: - - LIBUSB=libusb EXTRA=libusb-dev + - LIBUSB=libusb EXTRA="libusb-dev" - LIBUSB=libusb EXTRA="libusb-dev libjson0-dev" - - LIBUSB=libusb-1.0 EXTRA=libusb-1.0-0-dev + - LIBUSB=libusb-1.0 EXTRA="libusb-1.0-0-dev" - LIBUSB=libusb-1.0 EXTRA="libusb-1.0-0-dev libjson0-dev" script: - ./build-and-test.sh -before_install: - - sudo apt-get update -qq || true - - sudo apt-get remove -qq -y $REMOVE - - sudo apt-get autoremove -qq - - sudo apt-get install -qq -y libyubikey-dev $EXTRA matrix: include: - compiler: gcc @@ -22,3 +18,9 @@ env: LIBUSB=windows EXTRA="wine mingw-w64" REMOVE=mingw32 ARCH=64 - compiler: gcc env: LIBUSB=libusb-1.0 EXTRA="libusb-1.0-0-dev libjson0-dev lcov" COVERAGE="--enable-coverage" + - os: osx + compiler: gcc + env: LIBUSB=osx + - os: osx + compiler: clang + env: LIBUSB=osx diff -Nru yubikey-personalization-1.17.2/ykchalresp.1 yubikey-personalization-1.17.3/ykchalresp.1 --- yubikey-personalization-1.17.2/ykchalresp.1 2014-09-23 11:28:18.000000000 +0000 +++ yubikey-personalization-1.17.3/ykchalresp.1 2015-12-28 11:56:24.000000000 +0000 @@ -1,111 +1,133 @@ -.\" Copyright (c) 2011-2014 Yubico AB -.\" All rights reserved. +'\" t +.\" Title: ykchalresp +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.78.1 +.\" Date: Version 1.17.3 +.\" Manual: YubiKey Personalization Tool Manual +.\" Source: ykchalresp +.\" Language: English .\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions are -.\" met: -.\" -.\" * Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" -.\" * Redistributions in binary form must reproduce the above -.\" copyright notice, this list of conditions and the following -.\" disclaimer in the documentation and/or other materials provided -.\" with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -.\" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -.\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" The following commands are required for all man pages. -.de URL -\\$2 \(laURL: \\$1 \(ra\\$3 -.. -.if \n[.g] .mso www.tmac -.TH ykchalresp "1" "Febuary 2011" "yubikey-personalization" -.SH NAME -ykchalresp - Perform challenge-response operation with YubiKey -.SH SYNOPSIS -.B ykchalresp -[\fI-1\fR | \fI-2\fR] [\fI-H\fR] [\fI-Y\fR] [\fI-N\fR] [\fI-x\fR] [\fI-v\fR] [\fI-6\fR] [\fI-8\fR] [\fI-t\fR] [\fI-V\fR] [\fI-h\fR] -.SH DESCRIPTION -.PP -Send a challenge to a YubiKey, and read the response. The YubiKey can be configured -with two different C/R modes -- the standard one is a 160 bits HMAC-SHA1, and the other -is a YubiKey OTP mimicing mode, meaning two subsequent calls with the same challenge -will result in different responses. -.SH OPTIONS -.TP +.TH "YKCHALRESP" "1" "Version 1\&.17\&.3" "ykchalresp" "YubiKey Personalization Tool M" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +ykchalresp \- Perform challenge\-response operation with YubiKey +.SH "SYNOPSIS" +.sp +\fBykchalresp\fR [\fI\-1\fR | \fI\-2\fR] [\fI\-H\fR | \fI\-Y\fR] [\fI\-N\fR] [\fI\-x\fR] [\fI\-v\fR] [\fI\-6\fR | \fI\-8\fR] [\fI\-t\fR] [\fI\-V\fR] [\fI\-h\fR] +.SH "DESCRIPTION" +.sp +Send a challenge to a YubiKey, and read the response\&. The YubiKey can be configured with two different C/R modes \(em the standard one is a 160 bits HMAC\-SHA1, and the other is a YubiKey OTP mimicing mode, meaning two subsequent calls with the same challenge will result in different responses\&. +.SH "OPTIONS" +.PP \fB\-1\fR -send the challenge to slot 1. This is the default. -.TP -\fB\-2\fR -send the challenge to slot 2. -.TP +.RS 4 +send the challenge to slot 1\&. This is the default +.RE +.PP +\fB−2\fR +.RS 4 +send the challenge to slot 2\&. +.RE +.PP \fB\-H\fR -send a 64 byte HMAC challenge. This is the default. -.TP +.RS 4 +send a 64 byte HMAC challenge\&. This is the default\&. +.RE +.PP \fB\-Y\fR -send a 6 byte Yubico OTP challenge. -.TP +.RS 4 +send a 6 byte Yubico OTP challenge\&. +.RE +.PP \fB\-N\fR -non-blocking mode -- abort if the YubiKey is configured to require a key press before -sending the response. -.TP +.RS 4 +non\-blocking mode \(em abort if the YubiKey is configured to require a key press before sending the response\&. +.RE +.PP \fB\-x\fR -challenge is hex encoded. -.TP +.RS 4 +challenge is hex encoded\&. +.RE +.PP \fB\-v\fR -enable verbose mode. -.TP +.RS 4 +enable verbose mode\&. +.RE +.PP \fB\-6\fR -output the response in OATH format, 6 digits. -.TP +.RS 4 +output the response in OATH format, 6 digits\&. +.RE +.PP \fB\-8\fR -output the response in OATH format, 8 digits. -.TP +.RS 4 +output the response in OATH format, 8 digits\&. +.RE +.PP \fB\-t\fR -use current time as challenge instead of reading challenge from command line (as in default TOTP mode, seconds since 1970-01-01 00:00:00 / 30 encoded as an 8 byte challenge). -.TP +.RS 4 +use current time as challenge instead of reading challenge from command line (as in default TOTP mode, seconds since 1970\-01\-01 00:00:00 / 30 encoded as an 8 byte challenge)\&. +.RE +.PP \fB\-V\fR -print tool version and exit. - -.SH EXAMPLE -The YubiKey challenge-response operation can be demonstrated using the -\fBNIST PUB 198 A.2\fR test vector. -.P +.RS 4 +print tool version and exit\&. +.RE +.SH "EXAMPLE" +.sp +The YubiKey challenge\-response operation can be demonstrated using the \fBNIST PUB 198 A\&.2\fR test vector\&. +.sp First, program a YubiKey with the test vector : -.HP +.sp +.if n \{\ +.RS 4 +.\} .nf -$ \fBykpersonalize \-2 \-ochal\-resp \-ochal\-hmac \-ohmac\-lt64 \-a 303132333435363738393a3b3c3d3e3f40414243\fR - ... +$ ykpersonalize \-2 \-ochal\-resp \-ochal\-hmac \-ohmac\-lt64 \-a 303132333435363738393a3b3c3d3e3f40414243 + \&.\&.\&. Commit? (y/n) [n]: y $ .fi -.HP -Now, send the NIST test challenge to the YubiKey and verify the result matches the -expected : -.HP +.if n \{\ +.RE +.\} +.sp +Now, send the NIST test challenge to the YubiKey and verify the result matches the expected : +.sp +.if n \{\ +.RS 4 +.\} .nf -$ \fBykchalresp \-2 'Sample #2'\fR +$ ykchalresp \-2 \*(AqSample #2\*(Aq 0922d3405faa3d194f82a45830737d5cc6c75d24 $ .fi - -.SH BUGS -Report ykchalresp bugs in -.URL "https://github.com/Yubico/yubikey-personalization/issues" "the issue tracker" +.if n \{\ +.RE +.\} +.SH "BUGS" +.sp +Report ykchalresp bugs in the issue tracker (https://github\&.com/Yubico/yubikey\-personalization/issues) .SH "SEE ALSO" -The -.URL "https://developers.yubico.com/yubikey-personalization/" "ykpersonalize home page" -.PP -YubiKeys can be obtained from -.URL "http://www.yubico.com/" "Yubico" "." +.sp +The ykpersonalize home page ⟨ URL: https://developers\&.yubico\&.com/yubikey\-personalization/ ⟩ +.sp +YubiKeys can be obtained from Yubico ⟨ URL: http://www\&.yubico\&.com/ ⟩ \&. diff -Nru yubikey-personalization-1.17.2/ykchalresp.c yubikey-personalization-1.17.3/ykchalresp.c --- yubikey-personalization-1.17.2/ykchalresp.c 2015-05-25 07:48:30.000000000 +0000 +++ yubikey-personalization-1.17.3/ykchalresp.c 2015-12-28 11:55:57.000000000 +0000 @@ -78,6 +78,8 @@ } } +extern int optind; + static int parse_args(int argc, char **argv, int *slot, bool *verbose, unsigned char **challenge, unsigned int *challenge_len, diff -Nru yubikey-personalization-1.17.2/ykcore/Makefile.in yubikey-personalization-1.17.3/ykcore/Makefile.in --- yubikey-personalization-1.17.2/ykcore/Makefile.in 2015-09-22 13:43:47.000000000 +0000 +++ yubikey-personalization-1.17.3/ykcore/Makefile.in 2015-11-05 12:11:23.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -42,7 +42,17 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -112,8 +122,6 @@ @BACKEND_WINDOWS_TRUE@am__append_5 = ykcore_windows.c @ENABLE_COV_TRUE@am__append_6 = --coverage subdir = ykcore -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/ld-version-script.m4 \ @@ -126,6 +134,7 @@ $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -208,7 +217,10 @@ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +A2X = @A2X@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -378,7 +390,6 @@ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ykcore/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu ykcore/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -654,6 +665,8 @@ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru yubikey-personalization-1.17.2/ykcore/ykcore.c yubikey-personalization-1.17.3/ykcore/ykcore.c --- yubikey-personalization-1.17.2/ykcore/ykcore.c 2015-09-15 12:15:40.000000000 +0000 +++ yubikey-personalization-1.17.3/ykcore/ykcore.c 2015-11-05 11:30:51.000000000 +0000 @@ -72,7 +72,7 @@ YK4_OTP_U2F_PID, YK4_OTP_CCID_PID, YK4_OTP_U2F_CCID_PID, PLUS_U2F_OTP_PID}; - YK_KEY *yk = _ykusb_open_device(YUBICO_VID, pids, sizeof(pids)); + YK_KEY *yk = _ykusb_open_device(YUBICO_VID, pids, sizeof(pids) / sizeof(int)); int rc = yk_errno; if (yk) { @@ -124,7 +124,7 @@ return 1; break; case 4: - if(st->versionMinor <= 2) + if(st->versionMinor <= 3) return 1; break; } diff -Nru yubikey-personalization-1.17.2/ykinfo.1 yubikey-personalization-1.17.3/ykinfo.1 --- yubikey-personalization-1.17.2/ykinfo.1 2015-03-31 08:24:37.000000000 +0000 +++ yubikey-personalization-1.17.3/ykinfo.1 2015-12-28 11:56:24.000000000 +0000 @@ -1,104 +1,126 @@ -.\" Copyright (c) 2011-2014 Yubico AB -.\" All rights reserved. +'\" t +.\" Title: ykinfo +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.78.1 +.\" Date: Version 1.17.3 +.\" Manual: YubiKey Personalization Tool Manual +.\" Source: ykinfo +.\" Language: English .\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions are -.\" met: -.\" -.\" * Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" -.\" * Redistributions in binary form must reproduce the above -.\" copyright notice, this list of conditions and the following -.\" disclaimer in the documentation and/or other materials provided -.\" with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -.\" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -.\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" The following commands are required for all man pages. -.de URL -\\$2 \(laURL: \\$1 \(ra\\$3 -.. -.if \n[.g] .mso www.tmac -.TH ykinfo "1" "October 2012" "yubikey-personalization" -.SH NAME -ykinfo - Get basic information from a YubiKey -.SH SYNOPSIS -.B ykinfo -[\fI-s\fR] [\fI-m\fR] [\fI-H\fR] [\fI-v\fR] [\fI-t\fR] [\fI-p\fR] [\fI-1\fR] [\fI-2\fR] [\fI-q\fR] [\fI-V\fR] [\fI-h\fR] -.SH DESCRIPTION -.PP -Get basic information from a YubiKey. Can get serial number, version -and current touch level. Can get all parameters at once or one at a -time. If \fB\-q\fR is given only the relevant string from the YubiKey -is written to screen. -.SH OPTIONS -.TP +.TH "YKINFO" "1" "Version 1\&.17\&.3" "ykinfo" "YubiKey Personalization Tool M" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +ykinfo \- Get basic information from a YubiKey +.SH "SYNOPSIS" +.sp +\fBykinfo\fR [\fI\-s\fR] [\fI\-m\fR] [\fI\-H\fR] [\fI\-v\fR] [\fI\-t\fR] [\fI\-p\fR] [\fI\-1\fR] [\fI\-2\fR] [\fI\-q\fR] [\fI\-a\fR] [\fI\-c\fR] [\fI\-V\fR] [\fI\-h\fR] +.SH "DESCRIPTION" +.sp +Get basic information from a YubiKey\&. Can get serial number, version and current touch level\&. Can get all parameters at once or one at a time\&. If \fI\-q\fR is given only the relevant string from the YubiKey is written to screen\&. +.SH "OPTIONS" +.PP \fB\-s\fR -get the serial number and output it. -.TP +.RS 4 +get the serial number and output it\&. +.RE +.PP \fB\-m\fR -get the serial number and output it as modhex. -.TP +.RS 4 +get the serial number and output it as modhex\&. +.RE +.PP \fB\-H\fR -get the serial number and output it as hex. -.TP +.RS 4 +get the serial number and output it as hex\&. +.RE +.PP \fB\-v\fR -get the version and output it. -.TP +.RS 4 +get the version and output it\&. +.RE +.PP \fB\-t\fR -get the touch level and output it. -.TP +.RS 4 +get the touch level and output it\&. +.RE +.PP \fB\-p\fR -get the programming sequence and output it. -.TP +.RS 4 +get the programming sequence and output it\&. +.RE +.PP \fB\-1\fR -get the status of slot 1, 1 for programmed and 0 for empty. -.TP +.RS 4 +get the status of slot 1, 1 for programmed and 0 for empty\&. +.RE +.PP \fB\-2\fR -get the status of slot 2, 1 for programmed and 0 for empty. -.TP +.RS 4 +get the status of slot 2, 1 for programmed and 0 for empty\&. +.RE +.PP \fB\-a\fR -get all the information above. -.TP +.RS 4 +get all the information above\&. +.RE +.PP \fB\-c\fR -get YubiKey capability information. +.RS 4 +get YubiKey capability information\&. +.RE +.PP \fB\-q\fR -modifier, only show the relevant data from the YubiKey, no extra information. -.TP +.RS 4 +modifier, only show the relevant data from the YubiKey, no extra information\&. +.RE +.PP \fB\-V\fR +.RS 4 print tool version and exit - -.SH EXAMPLE -Output of all information from a YubiKey - +.RE +.SH "EXAMPLE" +.sp +Output information from a YubiKey: +.sp +.if n \{\ +.RS 4 +.\} .nf -$ \fBykinfo \-s \-m \-H \-v \-t \-p\fR +$ ykinfo \-s \-m \-H \-v \-t \-p serial: 1077254 serial_hex: 107006 serial_modhex: bcicch -version: 2.2.3 +version: 2\&.2\&.3 touch_level: 1793 programming_sequence: 1 $ .fi - -.SH BUGS -Report ykinfo bugs in -.URL "https://github.com/Yubico/yubikey-personalization/issues" "the issue tracker" +.if n \{\ +.RE +.\} +.SH "BUGS" +.sp +Report ykinfo bugs in the issue tracker (https://github\&.com/Yubico/yubikey\-personalization/issues) .SH "SEE ALSO" -The -.URL "https://developers.yubico.com/yubikey-personalization/" "ykpersonalize home page" -.PP -YubiKeys can be obtained from -.URL "http://www.yubico.com/" "Yubico" "." +.sp +The ykpersonalize home page ⟨ URL: https://developers\&.yubico\&.com/yubikey\-personalization/ ⟩ +.sp +YubiKeys can be obtained from Yubico ⟨ URL: http://www\&.yubico\&.com/ ⟩ \&. diff -Nru yubikey-personalization-1.17.2/ykpers-args.c yubikey-personalization-1.17.3/ykpers-args.c --- yubikey-personalization-1.17.2/ykpers-args.c 2015-08-19 07:06:37.000000000 +0000 +++ yubikey-personalization-1.17.3/ykpers-args.c 2015-12-28 11:55:57.000000000 +0000 @@ -218,6 +218,9 @@ } } +extern char *optarg; +extern int optind; + /* * Parse all arguments supplied to this program and turn it into mainly * a YKP_CONFIG (but return some other parameters as well, like diff -Nru yubikey-personalization-1.17.2/ykpersonalize.1 yubikey-personalization-1.17.3/ykpersonalize.1 --- yubikey-personalization-1.17.2/ykpersonalize.1 2015-03-27 10:12:30.000000000 +0000 +++ yubikey-personalization-1.17.3/ykpersonalize.1 2015-12-28 11:56:23.000000000 +0000 @@ -1,436 +1,540 @@ -.\" Copyright (c) 2009-2014 Yubico AB -.\" Copyright (C) 2009, 2010 Tollef Fog Heen -.\" All rights reserved. +'\" t +.\" Title: ykpersonalize +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.78.1 +.\" Date: Version 1.17.3 +.\" Manual: YubiKey Personalization Tool Manual +.\" Source: ykpersonalize +.\" Language: English .\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions are -.\" met: -.\" -.\" * Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" -.\" * Redistributions in binary form must reproduce the above -.\" copyright notice, this list of conditions and the following -.\" disclaimer in the documentation and/or other materials provided -.\" with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -.\" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -.\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" The following commands are required for all man pages. -.de URL -\\$2 \(laURL: \\$1 \(ra\\$3 -.. -.if \n[.g] .mso www.tmac -.TH ykpersonalize "1" "August 2009" "yubikey-personalization" -.SH NAME -ykpersonalize - personalize YubiKey OTP tokens -.SH SYNOPSIS -.B ykpersonalize -[\fI-1\fR | \fI-2\fR] [\fI-sfile\fR] [\fI-ifile\fR] [\fI-fformat\fR] [\fI-axxx\fR] [\fI-cxxx\fR] -[\fI-ooption\fR] [\fI-y\fR] [\fI-v\fR] [\fI-d\fR] [\fI-h\fR] [\fI-n\fR] [\fI-t\fR] [\fI-u\fR] [\fI-x\fR] -[\fI-z\fR] [\fI-m\fR] [\fI-S\fR] [\fI-V\fR] -.\".SH DESCRIPTION -.\" Add any additional description here -.SH OPTIONS -.PP -Set the AES key, user ID and other settings in a YubiKey. For the complete -explanation of the meaning of all parameters, see the reference -manual: -.URL "http://yubico.com/files/YubiKey_manual-2.0.pdf" "YubiKey manual" -.TP -\fB\-1\fR -change the first configuration. This is the default and is -normally used for true OTP generation. In this configuration, -the option flag \fB-oappend-cr\fR is set by default. -.TP -\fB\-2\fR -change the second configuration. This is for YubiKey II only and is -then normally used for static key generation. In this configuration, -the option flags \fB-oappend-cr\fR, \fB-ostatic-ticket\fR, \fB-ostrong-pw1\fR, -\fB-ostrong-pw2\fR and \fB-oman-update\fR are set by default. -.TP -\fB-z\fR +.TH "YKPERSONALIZE" "1" "Version 1\&.17\&.3" "ykpersonalize" "YubiKey Personalization Tool M" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +ykpersonalize \- personalize YubiKey OTP tokens +.SH "SYNOPSIS" +.sp +\fBykpersonalize\fR [\fI\-1\fR | \fI\-2\fR] [\fI\-sfile\fR] [\fI\-ifile\fR] [\fI\-fformat\fR] [\fI\-axxx\fR] [\fI\-cxxx\fR] [\fI\-ooption\fR] [\fI\-y\fR] [\fI\-v\fR] [\fI\-d\fR] [\fI\-h\fR] [\fI\-n\fR] [\fI\-t\fR] [\fI\-u\fR] [\fI\-x\fR] [\fI\-z\fR] [\fI\-m\fR] [\fI\-S\fR] [\fI\-V\fR] +.SH "DESCRIPTION" +.sp +Set the AES key, user ID and other settings in a YubiKey\&. For the complete explanation of the meaning of all parameters, see the reference manual: YubiKey manual (https://www\&.yubico\&.com/wp\-content/uploads/2015/03/YubiKeyManual_v3\&.4\&.pdf) +.SH "OPTIONS" +.PP +\fB−1\fR +.RS 4 +change the first configuration\&. This is the default and is normally used for true OTP generation\&. In this configuration, the option flag +\fB\-oappend\-cr\fR +is set by default\&. +.RE +.PP +\fB−2\fR +.RS 4 +change the second configuration\&. This is for YubiKey II only and is then normally used for static key generation\&. In this configuration, the option flags +\fB\-oappend\-cr\fR, +\fB\-ostatic\-ticket\fR, +\fB\-ostrong\-pw1\fR, +\fB\-ostrong\-pw2\fR +and +\fB\-oman\-update\fR +are set by default\&. +.RE +.PP +\fB\-z\fR +.RS 4 delete configuration in selected slot -.TP -\fB\-s\fIfile\fR -save configuration to file instead of key. -(if file is -, send to stdout) -.TP -\fB\-i\fIfile\fR -read configuration from file. -(if file is -, read from stdin) -Configuration import is only valid for the ycfg format. -.TP -\fB\-f\fIformat\fR -format to be used with \fB-s\fR and \fB-i\fR. -Valid options are \fBycfg\fR and \fBlegacy\fR. -.TP -\fB\-a\fR[\fIxxx\fR] -the AES secret key as a 32 (or 40 for OATH-HOTP/HMAC CHAL-RESP) char hex value (not modhex) (none to prompt for key on stdin) -If \fB\-a\fR is not used a random key will be generated. -.TP -\fB\-c\fIxxx\fR -A 12 char hex value (not modhex) to use as access code for -programming. -NOTE: this does NOT SET the access code, that's done with \fB-oaccess\fI=\fR. -.TP -\fB\-o\fIoption\fR -change configuration option. Possible option arguments are -.RS -.TP +.RE +.PP +\fB−s\fR\fIfile\fR +.RS 4 +save configuration to file instead of key\&. (if file is \-, send to stdout) +.RE +.PP +\fB−i\fR\fIfile\fR +.RS 4 +read configuration from file\&. (if file is \-, read from stdin) Configuration import is only valid for the ycfg format\&. +.RE +.PP +\fB−f\fR\fIformat\fR +.RS 4 +format to be used with +\fB\-s\fR +and +\fB\-i\fR\&. Valid options are +\fBycfg\fR +and +\fBlegacy\fR\&. +.RE +.PP +\fB−a\fR[\fIxxx\fR] +.RS 4 +the AES secret key as a 32 (or 40 for OATH\-HOTP/HMAC CHAL\-RESP) char hex value (not modhex) (none to prompt for key on stdin) If +\fB−a\fR +is not used a random key will be generated\&. +.RE +.PP +\fB−c\fR\fIxxx\fR +.RS 4 +A 12 char hex value (not modhex) to use as access code for programming\&. NOTE: this does NOT SET the access code, that\(cqs done with +\fB\-oaccess\fR\fI=\fR\&. +.RE +.PP +\fB−o\fR\fIoption\fR +.RS 4 +change configuration option\&. Possible option arguments are: +.PP \fBfixed\fR=\fIfffffffffff\fR -The modhex \fIpublic identity\fR of the YubiKey, 0-32 characters long (encoding -up to 16 bytes). -It's possible to give the identity in hex as well, just prepend the -value with `h:'. The fixed part is emitted before the OTP when the -button on the YubiKey is pressed. It can be used as an identifier for -the user, for example. -.TP +.RS 4 +The modhex +\fIpublic identity\fR +of the YubiKey, 0\-32 characters long (encoding up to 16 bytes)\&. It\(cqs possible to give the identity in hex as well, just prepend the value with \(cqh:\(cq\&. The fixed part is emitted before the OTP when the button on the YubiKey is pressed\&. It can be used as an identifier for the user, for example\&. +.RE +.PP \fBuid\fR=\fIuuuuuu\fR -The uid part of the generated OTP, also called \fIprivate identity\fR, in hex. -Must be 12 characters long. The uid is 6 bytes of static data that is included -(encrypted) in every OTP, and is used to validate that an OTP was in fact encrypted -with the AES key shared between the YubiKey and the validation service. It cannot -be used to identify the YubiKey as it is only readable to those that know -the AES key. -.TP +.RS 4 +The uid part of the generated OTP, also called +\fIprivate identity\fR, in hex\&. Must be 12 characters long\&. The uid is 6 bytes of static data that is included (encrypted) in every OTP, and is used to validate that an OTP was in fact encrypted with the AES key shared between the YubiKey and the validation service\&. It cannot be used to identify the YubiKey as it is only readable to those that know the AES key\&. +.RE +.PP \fBaccess\fR=\fIfffffffffff\fR -New hex access code to set. Must be 12 characters long. -If an access code is set, it will be required for subsequent reprogramming of the YubiKey. -.TP -\fBoath-imf\fR=\fIxxx\fR -Set OATH Initial Moving Factor. This is the initial counter value for the YubiKey. -This should be a value between 0 and 1048560, evenly dividable by 16. -.TP -[\-]\fIticket-flag\fR -Set/clear ticket flag, see the section `Ticket flags\&' -.TP -[\-]\fIconfiguration-flag\fR -Set/clear ticket flag, see the section `Configuration flags\&' +.RS 4 +New hex access code to set\&. Must be 12 characters long\&. If an access code is set, it will be required for subsequent reprogramming of the YubiKey\&. +.RE +.PP +\fBoath\-imf\fR=\fIxxx\fR +.RS 4 +Set OATH Initial Moving Factor\&. This is the initial counter value for the YubiKey\&. This should be a value between 0 and 1048560, evenly dividable by 16\&. .RE -.TP -\fB-y\fR +.PP +\fIticket\-flag\fR +.RS 4 +Set/clear ticket flag, see the section +\fITicket flags\fR +.RE +.PP +\fIconfiguration\-flag\fR +.RS 4 +Set/clear ticket flag, see the section +\fIConfiguration flags\fR +.RE +.RE +.PP +\fB\-y\fR +.RS 4 always commit without prompting -.TP -\fB-d\fR -dry-run, run without writing a YubiKey -.TP -\fB-v\fR +.RE +.PP +\fB\-d\fR +.RS 4 +dry\-run, run without writing a YubiKey +.RE +.PP +\fB\-v\fR +.RS 4 Be more verbose -.TP -\fB-h\fR +.RE +.PP +\fB\-h\fR +.RS 4 Help -.TP -\fB-V\fR +.RE +.PP +\fB\-V\fR +.RS 4 Version -.TP -\fBYubiKey Neo only\fR -.RS -.TP -\fB-m mode\fR -set device configuration for the YubiKey. It is parsed in the form +.RE +.SS "YubiKey Neo only" +.PP +\fB\-m\fR mode +.RS 4 +set device configuration for the YubiKey\&. It is parsed in the form \fImode:cr_timeout:autoeject_timeout\fR -.br where mode is: -.br -0 OTP device only. -.br -1 CCID device only. -.br -2 OTP/CCID composite device. -.br -3 U2F device only. -.br -4 OTP/U2F composite device. -.br -5 U2F/CCID composite device. -.br -6 OTP/U2F/CCID composite device. -.br -Add 80 to set MODE_FLAG_EJECT, for example: 81 -.br +.PP +0 +.RS 4 +OTP device only\&. +.RE +.PP +1 +.RS 4 +CCID device only\&. +.RE +.PP +2 +.RS 4 +OTP/CCID composite device\&. +.RE +.PP +3 +.RS 4 +U2F device only\&. +.RE +.PP +4 +.RS 4 +OTP/U2F composite device\&. +.RE +.PP +5 +.RS 4 +U2F/CCID composite device\&. +.RE +.PP +6 +.RS 4 +OTP/U2F/CCID composite device\&. Add 80 to set MODE_FLAG_EJECT, for example: 81 + cr_timeout is the timeout in seconds for the YubiKey to wait on button press for challenge response (default is 15) -.br + autoeject_timeout is the timeout in seconds before the card is automatically ejected in mode 81 -.TP -\fB-n URI\fR +.RE +.RE +.PP +\fB\-n\fR URI +.RS 4 Program NFC NDEF URI -.TP -\fB-t text\fR +.RE +.PP +\fB\-t\fR text +.RS 4 Program NFC NDEF text .RE -.TP -\fBYubiKey 3.0 and above\fR -.RS -.TP -\fB-S\fI0605...\fR -set the scanmap to be used with the YubiKey NEO. It must be 45 unique -bytes as 90 characters. Leave argument empty to reset to the YubiKey's default. -The scanmap must be sent in the order: -.br -\fIcbdefghijklnrtuvCBDEFGHIJKLNRTUV0123456789!\\t\\r\fR. -.br -the default scanmap in the YubiKey is: -.br -\fI06050708090a0b0c0d0e0f111517181986858788898a8b8c8d8e8f -.br -9195979899271e1f202122232425269e2b28\fR -.br -an example for simplified us dvorak would be: -.br -\fI0c110b071c180d0a0619130f120e09378c918b879c988d8a869993 -.br -8f928e89b7271e1f202122232425269e2b28\fR -.br -or for a french azerty keyboard (digits are shifted): -.br -\fI06050708090a0b0c0d0e0f111517181986858788898a8b8c8d8e8f -.br -9195979899a79e9fa0a1a2a3a4a5a6382b28\fR -.br -and a turkish example (has a dotless i instead of usual i): -.br -\fI06050708090a0b340d0e0f111517181986858788898a8b8c8d8e8f -.br -9195979899271e1f202122232425269e2b28\fR -.br -Note that you must remove any whitespace present in these examples -before using the values. -.RE -.TP -\fBYubiKey 2.3 and above\fR -.RS -.TP -\fB-u\fR -Update existing configuration, rather than overwriting -.TP -\fB-x\fR -Swap configuration slot 1 and 2 inside the YubiKey -.RE -.SH Ticket flags -.TP -[\-]\fBtab-first\fR -Send a tab character as the first character. This is usually used to move -to the next input field. -.TP -[\-]\fBappend-tab1\fR -Send a tab character between the fixed part and the one-time password -part. This is useful if you have the fixed portion equal to the user -name and two input fields that you navigate between using tab. -.TP -[\-]\fBappend-tab2\fR -Send a tab character as the last character. -.TP -[\-]\fBappend-delay1\fR -Add a half-second delay before sending the one-time password part. -This option is only valid for firmware 1.x and 2.x. -.TP -[\-]\fBappend-delay2\fR -Add a half-second delay after sending the one-time password part. -This option is only valid for firmware 1.x and 2.x. -.TP -[\-]\fBappend-cr\fR -Send a carriage return after sending the one-time password part. -.TP -\fBYubiKey 2.0 firmware and above\fR -.TP -[\-]\fBprotect-cfg2\fR -When written to configuration 1, block later updates to configuration -2. When written to configuration 2, prevent configuration 1 from -having the lock bit set. -.TP -\fBYubiKey 2.1 firmware and above\fR -.TP -[\-]\fBoath-hotp\fR -Set OATH-HOTP mode rather than YubiKey mode. In this mode, the token -functions according to the OATH-HOTP standard. -.TP -\fBYubiKey 2.2 firmware and above\fR -.TP -[\-]\fBchal-resp\fR -Set challenge-response mode. -.SH Configuration flags -[\-]\fBsend-ref\fR -Send a reference string of all 16 modhex characters before the fixed -part. This can not be combined with the \fB-ostrong-pw2\fR flag. -.TP -[\-]\fBpacing-10ms\fR -Add a 10ms delay between key presses. -.TP -[\-]\fBpacing-20ms\fR -Add a 20ms delay between key presses. -.TP -[\-]\fBstatic-ticket\fR -Output a fixed string rather than a one-time password. The password -is still based on the AES key and should be hard to guess and -impossible to remember. -.TP -\fBYubiKey 1.x firmware only\fR -.TP -[\-]\fBticket-first\fR -Send the one-time password rather than the fixed part first. -.TP -[\-]\fBallow-hidtrig\fR -Allow trigger through HID/keyboard by pressing caps-, num or -scroll-lock twice. Not recommended for security reasons. -.TP -\fBYubiKey 2.0 firmware and above\fR -.TP -[\-]\fBshort-ticket\fR -Limit the length of the static string to max 16 digits. This flag -only makes sense with the \fB-ostatic-ticket\fR option. When -\fB-oshort-ticket\fR is used without \fB-ostatic-ticket\fR it will -program the YubiKey in "scan-code mode", in this mode the key sends -the contents of fixed, uid and key as raw keyboard scancodes. For -example, by using the fixed string \fIh:8b080f0f122c9a12150f079e\fR in -this mode it will send \fIHello World!\fR on a qwerty keyboard. This -mode sends raw scan codes, so output will differ between keyboard layouts. -.TP -[\-]\fBstrong-pw1\fR -Upper-case the two first letters of the output string. This is for -compatibility with legacy systems that enforce both uppercase and -lowercase characters in a password and does not add any security. -.TP -[\-]\fBstrong-pw2\fR -Replace the first eight characters of the modhex alphabet with the -numbers 0 to 7. Like \fB-ostrong-pw1\fR, this is intended to support -legacy systems. -.TP -[\-]\fBman-update\fR -Enable user-initiated update of the static password. Only makes sense -with the \fB-ostatic-ticket\fR option. This is only valid for firmware -2.x. -.TP -\fBYubiKey 2.1 firmware and above\fR -.TP -[\-]\fBoath-hotp8\fR -When set, generate an 8-digit HOTP rather than a 6-digit one. -.TP -[\-]\fBoath-fixed-modhex1\fR -When set, the first byte of the fixed part is sent as modhex. -.TP -[\-]\fBoath-fixed-modhex2\fR -When set, the first two bytes of the fixed part is sent as modhex. -.TP -[\-]\fBoath-fixed-modhex\fR -When set, the fixed part is sent as modhex. -.TP -\fBoath-id=m:OOTTUUUUUUUU\fR -Configure OATH token id with a provided value. See description of -this option under the 2.2 section for details, but note that a YubiKey -2.1 key can't report its serial number and thus a token identifier value -must be specified. -.TP -\fBYubiKey 2.2 firmware and above\fR -.TP -[\-]\fBchal-yubico\fR -Yubico OTP challenge-response mode. -.TP -[\-]\fBchal-hmac\fR -Generate HMAC-SHA1 challenge responses. -.TP -[\-]\fBhmac-lt64\fR -Calculate HMAC on less than 64 bytes input. Whatever is in the last byte -of the challenge is used as end of input marker (backtracking from end of payload). -.TP -[\-]\fBchal-btn-trig\fR -The YubiKey will wait for the user to press the key (within 15 seconds) before -answering the challenge. -.TP -[\-]\fBserial-btn-visible\fR -The YubiKey will emit its serial number if the button is pressed during power-up. -This option is only valid for the 2.x firmware line. -.TP -[\-]\fBserial-usb-visible\fR -The YubiKey will indicate its serial number in the USB iSerial field. -This option is not available in the 3.0 and 3.1 firmwares. -.TP -[\-]\fBserial-api-visible\fR -The YubiKey will allow its serial number to be read using an API call. -.TP -\fBoath-id[=m:OOTTUUUUUUUU]\fR -Configure OATH token id with a provided value, or if used without a value use the -standard YubiKey token identifier. - -The standard OATH token id for a Yubico YubiKey is (modhex) OO=ub, TT=he, -(decimal) UUUUUUUU=serial number. - -The reason for the decimal serial number is to make it easy for humans to correlate -the serial number on the back of the YubiKey to an entry in a list of associated -tokens for example. Other encodings can be accomplished using the appropriate -oath-fixed-modhex options. - -Note that the YubiKey must be programmed to allow reading its serial number, -otherwise automatic token id creation is not possible. - -See section "5.3.4 - OATH-HOTP Token Identifier" of the -.URL "http://yubico.com/files/YubiKey_manual-2.0.pdf" "YubiKey manual" -for further details. -.TP -\fBYubiKey 2.3 firmware and above\fR -.TP -[\-]\fBuse-numeric-keypad\fR -Send scancodes for numeric keypad keypresses when sending digits - helps with some -keyboard layouts. -This option is only valid for the 2.x firmware line. -.TP -[\-]\fBfast-trig\fR -Faster triggering when only configuration 1 is available. -This option is always in effect on firmware versions 3.0 and above. -.TP -[\-]\fBallow-update\fR -Allow updating of certain parameters in a configuration at a later time. -.TP -[\-]\fBdormant\fR -Hides/unhides a configuration stored in a YubiKey. -.TP -\fBYubiKey 2.4/3.1 firmware and above\fR -.TP -[\-]\fBled-inv\fR -Inverts the behaviour of the led on the YubiKey. - -.SH OATH-HOTP Mode -When using OATH-HOTP mode, a HMAC key of 160 bits (20 bytes, 40 chars of hex) -can be supplied with \fB\-a\fR. +.SS "YubiKey 3\&.0 and above" .PP - -.SH Challenge-response Mode -In \fBCHAL-RESP\fR mode, the token will NOT generate any keypresses when the button -is pressed (although it is perfectly possible to have one slot with a keypress-generating -configuration, and the other in challenge-response mode). Instead, a program capable of -sending USB HID feature reports to the token must be used to send it a challenge, and -read the response. - -.SH Modhex -Modhex is a way of writing hex digits where the \(lqdigits\(rq are -chosen for being in the same place on most keyboard layouts. -.TP -To convert from hex to modhex, you can use -.RS +\fB\-S\fR\fI0605\&...\fR +.RS 4 +set the scanmap to be used with the YubiKey NEO\&. It must be 45 unique bytes as 90 characters\&. Leave argument empty to reset to the YubiKey\(cqs default\&. The scanmap must be sent in the order: +.sp +.if n \{\ +.RS 4 +.\} +.nf +cbdefghijklnrtuvCBDEFGHIJKLNRTUV0123456789!\et\er +.fi +.if n \{\ +.RE +.\} +.sp +The default scanmap in the YubiKey is: +.sp +.if n \{\ +.RS 4 +.\} +.nf +06050708090a0b0c0d0e0f111517181986858788898a8b8c8d8e8f9195979899271e1f202122232425269e2b28 +.fi +.if n \{\ +.RE +.\} +.sp +An example for simplified us dvorak would be: +.sp +.if n \{\ +.RS 4 +.\} +.nf +0c110b071c180d0a0619130f120e09378c918b879c988d8a8699938f928e89b7271e1f202122232425269e2b28 +.fi +.if n \{\ +.RE +.\} +.sp +Or for a French azerty keyboard (digits are shifted): +.sp +.if n \{\ +.RS 4 +.\} +.nf +06050708090a0b0c0d0e0f111517181986858788898a8b8c8d8e8f9195979899a79e9fa0a1a2a3a4a5a6382b28 +.fi +.if n \{\ +.RE +.\} +.sp +And a Turkish example (has a dotless i instead of usual i): +.sp +.if n \{\ +.RS 4 +.\} +.nf +06050708090a0b340d0e0f111517181986858788898a8b8c8d8e8f9195979899271e1f202122232425269e2b28 +.fi +.if n \{\ +.RE +.\} +.sp +Note that you must remove any whitespace present in these examples before using the values\&. +.RE +.SS "YubiKey 2\&.3 and above" +.PP +\fB\-u\fR +.RS 4 +Update existing configuration, rather than overwriting\&. Only possible if the slot is configured as updatable\&. +.RE +.PP +\fB\-x\fR +.RS 4 +Swap configuration slot 1 and 2 inside the YubiKey\&. Only possible if both slots are configured as updatable\&. +.RE +.SH "TICKET FLAGS" +.PP +\fBtab\-first\fR +.RS 4 +Send a tab character as the first character\&. This is usually used to move to the next input field\&. +.RE +.PP +\fBappend\-tab1\fR +.RS 4 +Send a tab character between the fixed part and the one\-time password part\&. This is useful if you have the fixed portion equal to the user name and two input fields that you navigate between using tab\&. +.RE +.PP +\fBappend\-tab2\fR +.RS 4 +Send a tab character as the last character\&. +.RE +.PP +\fBappend\-delay1\fR +.RS 4 +add a half\-second delay before sending the one\-time password part\&. This option is only valid for firmware 1\&.x and 2\&.x\&. +.RE +.PP +\fBappend\-delay2\fR +.RS 4 +a half\-second delay after sending the one\-time password part\&. This option is only valid for firmware 1\&.x and 2\&.x\&. +.RE +.PP +\fBappend\-cr\fR +.RS 4 +a carriage return after sending the one\-time password part\&. +.RE +.SS "YubiKey 2\&.0 firmware and above" +.PP +\fBprotect\-cfg2\fR +.RS 4 +When written to configuration 1, block later updates to configuration 2\&. When written to configuration 2, prevent configuration 1 from having the lock bit set\&. +.RE +.SS "YubiKey 2\&.1 firmware and above" +.PP +\fBoath\-hotp\fR +.RS 4 +Set OATH\-HOTP mode rather than YubiKey mode\&. In this mode, the token functions according to the OATH\-HOTP standard\&. +.RE +.SS "YubiKey 2\&.2 firmware and above" +.PP +\fBchal\-resp\fR +.RS 4 +Set challenge\-response mode\&. +.RE +.SH "CONFIGURATION FLAGS" +.sp +\fBsend\-ref\fR Send a reference string of all 16 modhex characters before the fixed part\&. This can not be combined with the \fB\-ostrong\-pw2\fR flag\&. \fBpacing\-10ms\fR +.sp +Add a 10ms delay between key presses\&. +.sp +\fBpacing\-20ms\fR +.sp +Add a 20ms delay between key presses\&. +.sp +\fBstatic\-ticket\fR +.sp +Output a fixed string rather than a one\-time password\&. The password is still based on the AES key and should be hard to guess and impossible to remember\&. +.sp +\fBYubiKey 1\&.x firmware only\fR \fBticket\-first\fR +.sp +Send the one\-time password rather than the fixed part first\&. +.sp +\fBallow\-hidtrig\fR +.sp +Allow trigger through HID/keyboard by pressing caps\-, num or scroll\-lock twice\&. Not recommended for security reasons\&. +.SS "YubiKey 2\&.0 firmware and above" +.PP +\fBshort\-ticket\fR +.RS 4 +Limit the length of the static string to max 16 digits\&. This flag only makes sense with the +\fB\-ostatic\-ticket\fR +option\&. When +\fB\-oshort\-ticket\fR +is used without +\fB\-ostatic\-ticket\fR +it will program the YubiKey in "scan\-code mode", in this mode the key sends the contents of fixed, uid and key as raw keyboard scancodes\&. For example, by using the fixed string +\fIh:8b080f0f122c9a12150f079e\fR +in this mode it will send +\fIHello World!\fR +on a qwerty keyboard\&. This mode sends raw scan codes, so output will differ between keyboard layouts\&. +.RE +.PP +\fBstrong\-pw1\fR +.RS 4 +Upper\-case the two first letters of the output string\&. This is for compatibility with legacy systems that enforce both uppercase and lowercase characters in a password and does not add any security\&. +.RE +.PP +\fBstrong\-pw2\fR +.RS 4 +Replace the first eight characters of the modhex alphabet with the numbers 0 to 7\&. Like +\fB\-ostrong\-pw1\fR, this is intended to support legacy systems\&. +.RE +.PP +\fBman\-update\fR +.RS 4 +Enable user\-initiated update of the static password\&. Only makes sense with the +\fB\-ostatic\-ticket\fR +option\&. This is only valid for firmware 2\&.x\&. +.RE +.SS "YubiKey 2\&.1 firmware and above" +.PP +\fBoath\-hotp8\fR +.RS 4 +When set, generate an 8\-digit HOTP rather than a 6\-digit one\&. +.RE +.PP +\fBoath\-fixed\-modhex1\fR +.RS 4 +When set, the first byte of the fixed part is sent as modhex\&. +.RE +.PP +\fBoath\-fixed\-modhex2\fR +.RS 4 +When set, the first two bytes of the fixed part is sent as modhex\&. +.RE +.PP +\fBoath\-fixed\-modhex\fR +.RS 4 +When set, the fixed part is sent as modhex\&. +.RE +.PP +\fBoath\-id\fR=m:OOTTUUUUUUUU +.RS 4 +Configure OATH token id with a provided value\&. See description of this option under the 2\&.2 section for details, but note that a YubiKey 2\&.1 key can\(cqt report its serial number and thus a token identifier value must be specified\&. +.RE +.SS "YubiKey 2\&.2 firmware and above" +.PP +\fBchal\-yubico\fR +.RS 4 +Yubico OTP challenge\-response mode\&. +.RE +.PP +\fBchal\-hmac\fR +.RS 4 +Generate HMAC\-SHA1 challenge responses\&. +.RE +.PP +\fBhmac\-lt64\fR +.RS 4 +Calculate HMAC on less than 64 bytes input\&. Whatever is in the last byte of the challenge is used as end of input marker (backtracking from end of payload)\&. +.RE +.PP +\fBchal\-btn\-trig\fR +.RS 4 +The YubiKey will wait for the user to press the key (within 15 seconds) before answering the challenge\&. +.RE +.PP +\fBserial\-btn\-visible\fR +.RS 4 +The YubiKey will emit its serial number if the button is pressed during power\-up\&. This option is only valid for the 2\&.x firmware line\&. +.RE +.PP +\fBserial\-usb\-visible\fR +.RS 4 +The YubiKey will indicate its serial number in the USB iSerial field\&. This option is not available in the 3\&.0 and 3\&.1 firmwares\&. +.RE +.PP +\fBserial\-api\-visible\fR +.RS 4 +The YubiKey will allow its serial number to be read using an API call\&. +.RE +.PP +\fBoath\-id\fR[=m:OOTTUUUUUUUU] +.RS 4 +Configure OATH token id with a provided value, or if used without a value use the standard YubiKey token identifier\&. +.RE +.sp +The standard OATH token id for a Yubico YubiKey is (modhex) OO=ub, TT=he, (decimal) UUUUUUUU=serial number\&. +.sp +The reason for the decimal serial number is to make it easy for humans to correlate the serial number on the back of the YubiKey to an entry in a list of associated tokens for example\&. Other encodings can be accomplished using the appropriate oath\-fixed\-modhex options\&. +.sp +Note that the YubiKey must be programmed to allow reading its serial number, otherwise automatic token id creation is not possible\&. +.sp +See section "5\&.3\&.4 \- OATH\-HOTP Token Identifier" of the YubiKey manual ⟨ URL: http://yubico\&.com/files/YubiKey_manual\-2\&.0\&.pdf ⟩ for further details\&. +.SS "YubiKey 2\&.3 firmware and above" +.PP +\fBuse\-numeric\-keypad\fR +.RS 4 +Send scancodes for numeric keypad keypresses when sending digits \- helps with some keyboard layouts\&. This option is only valid for the 2\&.x firmware line\&. +.RE +.PP +\fBfast\-trig\fR +.RS 4 +Faster triggering when only configuration 1 is available\&. This option is always in effect on firmware versions 3\&.0 and above\&. +.RE +.PP +\fBallow\-update\fR +.RS 4 +Allow updating (or swapping) of certain parameters in a configuration at a later time\&. +.RE +.PP +\fBdormant\fR +.RS 4 +Hides/unhides a configuration stored in a YubiKey\&. +.RE +.SS "YubiKey 2\&.4/3\&.1 firmware and above" +.PP +\fBled\-inv\fR +.RS 4 +Inverts the behaviour of the led on the YubiKey\&. +.RE +.SS "OATH\-HOTP Mode" +.sp +When using OATH\-HOTP mode, a HMAC key of 160 bits (20 bytes, 40 chars of hex) can be supplied with \fB−a\fR\&. +.SS "Challenge\-response Mode" +.sp +In \fBCHAL\-RESP\fR mode, the token will NOT generate any keypresses when the button is pressed (although it is perfectly possible to have one slot with a keypress\-generating configuration, and the other in challenge\-response mode)\&. Instead, a program capable of sending USB HID feature reports to the token must be used to send it a challenge, and read the response\&. +.SS "Modhex" +.sp +Modhex is a way of writing hex digits where the \(lqdigits\(rq are chosen for being in the same place on most keyboard layouts\&. To convert from hex to modhex, you can use: +.sp +.if n \{\ +.RS 4 +.\} +.nf tr "[0123456789abcdef]" "[cbdefghijklnrtuv]" +.fi +.if n \{\ .RE -.TP -To convert the other way, use -.RS +.\} +.sp +To convert the other way, use: +.sp +.if n \{\ +.RS 4 +.\} +.nf tr "[cbdefghijklnrtuv]" "[0123456789abcdef]" +.fi +.if n \{\ .RE - -.SH BUGS -Report ykpersonalize bugs in -.URL "https://github.com/Yubico/yubikey-personalization/issues" "the issue tracker" -.SH "SEE ALSO" -The -.URL "https://developers.yubico.com/yubikey-personalization/" "ykpersonalize home page" -.PP -YubiKeys can be obtained from -.URL "http://www.yubico.com/" "Yubico" "." +.\} +.SS "BUGS" +.sp +Report ykpersonalize bugs in the issue tracker ⟨ URL: https://github\&.com/Yubico/yubikey\-personalization/issues ⟩ +.SS "SEE ALSO" +.sp +The ykpersonalize home page ⟨ URL: https://developers\&.yubico\&.com/yubikey\-personalization/ ⟩ +.sp +YubiKeys can be obtained from Yubico ⟨ URL: http://www\&.yubico\&.com/ ⟩ \&. diff -Nru yubikey-personalization-1.17.2/ykpersonalize.c yubikey-personalization-1.17.3/ykpersonalize.c --- yubikey-personalization-1.17.2/ykpersonalize.c 2015-09-16 13:10:45.000000000 +0000 +++ yubikey-personalization-1.17.3/ykpersonalize.c 2015-10-26 12:24:57.000000000 +0000 @@ -371,7 +371,7 @@ if (commitbuf[commitlen - 1] == '\n') commitbuf[commitlen - 1] = '\0'; if (strcmp(commitbuf, "y") != 0 - || strcmp(commitbuf, "yes") != 0) { + && strcmp(commitbuf, "yes") != 0) { exit_code = 0; error = false; goto err; diff -Nru yubikey-personalization-1.17.2/ykpers-version.h yubikey-personalization-1.17.3/ykpers-version.h --- yubikey-personalization-1.17.2/ykpers-version.h 2015-09-22 13:43:51.000000000 +0000 +++ yubikey-personalization-1.17.3/ykpers-version.h 2015-12-28 11:46:25.000000000 +0000 @@ -42,7 +42,7 @@ * version number. Used together with ykpers_check_version() to verify * header file and run-time library consistency. */ -#define YKPERS_VERSION_STRING "1.17.2" +#define YKPERS_VERSION_STRING "1.17.3" /** * YKPERS_VERSION_NUMBER @@ -52,7 +52,7 @@ * this symbol will have the value 0x01020300. The last two digits * are only used between public releases, and will otherwise be 00. */ -#define YKPERS_VERSION_NUMBER 0x011102 +#define YKPERS_VERSION_NUMBER 0x011103 /** * YKPERS_VERSION_MAJOR @@ -79,7 +79,7 @@ * level of the header file version number. For example, when the * header version is 1.2.3 this symbol will be 3. */ -#define YKPERS_VERSION_PATCH 2 +#define YKPERS_VERSION_PATCH 3 const char *ykpers_check_version (const char *req_version);