0000: 41 43 5f 49 4e 49 54 28 63 61 63 6b 65 79 2c 20 AC_INIT(cackey,
0010: 30 2e 37 2e 34 29 20 0a 41 43 5f 43 4f 4e 46 49 0.7.4) .AC_CONFI
0020: 47 5f 48 45 41 44 45 52 53 28 63 6f 6e 66 69 67 G_HEADERS(config
0030: 2e 68 29 0a 0a 64 6e 6c 20 4c 6f 63 61 74 65 20 .h)..dnl Locate
0040: 73 74 61 6e 64 61 72 64 20 74 6f 6f 6c 73 0a 41 standard tools.A
0050: 43 5f 50 52 4f 47 5f 43 43 0a 41 43 5f 50 52 4f C_PROG_CC.AC_PRO
0060: 47 5f 4d 41 4b 45 5f 53 45 54 0a 41 43 5f 50 52 G_MAKE_SET.AC_PR
0070: 4f 47 5f 49 4e 53 54 41 4c 4c 0a 41 43 5f 41 49 OG_INSTALL.AC_AI
0080: 58 0a 41 43 5f 4c 41 4e 47 28 43 29 0a 0a 64 6e X.AC_LANG(C)..dn
0090: 6c 20 44 65 74 65 72 6d 69 6e 65 20 74 68 69 73 l Determine this
00a0: 20 70 6c 61 74 66 6f 72 6d 0a 44 43 5f 43 48 4b platform.DC_CHK
00b0: 5f 4f 53 5f 49 4e 46 4f 0a 0a 64 6e 6c 20 44 65 _OS_INFO..dnl De
00c0: 74 65 72 6d 69 6e 65 20 68 6f 77 20 74 6f 20 63 termine how to c
00d0: 72 65 61 74 65 20 73 68 61 72 65 64 20 6f 62 6a reate shared obj
00e0: 65 63 74 73 20 6f 6e 20 74 68 69 73 20 70 6c 61 ects on this pla
00f0: 74 66 6f 72 6d 0a 44 43 5f 47 45 54 5f 53 48 4f tform.DC_GET_SHO
0100: 42 4a 46 4c 41 47 53 0a 0a 41 43 58 5f 50 54 48 BJFLAGS..ACX_PTH
0110: 52 45 41 44 28 2c 20 5b 0a 09 41 43 5f 4d 53 47 READ(, [..AC_MSG
0120: 5f 57 41 52 4e 28 5b 43 61 6e 20 6e 6f 74 20 66 _WARN([Can not f
0130: 69 67 75 72 65 20 6f 75 74 20 68 6f 77 20 74 6f igure out how to
0140: 20 63 6f 6d 70 69 6c 65 20 77 69 74 68 20 70 74 compile with pt
0150: 68 72 65 61 64 73 20 73 75 70 70 6f 72 74 2c 20 hreads support,
0160: 72 75 6e 2d 74 69 6d 65 20 77 69 6c 6c 20 6c 69 run-time will li
0170: 6b 65 6c 79 20 66 61 69 6c 2e 5d 29 0a 5d 29 0a kely fail.]).]).
0180: 0a 64 6e 6c 20 44 65 74 65 72 6d 69 6e 65 20 68 .dnl Determine h
0190: 6f 77 20 74 6f 20 63 72 65 61 74 65 20 73 74 61 ow to create sta
01a0: 74 69 63 20 61 72 63 68 69 76 65 73 20 6f 6e 20 tic archives on
01b0: 74 68 69 73 20 70 6c 61 74 66 6f 72 6d 0a 41 43 this platform.AC
01c0: 5f 43 48 45 43 4b 5f 54 4f 4f 4c 28 41 52 2c 20 _CHECK_TOOL(AR,
01d0: 61 72 29 0a 41 43 5f 43 48 45 43 4b 5f 54 4f 4f ar).AC_CHECK_TOO
01e0: 4c 28 52 41 4e 4c 49 42 2c 20 72 61 6e 6c 69 62 L(RANLIB, ranlib
01f0: 29 0a 0a 64 6e 6c 20 44 65 74 65 72 6d 69 6e 65 )..dnl Determine
0200: 20 68 6f 77 20 74 6f 20 73 74 72 69 70 20 65 78 how to strip ex
0210: 65 63 75 74 61 62 6c 65 73 20 61 6e 64 20 72 65 ecutables and re
0220: 6d 6f 76 65 20 73 79 6d 62 6f 6c 73 0a 44 43 5f move symbols.DC_
0230: 46 49 4e 44 5f 53 54 52 49 50 5f 41 4e 44 5f 52 FIND_STRIP_AND_R
0240: 45 4d 4f 56 45 53 59 4d 53 28 6c 69 62 63 61 63 EMOVESYMS(libcac
0250: 6b 65 79 2e 73 79 6d 73 29 0a 0a 64 6e 6c 20 43 key.syms)..dnl C
0260: 68 65 63 6b 20 66 6f 72 20 61 6c 6c 20 72 65 71 heck for all req
0270: 75 69 72 65 64 20 68 65 61 64 65 72 73 0a 41 43 uired headers.AC
0280: 5f 43 48 45 43 4b 5f 48 45 41 44 45 52 53 28 61 _CHECK_HEADERS(a
0290: 72 70 61 2f 69 6e 65 74 2e 68 20 69 6e 74 74 79 rpa/inet.h intty
02a0: 70 65 73 2e 68 20 73 74 64 61 72 67 2e 68 20 73 pes.h stdarg.h s
02b0: 74 64 69 6e 74 2e 68 20 73 74 64 69 6f 2e 68 20 tdint.h stdio.h
02c0: 73 74 64 6c 69 62 2e 68 20 73 74 72 69 6e 67 2e stdlib.h string.
02d0: 68 20 73 79 73 2f 73 6f 63 6b 65 74 2e 68 20 73 h sys/socket.h s
02e0: 79 73 2f 74 79 70 65 73 2e 68 20 73 79 73 2f 75 ys/types.h sys/u
02f0: 6e 2e 68 20 74 69 6d 65 2e 68 20 75 6e 69 73 74 n.h time.h unist
0300: 64 2e 68 20 70 74 68 72 65 61 64 2e 68 20 7a 6c d.h pthread.h zl
0310: 69 62 2e 68 20 6c 69 6d 69 74 73 2e 68 2c 2c 5b ib.h limits.h,,[
0320: 0a 09 41 43 5f 57 41 52 4e 28 5b 52 65 71 75 69 ..AC_WARN([Requi
0330: 72 65 64 20 68 65 61 64 65 72 20 6d 69 73 73 69 red header missi
0340: 6e 67 2c 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 ng, compilation
0350: 77 69 6c 6c 20 6c 69 6b 65 6c 79 20 66 61 69 6c will likely fail
0360: 2e 5d 29 0a 5d 2c 20 5b 0a 23 69 66 64 65 66 20 .]).], [.#ifdef
0370: 48 41 56 45 5f 41 52 50 41 5f 49 4e 45 54 5f 48 HAVE_ARPA_INET_H
0380: 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c 61 72 70 .# include <arp
0390: 61 2f 69 6e 65 74 2e 68 3e 0a 23 65 6e 64 69 66 a/inet.h>.#endif
03a0: 0a 23 69 66 64 65 66 20 48 41 56 45 5f 49 4e 54 .#ifdef HAVE_INT
03b0: 54 59 50 45 53 5f 48 0a 23 20 20 69 6e 63 6c 75 TYPES_H.# inclu
03c0: 64 65 20 3c 69 6e 74 74 79 70 65 73 2e 68 3e 0a de <inttypes.h>.
03d0: 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41 #endif.#ifdef HA
03e0: 56 45 5f 53 54 44 41 52 47 5f 48 0a 23 20 20 69 VE_STDARG_H.# i
03f0: 6e 63 6c 75 64 65 20 3c 73 74 64 61 72 67 2e 68 nclude <stdarg.h
0400: 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20 >.#endif.#ifdef
0410: 48 41 56 45 5f 53 54 44 49 4e 54 5f 48 0a 23 20 HAVE_STDINT_H.#
0420: 20 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 include <stdint
0430: 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 .h>.#endif.#ifde
0440: 66 20 48 41 56 45 5f 53 54 44 49 4f 5f 48 0a 23 f HAVE_STDIO_H.#
0450: 20 20 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f include <stdio
0460: 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 .h>.#endif.#ifde
0470: 66 20 48 41 56 45 5f 53 54 44 4c 49 42 5f 48 0a f HAVE_STDLIB_H.
0480: 23 20 20 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c # include <stdl
0490: 69 62 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66 ib.h>.#endif.#if
04a0: 64 65 66 20 48 41 56 45 5f 53 54 52 49 4e 47 5f def HAVE_STRING_
04b0: 48 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c 73 74 H.# include <st
04c0: 72 69 6e 67 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 ring.h>.#endif.#
04d0: 69 66 64 65 66 20 48 41 56 45 5f 53 59 53 5f 53 ifdef HAVE_SYS_S
04e0: 4f 43 4b 45 54 5f 48 0a 23 20 20 69 6e 63 6c 75 OCKET_H.# inclu
04f0: 64 65 20 3c 73 79 73 2f 73 6f 63 6b 65 74 2e 68 de <sys/socket.h
0500: 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20 >.#endif.#ifdef
0510: 48 41 56 45 5f 53 59 53 5f 54 59 50 45 53 5f 48 HAVE_SYS_TYPES_H
0520: 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c 73 79 73 .# include <sys
0530: 2f 74 79 70 65 73 2e 68 3e 0a 23 65 6e 64 69 66 /types.h>.#endif
0540: 0a 23 69 66 64 65 66 20 48 41 56 45 5f 53 59 53 .#ifdef HAVE_SYS
0550: 5f 55 4e 5f 48 0a 23 20 20 69 6e 63 6c 75 64 65 _UN_H.# include
0560: 20 3c 73 79 73 2f 75 6e 2e 68 3e 0a 23 65 6e 64 <sys/un.h>.#end
0570: 69 66 0a 23 69 66 64 65 66 20 48 41 56 45 5f 55 if.#ifdef HAVE_U
0580: 4e 49 53 54 44 5f 48 0a 23 20 20 69 6e 63 6c 75 NISTD_H.# inclu
0590: 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 0a 23 65 de <unistd.h>.#e
05a0: 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41 56 45 ndif.#ifdef HAVE
05b0: 5f 54 49 4d 45 5f 48 0a 23 20 20 69 6e 63 6c 75 _TIME_H.# inclu
05c0: 64 65 20 3c 74 69 6d 65 2e 68 3e 0a 23 65 6e 64 de <time.h>.#end
05d0: 69 66 0a 23 69 66 64 65 66 20 48 41 56 45 5f 50 if.#ifdef HAVE_P
05e0: 54 48 52 45 41 44 5f 48 0a 23 20 20 69 6e 63 6c THREAD_H.# incl
05f0: 75 64 65 20 3c 70 74 68 72 65 61 64 2e 68 3e 0a ude <pthread.h>.
0600: 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41 #endif.#ifdef HA
0610: 56 45 5f 4c 49 4d 49 54 53 5f 48 0a 23 20 20 69 VE_LIMITS_H.# i
0620: 6e 63 6c 75 64 65 20 3c 6c 69 6d 69 74 73 2e 68 nclude <limits.h
0630: 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20 >.#endif.#ifdef
0640: 48 41 56 45 5f 5a 4c 49 42 5f 48 0a 23 20 20 69 HAVE_ZLIB_H.# i
0650: 6e 63 6c 75 64 65 20 3c 7a 6c 69 62 2e 68 3e 0a nclude <zlib.h>.
0660: 23 65 6e 64 69 66 0a 5d 29 0a 0a 64 6e 6c 20 43 #endif.])..dnl C
0670: 68 65 63 6b 20 66 6f 72 20 50 43 2f 53 43 20 68 heck for PC/SC h
0680: 65 61 64 65 72 73 20 61 6e 64 20 6c 69 62 72 61 eaders and libra
0690: 72 69 65 73 0a 44 43 5f 50 43 53 43 0a 0a 64 6e ries.DC_PCSC..dn
06a0: 6c 20 43 68 65 63 6b 20 66 6f 72 20 5a 4c 49 42 l Check for ZLIB
06b0: 20 6c 69 62 72 61 72 69 65 73 0a 41 43 5f 43 48 libraries.AC_CH
06c0: 45 43 4b 5f 4c 49 42 28 7a 2c 20 75 6e 63 6f 6d ECK_LIB(z, uncom
06d0: 70 72 65 73 73 29 0a 0a 64 6e 6c 20 56 65 72 69 press)..dnl Veri
06e0: 66 79 20 74 68 61 74 20 61 20 62 61 73 69 63 20 fy that a basic
06f0: 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 63 6f 6d program will com
0700: 70 69 6c 65 0a 41 43 5f 4d 53 47 5f 43 48 45 43 pile.AC_MSG_CHEC
0710: 4b 49 4e 47 28 5b 69 66 20 62 61 73 69 63 20 50 KING([if basic P
0720: 43 2f 53 43 20 70 72 6f 67 72 61 6d 20 77 6f 72 C/SC program wor
0730: 6b 73 5d 29 0a 41 43 5f 4c 49 4e 4b 5f 49 46 45 ks]).AC_LINK_IFE
0740: 4c 53 45 28 0a 09 41 43 5f 4c 41 4e 47 5f 50 52 LSE(..AC_LANG_PR
0750: 4f 47 52 41 4d 28 5b 5b 0a 23 69 66 64 65 66 20 OGRAM([[.#ifdef
0760: 48 41 56 45 5f 57 49 4e 54 59 50 45 53 5f 48 0a HAVE_WINTYPES_H.
0770: 23 20 20 69 6e 63 6c 75 64 65 20 3c 77 69 6e 74 # include <wint
0780: 79 70 65 73 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 ypes.h>.#endif.#
0790: 69 66 64 65 66 20 48 41 56 45 5f 50 43 53 43 4c ifdef HAVE_PCSCL
07a0: 49 54 45 5f 48 0a 23 20 20 69 6e 63 6c 75 64 65 ITE_H.# include
07b0: 20 3c 70 63 73 63 6c 69 74 65 2e 68 3e 0a 23 65 <pcsclite.h>.#e
07c0: 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41 56 45 ndif.#ifdef HAVE
07d0: 5f 57 49 4e 53 43 41 52 44 5f 48 0a 23 20 20 69 _WINSCARD_H.# i
07e0: 6e 63 6c 75 64 65 20 3c 77 69 6e 73 63 61 72 64 nclude <winscard
07f0: 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 .h>.#endif.#ifde
0800: 66 20 48 41 56 45 5f 53 54 44 49 4e 54 5f 48 0a f HAVE_STDINT_H.
0810: 23 20 20 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 # include <stdi
0820: 6e 74 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66 nt.h>.#endif.#if
0830: 64 65 66 20 48 41 56 45 5f 49 4e 54 54 59 50 45 def HAVE_INTTYPE
0840: 53 5f 48 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c S_H.# include <
0850: 69 6e 74 74 79 70 65 73 2e 68 3e 0a 23 65 6e 64 inttypes.h>.#end
0860: 69 66 0a 23 69 66 64 65 66 20 48 41 56 45 5f 53 if.#ifdef HAVE_S
0870: 54 44 4c 49 42 5f 48 0a 23 20 20 69 6e 63 6c 75 TDLIB_H.# inclu
0880: 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 0a 23 65 de <stdlib.h>.#e
0890: 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41 56 45 ndif.#ifdef HAVE
08a0: 5f 55 4e 49 53 54 44 5f 48 0a 23 20 20 69 6e 63 _UNISTD_H.# inc
08b0: 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 0a lude <unistd.h>.
08c0: 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41 #endif.#ifdef HA
08d0: 56 45 5f 53 54 52 49 4e 47 5f 48 0a 23 20 20 69 VE_STRING_H.# i
08e0: 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 nclude <string.h
08f0: 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20 >.#endif.#ifdef
0900: 48 41 56 45 5f 50 54 48 52 45 41 44 5f 48 0a 23 HAVE_PTHREAD_H.#
0910: 20 20 69 6e 63 6c 75 64 65 20 3c 70 74 68 72 65 include <pthre
0920: 61 64 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66 ad.h>.#endif.#if
0930: 64 65 66 20 48 41 56 45 5f 4c 49 4d 49 54 53 5f def HAVE_LIMITS_
0940: 48 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c 6c 69 H.# include <li
0950: 6d 69 74 73 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 mits.h>.#endif.#
0960: 69 66 64 65 66 20 48 41 56 45 5f 53 54 44 49 4f ifdef HAVE_STDIO
0970: 5f 48 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c 73 _H.# include <s
0980: 74 64 69 6f 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 tdio.h>.#endif.#
0990: 69 66 64 65 66 20 48 41 56 45 5f 5a 4c 49 42 5f ifdef HAVE_ZLIB_
09a0: 48 0a 23 20 20 69 66 64 65 66 20 48 41 56 45 5f H.# ifdef HAVE_
09b0: 4c 49 42 5a 0a 23 20 20 20 20 69 6e 63 6c 75 64 LIBZ.# includ
09c0: 65 20 3c 7a 6c 69 62 2e 68 3e 0a 23 20 20 65 6e e <zlib.h>.# en
09d0: 64 69 66 0a 23 65 6e 64 69 66 0a 09 5d 5d 2c 20 dif.#endif..]],
09e0: 5b 5b 0a 09 09 4c 50 53 43 41 52 44 48 41 4e 44 [[...LPSCARDHAND
09f0: 4c 45 20 68 43 61 72 64 3b 0a 09 09 53 43 41 52 LE hCard;...SCAR
0a00: 44 43 4f 4e 54 45 58 54 20 68 43 6f 6e 74 65 78 DCONTEXT hContex
0a10: 74 3b 0a 09 09 44 57 4f 52 44 20 64 77 41 63 74 t;...DWORD dwAct
0a20: 69 76 65 50 72 6f 74 6f 63 6f 6c 3b 0a 09 09 4c iveProtocol;...L
0a30: 4f 4e 47 20 73 63 61 72 64 5f 63 6f 6e 6e 5f 72 ONG scard_conn_r
0a40: 65 74 2c 20 73 63 61 72 64 5f 65 73 74 5f 63 6f et, scard_est_co
0a50: 6e 74 65 78 74 5f 72 65 74 3b 0a 0a 09 09 73 63 ntext_ret;....sc
0a60: 61 72 64 5f 65 73 74 5f 63 6f 6e 74 65 78 74 5f ard_est_context_
0a70: 72 65 74 20 3d 20 53 43 61 72 64 45 73 74 61 62 ret = SCardEstab
0a80: 6c 69 73 68 43 6f 6e 74 65 78 74 28 53 43 41 52 lishContext(SCAR
0a90: 44 5f 53 43 4f 50 45 5f 53 59 53 54 45 4d 2c 20 D_SCOPE_SYSTEM,
0aa0: 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c 20 26 68 43 6f NULL, NULL, &hCo
0ab0: 6e 74 65 78 74 29 3b 0a 0a 09 09 68 43 61 72 64 ntext);....hCard
0ac0: 20 3d 20 4e 55 4c 4c 3b 0a 09 09 73 63 61 72 64 = NULL;...scard
0ad0: 5f 63 6f 6e 6e 5f 72 65 74 20 3d 20 53 43 61 72 _conn_ret = SCar
0ae0: 64 43 6f 6e 6e 65 63 74 28 68 43 6f 6e 74 65 78 dConnect(hContex
0af0: 74 2c 20 22 52 65 61 64 65 72 20 58 22 2c 20 53 t, "Reader X", S
0b00: 43 41 52 44 5f 53 48 41 52 45 5f 53 48 41 52 45 CARD_SHARE_SHARE
0b10: 44 2c 20 53 43 41 52 44 5f 50 52 4f 54 4f 43 4f D, SCARD_PROTOCO
0b20: 4c 5f 54 30 2c 20 68 43 61 72 64 2c 20 26 64 77 L_T0, hCard, &dw
0b30: 41 63 74 69 76 65 50 72 6f 74 6f 63 6f 6c 29 3b ActiveProtocol);
0b40: 0a 09 5d 5d 29 2c 20 5b 0a 09 09 41 43 5f 4d 53 ..]]), [...AC_MS
0b50: 47 5f 52 45 53 55 4c 54 28 6f 6b 61 79 29 0a 09 G_RESULT(okay)..
0b60: 5d 2c 20 5b 0a 09 09 41 43 5f 4d 53 47 5f 52 45 ], [...AC_MSG_RE
0b70: 53 55 4c 54 28 66 61 69 6c 65 64 29 0a 0a 09 09 SULT(failed)....
0b80: 41 43 5f 4d 53 47 5f 46 41 49 4c 55 52 45 28 5b AC_MSG_FAILURE([
0b90: 73 69 6d 70 6c 65 20 50 43 2f 53 43 20 70 72 6f simple PC/SC pro
0ba0: 67 72 61 6d 20 66 61 69 6c 65 64 5d 29 0a 09 5d gram failed])..]
0bb0: 0a 29 0a 0a 64 6e 6c 20 4f 70 74 69 6f 6e 20 74 .)..dnl Option t
0bc0: 6f 20 65 6e 61 62 6c 65 20 44 6f 44 20 63 65 72 o enable DoD cer
0bd0: 74 73 20 6f 6e 20 68 61 72 64 77 61 72 65 20 73 ts on hardware s
0be0: 6c 6f 74 0a 41 43 5f 41 52 47 5f 45 4e 41 42 4c lot.AC_ARG_ENABL
0bf0: 45 28 64 6f 64 2d 63 65 72 74 73 2d 6f 6e 2d 68 E(dod-certs-on-h
0c00: 77 2d 73 6c 6f 74 73 2c 20 41 43 5f 48 45 4c 50 w-slots, AC_HELP
0c10: 5f 53 54 52 49 4e 47 28 5b 2d 2d 65 6e 61 62 6c _STRING([--enabl
0c20: 65 2d 64 6f 64 2d 63 65 72 74 73 2d 6f 6e 2d 68 e-dod-certs-on-h
0c30: 77 2d 73 6c 6f 74 73 5d 2c 20 5b 53 70 65 63 69 w-slots], [Speci
0c40: 66 79 20 74 68 61 74 20 44 6f 44 20 63 65 72 74 fy that DoD cert
0c50: 69 66 69 63 61 74 65 73 20 73 68 6f 75 6c 64 20 ificates should
0c60: 62 65 20 6d 61 64 65 20 61 76 61 69 6c 61 62 6c be made availabl
0c70: 65 20 6f 6e 20 68 61 72 64 77 61 72 65 20 74 6f e on hardware to
0c80: 6b 65 6e 20 73 6c 6f 74 73 5d 29 2c 20 5b 0a 09 ken slots]), [..
0c90: 64 6f 64 63 65 72 74 73 6f 6e 68 77 73 6c 6f 74 dodcertsonhwslot
0ca0: 73 3d 24 65 6e 61 62 6c 65 76 61 6c 0a 5d 2c 20 s=$enableval.],
0cb0: 5b 0a 09 64 6f 64 63 65 72 74 73 6f 6e 68 77 73 [..dodcertsonhws
0cc0: 6c 6f 74 73 3d 6e 6f 0a 5d 29 0a 0a 69 66 20 21 lots=no.])..if !
0cd0: 20 74 65 73 74 20 22 24 7b 64 6f 64 63 65 72 74 test "${dodcert
0ce0: 73 6f 6e 68 77 73 6c 6f 74 73 7d 22 20 3d 20 27 sonhwslots}" = '
0cf0: 6e 6f 27 3b 20 74 68 65 6e 0a 09 41 43 5f 44 45 no'; then..AC_DE
0d00: 46 49 4e 45 28 43 41 43 4b 45 59 5f 43 41 52 44 FINE(CACKEY_CARD
0d10: 5f 53 4c 4f 54 5f 49 4e 43 4c 55 44 45 5f 45 58 _SLOT_INCLUDE_EX
0d20: 54 52 41 5f 43 45 52 54 53 2c 20 5b 31 5d 2c 20 TRA_CERTS, [1],
0d30: 5b 53 70 65 63 69 66 79 20 74 68 61 74 20 44 6f [Specify that Do
0d40: 44 20 63 65 72 74 69 66 69 63 61 74 65 73 20 73 D certificates s
0d50: 68 6f 75 6c 64 20 62 65 20 6d 61 64 65 20 61 76 hould be made av
0d60: 61 69 6c 61 62 6c 65 20 6f 6e 20 68 61 72 64 77 ailable on hardw
0d70: 61 72 65 20 74 6f 6b 65 6e 20 73 6c 6f 74 73 5d are token slots]
0d80: 29 0a 66 69 0a 0a 64 6e 6c 20 4f 70 74 69 6f 6e ).fi..dnl Option
0d90: 20 74 6f 20 64 69 73 61 62 6c 65 20 44 6f 44 20 to disable DoD
0da0: 63 65 72 74 73 20 65 6e 74 69 72 65 6c 79 0a 41 certs entirely.A
0db0: 43 5f 41 52 47 5f 45 4e 41 42 4c 45 28 64 6f 64 C_ARG_ENABLE(dod
0dc0: 2d 63 65 72 74 73 2c 20 41 43 5f 48 45 4c 50 5f -certs, AC_HELP_
0dd0: 53 54 52 49 4e 47 28 5b 2d 2d 64 69 73 61 62 6c STRING([--disabl
0de0: 65 2d 64 6f 64 2d 63 65 72 74 73 5d 2c 20 5b 44 e-dod-certs], [D
0df0: 69 73 61 62 6c 65 20 69 6e 63 6c 75 64 69 6e 67 isable including
0e00: 20 44 6f 44 20 63 65 72 74 73 20 65 6e 74 69 72 DoD certs entir
0e10: 65 6c 79 2e 20 20 54 68 65 20 75 73 65 72 20 6d ely. The user m
0e20: 61 79 20 6f 76 65 72 72 69 64 65 20 74 68 69 73 ay override this
0e30: 20 77 69 74 68 20 74 68 65 20 43 41 43 4b 45 59 with the CACKEY
0e40: 5f 45 58 54 52 41 5f 43 45 52 54 53 20 65 6e 76 _EXTRA_CERTS env
0e50: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c ironment variabl
0e60: 65 2e 5d 29 2c 20 5b 0a 09 64 6f 64 63 65 72 74 e.]), [..dodcert
0e70: 73 3d 24 65 6e 61 62 6c 65 76 61 6c 0a 5d 2c 20 s=$enableval.],
0e80: 5b 0a 09 64 6f 64 63 65 72 74 73 3d 79 65 73 0a [..dodcerts=yes.
0e90: 5d 29 0a 0a 69 66 20 74 65 73 74 20 22 24 7b 64 ])..if test "${d
0ea0: 6f 64 63 65 72 74 73 7d 22 20 3d 20 27 6e 6f 27 odcerts}" = 'no'
0eb0: 3b 20 74 68 65 6e 0a 09 41 43 5f 44 45 46 49 4e ; then..AC_DEFIN
0ec0: 45 28 43 41 43 4b 45 59 5f 4e 4f 5f 45 58 54 52 E(CACKEY_NO_EXTR
0ed0: 41 5f 43 45 52 54 53 2c 20 5b 31 5d 2c 20 5b 53 A_CERTS, [1], [S
0ee0: 70 65 63 69 66 79 20 74 68 61 74 20 44 6f 44 20 pecify that DoD
0ef0: 63 65 72 74 69 66 69 63 61 74 65 73 20 73 68 6f certificates sho
0f00: 75 6c 64 20 6e 6f 74 20 62 65 20 6d 61 64 65 20 uld not be made
0f10: 61 76 61 69 6c 61 62 6c 65 5d 29 0a 66 69 0a 0a available]).fi..
0f20: 64 6e 6c 20 4f 70 74 69 6f 6e 20 74 6f 20 68 61 dnl Option to ha
0f30: 72 64 2d 63 6f 64 65 20 61 20 63 6f 6d 6d 61 6e rd-code a comman
0f40: 64 20 74 6f 20 72 75 6e 20 74 6f 20 72 65 71 75 d to run to requ
0f50: 65 73 74 20 61 20 50 49 4e 20 28 65 6e 61 62 6c est a PIN (enabl
0f60: 69 6e 67 20 70 72 6f 74 65 63 74 65 64 20 61 75 ing protected au
0f70: 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 70 61 74 thentication pat
0f80: 68 29 0a 41 43 5f 41 52 47 5f 57 49 54 48 28 70 h).AC_ARG_WITH(p
0f90: 69 6e 2d 63 6f 6d 6d 61 6e 64 2c 20 41 43 5f 48 in-command, AC_H
0fa0: 45 4c 50 5f 53 54 52 49 4e 47 28 5b 2d 2d 77 69 ELP_STRING([--wi
0fb0: 74 68 2d 70 69 6e 2d 63 6f 6d 6d 61 6e 64 3d 3c th-pin-command=<
0fc0: 63 6f 6d 6d 61 6e 64 3e 5d 2c 20 5b 53 70 65 63 command>], [Spec
0fd0: 69 66 79 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f ify a command to
0fe0: 20 72 75 6e 20 74 6f 20 72 65 71 75 65 73 74 20 run to request
0ff0: 61 20 50 49 4e 20 66 72 6f 6d 20 74 68 65 20 75 a PIN from the u
1000: 73 65 72 2e 20 20 54 68 65 20 75 73 65 72 20 6d ser. The user m
1010: 61 79 20 6f 76 65 72 72 69 64 65 20 74 68 69 73 ay override this
1020: 20 77 69 74 68 20 74 68 65 20 43 41 43 4b 45 59 with the CACKEY
1030: 5f 50 49 4e 5f 43 4f 4d 4d 41 4e 44 20 65 6e 76 _PIN_COMMAND env
1040: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c ironment variabl
1050: 65 2e 5d 29 2c 20 5b 0a 09 70 69 6e 63 6f 6d 6d e.]), [..pincomm
1060: 61 6e 64 3d 22 24 7b 77 69 74 68 76 61 6c 7d 22 and="${withval}"
1070: 0a 5d 2c 20 5b 0a 09 70 69 6e 63 6f 6d 6d 61 6e .], [..pincomman
1080: 64 3d 22 6e 6f 22 0a 5d 29 0a 0a 41 43 5f 41 52 d="no".])..AC_AR
1090: 47 5f 57 49 54 48 28 70 69 6e 2d 63 6f 6d 6d 61 G_WITH(pin-comma
10a0: 6e 64 2d 78 2c 20 41 43 5f 48 45 4c 50 5f 53 54 nd-x, AC_HELP_ST
10b0: 52 49 4e 47 28 5b 2d 2d 77 69 74 68 2d 70 69 6e RING([--with-pin
10c0: 2d 63 6f 6d 6d 61 6e 64 2d 78 3d 3c 63 6f 6d 6d -command-x=<comm
10d0: 61 6e 64 3e 5d 2c 20 5b 53 61 6d 65 20 61 73 20 and>], [Same as
10e0: 2d 2d 77 69 74 68 2d 70 69 6e 2d 63 6f 6d 6d 61 --with-pin-comma
10f0: 6e 64 2c 20 62 75 74 20 6f 6e 6c 79 20 73 65 74 nd, but only set
1100: 73 20 50 72 6f 74 65 63 74 65 64 20 41 75 74 68 s Protected Auth
1110: 65 6e 74 69 63 61 74 69 6f 6e 20 50 61 74 68 20 entication Path
1120: 69 66 20 74 68 65 20 44 49 53 50 4c 41 59 20 65 if the DISPLAY e
1130: 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 nvironment varia
1140: 62 6c 65 20 69 73 20 73 65 74 5d 29 2c 20 5b 0a ble is set]), [.
1150: 09 70 69 6e 63 6f 6d 6d 61 6e 64 78 6f 6e 6c 79 .pincommandxonly
1160: 3d 22 24 7b 77 69 74 68 76 61 6c 7d 22 0a 5d 2c ="${withval}".],
1170: 20 5b 0a 09 70 69 6e 63 6f 6d 6d 61 6e 64 78 6f [..pincommandxo
1180: 6e 6c 79 3d 22 6e 6f 22 0a 5d 29 0a 0a 69 66 20 nly="no".])..if
1190: 21 20 74 65 73 74 20 22 24 7b 70 69 6e 63 6f 6d ! test "${pincom
11a0: 6d 61 6e 64 7d 22 20 3d 20 27 6e 6f 27 3b 20 74 mand}" = 'no'; t
11b0: 68 65 6e 0a 09 41 43 5f 44 45 46 49 4e 45 5f 55 hen..AC_DEFINE_U
11c0: 4e 51 55 4f 54 45 44 28 43 41 43 4b 45 59 5f 50 NQUOTED(CACKEY_P
11d0: 49 4e 5f 43 4f 4d 4d 41 4e 44 5f 44 45 46 41 55 IN_COMMAND_DEFAU
11e0: 4c 54 2c 20 5b 24 70 69 6e 63 6f 6d 6d 61 6e 64 LT, [$pincommand
11f0: 5d 2c 20 5b 43 6f 6d 6d 61 6e 64 20 74 6f 20 72 ], [Command to r
1200: 75 6e 20 74 6f 20 70 72 6f 6d 70 74 20 75 73 65 un to prompt use
1210: 72 20 66 6f 72 20 50 49 4e 5d 29 0a 66 69 0a 0a r for PIN]).fi..
1220: 69 66 20 21 20 74 65 73 74 20 22 24 7b 70 69 6e if ! test "${pin
1230: 63 6f 6d 6d 61 6e 64 78 6f 6e 6c 79 7d 22 20 3d commandxonly}" =
1240: 20 27 6e 6f 27 3b 20 74 68 65 6e 0a 09 41 43 5f 'no'; then..AC_
1250: 44 45 46 49 4e 45 5f 55 4e 51 55 4f 54 45 44 28 DEFINE_UNQUOTED(
1260: 43 41 43 4b 45 59 5f 50 49 4e 5f 43 4f 4d 4d 41 CACKEY_PIN_COMMA
1270: 4e 44 5f 58 4f 4e 4c 59 5f 44 45 46 41 55 4c 54 ND_XONLY_DEFAULT
1280: 2c 20 5b 24 70 69 6e 63 6f 6d 6d 61 6e 64 78 6f , [$pincommandxo
1290: 6e 6c 79 5d 2c 20 5b 43 6f 6d 6d 61 6e 64 20 74 nly], [Command t
12a0: 6f 20 72 75 6e 20 74 6f 20 70 72 6f 6d 70 74 20 o run to prompt
12b0: 75 73 65 72 20 66 6f 72 20 50 49 4e 20 6f 6e 6c user for PIN onl
12c0: 79 20 69 66 20 44 49 53 50 4c 41 59 20 65 6e 76 y if DISPLAY env
12d0: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c ironment variabl
12e0: 65 20 69 73 20 73 65 74 5d 29 0a 66 69 0a 0a 64 e is set]).fi..d
12f0: 6e 6c 20 53 65 74 20 76 65 72 73 69 6f 6e 20 73 nl Set version s
1300: 63 72 69 70 74 2c 20 74 6f 20 6c 69 6d 69 74 20 cript, to limit
1310: 74 68 65 20 73 63 6f 70 65 20 6f 66 20 73 79 6d the scope of sym
1320: 62 6f 6c 73 0a 44 43 5f 53 45 54 56 45 52 53 49 bols.DC_SETVERSI
1330: 4f 4e 53 43 52 49 50 54 28 6c 69 62 63 61 63 6b ONSCRIPT(libcack
1340: 65 79 2e 76 65 72 73 2c 20 6c 69 62 63 61 63 6b ey.vers, libcack
1350: 65 79 2e 73 79 6d 73 29 0a 0a 64 6e 6c 20 55 70 ey.syms)..dnl Up
1360: 61 74 65 20 4c 44 46 4c 41 47 53 20 74 6f 20 69 ate LDFLAGS to i
1370: 6e 63 6c 75 64 65 20 73 65 74 74 69 6e 67 20 74 nclude setting t
1380: 68 65 20 72 75 6e 2d 74 69 6d 65 20 6c 69 6e 6b he run-time link
1390: 65 72 20 70 61 74 68 20 74 6f 20 74 68 65 20 73 er path to the s
13a0: 61 6d 65 20 61 73 20 6f 75 72 20 63 6f 6d 70 69 ame as our compi
13b0: 6c 65 2d 74 69 6d 65 20 6c 69 6e 6b 65 72 0a 44 le-time linker.D
13c0: 43 5f 53 59 4e 43 5f 52 50 41 54 48 0a 0a 64 6e C_SYNC_RPATH..dn
13d0: 6c 20 49 66 20 77 65 20 75 70 64 61 74 65 64 20 l If we updated
13e0: 4c 49 42 4f 42 4a 53 2c 20 75 70 64 61 74 65 20 LIBOBJS, update
13f0: 53 48 4c 49 42 4f 42 4a 53 20 2d 2d 20 6d 75 73 SHLIBOBJS -- mus
1400: 74 20 62 65 20 6c 61 73 74 2e 0a 44 43 5f 53 59 t be last..DC_SY
1410: 4e 43 5f 53 48 4c 49 42 4f 42 4a 53 0a 0a 64 6e NC_SHLIBOBJS..dn
1420: 6c 20 50 72 6f 64 75 63 65 20 4d 61 6b 65 66 69 l Produce Makefi
1430: 6c 65 0a 41 43 5f 4f 55 54 50 55 54 28 4d 61 6b le.AC_OUTPUT(Mak
1440: 65 66 69 6c 65 20 6c 69 62 63 61 63 6b 65 79 2e efile libcackey.
1450: 73 79 6d 73 29 0a syms).