Hex Artifact Content

Artifact 383d36814de56b4887ca86f5fafcf4234b352168:


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 38 29 20 0a 41 43 5f 43 4f 4e 46 49  0.7.8) .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 43 68 65 63  press)..dnl Chec
06e0: 6b 20 66 6f 72 20 64 6c 20 68 65 61 64 65 72 73  k for dl headers
06f0: 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e 73 0a 44   and functions.D
0700: 43 5f 44 4c 46 55 4e 43 53 0a 0a 64 6e 6c 20 56  C_DLFUNCS..dnl V
0710: 65 72 69 66 79 20 74 68 61 74 20 61 20 62 61 73  erify that a bas
0720: 69 63 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20  ic program will 
0730: 63 6f 6d 70 69 6c 65 0a 41 43 5f 43 41 43 48 45  compile.AC_CACHE
0740: 5f 43 48 45 43 4b 28 5b 69 66 20 62 61 73 69 63  _CHECK([if basic
0750: 20 50 43 2f 53 43 20 70 72 6f 67 72 61 6d 20 77   PC/SC program w
0760: 6f 72 6b 73 5d 2c 20 63 61 63 6b 65 79 5f 63 76  orks], cackey_cv
0770: 5f 70 63 73 63 5f 77 6f 72 6b 73 2c 20 5b 0a 09  _pcsc_works, [..
0780: 41 43 5f 4c 49 4e 4b 5f 49 46 45 4c 53 45 28 0a  AC_LINK_IFELSE(.
0790: 09 09 41 43 5f 4c 41 4e 47 5f 50 52 4f 47 52 41  ..AC_LANG_PROGRA
07a0: 4d 28 5b 5b 0a 23 69 66 64 65 66 20 48 41 56 45  M([[.#ifdef HAVE
07b0: 5f 57 49 4e 54 59 50 45 53 5f 48 0a 23 20 20 69  _WINTYPES_H.#  i
07c0: 6e 63 6c 75 64 65 20 3c 77 69 6e 74 79 70 65 73  nclude <wintypes
07d0: 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65  .h>.#endif.#ifde
07e0: 66 20 48 41 56 45 5f 50 43 53 43 4c 49 54 45 5f  f HAVE_PCSCLITE_
07f0: 48 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c 70 63  H.#  include <pc
0800: 73 63 6c 69 74 65 2e 68 3e 0a 23 65 6e 64 69 66  sclite.h>.#endif
0810: 0a 23 69 66 64 65 66 20 48 41 56 45 5f 57 49 4e  .#ifdef HAVE_WIN
0820: 53 43 41 52 44 5f 48 0a 23 20 20 69 6e 63 6c 75  SCARD_H.#  inclu
0830: 64 65 20 3c 77 69 6e 73 63 61 72 64 2e 68 3e 0a  de <winscard.h>.
0840: 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41  #endif.#ifdef HA
0850: 56 45 5f 53 54 44 49 4e 54 5f 48 0a 23 20 20 69  VE_STDINT_H.#  i
0860: 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68  nclude <stdint.h
0870: 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20  >.#endif.#ifdef 
0880: 48 41 56 45 5f 49 4e 54 54 59 50 45 53 5f 48 0a  HAVE_INTTYPES_H.
0890: 23 20 20 69 6e 63 6c 75 64 65 20 3c 69 6e 74 74  #  include <intt
08a0: 79 70 65 73 2e 68 3e 0a 23 65 6e 64 69 66 0a 23  ypes.h>.#endif.#
08b0: 69 66 64 65 66 20 48 41 56 45 5f 53 54 44 4c 49  ifdef HAVE_STDLI
08c0: 42 5f 48 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c  B_H.#  include <
08d0: 73 74 64 6c 69 62 2e 68 3e 0a 23 65 6e 64 69 66  stdlib.h>.#endif
08e0: 0a 23 69 66 64 65 66 20 48 41 56 45 5f 55 4e 49  .#ifdef HAVE_UNI
08f0: 53 54 44 5f 48 0a 23 20 20 69 6e 63 6c 75 64 65  STD_H.#  include
0900: 20 3c 75 6e 69 73 74 64 2e 68 3e 0a 23 65 6e 64   <unistd.h>.#end
0910: 69 66 0a 23 69 66 64 65 66 20 48 41 56 45 5f 53  if.#ifdef HAVE_S
0920: 54 52 49 4e 47 5f 48 0a 23 20 20 69 6e 63 6c 75  TRING_H.#  inclu
0930: 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 0a 23 65  de <string.h>.#e
0940: 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41 56 45  ndif.#ifdef HAVE
0950: 5f 50 54 48 52 45 41 44 5f 48 0a 23 20 20 69 6e  _PTHREAD_H.#  in
0960: 63 6c 75 64 65 20 3c 70 74 68 72 65 61 64 2e 68  clude <pthread.h
0970: 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20  >.#endif.#ifdef 
0980: 48 41 56 45 5f 4c 49 4d 49 54 53 5f 48 0a 23 20  HAVE_LIMITS_H.# 
0990: 20 69 6e 63 6c 75 64 65 20 3c 6c 69 6d 69 74 73   include <limits
09a0: 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65  .h>.#endif.#ifde
09b0: 66 20 48 41 56 45 5f 53 54 44 49 4f 5f 48 0a 23  f HAVE_STDIO_H.#
09c0: 20 20 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f    include <stdio
09d0: 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65  .h>.#endif.#ifde
09e0: 66 20 48 41 56 45 5f 5a 4c 49 42 5f 48 0a 23 20  f HAVE_ZLIB_H.# 
09f0: 20 69 66 64 65 66 20 48 41 56 45 5f 4c 49 42 5a   ifdef HAVE_LIBZ
0a00: 0a 23 20 20 20 20 69 6e 63 6c 75 64 65 20 3c 7a  .#    include <z
0a10: 6c 69 62 2e 68 3e 0a 23 20 20 65 6e 64 69 66 0a  lib.h>.#  endif.
0a20: 23 65 6e 64 69 66 0a 09 09 5d 5d 2c 20 5b 5b 0a  #endif...]], [[.
0a30: 09 09 09 4c 50 53 43 41 52 44 48 41 4e 44 4c 45  ...LPSCARDHANDLE
0a40: 20 68 43 61 72 64 3b 0a 09 09 09 53 43 41 52 44   hCard;....SCARD
0a50: 43 4f 4e 54 45 58 54 20 68 43 6f 6e 74 65 78 74  CONTEXT hContext
0a60: 3b 0a 09 09 09 44 57 4f 52 44 20 64 77 41 63 74  ;....DWORD dwAct
0a70: 69 76 65 50 72 6f 74 6f 63 6f 6c 3b 0a 09 09 09  iveProtocol;....
0a80: 4c 4f 4e 47 20 73 63 61 72 64 5f 63 6f 6e 6e 5f  LONG scard_conn_
0a90: 72 65 74 2c 20 73 63 61 72 64 5f 65 73 74 5f 63  ret, scard_est_c
0aa0: 6f 6e 74 65 78 74 5f 72 65 74 3b 0a 0a 09 09 09  ontext_ret;.....
0ab0: 73 63 61 72 64 5f 65 73 74 5f 63 6f 6e 74 65 78  scard_est_contex
0ac0: 74 5f 72 65 74 20 3d 20 53 43 61 72 64 45 73 74  t_ret = SCardEst
0ad0: 61 62 6c 69 73 68 43 6f 6e 74 65 78 74 28 53 43  ablishContext(SC
0ae0: 41 52 44 5f 53 43 4f 50 45 5f 53 59 53 54 45 4d  ARD_SCOPE_SYSTEM
0af0: 2c 20 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c 20 26 68  , NULL, NULL, &h
0b00: 43 6f 6e 74 65 78 74 29 3b 0a 0a 09 09 09 68 43  Context);.....hC
0b10: 61 72 64 20 3d 20 4e 55 4c 4c 3b 0a 09 09 09 73  ard = NULL;....s
0b20: 63 61 72 64 5f 63 6f 6e 6e 5f 72 65 74 20 3d 20  card_conn_ret = 
0b30: 53 43 61 72 64 43 6f 6e 6e 65 63 74 28 68 43 6f  SCardConnect(hCo
0b40: 6e 74 65 78 74 2c 20 22 52 65 61 64 65 72 20 58  ntext, "Reader X
0b50: 22 2c 20 53 43 41 52 44 5f 53 48 41 52 45 5f 53  ", SCARD_SHARE_S
0b60: 48 41 52 45 44 2c 20 53 43 41 52 44 5f 50 52 4f  HARED, SCARD_PRO
0b70: 54 4f 43 4f 4c 5f 54 30 2c 20 68 43 61 72 64 2c  TOCOL_T0, hCard,
0b80: 20 26 64 77 41 63 74 69 76 65 50 72 6f 74 6f 63   &dwActiveProtoc
0b90: 6f 6c 29 3b 0a 09 09 5d 5d 29 2c 20 5b 0a 09 09  ol);...]]), [...
0ba0: 09 63 61 63 6b 65 79 5f 63 76 5f 70 63 73 63 5f  .cackey_cv_pcsc_
0bb0: 77 6f 72 6b 73 3d 6f 6b 61 79 0a 09 09 5d 2c 20  works=okay...], 
0bc0: 5b 0a 09 09 09 63 61 63 6b 65 79 5f 63 76 5f 70  [....cackey_cv_p
0bd0: 63 73 63 5f 77 6f 72 6b 73 3d 66 61 69 6c 65 64  csc_works=failed
0be0: 0a 09 09 5d 29 0a 09 5d 0a 29 0a 0a 69 66 20 74  ...])..].)..if t
0bf0: 65 73 74 20 22 24 63 61 63 6b 65 79 5f 63 76 5f  est "$cackey_cv_
0c00: 70 63 73 63 5f 77 6f 72 6b 73 22 20 3d 20 27 66  pcsc_works" = 'f
0c10: 61 69 6c 65 64 27 3b 20 74 68 65 6e 0a 09 41 43  ailed'; then..AC
0c20: 5f 4d 53 47 5f 46 41 49 4c 55 52 45 28 5b 73 69  _MSG_FAILURE([si
0c30: 6d 70 6c 65 20 50 43 2f 53 43 20 70 72 6f 67 72  mple PC/SC progr
0c40: 61 6d 20 66 61 69 6c 65 64 5d 29 0a 66 69 0a 0a  am failed]).fi..
0c50: 64 6e 6c 20 4f 70 74 69 6f 6e 20 74 6f 20 65 6e  dnl Option to en
0c60: 61 62 6c 65 20 44 6f 44 20 63 65 72 74 73 20 6f  able DoD certs o
0c70: 6e 20 68 61 72 64 77 61 72 65 20 73 6c 6f 74 0a  n hardware slot.
0c80: 41 43 5f 41 52 47 5f 45 4e 41 42 4c 45 28 64 6f  AC_ARG_ENABLE(do
0c90: 64 2d 63 65 72 74 73 2d 6f 6e 2d 68 77 2d 73 6c  d-certs-on-hw-sl
0ca0: 6f 74 73 2c 20 41 43 5f 48 45 4c 50 5f 53 54 52  ots, AC_HELP_STR
0cb0: 49 4e 47 28 5b 2d 2d 65 6e 61 62 6c 65 2d 64 6f  ING([--enable-do
0cc0: 64 2d 63 65 72 74 73 2d 6f 6e 2d 68 77 2d 73 6c  d-certs-on-hw-sl
0cd0: 6f 74 73 5d 2c 20 5b 53 70 65 63 69 66 79 20 74  ots], [Specify t
0ce0: 68 61 74 20 44 6f 44 20 63 65 72 74 69 66 69 63  hat DoD certific
0cf0: 61 74 65 73 20 73 68 6f 75 6c 64 20 62 65 20 6d  ates should be m
0d00: 61 64 65 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e  ade available on
0d10: 20 68 61 72 64 77 61 72 65 20 74 6f 6b 65 6e 20   hardware token 
0d20: 73 6c 6f 74 73 5d 29 2c 20 5b 0a 09 64 6f 64 63  slots]), [..dodc
0d30: 65 72 74 73 6f 6e 68 77 73 6c 6f 74 73 3d 24 65  ertsonhwslots=$e
0d40: 6e 61 62 6c 65 76 61 6c 0a 5d 2c 20 5b 0a 09 64  nableval.], [..d
0d50: 6f 64 63 65 72 74 73 6f 6e 68 77 73 6c 6f 74 73  odcertsonhwslots
0d60: 3d 6e 6f 0a 5d 29 0a 0a 69 66 20 21 20 74 65 73  =no.])..if ! tes
0d70: 74 20 22 24 7b 64 6f 64 63 65 72 74 73 6f 6e 68  t "${dodcertsonh
0d80: 77 73 6c 6f 74 73 7d 22 20 3d 20 27 6e 6f 27 3b  wslots}" = 'no';
0d90: 20 74 68 65 6e 0a 09 41 43 5f 44 45 46 49 4e 45   then..AC_DEFINE
0da0: 28 43 41 43 4b 45 59 5f 43 41 52 44 5f 53 4c 4f  (CACKEY_CARD_SLO
0db0: 54 5f 49 4e 43 4c 55 44 45 5f 45 58 54 52 41 5f  T_INCLUDE_EXTRA_
0dc0: 43 45 52 54 53 2c 20 5b 31 5d 2c 20 5b 53 70 65  CERTS, [1], [Spe
0dd0: 63 69 66 79 20 74 68 61 74 20 44 6f 44 20 63 65  cify that DoD ce
0de0: 72 74 69 66 69 63 61 74 65 73 20 73 68 6f 75 6c  rtificates shoul
0df0: 64 20 62 65 20 6d 61 64 65 20 61 76 61 69 6c 61  d be made availa
0e00: 62 6c 65 20 6f 6e 20 68 61 72 64 77 61 72 65 20  ble on hardware 
0e10: 74 6f 6b 65 6e 20 73 6c 6f 74 73 5d 29 0a 66 69  token slots]).fi
0e20: 0a 0a 64 6e 6c 20 4f 70 74 69 6f 6e 20 74 6f 20  ..dnl Option to 
0e30: 64 69 73 61 62 6c 65 20 44 6f 44 20 63 65 72 74  disable DoD cert
0e40: 73 20 65 6e 74 69 72 65 6c 79 0a 41 43 5f 41 52  s entirely.AC_AR
0e50: 47 5f 45 4e 41 42 4c 45 28 64 6f 64 2d 63 65 72  G_ENABLE(dod-cer
0e60: 74 73 2c 20 41 43 5f 48 45 4c 50 5f 53 54 52 49  ts, AC_HELP_STRI
0e70: 4e 47 28 5b 2d 2d 64 69 73 61 62 6c 65 2d 64 6f  NG([--disable-do
0e80: 64 2d 63 65 72 74 73 5d 2c 20 5b 44 69 73 61 62  d-certs], [Disab
0e90: 6c 65 20 69 6e 63 6c 75 64 69 6e 67 20 44 6f 44  le including DoD
0ea0: 20 63 65 72 74 73 20 65 6e 74 69 72 65 6c 79 2e   certs entirely.
0eb0: 20 20 54 68 65 20 75 73 65 72 20 6d 61 79 20 6f    The user may o
0ec0: 76 65 72 72 69 64 65 20 74 68 69 73 20 77 69 74  verride this wit
0ed0: 68 20 74 68 65 20 43 41 43 4b 45 59 5f 45 58 54  h the CACKEY_EXT
0ee0: 52 41 5f 43 45 52 54 53 20 65 6e 76 69 72 6f 6e  RA_CERTS environ
0ef0: 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2e 5d 29  ment variable.])
0f00: 2c 20 5b 0a 09 64 6f 64 63 65 72 74 73 3d 24 65  , [..dodcerts=$e
0f10: 6e 61 62 6c 65 76 61 6c 0a 5d 2c 20 5b 0a 09 64  nableval.], [..d
0f20: 6f 64 63 65 72 74 73 3d 79 65 73 0a 5d 29 0a 0a  odcerts=yes.])..
0f30: 69 66 20 74 65 73 74 20 22 24 7b 64 6f 64 63 65  if test "${dodce
0f40: 72 74 73 7d 22 20 3d 20 27 6e 6f 27 3b 20 74 68  rts}" = 'no'; th
0f50: 65 6e 0a 09 41 43 5f 44 45 46 49 4e 45 28 43 41  en..AC_DEFINE(CA
0f60: 43 4b 45 59 5f 4e 4f 5f 45 58 54 52 41 5f 43 45  CKEY_NO_EXTRA_CE
0f70: 52 54 53 2c 20 5b 31 5d 2c 20 5b 53 70 65 63 69  RTS, [1], [Speci
0f80: 66 79 20 74 68 61 74 20 44 6f 44 20 63 65 72 74  fy that DoD cert
0f90: 69 66 69 63 61 74 65 73 20 73 68 6f 75 6c 64 20  ificates should 
0fa0: 6e 6f 74 20 62 65 20 6d 61 64 65 20 61 76 61 69  not be made avai
0fb0: 6c 61 62 6c 65 5d 29 0a 66 69 0a 0a 64 6e 6c 20  lable]).fi..dnl 
0fc0: 4f 70 74 69 6f 6e 20 74 6f 20 68 61 72 64 2d 63  Option to hard-c
0fd0: 6f 64 65 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f  ode 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 28 65 6e 61 62 6c 69 6e 67 20  a PIN (enabling 
1000: 70 72 6f 74 65 63 74 65 64 20 61 75 74 68 65 6e  protected authen
1010: 74 69 63 61 74 69 6f 6e 20 70 61 74 68 29 0a 41  tication path).A
1020: 43 5f 41 52 47 5f 57 49 54 48 28 70 69 6e 2d 63  C_ARG_WITH(pin-c
1030: 6f 6d 6d 61 6e 64 2c 20 41 43 5f 48 45 4c 50 5f  ommand, AC_HELP_
1040: 53 54 52 49 4e 47 28 5b 2d 2d 77 69 74 68 2d 70  STRING([--with-p
1050: 69 6e 2d 63 6f 6d 6d 61 6e 64 3d 3c 63 6f 6d 6d  in-command=<comm
1060: 61 6e 64 3e 5d 2c 20 5b 53 70 65 63 69 66 79 20  and>], [Specify 
1070: 61 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 72 75 6e  a command to run
1080: 20 74 6f 20 72 65 71 75 65 73 74 20 61 20 50 49   to request a PI
1090: 4e 20 66 72 6f 6d 20 74 68 65 20 75 73 65 72 2e  N from the user.
10a0: 20 20 54 68 65 20 75 73 65 72 20 6d 61 79 20 6f    The user may o
10b0: 76 65 72 72 69 64 65 20 74 68 69 73 20 77 69 74  verride this wit
10c0: 68 20 74 68 65 20 43 41 43 4b 45 59 5f 50 49 4e  h the CACKEY_PIN
10d0: 5f 43 4f 4d 4d 41 4e 44 20 65 6e 76 69 72 6f 6e  _COMMAND environ
10e0: 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2e 5d 29  ment variable.])
10f0: 2c 20 5b 0a 09 70 69 6e 63 6f 6d 6d 61 6e 64 3d  , [..pincommand=
1100: 22 24 7b 77 69 74 68 76 61 6c 7d 22 0a 5d 2c 20  "${withval}".], 
1110: 5b 0a 09 70 69 6e 63 6f 6d 6d 61 6e 64 3d 22 6e  [..pincommand="n
1120: 6f 22 0a 5d 29 0a 0a 41 43 5f 41 52 47 5f 57 49  o".])..AC_ARG_WI
1130: 54 48 28 70 69 6e 2d 63 6f 6d 6d 61 6e 64 2d 78  TH(pin-command-x
1140: 2c 20 41 43 5f 48 45 4c 50 5f 53 54 52 49 4e 47  , AC_HELP_STRING
1150: 28 5b 2d 2d 77 69 74 68 2d 70 69 6e 2d 63 6f 6d  ([--with-pin-com
1160: 6d 61 6e 64 2d 78 3d 3c 63 6f 6d 6d 61 6e 64 3e  mand-x=<command>
1170: 5d 2c 20 5b 53 61 6d 65 20 61 73 20 2d 2d 77 69  ], [Same as --wi
1180: 74 68 2d 70 69 6e 2d 63 6f 6d 6d 61 6e 64 2c 20  th-pin-command, 
1190: 62 75 74 20 6f 6e 6c 79 20 73 65 74 73 20 50 72  but only sets Pr
11a0: 6f 74 65 63 74 65 64 20 41 75 74 68 65 6e 74 69  otected Authenti
11b0: 63 61 74 69 6f 6e 20 50 61 74 68 20 69 66 20 74  cation Path if t
11c0: 68 65 20 44 49 53 50 4c 41 59 20 65 6e 76 69 72  he DISPLAY envir
11d0: 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20  onment variable 
11e0: 69 73 20 73 65 74 5d 29 2c 20 5b 0a 09 70 69 6e  is set]), [..pin
11f0: 63 6f 6d 6d 61 6e 64 78 6f 6e 6c 79 3d 22 24 7b  commandxonly="${
1200: 77 69 74 68 76 61 6c 7d 22 0a 5d 2c 20 5b 0a 09  withval}".], [..
1210: 70 69 6e 63 6f 6d 6d 61 6e 64 78 6f 6e 6c 79 3d  pincommandxonly=
1220: 22 6e 6f 22 0a 5d 29 0a 0a 69 66 20 21 20 74 65  "no".])..if ! te
1230: 73 74 20 22 24 7b 70 69 6e 63 6f 6d 6d 61 6e 64  st "${pincommand
1240: 7d 22 20 3d 20 27 6e 6f 27 3b 20 74 68 65 6e 0a  }" = 'no'; then.
1250: 09 41 43 5f 44 45 46 49 4e 45 5f 55 4e 51 55 4f  .AC_DEFINE_UNQUO
1260: 54 45 44 28 43 41 43 4b 45 59 5f 50 49 4e 5f 43  TED(CACKEY_PIN_C
1270: 4f 4d 4d 41 4e 44 5f 44 45 46 41 55 4c 54 2c 20  OMMAND_DEFAULT, 
1280: 5b 24 70 69 6e 63 6f 6d 6d 61 6e 64 5d 2c 20 5b  [$pincommand], [
1290: 43 6f 6d 6d 61 6e 64 20 74 6f 20 72 75 6e 20 74  Command to run t
12a0: 6f 20 70 72 6f 6d 70 74 20 75 73 65 72 20 66 6f  o prompt user fo
12b0: 72 20 50 49 4e 5d 29 0a 66 69 0a 0a 69 66 20 21  r PIN]).fi..if !
12c0: 20 74 65 73 74 20 22 24 7b 70 69 6e 63 6f 6d 6d   test "${pincomm
12d0: 61 6e 64 78 6f 6e 6c 79 7d 22 20 3d 20 27 6e 6f  andxonly}" = 'no
12e0: 27 3b 20 74 68 65 6e 0a 09 41 43 5f 44 45 46 49  '; then..AC_DEFI
12f0: 4e 45 5f 55 4e 51 55 4f 54 45 44 28 43 41 43 4b  NE_UNQUOTED(CACK
1300: 45 59 5f 50 49 4e 5f 43 4f 4d 4d 41 4e 44 5f 58  EY_PIN_COMMAND_X
1310: 4f 4e 4c 59 5f 44 45 46 41 55 4c 54 2c 20 5b 24  ONLY_DEFAULT, [$
1320: 70 69 6e 63 6f 6d 6d 61 6e 64 78 6f 6e 6c 79 5d  pincommandxonly]
1330: 2c 20 5b 43 6f 6d 6d 61 6e 64 20 74 6f 20 72 75  , [Command to ru
1340: 6e 20 74 6f 20 70 72 6f 6d 70 74 20 75 73 65 72  n to prompt user
1350: 20 66 6f 72 20 50 49 4e 20 6f 6e 6c 79 20 69 66   for PIN only if
1360: 20 44 49 53 50 4c 41 59 20 65 6e 76 69 72 6f 6e   DISPLAY environ
1370: 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 69 73  ment variable is
1380: 20 73 65 74 5d 29 0a 66 69 0a 0a 41 43 5f 41 52   set]).fi..AC_AR
1390: 47 5f 57 49 54 48 28 72 65 61 64 65 72 73 2d 69  G_WITH(readers-i
13a0: 6e 63 6c 75 64 65 2d 6f 6e 6c 79 2c 20 41 43 5f  nclude-only, AC_
13b0: 48 45 4c 50 5f 53 54 52 49 4e 47 28 5b 2d 2d 77  HELP_STRING([--w
13c0: 69 74 68 2d 72 65 61 64 65 72 73 2d 69 6e 63 6c  ith-readers-incl
13d0: 75 64 65 2d 6f 6e 6c 79 3d 3c 73 74 72 69 6e 67  ude-only=<string
13e0: 3e 5d 2c 20 5b 53 70 65 63 69 66 79 20 61 20 73  >], [Specify a s
13f0: 74 72 69 6e 67 20 74 6f 20 6d 61 74 63 68 20 69  tring to match i
1400: 6e 20 61 20 72 65 61 64 65 72 20 74 6f 20 69 6e  n a reader to in
1410: 63 6c 75 64 65 20 69 74 2c 20 61 6c 6c 20 6f 74  clude it, all ot
1420: 68 65 72 20 72 65 61 64 65 72 73 20 77 69 6c 6c  her readers will
1430: 20 62 65 20 65 78 63 6c 75 64 65 64 2e 20 20 54   be excluded.  T
1440: 68 65 20 75 73 65 72 20 6d 61 79 20 6f 76 65 72  he user may over
1450: 72 69 64 65 20 74 68 69 73 20 77 69 74 68 20 74  ride this with t
1460: 68 65 20 43 41 43 4b 45 59 5f 52 45 41 44 45 52  he CACKEY_READER
1470: 53 5f 49 4e 43 4c 55 44 45 5f 4f 4e 4c 59 20 65  S_INCLUDE_ONLY e
1480: 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61  nvironment varia
1490: 62 6c 65 2e 5d 29 2c 20 5b 0a 09 72 65 61 64 65  ble.]), [..reade
14a0: 72 73 5f 69 6e 63 6c 75 64 65 5f 6f 6e 6c 79 3d  rs_include_only=
14b0: 22 24 7b 77 69 74 68 76 61 6c 7d 22 0a 5d 2c 20  "${withval}".], 
14c0: 5b 0a 09 72 65 61 64 65 72 73 5f 69 6e 63 6c 75  [..readers_inclu
14d0: 64 65 5f 6f 6e 6c 79 3d 22 6e 6f 22 0a 5d 29 0a  de_only="no".]).
14e0: 0a 41 43 5f 41 52 47 5f 57 49 54 48 28 72 65 61  .AC_ARG_WITH(rea
14f0: 64 65 72 73 2d 65 78 63 6c 75 64 65 2c 20 41 43  ders-exclude, AC
1500: 5f 48 45 4c 50 5f 53 54 52 49 4e 47 28 5b 2d 2d  _HELP_STRING([--
1510: 77 69 74 68 2d 72 65 61 64 65 72 73 2d 65 78 63  with-readers-exc
1520: 6c 75 64 65 3d 3c 73 74 72 69 6e 67 3e 5d 2c 20  lude=<string>], 
1530: 5b 53 70 65 63 69 66 79 20 61 20 73 74 72 69 6e  [Specify a strin
1540: 67 20 74 6f 20 6d 61 74 63 68 20 69 6e 20 61 20  g to match in a 
1550: 72 65 61 64 65 72 20 74 6f 20 65 78 63 6c 75 64  reader to exclud
1560: 65 20 69 74 2c 20 61 6c 6c 20 6f 74 68 65 72 20  e it, all other 
1570: 72 65 61 64 65 72 73 20 77 69 6c 6c 20 62 65 20  readers will be 
1580: 69 6e 63 6c 75 64 65 64 2e 20 20 54 68 65 20 75  included.  The u
1590: 73 65 72 20 6d 61 79 20 6f 76 65 72 72 69 64 65  ser may override
15a0: 20 74 68 69 73 20 77 69 74 68 20 74 68 65 20 43   this with the C
15b0: 41 43 4b 45 59 5f 52 45 41 44 45 52 53 5f 45 58  ACKEY_READERS_EX
15c0: 43 4c 55 44 45 20 65 6e 76 69 72 6f 6e 6d 65 6e  CLUDE environmen
15d0: 74 20 76 61 72 69 61 62 6c 65 2e 5d 29 2c 20 5b  t variable.]), [
15e0: 0a 09 72 65 61 64 65 72 73 5f 65 78 63 6c 75 64  ..readers_exclud
15f0: 65 3d 22 24 7b 77 69 74 68 76 61 6c 7d 22 0a 5d  e="${withval}".]
1600: 2c 20 5b 0a 09 72 65 61 64 65 72 73 5f 65 78 63  , [..readers_exc
1610: 6c 75 64 65 3d 22 6e 6f 22 0a 5d 29 0a 0a 69 66  lude="no".])..if
1620: 20 21 20 74 65 73 74 20 22 24 7b 72 65 61 64 65   ! test "${reade
1630: 72 73 5f 69 6e 63 6c 75 64 65 5f 6f 6e 6c 79 7d  rs_include_only}
1640: 22 20 3d 20 27 6e 6f 27 3b 20 74 68 65 6e 0a 09  " = 'no'; then..
1650: 41 43 5f 44 45 46 49 4e 45 5f 55 4e 51 55 4f 54  AC_DEFINE_UNQUOT
1660: 45 44 28 43 41 43 4b 45 59 5f 52 45 41 44 45 52  ED(CACKEY_READER
1670: 53 5f 49 4e 43 4c 55 44 45 5f 4f 4e 4c 59 5f 44  S_INCLUDE_ONLY_D
1680: 45 46 41 55 4c 54 2c 20 5b 24 72 65 61 64 65 72  EFAULT, [$reader
1690: 73 5f 69 6e 63 6c 75 64 65 5f 6f 6e 6c 79 5d 2c  s_include_only],
16a0: 20 5b 53 75 62 73 74 72 69 6e 67 20 74 6f 20 6d   [Substring to m
16b0: 61 74 63 68 20 74 6f 20 69 6e 63 6c 75 64 65 20  atch to include 
16c0: 72 65 61 64 65 72 73 5d 29 0a 66 69 0a 0a 69 66  readers]).fi..if
16d0: 20 21 20 74 65 73 74 20 22 24 7b 72 65 61 64 65   ! test "${reade
16e0: 72 73 5f 65 78 63 6c 75 64 65 7d 22 20 3d 20 27  rs_exclude}" = '
16f0: 6e 6f 27 3b 20 74 68 65 6e 0a 09 41 43 5f 44 45  no'; then..AC_DE
1700: 46 49 4e 45 5f 55 4e 51 55 4f 54 45 44 28 43 41  FINE_UNQUOTED(CA
1710: 43 4b 45 59 5f 52 45 41 44 45 52 53 5f 45 58 43  CKEY_READERS_EXC
1720: 4c 55 44 45 5f 44 45 46 41 55 4c 54 2c 20 5b 24  LUDE_DEFAULT, [$
1730: 72 65 61 64 65 72 73 5f 65 78 63 6c 75 64 65 5d  readers_exclude]
1740: 2c 20 5b 53 75 62 73 74 72 69 6e 67 20 74 6f 20  , [Substring to 
1750: 6d 61 74 63 68 20 74 6f 20 65 78 63 6c 75 64 65  match to exclude
1760: 20 72 65 61 64 65 72 73 5d 29 0a 66 69 0a 0a 64   readers]).fi..d
1770: 6e 6c 20 53 65 74 20 76 65 72 73 69 6f 6e 20 73  nl Set version s
1780: 63 72 69 70 74 2c 20 74 6f 20 6c 69 6d 69 74 20  cript, to limit 
1790: 74 68 65 20 73 63 6f 70 65 20 6f 66 20 73 79 6d  the scope of sym
17a0: 62 6f 6c 73 0a 44 43 5f 53 45 54 56 45 52 53 49  bols.DC_SETVERSI
17b0: 4f 4e 53 43 52 49 50 54 28 6c 69 62 63 61 63 6b  ONSCRIPT(libcack
17c0: 65 79 2e 76 65 72 73 2c 20 6c 69 62 63 61 63 6b  ey.vers, libcack
17d0: 65 79 2e 73 79 6d 73 29 0a 0a 64 6e 6c 20 55 70  ey.syms)..dnl Up
17e0: 61 74 65 20 4c 44 46 4c 41 47 53 20 74 6f 20 69  ate LDFLAGS to i
17f0: 6e 63 6c 75 64 65 20 73 65 74 74 69 6e 67 20 74  nclude setting t
1800: 68 65 20 72 75 6e 2d 74 69 6d 65 20 6c 69 6e 6b  he run-time link
1810: 65 72 20 70 61 74 68 20 74 6f 20 74 68 65 20 73  er path to the s
1820: 61 6d 65 20 61 73 20 6f 75 72 20 63 6f 6d 70 69  ame as our compi
1830: 6c 65 2d 74 69 6d 65 20 6c 69 6e 6b 65 72 0a 44  le-time linker.D
1840: 43 5f 53 59 4e 43 5f 52 50 41 54 48 0a 0a 64 6e  C_SYNC_RPATH..dn
1850: 6c 20 49 66 20 77 65 20 75 70 64 61 74 65 64 20  l If we updated 
1860: 4c 49 42 4f 42 4a 53 2c 20 75 70 64 61 74 65 20  LIBOBJS, update 
1870: 53 48 4c 49 42 4f 42 4a 53 20 2d 2d 20 6d 75 73  SHLIBOBJS -- mus
1880: 74 20 62 65 20 6c 61 73 74 2e 0a 44 43 5f 53 59  t be last..DC_SY
1890: 4e 43 5f 53 48 4c 49 42 4f 42 4a 53 0a 0a 64 6e  NC_SHLIBOBJS..dn
18a0: 6c 20 50 72 6f 64 75 63 65 20 4d 61 6b 65 66 69  l Produce Makefi
18b0: 6c 65 0a 41 43 5f 4f 55 54 50 55 54 28 4d 61 6b  le.AC_OUTPUT(Mak
18c0: 65 66 69 6c 65 20 6c 69 62 63 61 63 6b 65 79 2e  efile libcackey.
18d0: 73 79 6d 73 29 0a                                syms).