diff options
Diffstat (limited to 'debian/pinentry-tqt/pinentry-tqt-1.2.1/w32')
-rw-r--r-- | debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/Makefile.am | 42 | ||||
-rw-r--r-- | debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/Makefile.in | 690 | ||||
-rw-r--r-- | debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-128.bmp | bin | 0 -> 8262 bytes | |||
-rw-r--r-- | debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-32.bmp | bin | 0 -> 582 bytes | |||
-rw-r--r-- | debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-48.bmp | bin | 0 -> 1222 bytes | |||
-rw-r--r-- | debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-64.bmp | bin | 0 -> 4738 bytes | |||
-rw-r--r-- | debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-96.bmp | bin | 0 -> 4678 bytes | |||
-rw-r--r-- | debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/main.c | 719 | ||||
-rwxr-xr-x | debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/pinentry-w32.rc | 74 | ||||
-rw-r--r-- | debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/resource.h | 25 |
10 files changed, 1550 insertions, 0 deletions
diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/Makefile.am new file mode 100644 index 00000000..12c66db6 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/Makefile.am @@ -0,0 +1,42 @@ +# Makefile.am - PIN entry W32 +# Copyright (C) 2004 g10 Code GmbH +# +# This file is part of PINENTRY. +# +# PINENTRY is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PINENTRY is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see <https://www.gnu.org/licenses/>. +# SPDX-License-Identifier: GPL-2.0+ + +## Process this file with automake to produce Makefile.in + +logos = logo-32.bmp logo-48.bmp logo-64.bmp logo-96.bmp logo-128.bmp + +EXTRA_DIST = $(logos) + +bin_PROGRAMS = pinentry-w32 + +AM_CPPFLAGS = $(COMMON_CFLAGS) -I$(top_srcdir)/secmem \ + -I$(top_srcdir)/pinentry + + +pinentry_w32_SOURCES = main.c pinentry-w32.rc resource.h + +# Note: For testing you should add -mconsole to LDFLAGS. +pinentry_w32_LDFLAGS = -mwindows +pinentry_w32_LDADD = pinentry-w32.o \ + ../pinentry/libpinentry.a ../secmem/libsecmem.a \ + $(COMMON_LIBS) + +pinentry-w32.o: pinentry-w32.rc resource.h $(logos) + $(WINDRES) -I.. -v -o $@ $< + diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/Makefile.in new file mode 100644 index 00000000..d7acbb72 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/Makefile.in @@ -0,0 +1,690 @@ +# Makefile.in generated by automake 1.16.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2020 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Makefile.am - PIN entry W32 +# Copyright (C) 2004 g10 Code GmbH +# +# This file is part of PINENTRY. +# +# PINENTRY is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PINENTRY is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see <https://www.gnu.org/licenses/>. +# SPDX-License-Identifier: GPL-2.0+ + +VPATH = @srcdir@ +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 \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = pinentry-w32$(EXEEXT) +subdir = w32 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ + $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.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_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" +PROGRAMS = $(bin_PROGRAMS) +am_pinentry_w32_OBJECTS = main.$(OBJEXT) +pinentry_w32_OBJECTS = $(am_pinentry_w32_OBJECTS) +am__DEPENDENCIES_1 = +pinentry_w32_DEPENDENCIES = pinentry-w32.o ../pinentry/libpinentry.a \ + ../secmem/libsecmem.a $(am__DEPENDENCIES_1) +pinentry_w32_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(pinentry_w32_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/main.Po +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(pinentry_w32_SOURCES) +DIST_SOURCES = $(pinentry_w32_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + 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) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +COMMON_CFLAGS = @COMMON_CFLAGS@ +COMMON_LIBS = @COMMON_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FLTKCFLAGS = @FLTKCFLAGS@ +FLTKCXXFLAGS = @FLTKCXXFLAGS@ +FLTKLIBS = @FLTKLIBS@ +FLTK_CONFIG = @FLTK_CONFIG@ +GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ +GNOME3_CFLAGS = @GNOME3_CFLAGS@ +GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ +GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ +GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ +GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ +GPG_ERROR_MT_CFLAGS = @GPG_ERROR_MT_CFLAGS@ +GPG_ERROR_MT_LIBS = @GPG_ERROR_MT_LIBS@ +GREP = @GREP@ +GTK2_CFLAGS = @GTK2_CFLAGS@ +GTK2_LIBS = @GTK2_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ +LDFLAGS = @LDFLAGS@ +LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ +LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ +LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ +LIBCURSES = @LIBCURSES@ +LIBICONV = @LIBICONV@ +LIBNCURSES = @LIBNCURSES@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ +LIBSECRET_LIBS = @LIBSECRET_LIBS@ +LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ +NCURSES_CFLAGS = @NCURSES_CFLAGS@ +NCURSES_INCLUDE = @NCURSES_INCLUDE@ +NCURSES_LIBS = @NCURSES_LIBS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ +PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ +PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ +PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ +PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ +PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ +PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ +PKG_CONFIG = @PKG_CONFIG@ +QTCHOOSER = @QTCHOOSER@ +RANLIB = @RANLIB@ +RCC = @RCC@ +RCC2 = @RCC2@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TQT_MOC = @TQT_MOC@ +VERSION = @VERSION@ +WINDRES = @WINDRES@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +logos = logo-32.bmp logo-48.bmp logo-64.bmp logo-96.bmp logo-128.bmp +EXTRA_DIST = $(logos) +AM_CPPFLAGS = $(COMMON_CFLAGS) -I$(top_srcdir)/secmem \ + -I$(top_srcdir)/pinentry + +pinentry_w32_SOURCES = main.c pinentry-w32.rc resource.h + +# Note: For testing you should add -mconsole to LDFLAGS. +pinentry_w32_LDFLAGS = -mwindows +pinentry_w32_LDADD = pinentry-w32.o \ + ../pinentry/libpinentry.a ../secmem/libsecmem.a \ + $(COMMON_LIBS) + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu w32/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu w32/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +pinentry-w32$(EXEEXT): $(pinentry_w32_OBJECTS) $(pinentry_w32_DEPENDENCIES) $(EXTRA_pinentry_w32_DEPENDENCIES) + @rm -f pinentry-w32$(EXEEXT) + $(AM_V_CCLD)$(pinentry_w32_LINK) $(pinentry_w32_OBJECTS) $(pinentry_w32_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +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) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic mostlyclean-am + +distclean: distclean-am + -rm -f ./$(DEPDIR)/main.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f ./$(DEPDIR)/main.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ + distclean distclean-compile distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-binPROGRAMS install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-binPROGRAMS + +.PRECIOUS: Makefile + + +pinentry-w32.o: pinentry-w32.rc resource.h $(logos) + $(WINDRES) -I.. -v -o $@ $< + +# 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. +.NOEXPORT: diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-128.bmp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-128.bmp Binary files differnew file mode 100644 index 00000000..883475b3 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-128.bmp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-32.bmp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-32.bmp Binary files differnew file mode 100644 index 00000000..38d60183 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-32.bmp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-48.bmp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-48.bmp Binary files differnew file mode 100644 index 00000000..53c62743 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-48.bmp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-64.bmp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-64.bmp Binary files differnew file mode 100644 index 00000000..7d4ca29a --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-64.bmp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-96.bmp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-96.bmp Binary files differnew file mode 100644 index 00000000..f0496c88 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-96.bmp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/main.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/main.c new file mode 100644 index 00000000..d8a48339 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/main.c @@ -0,0 +1,719 @@ +/* main.c - Secure W32 dialog for PIN entry. + * Copyright (C) 2004, 2007 g10 Code GmbH + * + * 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 the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <config.h> +#include <stdio.h> +#include <stdlib.h> +#if WINVER < 0x0403 +# define WINVER 0x0403 /* Required for SendInput. */ +#endif +#include <windows.h> +#ifdef HAVE_W32CE_SYSTEM +# include <winioctl.h> +# include <sipapi.h> +#endif + +#include "pinentry.h" +#include "memory.h" + +#include "resource.h" +/* #include "msgcodes.h" */ + +#define PGMNAME "pinentry-w32" + +#ifndef LSFW_LOCK +# define LSFW_LOCK 1 +# define LSFW_UNLOCK 2 +#endif + +#ifndef debugfp +#define debugfp stderr +#endif + + +/* This function pointer gets initialized in main. */ +#ifndef HAVE_W32CE_SYSTEM +static BOOL WINAPI (*lock_set_foreground_window)(UINT); +#endif + +static int w32_cmd_handler (pinentry_t pe); +static void ok_button_clicked (HWND dlg, pinentry_t pe); + + +/* We use global variables for the state, because there should never + ever be a second instance. */ +static HWND dialog_handle; +static int confirm_mode; +static int passphrase_ok; +static int confirm_yes; + +/* The file descriptors for the loop. */ +static int w32_infd; +static int w32_outfd; + + +/* Connect this module to the pinentry framework. */ +pinentry_cmd_handler_t pinentry_cmd_handler = w32_cmd_handler; + + + +const char * +w32_strerror (int ec) +{ + static char strerr[256]; + + if (ec == -1) + ec = (int)GetLastError (); +#ifdef HAVE_W32CE_SYSTEM + /* There is only a wchar_t FormatMessage. It does not make much + sense to play the conversion game; we print only the code. */ + snprintf (strerr, sizeof strerr, "ec=%d", ec); +#else + FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, NULL, ec, + MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), + strerr, sizeof strerr - 1, NULL); +#endif + return strerr; +} + + + +#ifdef HAVE_W32CE_SYSTEM +/* Create a pipe. WRITE_END shall have the opposite value of the one + pssed to _assuan_w32ce_prepare_pipe; see there for more + details. */ +#define GPGCEDEV_IOCTL_MAKE_PIPE \ + CTL_CODE (FILE_DEVICE_STREAMS, 2049, METHOD_BUFFERED, FILE_ANY_ACCESS) +static HANDLE +w32ce_finish_pipe (int rvid, int write_end) +{ + HANDLE hd; + + hd = CreateFile (L"GPG1:", write_end? GENERIC_WRITE : GENERIC_READ, + FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL); + if (hd != INVALID_HANDLE_VALUE) + { + if (!DeviceIoControl (hd, GPGCEDEV_IOCTL_MAKE_PIPE, + &rvid, sizeof rvid, NULL, 0, NULL, NULL)) + { + DWORD lastrc = GetLastError (); + CloseHandle (hd); + hd = INVALID_HANDLE_VALUE; + SetLastError (lastrc); + } + } + + return hd; +} +#endif /*HAVE_W32CE_SYSTEM*/ + + +/* static HWND */ +/* show_window_hierarchy (HWND parent, int level) */ +/* { */ +/* HWND child; */ + +/* child = GetWindow (parent, GW_CHILD); */ +/* while (child) */ +/* { */ +/* char buf[1024+1]; */ +/* char name[200]; */ +/* int nname; */ +/* char *pname; */ + +/* memset (buf, 0, sizeof (buf)); */ +/* GetWindowText (child, buf, sizeof (buf)-1); */ +/* nname = GetClassName (child, name, sizeof (name)-1); */ +/* if (nname) */ +/* pname = name; */ +/* else */ +/* pname = NULL; */ +/* fprintf (debugfp, "### %*shwnd=%p (%s) `%s'\n", level*2, "", child, */ +/* pname? pname:"", buf); */ +/* show_window_hierarchy (child, level+1); */ +/* child = GetNextWindow (child, GW_HWNDNEXT); */ +/* } */ + +/* return NULL; */ +/* } */ + + + +/* Convert a wchar to UTF8. Caller needs to release the string. + Returns NULL on error. */ +static char * +wchar_to_utf8 (const wchar_t *string, size_t len, int secure) +{ + int n; + char *result; + + /* Note, that CP_UTF8 is not defined in Windows versions earlier + than NT. */ + n = WideCharToMultiByte (CP_UTF8, 0, string, len, NULL, 0, NULL, NULL); + if (n < 0) + return NULL; + + result = secure? secmem_malloc (n+1) : malloc (n+1); + if (!result) + return NULL; + n = WideCharToMultiByte (CP_UTF8, 0, string, len, result, n, NULL, NULL); + if (n < 0) + { + if (secure) + secmem_free (result); + else + free (result); + return NULL; + } + return result; +} + + +/* Convert a UTF8 string to wchar. Returns NULL on error. Caller + needs to free the returned value. */ +wchar_t * +utf8_to_wchar (const char *string) +{ + int n; + wchar_t *result; + size_t len = strlen (string); + + n = MultiByteToWideChar (CP_UTF8, 0, string, len, NULL, 0); + if (n < 0) + return NULL; + + result = calloc ((n+1), sizeof *result); + if (!result) + return NULL; + n = MultiByteToWideChar (CP_UTF8, 0, string, len, result, n); + if (n < 0) + { + free (result); + return NULL; + } + result[n] = 0; + return result; +} + + +/* Raise the software input panel. */ +static void +raise_sip (HWND dlg) +{ +#ifdef HAVE_W32CE_SYSTEM + SIPINFO si; + + SetForegroundWindow (dlg); + + memset (&si, 0, sizeof si); + si.cbSize = sizeof si; + + if (SipGetInfo (&si)) + { + si.fdwFlags |= SIPF_ON; + SipSetInfo (&si); + } +#else + (void)dlg; +#endif +} + +/* Center the window CHILDWND with the desktop as its parent + window. STYLE is passed as second arg to SetWindowPos.*/ +static void +center_window (HWND childwnd, HWND style) +{ +#ifndef HAVE_W32CE_SYSTEM + HWND parwnd; + RECT rchild, rparent; + HDC hdc; + int wchild, hchild, wparent, hparent; + int wscreen, hscreen, xnew, ynew; + int flags = SWP_NOSIZE | SWP_NOZORDER; + + parwnd = GetDesktopWindow (); + GetWindowRect (childwnd, &rchild); + wchild = rchild.right - rchild.left; + hchild = rchild.bottom - rchild.top; + + GetWindowRect (parwnd, &rparent); + wparent = rparent.right - rparent.left; + hparent = rparent.bottom - rparent.top; + + hdc = GetDC (childwnd); + wscreen = GetDeviceCaps (hdc, HORZRES); + hscreen = GetDeviceCaps (hdc, VERTRES); + ReleaseDC (childwnd, hdc); + xnew = rparent.left + ((wparent - wchild) / 2); + if (xnew < 0) + xnew = 0; + else if ((xnew+wchild) > wscreen) + xnew = wscreen - wchild; + ynew = rparent.top + ((hparent - hchild) / 2); + if (ynew < 0) + ynew = 0; + else if ((ynew+hchild) > hscreen) + ynew = hscreen - hchild; + if (style == HWND_TOPMOST || style == HWND_NOTOPMOST) + flags = SWP_NOMOVE | SWP_NOSIZE; + SetWindowPos (childwnd, style? style : NULL, xnew, ynew, 0, 0, flags); +#endif +} + + + +static void +move_mouse_and_click (HWND hwnd) +{ +#ifndef HAVE_W32CE_SYSTEM + RECT rect; + HDC hdc; + int wscreen, hscreen, x, y, normx, normy; + INPUT inp[3]; + int idx; + + hdc = GetDC (hwnd); + wscreen = GetDeviceCaps (hdc, HORZRES); + hscreen = GetDeviceCaps (hdc, VERTRES); + ReleaseDC (hwnd, hdc); + if (wscreen < 10 || hscreen < 10) + return; + + GetWindowRect (hwnd, &rect); + x = rect.left; + y = rect.bottom; + + normx = x * (65535 / wscreen); + if (normx < 0 || normx > 65535) + return; + normy = y * (65535 / hscreen); + if (normy < 0 || normy > 65535) + return; + + for (idx=0; idx < 3; idx++) + memset (&inp[idx], 0, sizeof inp[idx]); + + idx=0; + inp[idx].type = INPUT_MOUSE; + inp[idx].mi.dx = normx; + inp[idx].mi.dy = normy; + inp[idx].mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE; + idx++; + + inp[idx].type = INPUT_MOUSE; + inp[idx].mi.dwFlags = MOUSEEVENTF_LEFTDOWN; + idx++; + + inp[idx].type = INPUT_MOUSE; + inp[idx].mi.dwFlags = MOUSEEVENTF_LEFTUP; + idx++; + + if ( (SendInput (idx, inp, sizeof (INPUT)) != idx) && debugfp) + fprintf (debugfp, "SendInput failed: %s\n", w32_strerror (-1)); +#endif +} + + + +/* Resize the button so that STRING fits into it. */ +static void +resize_button (HWND hwnd, const char *string) +{ + if (!hwnd) + return; + + /* FIXME: Need to figure out how to convert dialog coorddnates to + screen coordinates and how buttons should be placed. */ +/* SetWindowPos (hbutton, NULL, */ +/* 10, 180, */ +/* strlen (string+2), 14, */ +/* (SWP_NOZORDER)); */ +} + + + + + +/* Call SetDlgItemTextW with an UTF8 string. */ +static void +set_dlg_item_text (HWND dlg, int item, const char *string) +{ + if (!string || !*string) + SetDlgItemTextW (dlg, item, L""); + else + { + wchar_t *wbuf; + + wbuf = utf8_to_wchar (string); + if (!wbuf) + SetDlgItemTextW (dlg, item, L"[out of core]"); + else + { + SetDlgItemTextW (dlg, item, wbuf); + free (wbuf); + } + } +} + + +/* Load our butmapped icon from the resource and display it. */ +static void +set_bitmap (HWND dlg, int item) +{ + HWND hwnd; + HBITMAP bitmap; + RECT rect; + int resid; + + hwnd = GetDlgItem (dlg, item); + if (!hwnd) + return; + + rect.left = 0; + rect.top = 0; + rect.right = 32; + rect.bottom = 32; + if (!MapDialogRect (dlg, &rect)) + { + fprintf (stderr, "MapDialogRect failed: %s\n", w32_strerror (-1)); + return; + } + /* fprintf (stderr, "MapDialogRect: %d/%d\n", rect.right, rect.bottom); */ + + switch (rect.right) + { + case 32: resid = IDB_ICON_32; break; + case 48: resid = IDB_ICON_48; break; + case 64: resid = IDB_ICON_64; break; + case 96: resid = IDB_ICON_96; break; + default: resid = IDB_ICON_128;break; + } + + bitmap = LoadImage (GetModuleHandle (NULL), + MAKEINTRESOURCE (resid), + IMAGE_BITMAP, + rect.right, rect.bottom, + (LR_SHARED | LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS)); + if (!bitmap) + { + fprintf (stderr, "LoadImage failed: %s\n", w32_strerror (-1)); + return; + } + SendMessage(hwnd, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)bitmap); +} + + +/* Dialog processing loop. */ +static BOOL CALLBACK +dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam) +{ + static pinentry_t pe; + /* static int item; */ + + +/* { */ +/* int idx; */ + +/* for (idx=0; msgcodes[idx].string; idx++) */ +/* if (msg == msgcodes[idx].msg) */ +/* break; */ +/* if (msgcodes[idx].string) */ +/* fprintf (debugfp, "received %s\n", msgcodes[idx].string); */ +/* else */ +/* fprintf (debugfp, "received WM_%u\n", msg); */ +/* } */ + + switch (msg) + { + case WM_INITDIALOG: + dialog_handle = dlg; + pe = (pinentry_t)lparam; + if (!pe) + abort (); + set_dlg_item_text (dlg, IDC_PINENT_PROMPT, pe->prompt); + set_dlg_item_text (dlg, IDC_PINENT_DESC, pe->description); + set_dlg_item_text (dlg, IDC_PINENT_TEXT, ""); + set_bitmap (dlg, IDC_PINENT_ICON); + if (pe->ok) + { + set_dlg_item_text (dlg, IDOK, pe->ok); + resize_button (GetDlgItem (dlg, IDOK), pe->ok); + } + if (pe->cancel) + { + set_dlg_item_text (dlg, IDCANCEL, pe->cancel); + resize_button (GetDlgItem (dlg, IDCANCEL), pe->cancel); + } + if (pe->error) + set_dlg_item_text (dlg, IDC_PINENT_ERR, pe->error); + + if (confirm_mode) + { + EnableWindow (GetDlgItem (dlg, IDC_PINENT_TEXT), FALSE); + SetWindowPos (GetDlgItem (dlg, IDC_PINENT_TEXT), NULL, 0, 0, 0, 0, + (SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_HIDEWINDOW)); + + /* item = IDOK; */ + } + /* else */ + /* item = IDC_PINENT_TEXT; */ + + center_window (dlg, HWND_TOP); + + /* Unfortunately we can't use SetForegroundWindow because there + is no easy eay to have all the calling processes do an + AllowSetForegroundWindow. What we do instead is to bad hack + by simulating a click to the Window. */ +/* if (SetForegroundWindow (dlg) && lock_set_foreground_window) */ +/* { */ +/* lock_set_foreground_window (LSFW_LOCK); */ +/* } */ + +/* show_window_hierarchy (GetDesktopWindow (), 0); */ + + ShowWindow (dlg, SW_SHOW); + move_mouse_and_click ( GetDlgItem (dlg, IDC_PINENT_PROMPT) ); + raise_sip (dlg); + break; + + case WM_COMMAND: + switch (LOWORD (wparam)) + { + case IDOK: + if (confirm_mode) + confirm_yes = 1; + else + ok_button_clicked (dlg, pe); + EndDialog (dlg, TRUE); + break; + + case IDCANCEL: + pe->result = -1; + EndDialog (dlg, FALSE); + break; + } + break; + + case WM_KEYDOWN: + if (wparam == VK_RETURN) + { + if (confirm_mode) + confirm_yes = 1; + else + ok_button_clicked (dlg, pe); + EndDialog (dlg, TRUE); + } + break; + + case WM_CTLCOLORSTATIC: + if ((HWND)lparam == GetDlgItem (dlg, IDC_PINENT_ERR)) + { + /* Display the error prompt in red. */ + SetTextColor ((HDC)wparam, RGB (255, 0, 0)); + SetBkMode ((HDC)wparam, TRANSPARENT); + return (BOOL)GetStockObject (NULL_BRUSH); + } + break; + + } + return FALSE; +} + + +/* The okay button has been clicked or the enter enter key in the text + field. */ +static void +ok_button_clicked (HWND dlg, pinentry_t pe) +{ + char *s_utf8; + wchar_t *w_buffer; + size_t w_buffer_size = 255; + unsigned int nchar; + + pe->locale_err = 1; + w_buffer = secmem_malloc ((w_buffer_size + 1) * sizeof *w_buffer); + if (!w_buffer) + return; + + nchar = GetDlgItemTextW (dlg, IDC_PINENT_TEXT, w_buffer, w_buffer_size); + s_utf8 = wchar_to_utf8 (w_buffer, nchar, 1); + secmem_free (w_buffer); + if (s_utf8) + { + passphrase_ok = 1; + pinentry_setbufferlen (pe, strlen (s_utf8) + 1); + if (pe->pin) + strcpy (pe->pin, s_utf8); + secmem_free (s_utf8); + pe->locale_err = 0; + pe->result = pe->pin? strlen (pe->pin) : 0; + } +} + + +static int +w32_cmd_handler (pinentry_t pe) +{ +/* HWND lastwindow = GetForegroundWindow (); */ + + confirm_mode = !pe->pin; + + passphrase_ok = confirm_yes = 0; + + dialog_handle = NULL; + DialogBoxParam (GetModuleHandle (NULL), MAKEINTRESOURCE (IDD_PINENT), + GetDesktopWindow (), dlg_proc, (LPARAM)pe); + if (dialog_handle) + { +/* if (lock_set_foreground_window) */ +/* lock_set_foreground_window (LSFW_UNLOCK); */ +/* if (lastwindow) */ +/* SetForegroundWindow (lastwindow); */ + } + else + return -1; + + if (confirm_mode) + return confirm_yes; + else if (passphrase_ok && pe->pin) + return strlen (pe->pin); + else + return -1; +} + + +/* WindowsCE uses a very strange way of handling the standard streams. + There is a function SetStdioPath to associate a standard stream + with a file or a device but what we really want is to use pipes as + standard streams. Despite that we implement pipes using a device, + we would have some limitations on the number of open pipes due to + the 3 character limit of device file name. Thus we don't take this + path. Another option would be to install a file system driver with + support for pipes; this would allow us to get rid of the device + name length limitation. However, with GnuPG we can get away be + redefining the standard streams and passing the handles to be used + on the command line. This has also the advantage that it makes + creating a process much easier and does not require the + SetStdioPath set and restore game. The caller needs to pass the + rendezvous ids using up to three options: + + -&S0=<rvid> -&S1=<rvid> -&S2=<rvid> + + They are all optional but they must be the first arguments on the + command line. Parsing stops as soon as an invalid option is found. + These rendezvous ids are then used to finish the pipe creation.*/ +#ifdef HAVE_W32CE_SYSTEM +static void +parse_std_file_handles (int *argcp, char ***argvp) +{ + int argc = *argcp; + char **argv = *argvp; + const char *s; + int fd; + int i; + int fixup = 0; + + if (!argc) + return; + + for (argc--, argv++; argc; argc--, argv++) + { + s = *argv; + if (*s == '-' && s[1] == '&' && s[2] == 'S' + && (s[3] == '0' || s[3] == '1' || s[3] == '2') + && s[4] == '=' + && (strchr ("-01234567890", s[5]) || !strcmp (s+5, "null"))) + { + if (s[5] == 'n') + fd = (int)(-1); + else + fd = (int)w32ce_finish_pipe (atoi (s+5), s[3] != '0'); + if (s[3] == '0' && fd != -1) + w32_infd = fd; + else if (s[3] == '1' && fd != -1) + w32_outfd = fd; + fixup++; + } + else + break; + } + + if (fixup) + { + argc = *argcp; + argc -= fixup; + *argcp = argc; + + argv = *argvp; + for (i=1; i < argc; i++) + argv[i] = argv[i + fixup]; + for (; i < argc + fixup; i++) + argv[i] = NULL; + } + + +} +#endif /*HAVE_W32CE_SYSTEM*/ + + +int +main (int argc, char **argv) +{ +#ifndef HAVE_W32CE_SYSTEM + void *handle; +#endif + + w32_infd = STDIN_FILENO; + w32_outfd = STDOUT_FILENO; + +#ifdef HAVE_W32CE_SYSTEM + parse_std_file_handles (&argc, &argv); +#endif + + pinentry_init (PGMNAME); + + pinentry_parse_opts (argc, argv); + +/* debugfp = fopen ("pinentry.log", "w"); */ +/* if (!debugfp) */ +/* debugfp = stderr; */ + + /* We need to load a function because that one is only available + since W2000 but not in older NTs. */ +#ifndef HAVE_W32CE_SYSTEM + handle = LoadLibrary ("user32.dll"); + if (handle) + { + void *foo; + foo = GetProcAddress (handle, "LockSetForegroundWindow"); + if (foo) + lock_set_foreground_window = foo; + else + CloseHandle (handle); + } +#endif + + if (pinentry_loop2 (w32_infd, w32_outfd)) + return 1; + +#ifdef HAVE_W32CE_SYSTEM + Sleep (400); +#endif + return 0; +} diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/pinentry-w32.rc b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/pinentry-w32.rc new file mode 100755 index 00000000..bc3dacbd --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/pinentry-w32.rc @@ -0,0 +1,74 @@ +/* dialog.rc - Resource definitions -*- c -*- + * Copyright (C) 2004, 2010 g10 Code GmbH + * + * 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 the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <config.h> +#include <winuser.h> +#include <windows.h> +#include "resource.h" + +/* + * Main dialog + */ + +#ifdef HAVE_W32CE_SYSTEM + +IDD_PINENT DIALOG DISCARDABLE 0, 0, 150, 100 +STYLE DS_MODALFRAME | DS_SYSMODAL | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Pinentry" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "", IDC_PINENT_DESC, 2, 2, 140, 24 + LTEXT "", IDC_PINENT_ERR, 2, 30, 140, 12 + + LTEXT "", IDC_PINENT_PROMPT, 2, 56, 20, 12 + EDITTEXT IDC_PINENT_TEXT, 30, 56, 100, 12, ES_PASSWORD | ES_AUTOHSCROLL + + DEFPUSHBUTTON "O&K", IDOK, 2, 70, 50, 14 + PUSHBUTTON "&Cancel", IDCANCEL, 60, 70, 50, 14 + +END + +#else /* Standard Windows. */ + +IDB_ICON_32 BITMAP DISCARDABLE "logo-32.bmp" +IDB_ICON_48 BITMAP DISCARDABLE "logo-48.bmp" +IDB_ICON_64 BITMAP DISCARDABLE "logo-64.bmp" +IDB_ICON_96 BITMAP DISCARDABLE "logo-96.bmp" +IDB_ICON_128 BITMAP DISCARDABLE "logo-128.bmp" + +IDD_PINENT DIALOG DISCARDABLE 0, 0, 186, 116 +STYLE DS_MODALFRAME | DS_SYSMODAL | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Pinentry" +FONT 10, "MS Sans Serif" +BEGIN + CONTROL "", IDC_PINENT_ICON, + "Static", SS_BITMAP|SS_CENTERIMAGE, + 4, 6, 32, 32 + LTEXT "", IDC_PINENT_DESC, 40, 6, 140, 50 + RTEXT "", IDC_PINENT_PROMPT, 6, 60, 60, 12 + EDITTEXT IDC_PINENT_TEXT, 70, 59, 110, 12, ES_PASSWORD | ES_AUTOHSCROLL + CTEXT "", IDC_PINENT_ERR, 6, 76, 174, 12 + DEFPUSHBUTTON "O&K", IDOK, 74, 96, 50, 14 + PUSHBUTTON "&Cancel", IDCANCEL, 130, 96, 50, 14 +END + + + +#endif /* Standard Windows. */ + + diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/resource.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/resource.h new file mode 100644 index 00000000..4311bf3e --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/resource.h @@ -0,0 +1,25 @@ +/* resource.h + * Copyright 2004 g10 Code GmbH + * + * This file is free software; as a special exception the author gives + * unlimited permission to copy and/or distribute it, with or without + * modifications, as long as this notice is preserved. + * + * This file is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * SPDX-License-Identifier: FSFULLR + */ + +#define IDD_PINENT 101 +#define IDC_PINENT_TEXT 292 +#define IDC_PINENT_DESC 1000 +#define IDC_PINENT_ERR 1001 +#define IDC_PINENT_PROMPT 1002 +#define IDC_PINENT_ICON 1003 + +#define IDB_ICON_32 3101 +#define IDB_ICON_48 3102 +#define IDB_ICON_64 3103 +#define IDB_ICON_96 3104 +#define IDB_ICON_128 3105 |