Changeset 82

Show
Ignore:
Timestamp:
03/08/12 20:03:11 (9 years ago)
Author:
vsilva
Message:

Implement Multi-sign with no PIN request

Location:
middleware-offline/trunk/_src/eidmw
Files:
1 added
12 removed
71 modified

Legend:

Unmodified
Added
Removed
  • middleware-offline/trunk/_src/eidmw/CSP/pteid35CSP.vcproj

    r11 r82  
    102102                </Configuration> 
    103103                <Configuration 
     104                        Name="Release|Win32" 
     105                        OutputDirectory="$(SolutionDir)$(ConfigurationName)" 
     106                        IntermediateDirectory="$(ConfigurationName)" 
     107                        ConfigurationType="2" 
     108                        CharacterSet="1" 
     109                        WholeProgramOptimization="1" 
     110                        > 
     111                        <Tool 
     112                                Name="VCPreBuildEventTool" 
     113                        /> 
     114                        <Tool 
     115                                Name="VCCustomBuildTool" 
     116                        /> 
     117                        <Tool 
     118                                Name="VCXMLDataGeneratorTool" 
     119                        /> 
     120                        <Tool 
     121                                Name="VCWebServiceProxyGeneratorTool" 
     122                        /> 
     123                        <Tool 
     124                                Name="VCMIDLTool" 
     125                        /> 
     126                        <Tool 
     127                                Name="VCCLCompilerTool" 
     128                                PreprocessorDefinitions="PTEID_35;WIN32;NDEBUG;_WINDOWS;_USRDLL;CSP_PTEID" 
     129                                RuntimeLibrary="2" 
     130                                UsePrecompiledHeader="0" 
     131                                WarningLevel="3" 
     132                                Detect64BitPortabilityProblems="true" 
     133                                DebugInformationFormat="3" 
     134                        /> 
     135                        <Tool 
     136                                Name="VCManagedResourceCompilerTool" 
     137                        /> 
     138                        <Tool 
     139                                Name="VCResourceCompilerTool" 
     140                                PreprocessorDefinitions="PTEID_35;_UNICODE;UNICODE" 
     141                        /> 
     142                        <Tool 
     143                                Name="VCPreLinkEventTool" 
     144                        /> 
     145                        <Tool 
     146                                Name="VCLinkerTool" 
     147                                LinkLibraryDependencies="false" 
     148                                AdditionalOptions="/def:&quot;.\pteidlib.def&quot;" 
     149                                AdditionalDependencies="Crypt32.lib pteidDlgsWin32.lib pteidcommon.lib pteidcardlayer.lib" 
     150                                OutputFile="..\_Binaries35\$(ConfigurationName)\beid$(ProjectName)lib.dll" 
     151                                LinkIncremental="1" 
     152                                AdditionalLibraryDirectories="..\_Binaries35/$(ConfigurationName)" 
     153                                GenerateDebugInformation="true" 
     154                                SubSystem="2" 
     155                                OptimizeReferences="2" 
     156                                EnableCOMDATFolding="2" 
     157                                TargetMachine="1" 
     158                        /> 
     159                        <Tool 
     160                                Name="VCALinkTool" 
     161                        /> 
     162                        <Tool 
     163                                Name="VCManifestTool" 
     164                        /> 
     165                        <Tool 
     166                                Name="VCXDCMakeTool" 
     167                        /> 
     168                        <Tool 
     169                                Name="VCBscMakeTool" 
     170                        /> 
     171                        <Tool 
     172                                Name="VCFxCopTool" 
     173                        /> 
     174                        <Tool 
     175                                Name="VCAppVerifierTool" 
     176                        /> 
     177                        <Tool 
     178                                Name="VCWebDeploymentTool" 
     179                        /> 
     180                        <Tool 
     181                                Name="VCPostBuildEventTool" 
     182                        /> 
     183                </Configuration> 
     184                <Configuration 
    104185                        Name="Debug|x64" 
    105186                        OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" 
     
    182263                                Name="VCPostBuildEventTool" 
    183264                                CommandLine="copy ..\_Binaries35\$(ConfigurationName)\pteid35CSPlib.dll ..\_Binaries35\$(ConfigurationName)\pteidCSP.dll" 
    184                         /> 
    185                 </Configuration> 
    186                 <Configuration 
    187                         Name="Release|Win32" 
    188                         OutputDirectory="$(SolutionDir)$(ConfigurationName)" 
    189                         IntermediateDirectory="$(ConfigurationName)" 
    190                         ConfigurationType="2" 
    191                         CharacterSet="1" 
    192                         WholeProgramOptimization="1" 
    193                         > 
    194                         <Tool 
    195                                 Name="VCPreBuildEventTool" 
    196                         /> 
    197                         <Tool 
    198                                 Name="VCCustomBuildTool" 
    199                         /> 
    200                         <Tool 
    201                                 Name="VCXMLDataGeneratorTool" 
    202                         /> 
    203                         <Tool 
    204                                 Name="VCWebServiceProxyGeneratorTool" 
    205                         /> 
    206                         <Tool 
    207                                 Name="VCMIDLTool" 
    208                         /> 
    209                         <Tool 
    210                                 Name="VCCLCompilerTool" 
    211                                 PreprocessorDefinitions="PTEID_35;WIN32;NDEBUG;_WINDOWS;_USRDLL;CSP_PTEID" 
    212                                 RuntimeLibrary="2" 
    213                                 UsePrecompiledHeader="0" 
    214                                 WarningLevel="3" 
    215                                 Detect64BitPortabilityProblems="true" 
    216                                 DebugInformationFormat="3" 
    217                         /> 
    218                         <Tool 
    219                                 Name="VCManagedResourceCompilerTool" 
    220                         /> 
    221                         <Tool 
    222                                 Name="VCResourceCompilerTool" 
    223                                 PreprocessorDefinitions="PTEID_35;_UNICODE;UNICODE" 
    224                         /> 
    225                         <Tool 
    226                                 Name="VCPreLinkEventTool" 
    227                         /> 
    228                         <Tool 
    229                                 Name="VCLinkerTool" 
    230                                 LinkLibraryDependencies="false" 
    231                                 AdditionalOptions="/def:&quot;.\pteidlib.def&quot;" 
    232                                 AdditionalDependencies="Crypt32.lib pteid35DlgsWin32.lib pteid35common.lib pteid35cardlayer.lib" 
    233                                 OutputFile="..\_Binaries35\$(ConfigurationName)\beid$(ProjectName)lib.dll" 
    234                                 LinkIncremental="1" 
    235                                 AdditionalLibraryDirectories="..\_Binaries35/$(ConfigurationName)" 
    236                                 GenerateDebugInformation="true" 
    237                                 SubSystem="2" 
    238                                 OptimizeReferences="2" 
    239                                 EnableCOMDATFolding="2" 
    240                                 TargetMachine="1" 
    241                         /> 
    242                         <Tool 
    243                                 Name="VCALinkTool" 
    244                         /> 
    245                         <Tool 
    246                                 Name="VCManifestTool" 
    247                         /> 
    248                         <Tool 
    249                                 Name="VCXDCMakeTool" 
    250                         /> 
    251                         <Tool 
    252                                 Name="VCBscMakeTool" 
    253                         /> 
    254                         <Tool 
    255                                 Name="VCFxCopTool" 
    256                         /> 
    257                         <Tool 
    258                                 Name="VCAppVerifierTool" 
    259                         /> 
    260                         <Tool 
    261                                 Name="VCWebDeploymentTool" 
    262                         /> 
    263                         <Tool 
    264                                 Name="VCPostBuildEventTool" 
    265265                        /> 
    266266                </Configuration> 
  • middleware-offline/trunk/_src/eidmw/_Builds/pteidversions.h

    r11 r82  
    44/** 
    55 * Versions for the Windows binaries 
     6 * This versions are the real version of the middleware 
    67 */ 
    78 
     
    1617 
    1718#ifdef PTEID_35 
    18         #define PTEID_PRODUCT_VERSION    "3.5.5" 
    19         #define BASE_VERSION_STRING    "3, 5, 5, " 
    20         #define BASE_VERSION1          3 
    21         #define BASE_VERSION2          5 
    22         #define BASE_VERSION3          5 
     19        #define PTEID_PRODUCT_VERSION    "1.9.8" 
     20        #define BASE_VERSION_STRING    "1, 9, 8, " 
     21        #define BASE_VERSION1          1 
     22        #define BASE_VERSION2          9 
     23        #define BASE_VERSION3          8 
    2324#else 
    24         #define PTEID_PRODUCT_VERSION    "3.0" 
    25         #define BASE_VERSION_STRING    "3, 0, 1, " 
    26         #define BASE_VERSION1          3 
     25        #define PTEID_PRODUCT_VERSION    "1.0" 
     26        #define BASE_VERSION_STRING    "1, 0, 1, " 
     27        #define BASE_VERSION1          1 
    2728        #define BASE_VERSION2          0 
    2829        #define BASE_VERSION3          1 
  • middleware-offline/trunk/_src/eidmw/_Builds/pteidversions.mak

    r34 r82  
    22############## Fill in/change here the names and versions of the libs ############# 
    33 
    4 ###### version nr of the complete package 
    5 REL_MAJ=3 
    6 REL_MIN=5 
    7 REL_REV=5 
     4###### version nr of the complete package (real version) 
     5REL_MAJ=1 
     6REL_MIN=9 
     7REL_REV=8 
     8 
     9 
     10##########WARNING!!!#####CHANGING THIS VERSIONS WILL CHANGE THE SO VERSION#########  
    811 
    912###### version nr of custom FreeImage (FreeImagePTEiD) 
     
    1518###### version nr of GUI 
    1619EIDGUI=pteidgui 
    17 EIDGUI_MAJ=3 
    18 EIDGUI_MIN=5 
    19 EIDGUI_REV=5 
     20EIDGUI_MAJ=2 
     21EIDGUI_MIN=0 
     22EIDGUI_REV=0 
    2023 
    2124DLGLIB=pteiddialogsQT 
    22 DLGLIB_MAJ=3 
    23 DLGLIB_MIN=5 
    24 DLGLIB_REV=5 
     25DLGLIB_MAJ=2 
     26DLGLIB_MIN=0 
     27DLGLIB_REV=0 
    2528 
    2629DLGSRV=pteiddialogsQTsrv 
    27 DLGSRV_MAJ=3 
    28 DLGSRV_MIN=5 
    29 DLGSRV_REV=5 
     30DLGSRV_MAJ=2 
     31DLGSRV_MIN=0 
     32DLGSRV_REV=0 
    3033 
    3134CARDLAYERLIB=pteidcardlayer 
    32 CARDLAYERLIB_MAJ=3 
    33 CARDLAYERLIB_MIN=5 
    34 CARDLAYERLIB_REV=5 
     35CARDLAYERLIB_MAJ=2 
     36CARDLAYERLIB_MIN=0 
     37CARDLAYERLIB_REV=0 
    3538CARDLAYERLIB_COMPAT_VERSION=1.0 
    3639 
     
    4245 
    4346CARDPLUGIN=cardpluginPteid 
    44 CARDPLUGIN_MAJ=3 
     47CARDPLUGIN_MAJ=2 
    4548CARDPLUGIN_MIN=0 
    46 CARDPLUGIN_REV=1 
     49CARDPLUGIN_REV=0 
    4750CARDPLUGIN_COMPAT_VERSION=1.0 
    48  
    49 CARDPLUGINSIS=cardpluginFull__ACS__ 
    50 CARDPLUGINSIS_MAJ=3 
    51 CARDPLUGINSIS_MIN=5 
    52 CARDPLUGINSIS_REV=5 
    53 CARDPLUGINSIS_COMPAT_VERSION=1.0 
    54  
    55 CARDPLUGINSIS_ACR38U=siscardplugin1__ACS__ 
    56 CARDPLUGINSIS_ACR38U_MAJ=3 
    57 CARDPLUGINSIS_ACR38U_MIN=5 
    58 CARDPLUGINSIS_ACR38U_REV=5 
    59 CARDPLUGINSIS_ACR38U_COMPAT_VERSION=1.0 
    6051 
    6152CARDPLUGINEMU=cardpluginPteidEmulation 
     
    7263 
    7364COMMONLIB=pteidcommon 
    74 COMMONLIB_MAJ=3 
    75 COMMONLIB_MIN=5 
    76 COMMONLIB_REV=5 
     65COMMONLIB_MAJ=2 
     66COMMONLIB_MIN=0 
     67COMMONLIB_REV=0 
    7768COMMONLIB_COMPAT_VERSION=1.0 
    7869 
    7970PKCS11LIB=pteidpkcs11 
    80 PKCS11LIB_MAJ=3 
    81 PKCS11LIB_MIN=5 
    82 PKCS11LIB_REV=5 
     71PKCS11LIB_MAJ=2 
     72PKCS11LIB_MIN=0 
     73PKCS11LIB_REV=0 
    8374PKCS11LIB_COMPAT_VERSION=1.0 
    8475 
    8576CARDLAYERTOOL=pteidcardlayerTool 
    86 CARDLAYERTOOL_MAJ=3 
    87 CARDLAYERTOOL_MIN=5 
    88 CARDLAYERTOOL_REV=5 
     77CARDLAYERTOOL_MAJ=2 
     78CARDLAYERTOOL_MIN=0 
     79CARDLAYERTOOL_REV=0 
    8980CARDLAYERTOOL_COMPAT_VERSION=1.0 
    9081 
    9182COMMONTEST=pteidcommonTest 
    92 COMMONTEST_MAJ=3 
    93 COMMONTEST_MIN=5 
    94 COMMONTEST_REV=5 
     83COMMONTEST_MAJ=2 
     84COMMONTEST_MIN=0 
     85COMMONTEST_REV=0 
    9586COMMONTEST_COMPAT_VERSION=1.0 
    9687 
    9788APPLAYERLIB=pteidapplayer 
    98 APPLAYERLIB_MAJ=3 
    99 APPLAYERLIB_MIN=5 
    100 APPLAYERLIB_REV=5 
     89APPLAYERLIB_MAJ=2 
     90APPLAYERLIB_MIN=0 
     91APPLAYERLIB_REV=0 
    10192APPLAYERLIB_COMPAT_VERSION=1.0 
    10293 
     
    114105 
    115106EIDLIB=pteidlib 
    116 EIDLIB_MAJ=3 
    117 EIDLIB_MIN=5 
    118 EIDLIB_REV=5 
     107EIDLIB_MAJ=2 
     108EIDLIB_MIN=0 
     109EIDLIB_REV=0 
    119110EIDLIB_COMPAT_VERSION=1.0 
    120111 
    121112EIDLIB_C=pteidlibC 
    122 EIDLIB_C_MAJ=3 
    123 EIDLIB_C_MIN=5 
    124 EIDLIB_C_REV=5 
     113EIDLIB_C_MAJ=2 
     114EIDLIB_C_MIN=0 
     115EIDLIB_C_REV=0 
    125116EIDLIB_C_COMPAT_VERSION=1.0 
    126117 
     
    132123 
    133124JAVALIB=pteidlibJava_Wrapper 
    134 JAVALIB_MAJ=3 
    135 JAVALIB_MIN=5 
    136 JAVALIB_REV=5 
     125JAVALIB_MAJ=2 
     126JAVALIB_MIN=0 
     127JAVALIB_REV=0 
    137128JAVALIB_COMPAT_VERSION=1.0 
    138129 
    139 EIDLIBJAR=pteid35libJava.jar 
     130EIDLIBJAR=pteidlibJava.jar 
    140131 
    141132################################################################################### 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCard.cpp

    r77 r82  
    163163        //Write zip container signature and referenced files in zip container 
    164164 
    165  
    166165        return signature; 
    167166} 
    168167 
    169 CByteArray &APL_Card::SignXades(CByteArray content, const char *URL) 
    170 { 
    171         CByteArray * ba = new CByteArray(); 
    172         //TODO 
    173         return *ba; 
    174 } 
    175  
    176 CByteArray &APL_Card::SignXadesT(CByteArray content, const char *URL) 
    177 { 
    178         CByteArray * ba = new CByteArray(); 
    179         //TODO 
    180         return *ba; 
     168void replace_lastdot_inplace(char* str_in) 
     169{ 
     170        // We can only search forward because memrchr and strrchr  
     171        // are not available on Windows *sigh* 
     172        char ch = '.'; 
     173        char * pdest = str_in, *last_dot= NULL; 
     174        while ((pdest = strchr(pdest, ch)) != NULL) 
     175        { 
     176             last_dot = pdest; 
     177             pdest++; 
     178        } 
     179 
     180        // Don't replace '.' if its a UNIX dotfile 
     181        if (last_dot != NULL && *(last_dot-1) != '/') 
     182                *last_dot = '_'; 
     183} 
     184 
     185#ifdef WIN32 
     186#define PATH_SEP "\\" 
     187#else 
     188#define PATH_SEP "/" 
     189#endif 
     190 
     191char *generateFinalPath(const char *output_dir, const char *path) 
     192{ 
     193 
     194        char * zip_filename = Basename((char*)path); 
     195        //We need a local copy of basename(path) because basename may return a pointer to some part 
     196        //of its argument and we don't want to change the input by replacing the last dot 
     197        char * tmp_path = new char[strlen(zip_filename)+1]; 
     198        strcpy(tmp_path, zip_filename); 
     199 
     200        replace_lastdot_inplace(tmp_path); 
     201 
     202        //Buffer for the filename components plus ".zip" and terminating NULL 
     203        char *final_path = new char[strlen(output_dir)+strlen(tmp_path)+6]; 
     204        sprintf(final_path, "%s" PATH_SEP "%s.zip", output_dir, tmp_path); 
     205        delete []tmp_path; 
     206 
     207        return final_path; 
     208} 
     209 
     210void APL_Card::SignXadesIndividual(const char ** paths, unsigned int n_paths, const char *output_dir) 
     211{ 
     212        SignIndividual(paths, n_paths, output_dir, false); 
     213} 
     214 
     215void APL_Card::SignXadesTIndividual(const char ** paths, unsigned int n_paths, const char *output_dir) 
     216{ 
     217        SignIndividual(paths, n_paths, output_dir, true); 
     218} 
     219 
     220// Implementation of the PIN-caching version of Xades-T 
     221// It signs each input file seperately and creates a .zip container for each 
     222void APL_Card::SignIndividual(const char ** paths, unsigned int n_paths, const char *output_dir, bool timestamp) 
     223{ 
     224 
     225        if (paths == NULL || n_paths < 1 || !checkExistingFiles(paths, n_paths)) 
     226           throw CMWEXCEPTION(EIDMW_ERR_CHECK); 
     227 
     228        XadesSignature sig(this); 
     229        const char **files_to_sign = new const char*[1]; 
     230 
     231        for (unsigned int i=0; i!= n_paths; i++) 
     232        { 
     233 
     234                files_to_sign[0] = paths[i]; 
     235                CByteArray &signature = sig.SignXades(files_to_sign, 1, timestamp); 
     236                 
     237                const char *output_file = generateFinalPath(output_dir, paths[i]); 
     238                StoreSignatureToDisk (signature, files_to_sign, 1, output_file); 
     239                delete []output_file; 
     240 
     241                //Set SSO on after first iteration to avoid more PinCmd() user interaction for the remaining  
     242                // iterations 
     243                if (i==0) 
     244                        getCalReader()->setSSO(true); 
     245        } 
     246 
     247        getCalReader()->setSSO(false); 
     248 
    181249} 
    182250 
     
    337405 
    338406        unsigned long lRemaining=0; 
    339         if(!pin) 
    340                 if(strlen(csPinCode)>0) 
     407        if(pin) 
     408                if(csPinCode != NULL) 
    341409                        pin->verifyPin(csPinCode,lRemaining); 
    342410 
     
    515583bool APL_SmartCard::getAllowTestCard() 
    516584{ 
    517         if(isTestCard() && m_allowTestParam && !m_allowTestAsked && AppLayer.getAskForTestCard()) 
    518         { 
    519                 if(DLG_YES==DlgDisplayModal(DLG_ICON_QUESTION,DLG_MESSAGE_TESTCARD,L"",DLG_BUTTON_YES + DLG_BUTTON_NO,DLG_BUTTON_YES,DLG_BUTTON_NO)) 
    520                         setAllowTestCard(true); 
    521                 else 
    522                         setAllowTestCard(false); 
    523         } 
    524  
    525         return m_allowTestParam && m_allowTestAnswer; 
     585 
     586        return true; 
    526587} 
    527588 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCard.h

    r77 r82  
    105105        EIDMW_APL_API virtual const CByteArray& getRawData(APL_RawDataType type)=0; 
    106106 
    107     EIDMW_APL_API virtual CByteArray sendAPDU(const CByteArray& cmd); 
    108  
    109     EIDMW_APL_API virtual CByteArray Sign(const CByteArray & oData, bool signatureKey=false); 
     107        EIDMW_APL_API virtual CByteArray sendAPDU(const CByteArray& cmd); 
     108 
     109        EIDMW_APL_API virtual CByteArray Sign(const CByteArray & oData, bool signatureKey=false); 
    110110 
    111111        /* XADeS Signature Methods  */ 
     
    118118 
    119119        EIDMW_APL_API CByteArray &SignXadesT(const char ** path, unsigned int n_paths, const char *output_path); 
     120 
     121        EIDMW_APL_API void SignXadesIndividual(const char**, unsigned int, const char*); 
    120122         
     123        EIDMW_APL_API void SignXadesTIndividual(const char**, unsigned int, const char*); 
    121124 
    122125        /** 
     
    159162 
    160163        virtual bool isCardForbidden()=0; 
     164 
     165        void SignIndividual(const char**, unsigned int, const char*, bool); 
    161166 
    162167        static APL_CryptoFwk *m_cryptoFwk;                      /**< Pointer to the crypto framework */ 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCardPteid.cpp

    r77 r82  
    898898                                m_fileCertAuthentication=new APL_CardFile_Certificate(this,PTEID_FILE_CERT_AUTHENTICATION); 
    899899                                //If status ok, we add the certificate to the store 
    900                                 if(m_fileCertAuthentication->getStatus(true)==CARDFILESTATUS_OK) 
     900                                if(m_fileCertAuthentication->getStatus(false)==CARDFILESTATUS_OK) 
    901901                                { 
    902902                                        if(NULL == (getCertificates()->addCert(m_fileCertAuthentication,APL_CERTIF_TYPE_AUTHENTICATION,true,false,m_certificateCount,NULL,NULL))) 
     
    981981 
    982982APL_CCXML_Doc& APL_EIDCard::getXmlCCDoc(APL_XmlUserRequestedInfo& userRequestedInfo){ 
    983         if(!m_CCcustomDoc) 
    984                 { 
    985                         CAutoMutex autoMutex(&m_Mutex);         //We lock for only one instanciation 
    986                         if(!m_CCcustomDoc) 
    987                         { 
    988                                 m_CCcustomDoc=new APL_CCXML_Doc(this, userRequestedInfo); 
    989                         } 
    990                 } 
    991  
    992                 return *m_CCcustomDoc; 
     983        if (m_CCcustomDoc) 
     984                delete m_CCcustomDoc; 
     985 
     986        CAutoMutex autoMutex(&m_Mutex);         //We lock for only one instanciation 
     987        m_CCcustomDoc=new APL_CCXML_Doc(this, userRequestedInfo); 
     988 
     989        return *m_CCcustomDoc; 
    993990} 
    994991 
     
    11851182        // Application will access to the card always without user interaction 
    11861183        setWarningLevel(APL_ACCESSWARNINGLEVEL_ACCEPTED); 
    1187         /* 
    1188         APL_AccessWarningLevel lWarningLevel=getWarningLevel(); 
    1189  
    1190         if(lWarningLevel==APL_ACCESSWARNINGLEVEL_REFUSED) 
    1191                 throw CMWEXCEPTION(EIDMW_ERR_NOT_ALLOW_BY_USER); 
    1192  
    1193         if(lWarningLevel==APL_ACCESSWARNINGLEVEL_BEING_ASKED) 
    1194                 throw CMWEXCEPTION(EIDMW_ERR_USER_MUST_ANSWER); 
    1195  
    1196         if(lWarningLevel==APL_ACCESSWARNINGLEVEL_TO_ASK) 
    1197         { 
    1198                 //Ask 
    1199                 int result=DLG_ERR; 
    1200  
    1201                 try 
    1202                 { 
    1203                         m_lWarningLevel=APL_ACCESSWARNINGLEVEL_BEING_ASKED; 
    1204                         result = DlgDisplayModal(DLG_ICON_WARN,DLG_MESSAGE_USER_WARNING,L"",DLG_BUTTON_YES + DLG_BUTTON_NO, DLG_BUTTON_YES, DLG_BUTTON_NO); 
    1205                 } 
    1206                 catch(...) 
    1207                 { 
    1208                         setWarningLevel(APL_ACCESSWARNINGLEVEL_REFUSED); 
    1209                         throw; 
    1210                 } 
    1211  
    1212                 if(result==DLG_YES) 
    1213                 { 
    1214                         setWarningLevel(APL_ACCESSWARNINGLEVEL_ACCEPTED); 
    1215                 } 
    1216                 else 
    1217                 { 
    1218                         setWarningLevel(APL_ACCESSWARNINGLEVEL_REFUSED); 
    1219                         throw CMWEXCEPTION(EIDMW_ERR_NOT_ALLOW_BY_USER); 
    1220                 } 
    1221         } 
    1222         */ 
    12231184} 
    12241185 
     
    15301491        string temp; 
    15311492 
    1532         // provide all the id fields 
    1533         if(_xmlUInfo->isEmpty()) 
    1534                 _xmlUInfo = NULL; 
    1535  
    15361493        // photo 
    1537         if (!_xmlUInfo || _xmlUInfo->contains(XML_PHOTO)){ 
     1494        if (_xmlUInfo->contains(XML_PHOTO)){ 
    15381495                photo = getPhotoObj()->getPhotoPNG(); 
    15391496                m_cryptoFwk->b64Encode(*photo,b64photo); 
     
    15421499 
    15431500        // basicInformation 
    1544         if (!_xmlUInfo || _xmlUInfo->contains(XML_NAME)){ 
     1501        if (_xmlUInfo->contains(XML_NAME)){ 
    15451502                string s; 
    15461503                s+= getGivenName(); 
     
    15501507                addBasicInfo = true; 
    15511508        } 
    1552         if (!_xmlUInfo || _xmlUInfo->contains(XML_GIVEN_NAME)){ 
     1509        if (_xmlUInfo->contains(XML_GIVEN_NAME)){ 
    15531510                BUILD_XML_ELEMENT(basicInfo,XML_GIVEN_NAME_ELEMENT,getGivenName()); 
    15541511                addBasicInfo = true; 
    15551512        } 
    1556         if (!_xmlUInfo || _xmlUInfo->contains(XML_SURNAME)){ 
     1513        if (_xmlUInfo->contains(XML_SURNAME)){ 
    15571514                BUILD_XML_ELEMENT(basicInfo,XML_SURNAME_ELEMENT,getSurname()); 
    15581515                addBasicInfo = true; 
    15591516        } 
    1560         if (!_xmlUInfo || _xmlUInfo->contains(XML_NIC)){ 
     1517        if (_xmlUInfo->contains(XML_NIC)){ 
    15611518                BUILD_XML_ELEMENT(basicInfo,XML_NIC_ELEMENT,getCivilianIdNumber()); 
    15621519                addBasicInfo = true; 
    15631520        } 
    1564         if (!_xmlUInfo || _xmlUInfo->contains(XML_EXPIRY_DATE)){ 
     1521        if (_xmlUInfo->contains(XML_EXPIRY_DATE)){ 
    15651522                BUILD_XML_ELEMENT(basicInfo,XML_EXPIRY_DATE_ELEMENT, getValidityEndDate()); 
    15661523                addBasicInfo = true; 
     
    15711528 
    15721529        // CivilInformation 
    1573         if (!_xmlUInfo || _xmlUInfo->contains(XML_GENDER)){ 
     1530        if (_xmlUInfo->contains(XML_GENDER)){ 
    15741531                BUILD_XML_ELEMENT(civilInfo, XML_GENDER_ELEMENT, getGender()); 
    15751532                addCivilInfo = true; 
    15761533        } 
    1577         if (!_xmlUInfo || _xmlUInfo->contains(XML_HEIGHT)){ 
     1534        if (_xmlUInfo->contains(XML_HEIGHT)){ 
    15781535                BUILD_XML_ELEMENT(civilInfo, XML_HEIGHT_ELEMENT, getHeight()); 
    15791536                addCivilInfo = true; 
    15801537        } 
    1581         if (!_xmlUInfo || _xmlUInfo->contains(XML_NATIONALITY)){ 
     1538        if (_xmlUInfo->contains(XML_NATIONALITY)){ 
    15821539                BUILD_XML_ELEMENT(civilInfo, XML_NATIONALITY_ELEMENT, getNationality()); 
    15831540                addCivilInfo = true; 
    15841541        } 
    1585         if (!_xmlUInfo || _xmlUInfo->contains(XML_DATE_OF_BIRTH)){ 
     1542        if (_xmlUInfo->contains(XML_DATE_OF_BIRTH)){ 
    15861543                BUILD_XML_ELEMENT(civilInfo, XML_DATE_OF_BIRTH_ELEMENT, getDateOfBirth()); 
    15871544                addCivilInfo = true; 
    15881545        } 
    1589         if (!_xmlUInfo || _xmlUInfo->contains(XML_GIVEN_NAME_FATHER)){ 
     1546        if (_xmlUInfo->contains(XML_GIVEN_NAME_FATHER)){ 
    15901547                BUILD_XML_ELEMENT(civilInfo, XML_GIVEN_NAME_FATHER_ELEMENT, getGivenNameFather()); 
    15911548                addCivilInfo = true; 
    15921549        } 
    1593         if (!_xmlUInfo || _xmlUInfo->contains(XML_SURNAME_FATHER)){ 
     1550        if (_xmlUInfo->contains(XML_SURNAME_FATHER)){ 
    15941551                BUILD_XML_ELEMENT(civilInfo, XML_SURNAME_FATHER_ELEMENT, getSurnameFather()); 
    15951552                addCivilInfo = true; 
    15961553        } 
    1597         if (!_xmlUInfo || _xmlUInfo->contains(XML_GIVEN_NAME_MOTHER)){ 
     1554        if (_xmlUInfo->contains(XML_GIVEN_NAME_MOTHER)){ 
    15981555                BUILD_XML_ELEMENT(civilInfo, XML_GIVEN_NAME_MOTHER_ELEMENT, getGivenNameMother()); 
    15991556                addCivilInfo = true; 
    16001557        } 
    1601         if (!_xmlUInfo || _xmlUInfo->contains(XML_SURNAME_MOTHER)){ 
     1558        if (_xmlUInfo->contains(XML_SURNAME_MOTHER)){ 
    16021559                BUILD_XML_ELEMENT(civilInfo, XML_SURNAME_MOTHER_ELEMENT, getSurnameMother()); 
    16031560                addCivilInfo = true; 
    16041561        } 
    1605         if (!_xmlUInfo || _xmlUInfo->contains(XML_ACCIDENTAL_INDICATIONS)){ 
     1562        if (_xmlUInfo->contains(XML_ACCIDENTAL_INDICATIONS)){ 
    16061563                BUILD_XML_ELEMENT(civilInfo, XML_ACCIDENTAL_INDICATIONS_ELEMENT, getAccidentalIndications()); 
    16071564                addCivilInfo = true; 
     
    16121569 
    16131570        // IdentificationNumbers 
    1614         if (!_xmlUInfo || _xmlUInfo->contains(XML_DOCUMENT_NO)){ 
     1571        if (_xmlUInfo->contains(XML_DOCUMENT_NO)){ 
    16151572                BUILD_XML_ELEMENT(idNum, XML_DOCUMENT_NO_ELEMENT, getDocumentNumber()); 
    16161573                addIdNum = true; 
    16171574        } 
    1618         if (!_xmlUInfo || _xmlUInfo->contains(XML_TAX_NO)){ 
     1575        if (_xmlUInfo->contains(XML_TAX_NO)){ 
    16191576                BUILD_XML_ELEMENT(idNum, XML_TAX_NO_ELEMENT, getTaxNo()); 
    16201577                addIdNum = true; 
    16211578        } 
    1622         if (!_xmlUInfo || _xmlUInfo->contains(XML_SOCIAL_SECURITY_NO)){ 
     1579        if (_xmlUInfo->contains(XML_SOCIAL_SECURITY_NO)){ 
    16231580                BUILD_XML_ELEMENT(idNum, XML_SOCIAL_SECURITY_NO_ELEMENT, getTaxNo()); 
    16241581                addIdNum = true; 
    16251582        } 
    1626         if (!_xmlUInfo || _xmlUInfo->contains(XML_HEALTH_NO)){ 
     1583        if (_xmlUInfo->contains(XML_HEALTH_NO)){ 
    16271584                BUILD_XML_ELEMENT(idNum, XML_HEALTH_NO_ELEMENT, getHealthNumber()); 
    16281585                addIdNum = true; 
    16291586        } 
    1630         if (!_xmlUInfo || _xmlUInfo->contains(XML_MRZ1)){ 
     1587        if (_xmlUInfo->contains(XML_MRZ1)){ 
    16311588                temp = getMRZ1(); 
    16321589                replace(temp,XML_ESCAPE_LT); 
     
    16351592        } 
    16361593 
    1637         if (!_xmlUInfo || _xmlUInfo->contains(XML_MRZ2)){ 
     1594        if (_xmlUInfo->contains(XML_MRZ2)){ 
    16381595                temp = getMRZ2(); 
    16391596                replace(temp,XML_ESCAPE_LT); 
     
    16411598                addIdNum = true; 
    16421599        } 
    1643         if (!_xmlUInfo || _xmlUInfo->contains(XML_MRZ3)){ 
     1600        if (_xmlUInfo->contains(XML_MRZ3)){ 
    16441601                temp = getMRZ3(); 
    16451602                replace(temp,XML_ESCAPE_LT); 
     
    16521609 
    16531610        // CardValues 
    1654         if (!_xmlUInfo || _xmlUInfo->contains(XML_CARD_VERSION)){ 
     1611        if (_xmlUInfo->contains(XML_CARD_VERSION)){ 
    16551612                BUILD_XML_ELEMENT(cardValues, XML_CARD_VERSION_ELEMENT, getDocumentVersion()); 
    16561613                addCardValues = true; 
    16571614        } 
    1658         if (!_xmlUInfo || _xmlUInfo->contains(XML_CARD_NUMBER_PAN)){ 
     1615        if (_xmlUInfo->contains(XML_CARD_NUMBER_PAN)){ 
    16591616                BUILD_XML_ELEMENT(cardValues, XML_CARD_NUMBER_PAN_ELEMENT, getDocumentPAN()); 
    16601617                addCardValues = true; 
    16611618        } 
    1662         if (!_xmlUInfo || _xmlUInfo->contains(XML_ISSUING_DATE)){ 
     1619        if (_xmlUInfo->contains(XML_ISSUING_DATE)){ 
    16631620                BUILD_XML_ELEMENT(cardValues, XML_ISSUING_DATE_ELEMENT, getValidityBeginDate()); 
    16641621                addCardValues = true; 
    16651622        } 
    1666         if (!_xmlUInfo || _xmlUInfo->contains(XML_ISSUING_ENTITY)){ 
     1623        if (_xmlUInfo->contains(XML_ISSUING_ENTITY)){ 
    16671624                BUILD_XML_ELEMENT(cardValues, XML_ISSUING_ENTITY_ELEMENT, getIssuingEntity()); 
    16681625                addCardValues = true; 
    16691626        } 
    1670         if (!_xmlUInfo || _xmlUInfo->contains(XML_DOCUMENT_TYPE)){ 
     1627        if (_xmlUInfo->contains(XML_DOCUMENT_TYPE)){ 
    16711628                BUILD_XML_ELEMENT(cardValues, XML_DOCUMENT_TYPE_ELEMENT, getDocumentType()); 
    16721629                addCardValues = true; 
    16731630        } 
    1674         if (!_xmlUInfo || _xmlUInfo->contains(XML_LOCAL_OF_REQUEST)){ 
     1631        if (_xmlUInfo->contains(XML_LOCAL_OF_REQUEST)){ 
    16751632                BUILD_XML_ELEMENT(cardValues, XML_LOCAL_OF_REQUEST_ELEMENT, getLocalofRequest()); 
    16761633                addCardValues = true; 
    16771634        } 
    1678         if (!_xmlUInfo || _xmlUInfo->contains(XML_VERSION)){ 
     1635        if (_xmlUInfo->contains(XML_VERSION)){ 
    16791636                BUILD_XML_ELEMENT(cardValues, XML_VERSION_ELEMENT, "0"); 
    16801637                addCardValues = true; 
     
    19501907} 
    19511908 
    1952 const char *APL_DocEId::getPersoData() 
    1953 { 
    1954         return m_card->getFilePersoData()->getPersoData(); 
    1955 } 
    1956  
    19571909/***************************************************************************************** 
    19581910----------------------------------- APL_PersonalNotesEid ---------------------------------------- 
     
    19991951        string str; 
    20001952 
    2001  
    2002         if (_xmlUInfo->isEmpty()) 
    2003                 _xmlUInfo = NULL; 
    2004  
    2005         if (!_xmlUInfo || _xmlUInfo->contains(XML_PERSONAL_NOTES)){ 
     1953        if (_xmlUInfo->contains(XML_PERSONAL_NOTES)){ 
    20061954                str = getPersonalNotes(); 
    20071955                replace(str,XML_ESCAPE_AMP); 
     
    20321980} 
    20331981 
    2034 const char *APL_PersonalNotesEId::getPersonalNotes() 
    2035 { 
    2036         return m_card->getFilePersoData()->getPersoData(); 
     1982const char *APL_PersonalNotesEId::getPersonalNotes(bool forceMap) 
     1983{ 
     1984        return m_card->getFilePersoData()->getPersoData(forceMap); 
    20371985} 
    20381986 
     
    20822030        bool addAddress = false; 
    20832031 
    2084         // provide all the address fields 
    2085         if(_xmlUInfo->isEmpty()) 
    2086                 _xmlUInfo = NULL; 
    2087  
    2088         if (isNationalAddress()){ 
    2089                 if (!_xmlUInfo || _xmlUInfo->contains(XML_DISTRICT)){ 
    2090                         BUILD_XML_ELEMENT(address, XML_DISTRICT_ELEMENT, getDistrict()); 
    2091                         addAddress = true; 
    2092                 } 
    2093                 if (!_xmlUInfo || _xmlUInfo->contains(XML_MUNICIPALITY)){ 
    2094                         BUILD_XML_ELEMENT(address, XML_MUNICIPALITY_ELEMENT, getMunicipality()); 
    2095                         addAddress = true; 
    2096                 } 
    2097                 if (!_xmlUInfo || _xmlUInfo->contains(XML_CIVIL_PARISH)){ 
    2098                         BUILD_XML_ELEMENT(address, XML_CIVIL_PARISH_ELEMENT, getCivilParish()); 
    2099                         addAddress = true; 
    2100                 } 
    2101                 if (!_xmlUInfo || _xmlUInfo->contains(XML_ABBR_STREET_TYPE)){ 
    2102                         BUILD_XML_ELEMENT(address, XML_ABBR_STREET_TYPE_ELEMENT, getAbbrStreetType()); 
    2103                         addAddress = true; 
    2104                 } 
    2105                 if (!_xmlUInfo || _xmlUInfo->contains(XML_STREET_TYPE)){ 
    2106                         BUILD_XML_ELEMENT(address, XML_STREET_TYPE_ELEMENT, getStreetType()); 
    2107                         addAddress = true; 
    2108                 } 
    2109                 if (!_xmlUInfo || _xmlUInfo->contains(XML_STREET_NAME)){ 
    2110                         BUILD_XML_ELEMENT(address, XML_STREET_NAME_ELEMENT, getStreetName()); 
    2111                         addAddress = true; 
    2112                 } 
    2113                 if (!_xmlUInfo || _xmlUInfo->contains(XML_ABBR_BUILDING_TYPE)){ 
    2114                         BUILD_XML_ELEMENT(address, XML_ABBR_BUILDING_TYPE_ELEMENT, getAbbrBuildingType()); 
    2115                         addAddress = true; 
    2116                 } 
    2117                 if (!_xmlUInfo || _xmlUInfo->contains(XML_BUILDING_TYPE)){ 
    2118                         BUILD_XML_ELEMENT(address, XML_BUILDING_TYPE_ELEMENT, getBuildingType()); 
    2119                         addAddress = true; 
    2120                 } 
    2121                 if (!_xmlUInfo || _xmlUInfo->contains(XML_DOOR_NO)){ 
    2122                         BUILD_XML_ELEMENT(address, XML_DOOR_NO_ELEMENT, getDoorNo()); 
    2123                         addAddress = true; 
    2124                 } 
    2125                 if (!_xmlUInfo || _xmlUInfo->contains(XML_FLOOR)){ 
    2126                         BUILD_XML_ELEMENT(address, XML_FLOOR_ELEMENT, getFloor()); 
    2127                         addAddress = true; 
    2128                 } 
    2129                 if (!_xmlUInfo || _xmlUInfo->contains(XML_SIDE)){ 
    2130                         BUILD_XML_ELEMENT(address, XML_SIDE_ELEMENT, getSide()); 
    2131                         addAddress = true; 
    2132                 } 
    2133                 if (!_xmlUInfo || _xmlUInfo->contains(XML_PLACE)){ 
    2134                         BUILD_XML_ELEMENT(address, XML_PLACE_ELEMENT, getPlace()); 
    2135                         addAddress = true; 
    2136                 } 
    2137                 if (!_xmlUInfo || _xmlUInfo->contains(XML_LOCALITY)){ 
    2138                         BUILD_XML_ELEMENT(address, XML_LOCALITY_ELEMENT, getLocality()); 
    2139                         addAddress = true; 
    2140                 } 
    2141                 if (!_xmlUInfo || _xmlUInfo->contains(XML_ZIP4)){ 
    2142                         BUILD_XML_ELEMENT(address, XML_ZIP4_ELEMENT, getZip4()); 
    2143                         addAddress = true; 
    2144                 } 
    2145                 if (!_xmlUInfo || _xmlUInfo->contains(XML_ZIP3)){ 
    2146                         BUILD_XML_ELEMENT(address, XML_ZIP3_ELEMENT, getZip3()); 
    2147                         addAddress = true; 
    2148                 } 
    2149                 if (!_xmlUInfo || _xmlUInfo->contains(XML_POSTAL_LOCALITY)){ 
    2150                         BUILD_XML_ELEMENT(address, XML_POSTAL_LOCALITY_ELEMENT, getPostalLocality()); 
    2151                         addAddress = true; 
    2152                 } 
    2153                 if (addAddress){ 
    2154                         BUILD_XML_ELEMENT_NEWLINE(xml,XML_ADDRESS_ELEMENT, address); 
    2155                 } 
    2156         } else { 
    2157                 if (!_xmlUInfo || _xmlUInfo->contains(XML_FOREIGN_COUNTRY)){ 
     2032        /*      if (isNationalAddress()){ //specification for xml does not include foreign addresses, this will stay here if specification changes */ 
     2033        if (_xmlUInfo->contains(XML_DISTRICT)){ 
     2034                BUILD_XML_ELEMENT(address, XML_DISTRICT_ELEMENT, getDistrict()); 
     2035                addAddress = true; 
     2036        } 
     2037        if (_xmlUInfo->contains(XML_MUNICIPALITY)){ 
     2038                BUILD_XML_ELEMENT(address, XML_MUNICIPALITY_ELEMENT, getMunicipality()); 
     2039                addAddress = true; 
     2040        } 
     2041        if (_xmlUInfo->contains(XML_CIVIL_PARISH)){ 
     2042                BUILD_XML_ELEMENT(address, XML_CIVIL_PARISH_ELEMENT, getCivilParish()); 
     2043                addAddress = true; 
     2044        } 
     2045        if (_xmlUInfo->contains(XML_ABBR_STREET_TYPE)){ 
     2046                BUILD_XML_ELEMENT(address, XML_ABBR_STREET_TYPE_ELEMENT, getAbbrStreetType()); 
     2047                addAddress = true; 
     2048        } 
     2049        if (_xmlUInfo->contains(XML_STREET_TYPE)){ 
     2050                BUILD_XML_ELEMENT(address, XML_STREET_TYPE_ELEMENT, getStreetType()); 
     2051                addAddress = true; 
     2052        } 
     2053        if (_xmlUInfo->contains(XML_STREET_NAME)){ 
     2054                BUILD_XML_ELEMENT(address, XML_STREET_NAME_ELEMENT, getStreetName()); 
     2055                addAddress = true; 
     2056        } 
     2057        if (_xmlUInfo->contains(XML_ABBR_BUILDING_TYPE)){ 
     2058                BUILD_XML_ELEMENT(address, XML_ABBR_BUILDING_TYPE_ELEMENT, getAbbrBuildingType()); 
     2059                addAddress = true; 
     2060        } 
     2061        if (_xmlUInfo->contains(XML_BUILDING_TYPE)){ 
     2062                BUILD_XML_ELEMENT(address, XML_BUILDING_TYPE_ELEMENT, getBuildingType()); 
     2063                addAddress = true; 
     2064        } 
     2065        if (_xmlUInfo->contains(XML_DOOR_NO)){ 
     2066                BUILD_XML_ELEMENT(address, XML_DOOR_NO_ELEMENT, getDoorNo()); 
     2067                addAddress = true; 
     2068        } 
     2069        if (_xmlUInfo->contains(XML_FLOOR)){ 
     2070                BUILD_XML_ELEMENT(address, XML_FLOOR_ELEMENT, getFloor()); 
     2071                addAddress = true; 
     2072        } 
     2073        if (_xmlUInfo->contains(XML_SIDE)){ 
     2074                BUILD_XML_ELEMENT(address, XML_SIDE_ELEMENT, getSide()); 
     2075                addAddress = true; 
     2076        } 
     2077        if (_xmlUInfo->contains(XML_PLACE)){ 
     2078                BUILD_XML_ELEMENT(address, XML_PLACE_ELEMENT, getPlace()); 
     2079                addAddress = true; 
     2080        } 
     2081        if (_xmlUInfo->contains(XML_LOCALITY)){ 
     2082                BUILD_XML_ELEMENT(address, XML_LOCALITY_ELEMENT, getLocality()); 
     2083                addAddress = true; 
     2084        } 
     2085        if (_xmlUInfo->contains(XML_ZIP4)){ 
     2086                BUILD_XML_ELEMENT(address, XML_ZIP4_ELEMENT, getZip4()); 
     2087                addAddress = true; 
     2088        } 
     2089        if (_xmlUInfo->contains(XML_ZIP3)){ 
     2090                BUILD_XML_ELEMENT(address, XML_ZIP3_ELEMENT, getZip3()); 
     2091                addAddress = true; 
     2092        } 
     2093        if (_xmlUInfo->contains(XML_POSTAL_LOCALITY)){ 
     2094                BUILD_XML_ELEMENT(address, XML_POSTAL_LOCALITY_ELEMENT, getPostalLocality()); 
     2095                addAddress = true; 
     2096        } 
     2097        if (addAddress){ 
     2098                BUILD_XML_ELEMENT_NEWLINE(xml,XML_ADDRESS_ELEMENT, address); 
     2099        } 
     2100 
     2101        /* } else { //specification for xml does not include foreign addresses, this will stay here if specification changes 
     2102                if (_xmlUInfo->contains(XML_FOREIGN_COUNTRY)){ 
    21582103                        BUILD_XML_ELEMENT(address, XML_FOREIGN_COUNTRY_ELEMENT, getForeignCountry()); 
    21592104                        addAddress = true; 
    21602105                } 
    2161                 if (!_xmlUInfo || _xmlUInfo->contains(XML_FOREIGN_ADDRESS)){ 
     2106                if (_xmlUInfo->contains(XML_FOREIGN_ADDRESS)){ 
    21622107                        BUILD_XML_ELEMENT(address, XML_FOREIGN_ADDRESS_ELEMENT, getForeignAddress()); 
    21632108                        addAddress = true; 
    21642109                } 
    2165                 if (!_xmlUInfo || _xmlUInfo->contains(XML_FOREIGN_CITY)){ 
     2110                if (_xmlUInfo->contains(XML_FOREIGN_CITY)){ 
    21662111                        BUILD_XML_ELEMENT(address, XML_FOREIGN_CITY_ELEMENT, getForeignCity()); 
    21672112                        addAddress = true; 
    21682113                } 
    2169                 if (!_xmlUInfo || _xmlUInfo->contains(XML_FOREIGN_REGION)){ 
     2114                if (_xmlUInfo->contains(XML_FOREIGN_REGION)){ 
    21702115                        BUILD_XML_ELEMENT(address, XML_FOREIGN_REGION_ELEMENT, getForeignRegion()); 
    21712116                        addAddress = true; 
    21722117                } 
    2173                 if (!_xmlUInfo || _xmlUInfo->contains(XML_FOREIGN_LOCALITY)){ 
     2118                if (_xmlUInfo->contains(XML_FOREIGN_LOCALITY)){ 
    21742119                        BUILD_XML_ELEMENT(address, XML_FOREIGN_LOCALITY_ELEMENT, getForeignLocality()); 
    21752120                        addAddress = true; 
    21762121                } 
    2177                 if (!_xmlUInfo || _xmlUInfo->contains(XML_FOREIGN_POSTAL_CODE)){ 
     2122                if (_xmlUInfo->contains(XML_FOREIGN_POSTAL_CODE)){ 
    21782123                        BUILD_XML_ELEMENT(address, XML_FOREIGN_POSTAL_CODE_ELEMENT, getForeignPostalCode()); 
    21792124                        addAddress = true; 
    21802125                } 
    21812126        } 
    2182  
     2127         */ 
    21832128        return xml; 
    21842129} 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCardPteid.h

    r77 r82  
    3131#include "APLDoc.h" 
    3232#include "ByteArray.h" 
    33 #include "xmlUserData.h" 
    3433#include "PhotoPteid.h" 
    3534#include "APLPublicKey.h" 
     35#include "eidlib.h" 
    3636 
    3737namespace eIDMW 
     
    4646class APL_EidFile_AddressSign; 
    4747class APL_EidFile_Sod; 
    48 class APL_EidFile_PersoData; 
    4948class APL_EidFile_TokenInfo; 
    5049class APL_CardFile_Certificate; 
    51  
     50class APL_EidFile_PersoData; 
    5251class APL_CCXML_Doc; 
    5352class APL_DocEId; 
     
    177176        APL_EidFile_AddressSign *getFileAddressSign();  /**< Return a pointer to the file Address signature (NOT EXPORTED) */ 
    178177        APL_EidFile_Sod *getFileSod();                          /**< Return a pointer to the file Photo (NOT EXPORTED) */ 
    179         APL_EidFile_PersoData *getFilePersoData();                              /**< Return a pointer to the file PersoData (NOT EXPORTED) */ 
     178        EIDMW_APL_API APL_EidFile_PersoData *getFilePersoData();                                /**< Return a pointer to the file PersoData (NOT EXPORTED) */ 
    180179        APL_EidFile_TokenInfo *getFileTokenInfo();              /**< Return a pointer to the file Token Info (NOT EXPORTED) */ 
    181180        const char *getTokenSerialNumber();                             /**< Return the token serial number (pkcs15 parse) (NOT EXPORTED) */ 
     
    345344        EIDMW_APL_API const char *getValidation();              /**< Return field Validation from the Trace file */ 
    346345 
    347         EIDMW_APL_API const char *getPersoData(); 
    348  
    349346protected: 
    350347        /** 
     
    454451        EIDMW_APL_API virtual CByteArray getTLV();                                              /**< Build the TLV document */ 
    455452 
    456         EIDMW_APL_API const char *getPersonalNotes();                                   /**< Return field AddressVersion from the Address file */ 
     453        EIDMW_APL_API const char *getPersonalNotes(bool forceMap=false);                                        /**< Return field AddressVersion from the Address file */ 
    457454 
    458455protected: 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCertif.cpp

    r77 r82  
    395395        if(file) 
    396396        { 
    397                 if(file->getStatus(true)!=CARDFILESTATUS_OK) 
     397                if(file->getStatus(false)!=CARDFILESTATUS_OK) 
    398398                        throw CMWEXCEPTION(EIDMW_ERR_CHECK); 
    399399 
     
    14501450tCardFileStatus APL_Certif::getFileStatus() 
    14511451{ 
    1452         return m_certFile->getStatus(true); 
     1452        return m_certFile->getStatus(false); 
    14531453} 
    14541454 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCrypto.cpp

    r35 r82  
    176176 
    177177        throw CMWEXCEPTION(EIDMW_ERR_PARAM_RANGE); 
     178} 
     179 
     180APL_Pin *APL_Pins::getPinByPinRef(unsigned long pinRef) 
     181{ 
     182        std::map<unsigned long,APL_Pin *>::const_iterator itr; 
     183 
     184        //auth pin on IAS101 is 1 
     185        if (m_card->getType() == APL_CARDTYPE_PTEID_IAS101) 
     186                pinRef = (pinRef & 2 ) == 2 ? pinRef : 1; 
     187 
     188        for(itr = m_pins.begin(); itr != m_pins.end(); itr++){ 
     189            if (itr->second->getPinRef() == pinRef) 
     190                return itr->second; 
     191        } 
     192 
     193        throw CMWEXCEPTION(EIDMW_ERR_PINREF_NOT_FOUND); 
    178194} 
    179195 
  • middleware-offline/trunk/_src/eidmw/applayer/APLCrypto.h

    r35 r82  
    8181 
    8282        /** 
     83          * Return the pin with the pin reference from the card 
     84          * 
     85          * If the pin is not found an exception is thrown 
     86          */ 
     87        EIDMW_APL_API APL_Pin *getPinByPinRef(unsigned long pinRef); 
     88 
     89        /** 
    8390          * Add pin in the map for internal use (No need to export) 
    8491          */ 
  • middleware-offline/trunk/_src/eidmw/applayer/APLReader.cpp

    r77 r82  
    3939#include "eidErrors.h" 
    4040#include "MWException.h" 
    41 #include "dialogs.h" 
    4241#include "cryptoFwkPteid.h" 
    4342#include "CertStatusCache.h" 
  • middleware-offline/trunk/_src/eidmw/applayer/CardFile.cpp

    r41 r82  
    165165 
    166166        //if(bForceRead && m_status==CARDFILESTATUS_UNREAD) 
    167                 LoadData(); 
     167                LoadData(bForceRead); 
    168168 
    169169        return m_status;  
     
    245245bool APL_CardFile::ShowData() 
    246246{ 
    247         tCardFileStatus status=getStatus(true); 
     247        tCardFileStatus status=getStatus(false); 
    248248        if(status==CARDFILESTATUS_OK) 
    249249                return true; 
  • middleware-offline/trunk/_src/eidmw/applayer/CardPteid.cpp

    r59 r82  
    151151        bool bAllowBadDate=pcard->getAllowBadDate(); 
    152152 
    153         tCardFileStatus status=getStatus(true,&bAllowTest,&bAllowBadDate); 
     153        tCardFileStatus status=getStatus(false,&bAllowTest,&bAllowBadDate); 
    154154        if(status==CARDFILESTATUS_OK) 
    155155                return true; 
     
    496496        bool bAllowBadDate=pcard->getAllowBadDate(); 
    497497 
    498         tCardFileStatus status=getStatus(true,&bAllowTest,&bAllowBadDate); 
     498        tCardFileStatus status=getStatus(false,&bAllowTest,&bAllowBadDate); 
    499499        if(status==CARDFILESTATUS_OK) 
    500500                return true; 
     
    946946        bool bAllowBadDate=pcard->getAllowBadDate(); 
    947947 
    948         tCardFileStatus status=getStatus(true,&bAllowTest,&bAllowBadDate); 
     948        tCardFileStatus status=getStatus(false,&bAllowTest,&bAllowBadDate); 
    949949        if(status==CARDFILESTATUS_OK) 
    950950                return true; 
     
    13281328 
    13291329bool APL_EidFile_Address::isNationalAddress(){ 
     1330        ShowData(); 
    13301331        return (m_AddressType.compare(m_NATIONAL)==0); 
    13311332} 
     
    14801481        bool bAllowBadDate=pcard->getAllowBadDate(); 
    14811482 
    1482         tCardFileStatus status=getStatus(true,&bAllowTest,&bAllowBadDate); 
     1483        tCardFileStatus status=getStatus(false,&bAllowTest,&bAllowBadDate); 
    14831484        if(status==CARDFILESTATUS_OK) 
    14841485                return true; 
     
    16061607        bool bAllowBadDate=pcard->getAllowBadDate(); 
    16071608 
    1608         tCardFileStatus status=getStatus(true,&bAllowTest,&bAllowBadDate); 
     1609        tCardFileStatus status=getStatus(false,&bAllowTest,&bAllowBadDate); 
    16091610        if(status==CARDFILESTATUS_OK) 
    16101611                return true; 
     
    16501651} 
    16511652 
    1652 const char *APL_EidFile_PersoData::getPersoData() 
    1653 { 
    1654         if(ShowData()) 
     1653const char *APL_EidFile_PersoData::getPersoData(bool forceMap) 
     1654{ 
     1655 
     1656        if (forceMap) 
     1657                m_mappedFields = !forceMap; 
     1658        if(ShowData()){ 
    16551659                return m_PersoData.c_str(); 
     1660        } 
    16561661 
    16571662        return ""; 
  • middleware-offline/trunk/_src/eidmw/applayer/CardPteid.h

    r41 r82  
    513513        virtual ~APL_EidFile_PersoData(); 
    514514 
    515         const char *getPersoData(); /* Get PersonalData */ 
     515        const char *getPersoData(bool forceMap=false); /* Get PersonalData */ 
    516516 
    517517protected: 
  • middleware-offline/trunk/_src/eidmw/applayer/SigContainer.cpp

    r77 r82  
    11#include <fstream> 
     2#include <cstring> 
    23 
    34#ifdef WIN32 
     
    103104                                continue; 
    104105                        } 
    105  
    106                         if (strcmp(file_stat.m_filename, SIG_INTERNAL_PATH)!=0) 
     106                        // Exclude from signed file checking the Signature itself  
     107                        // and the README file that gets added to all signed containers 
     108                        if (strcmp(file_stat.m_filename, SIG_INTERNAL_PATH) != 0 
     109                                && strcmp(file_stat.m_filename, "README.txt") != 0) 
    107110                        { 
    108111                                p = mz_zip_reader_extract_file_to_heap(&zip_archive,file_stat.m_filename, &uncomp_size, 0); 
     
    134137        } 
    135138 
     139         
     140        void AddReadMe(const char *output) 
     141        { 
     142 
     143                mz_bool status = MZ_FALSE; 
     144 
     145                #ifdef WIN32 
     146                //TODO: Convert README to "system codepage" or something 
     147 
     148                #endif 
     149 
     150                status = mz_zip_add_mem_to_archive_file_in_place (output, "README.txt", README, strlen(README), 
     151                                "", (unsigned short)0, MZ_BEST_COMPRESSION); 
     152 
     153                if (!status) 
     154                { 
     155                        MWLOG (LEV_ERROR, MOD_APL, L"mz_zip_add_mem_to_archive_file_in_place failed for README.txt"); 
     156                } 
     157        } 
     158 
    136159        void StoreSignatureToDisk(CByteArray& sig, const char **paths, int num_paths, const char *output_file) 
    137160        { 
     
    179202                } 
    180203 
    181                 //Append the signature file to the container 
     204                //Add the signature file to the container 
    182205 
    183206                status = mz_zip_add_mem_to_archive_file_in_place(output_file, SIG_INTERNAL_PATH, sig.GetBytes(), 
     
    189212                } 
    190213 
     214                //Add a README file to the container  
     215 
     216                AddReadMe(output_file); 
     217 
    191218        } 
    192219}; 
  • middleware-offline/trunk/_src/eidmw/applayer/SigContainer.h

    r35 r82  
    99#include "miniz.c" 
    1010 
     11#ifdef WIN32 
     12#define NL "\r\n" 
     13#else 
     14#define NL "\n" 
     15#endif 
     16 
    1117namespace eIDMW 
    1218{ 
     19 
     20static const char *README =  
     21"############################################################" NL 
     22"LEIA-ME" NL 
     23"" NL 
     24"Este ficheiro zip contém informação assinada com a respectiva assinatura em META-INF/signature.xml" NL 
     25"Esta assinatura foi criada através da Aplicação Oficial do Cartão de Cidadão." NL 
     26"" NL 
     27"Para verificar a validade da assinatura, deverá na Aplicação Oficial do Cartão de Cidadão aceder ao seguinte menu:" NL 
     28"       \"Opções\" -> \"Verificar Assinatura\" -> Introduzir o ficheiro zip a validar." NL 
     29"" NL 
     30"Mais Informação:" NL 
     31"" NL 
     32"Download da Aplicação Oficial do Cartão de Cidadão:" NL 
     33"http://svn.gov.pt/projects/ccidadao/browser/middleware-offline/tags/builds" NL 
     34"" NL 
     35"Especificação Técnica da Assinatura Digital:" NL 
     36"Xades / Xades-T" NL 
     37"http://www.w3.org/TR/XAdES/" NL 
     38"" NL 
     39"############################################################" NL 
     40"README" NL 
     41"" NL 
     42"This zip file includes signed information. The signature file can be found in META-INF/signature.xml" NL 
     43"This signature was produced through Portuguese ID Card Management application." NL 
     44"" NL 
     45"To verify this signature, use the Portuguese ID Card Management application, following these instructions:" NL 
     46"       \"Tools\" -> \"Verify Signature\" -> Introduce file to be verified." NL 
     47"" NL 
     48"More Info:" NL 
     49"" NL 
     50"Download Portuguese ID Card Management application:" NL 
     51"http://svn.gov.pt/projects/ccidadao/browser/middleware-offline/tags/builds" NL 
     52"" NL 
     53"Signature technical specification:" NL 
     54"Xades / Xades-T" NL 
     55"http://www.w3.org/TR/XAdES" NL; 
    1356 
    1457        class Container 
     
    2568                        mz_zip_archive zip_archive; 
    2669 
     70 
    2771        }; 
    2872 
  • middleware-offline/trunk/_src/eidmw/applayer/applayer.pro

    r77 r82  
    3131LIBS += -L../lib \ 
    3232            -l$${COMMONLIB} \ 
    33             -l$${DLGLIB} \ 
    3433            -lcrypto -lssl \ 
    3534            -lxerces-c \ 
  • middleware-offline/trunk/_src/eidmw/applayer/pteid35applayer.vcproj

    r77 r82  
    22<VisualStudioProject 
    33        ProjectType="Visual C++" 
    4         Version="8.00" 
     4        Version="8,00" 
    55        Name="applayer" 
    66        ProjectGUID="{DC41E34B-8251-41DE-8065-D56B022F5755}" 
     
    104104                </Configuration> 
    105105                <Configuration 
     106                        Name="Release|Win32" 
     107                        OutputDirectory="$(SolutionDir)$(ConfigurationName)" 
     108                        IntermediateDirectory="$(ConfigurationName)" 
     109                        ConfigurationType="2" 
     110                        CharacterSet="1" 
     111                        WholeProgramOptimization="1" 
     112                        > 
     113                        <Tool 
     114                                Name="VCPreBuildEventTool" 
     115                        /> 
     116                        <Tool 
     117                                Name="VCCustomBuildTool" 
     118                        /> 
     119                        <Tool 
     120                                Name="VCXMLDataGeneratorTool" 
     121                        /> 
     122                        <Tool 
     123                                Name="VCWebServiceProxyGeneratorTool" 
     124                        /> 
     125                        <Tool 
     126                                Name="VCMIDLTool" 
     127                        /> 
     128                        <Tool 
     129                                Name="VCCLCompilerTool" 
     130                                AdditionalIncludeDirectories="../common;../dialogs;../eidlib;../cardlayer;../FreeImagePTEiD/Source;&quot;$(PTEID_DIR_OPENSSL_098G)\include&quot;;&quot;$(PTEID_DIR_XERCES_310)\include&quot;;&quot;..\xml-security-c-1.6.1&quot;;&quot;$(PTEID_DIR_PLATFORMSDK_2003)\include&quot;;&quot;..\..\ThirdParty\libcurl-7.24\include&quot;" 
     131                                PreprocessorDefinitions="PTEID_35;WIN32;NDEBUG;_WINDOWS;_USRDLL;EIDMW_APPLAYER_EXPORTS;_CRT_SECURE_NO_WARNINGS" 
     132                                GeneratePreprocessedFile="0" 
     133                                RuntimeLibrary="2" 
     134                                TreatWChar_tAsBuiltInType="true" 
     135                                UsePrecompiledHeader="0" 
     136                                WarningLevel="3" 
     137                                Detect64BitPortabilityProblems="false" 
     138                                DebugInformationFormat="3" 
     139                                ShowIncludes="false" 
     140                        /> 
     141                        <Tool 
     142                                Name="VCManagedResourceCompilerTool" 
     143                        /> 
     144                        <Tool 
     145                                Name="VCResourceCompilerTool" 
     146                                PreprocessorDefinitions="PTEID_35;_UNICODE;UNICODE" 
     147                        /> 
     148                        <Tool 
     149                                Name="VCPreLinkEventTool" 
     150                        /> 
     151                        <Tool 
     152                                Name="VCLinkerTool" 
     153                                LinkLibraryDependencies="false" 
     154                                AdditionalDependencies="wsock32.lib Shlwapi.lib pteidDlgsWin32.lib pteidcardlayer.lib pteidcommon.lib libeay32.lib ssleay32.lib xerces-c_3.lib freeimage.lib xsec_1.lib libcurl.lib" 
     155                                OutputFile="..\_Binaries35\$(ConfigurationName)\pteid$(ProjectName).dll" 
     156                                LinkIncremental="1" 
     157                                SuppressStartupBanner="false" 
     158                                AdditionalLibraryDirectories="&quot;..\_Binaries35\$(ConfigurationName)&quot;;&quot;..\_Binaries35\x64\$(ConfigurationName)&quot;;&quot;$(PTEID_DIR_OPENSSL_098G)\lib&quot;;&quot;$(PTEID_DIR_XERCES_310)\lib&quot;;&quot;..\..\ThirdParty\libcurl-7.24\lib&quot;" 
     159                                GenerateDebugInformation="true" 
     160                                SubSystem="2" 
     161                                OptimizeReferences="2" 
     162                                EnableCOMDATFolding="2" 
     163                                TargetMachine="0" 
     164                        /> 
     165                        <Tool 
     166                                Name="VCALinkTool" 
     167                        /> 
     168                        <Tool 
     169                                Name="VCManifestTool" 
     170                        /> 
     171                        <Tool 
     172                                Name="VCXDCMakeTool" 
     173                        /> 
     174                        <Tool 
     175                                Name="VCBscMakeTool" 
     176                        /> 
     177                        <Tool 
     178                                Name="VCFxCopTool" 
     179                        /> 
     180                        <Tool 
     181                                Name="VCAppVerifierTool" 
     182                        /> 
     183                        <Tool 
     184                                Name="VCWebDeploymentTool" 
     185                        /> 
     186                        <Tool 
     187                                Name="VCPostBuildEventTool" 
     188                        /> 
     189                </Configuration> 
     190                <Configuration 
    106191                        Name="Debug|x64" 
    107192                        OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" 
     
    189274                </Configuration> 
    190275                <Configuration 
    191                         Name="Release|Win32" 
    192                         OutputDirectory="$(SolutionDir)$(ConfigurationName)" 
    193                         IntermediateDirectory="$(ConfigurationName)" 
    194                         ConfigurationType="2" 
    195                         CharacterSet="1" 
    196                         WholeProgramOptimization="1" 
    197                         > 
    198                         <Tool 
    199                                 Name="VCPreBuildEventTool" 
    200                         /> 
    201                         <Tool 
    202                                 Name="VCCustomBuildTool" 
    203                         /> 
    204                         <Tool 
    205                                 Name="VCXMLDataGeneratorTool" 
    206                         /> 
    207                         <Tool 
    208                                 Name="VCWebServiceProxyGeneratorTool" 
    209                         /> 
    210                         <Tool 
    211                                 Name="VCMIDLTool" 
    212                         /> 
    213                         <Tool 
    214                                 Name="VCCLCompilerTool" 
    215                                 AdditionalIncludeDirectories="../common;../dialogs;../cardlayer;../FreeImagePTEiD/Source;&quot;$(PTEID_DIR_OPENSSL_098G)\include&quot;;&quot;$(PTEID_DIR_XERCES_310)\include&quot;;&quot;..\xml-security-c-1.6.1&quot;;&quot;$(PTEID_DIR_PLATFORMSDK_2003)\include&quot;;&quot;..\..\ThirdParty\libcurl-7.24\include&quot;" 
    216                                 PreprocessorDefinitions="PTEID_35;WIN32;NDEBUG;_WINDOWS;_USRDLL;EIDMW_APPLAYER_EXPORTS;_CRT_SECURE_NO_WARNINGS" 
    217                                 RuntimeLibrary="2" 
    218                                 TreatWChar_tAsBuiltInType="true" 
    219                                 UsePrecompiledHeader="0" 
    220                                 WarningLevel="3" 
    221                                 Detect64BitPortabilityProblems="false" 
    222                                 DebugInformationFormat="3" 
    223                                 ShowIncludes="false" 
    224                         /> 
    225                         <Tool 
    226                                 Name="VCManagedResourceCompilerTool" 
    227                         /> 
    228                         <Tool 
    229                                 Name="VCResourceCompilerTool" 
    230                                 PreprocessorDefinitions="PTEID_35;_UNICODE;UNICODE" 
    231                         /> 
    232                         <Tool 
    233                                 Name="VCPreLinkEventTool" 
    234                         /> 
    235                         <Tool 
    236                                 Name="VCLinkerTool" 
    237                                 LinkLibraryDependencies="false" 
    238                                 AdditionalDependencies="wsock32.lib Shlwapi.lib pteid35DlgsWin32.lib pteid35cardlayer.lib pteid35common.lib libeay32.lib ssleay32.lib xerces-c_3.lib freeimage.lib xsec_1.lib libcurl.lib" 
    239                                 OutputFile="..\_Binaries35\$(ConfigurationName)\pteid35$(ProjectName).dll" 
    240                                 LinkIncremental="1" 
    241                                 SuppressStartupBanner="false" 
    242                                 AdditionalLibraryDirectories="&quot;..\_Binaries35\$(ConfigurationName)&quot;;&quot;..\_Binaries35\x64\$(ConfigurationName)&quot;;&quot;$(PTEID_DIR_OPENSSL_098G)\lib&quot;;&quot;$(PTEID_DIR_XERCES_310)\lib&quot;;&quot;..\..\ThirdParty\libcurl-7.24\lib&quot;" 
    243                                 GenerateDebugInformation="true" 
    244                                 SubSystem="2" 
    245                                 OptimizeReferences="2" 
    246                                 EnableCOMDATFolding="2" 
    247                                 TargetMachine="0" 
    248                         /> 
    249                         <Tool 
    250                                 Name="VCALinkTool" 
    251                         /> 
    252                         <Tool 
    253                                 Name="VCManifestTool" 
    254                         /> 
    255                         <Tool 
    256                                 Name="VCXDCMakeTool" 
    257                         /> 
    258                         <Tool 
    259                                 Name="VCBscMakeTool" 
    260                         /> 
    261                         <Tool 
    262                                 Name="VCFxCopTool" 
    263                         /> 
    264                         <Tool 
    265                                 Name="VCAppVerifierTool" 
    266                         /> 
    267                         <Tool 
    268                                 Name="VCWebDeploymentTool" 
    269                         /> 
    270                         <Tool 
    271                                 Name="VCPostBuildEventTool" 
    272                         /> 
    273                 </Configuration> 
    274                 <Configuration 
    275276                        Name="Release|x64" 
    276277                        OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" 
     
    409410                        </File> 
    410411                        <File 
    411                                 RelativePath=".\CRLService.cpp" 
    412                                 > 
    413                         </File> 
    414                         <File 
    415412                                RelativePath=".\cryptoFramework.cpp" 
    416413                                > 
     
    507504                        </File> 
    508505                        <File 
    509                                 RelativePath=".\CRLService.h" 
    510                                 > 
    511                         </File> 
    512                         <File 
    513506                                RelativePath=".\cryptoFramework.h" 
    514507                                > 
  • middleware-offline/trunk/_src/eidmw/cardlayer/Card.cpp

    r35 r82  
    5858{ 
    5959        return  m_poContext->m_oPCSC.Status(m_hCard); 
     60} 
     61 
     62void CCard::setSSO(bool value) 
     63{ 
     64        m_poContext->m_bSSO = value; 
    6065} 
    6166 
  • middleware-offline/trunk/_src/eidmw/cardlayer/Card.h

    r35 r82  
    3737#include "P15Correction.h" 
    3838#include "../dialogs/dialogs.h" 
    39  
    4039namespace eIDMW 
    4140{ 
     
    5655    virtual void Disconnect(tDisconnectMode disconnectMode = DISCONNECT_LEAVE_CARD); 
    5756 
    58         virtual CByteArray GetATR(); 
    59  
    60         virtual CByteArray GetIFDVersion(); 
    61  
    62         virtual bool Status(); 
     57    virtual CByteArray GetATR(); 
     58     
     59    virtual CByteArray GetIFDVersion(); 
     60    virtual bool Status(); 
    6361 
    6462    virtual bool IsPinpadReader(); 
     
    7573 
    7674    virtual void SelectApplication(const CByteArray & oAID); 
     75    virtual void setSSO(bool value); 
    7776 
    7877        CByteArray ReadCachedFile(const std::string & csPath, std::string & csName, 
  • middleware-offline/trunk/_src/eidmw/cardlayer/CardLayerConst.h

    r34 r82  
    8383} tCardStatus; 
    8484 
     85const unsigned int PERSODATAFILESIZE = 1000; 
     86 
    8587const unsigned long TIMEOUT_INFINITE = 0xFFFFFFFF; // used in CCardLayer::GetStatusChange() 
    8688 
  • middleware-offline/trunk/_src/eidmw/cardlayer/Context.cpp

    r5 r82  
    2525        CContext::CContext() 
    2626        { 
    27                 m_bSSO = CConfig::GetLong(CConfig::EIDMW_CONFIG_PARAM_SECURITY_SINGLESIGNON) != 0; 
     27                m_bSSO = false;  
    2828 
    2929                m_ulConnectionDelay = CConfig::GetLong(CConfig::EIDMW_CONFIG_PARAM_GENERAL_CARDCONNDELAY); 
  • middleware-offline/trunk/_src/eidmw/cardlayer/PkiCard.cpp

    r77 r82  
    175175 
    176176    } 
    177  
     177    SendAPDU(0x0E, 0x00, 0x02, 0x00); 
    178178    bool bEOF = false; 
    179179 
    180     int cardfilesize = 1000; 
    181  
    182     for (unsigned long i = 0; i < cardfilesize && !bEOF && ulDataLen != 0; i += MAX_APDU_WRITE_LEN) 
    183     { 
    184         unsigned long ulLen = ulDataLen - i; 
     180    for (unsigned long i = 0; i < PERSODATAFILESIZE && !bEOF && ulDataLen != 0; i += MAX_APDU_WRITE_LEN) 
     181    { 
     182        unsigned long ulLen = ulDataLen - i ; 
    185183        if (ulLen > MAX_APDU_WRITE_LEN) 
    186184            ulLen = MAX_APDU_WRITE_LEN; 
     
    190188 
    191189        if (ulSW12 == 0x9000 || (i != 0 && ulSW12 == 0x6B00)) 
    192             oDatan.Append(oResp.GetBytes(), oResp.Size()); 
    193         else if (ulSW12 == 0x6982) { 
    194             throw CNotAuthenticatedException( 
    195                         EIDMW_ERR_NOT_AUTHENTICATED, fileInfo.lReadPINRef); 
     190        { 
     191            oDatan.Chop(2); 
    196192        } 
     193        else if (ulSW12 == 0x6982) 
     194            throw CNotAuthenticatedException(EIDMW_ERR_NOT_AUTHENTICATED, fileInfo.lReadPINRef); 
    197195        else if (ulSW12 == 0x6B00) 
    198196            throw CMWEXCEPTION(EIDMW_ERR_PARAM_RANGE); 
    199197        else if (ulSW12 == 0x6D00) 
    200198            throw CMWEXCEPTION(EIDMW_ERR_NOT_ACTIVATED); 
    201  
     199        //EOF for Gemsafe cards 
    202200        else if (ulSW12 == 0x6282) 
    203201            bEOF = false; 
    204         else 
    205             throw CMWEXCEPTION(m_poContext->m_oPCSC.SW12ToErr(ulSW12)); 
    206     } 
    207  
    208         MWLOG(LEV_INFO, MOD_CAL, L"Written file %ls to card", utilStringWiden(csPath).c_str()); 
     202        //Avoid problems with IAS cards (file not found) 
     203        else if (ulSW12 == 0x6D80) 
     204            bEOF = false; 
     205        //Comment to Avoid problems with IAS cards 
     206        //else 
     207            //throw CMWEXCEPTION(m_poContext->m_oPCSC.SW12ToErr(ulSW12)); 
     208    } 
     209 
     210    MWLOG(LEV_INFO, MOD_CAL, L"Written file %ls to card", utilStringWiden(csPath).c_str()); 
    209211} 
    210212 
     
    271273 
    272274    unsigned long ulSW12 = getSW12(oResp); 
    273     if (ulSW12 == 0x9000) 
     275    if (ulSW12 == 0x9000){ 
    274276        bRet = true; 
    275     else if (ulSW12 == 0x6983) 
     277        ulRemaining = 3; 
     278    } else if (ulSW12 == 0x6983) 
    276279        ulRemaining = 0; 
    277280    else if (ulSW12 / 16 == 0x63C) 
     
    292295        // If PIN command OK and no SSO, then state that we have now 
    293296        // verified this PIN, this info is needed in the Sign() method 
    294         if (bRet && !m_poContext->m_bSSO) 
    295         { 
    296                 bool bFound = false; 
    297                 for (size_t i = 0; i < m_verifiedPINs.size() && !bFound; i++) 
    298                         bFound = (m_verifiedPINs[i] == Pin.ulID); 
    299                 if (!bFound) 
    300                         m_verifiedPINs.push_back(Pin.ulID); 
     297        if (bRet) 
     298        { 
     299                m_verifiedPINs[Pin.ulID] = *pcsPin1; //Caching PIN 
    301300        } 
    302301 
     
    334333    CByteArray oResp; 
    335334 
    336         //00 A4 04 00 07 60 46 32 FF 00 01 02 
    337         CByteArray init; 
    338         init.Append(0x00); 
    339         init.Append(0xA4); 
    340         init.Append(0x04); 
    341         init.Append(0x00); 
    342         init.Append(0x07); 
    343         init.Append(0x60); 
    344         init.Append(0x46); 
    345         init.Append(0x32); 
    346         init.Append(0xFF); 
    347         init.Append(0x00); 
    348         init.Append(0x01); 
    349         init.Append(0x02); 
    350         SendAPDU(init); 
    351  
     335    if (Pin.ulPinRef == 130 || Pin.ulPinRef == 131){ // signature and address pins need the next apdu first 
     336        //00 A4 04 00 07 60 46 32 FF 00 01 02 
     337        CByteArray init; 
     338        init.Append(0x00); 
     339        init.Append(0xA4); 
     340        init.Append(0x04); 
     341        init.Append(0x00); 
     342        init.Append(0x07); 
     343        init.Append(0x60); 
     344        init.Append(0x46); 
     345        init.Append(0x32); 
     346        init.Append(0xFF); 
     347        init.Append(0x00); 
     348        init.Append(0x01); 
     349        init.Append(0x02); 
     350        SendAPDU(init); 
     351    } 
    352352 
    353353        switch(operation){ 
     
    400400 
    401401    unsigned long ulSW12 = getSW12(oResp); 
    402     if (ulSW12 == 0x9000) 
     402    if (ulSW12 == 0x9000){ 
    403403        bRet = true; 
    404     else if (ulSW12 == 0x6983) 
     404        ulRemaining = 3; 
     405    }else if (ulSW12 == 0x6983) 
    405406        ulRemaining = 0; 
    406407    else if (ulSW12 / 16 == 0x63C) 
     
    421422        // If PIN command OK and no SSO, then state that we have now 
    422423        // verified this PIN, this info is needed in the Sign() method 
    423         if (bRet && !m_poContext->m_bSSO) 
    424         { 
    425                 bool bFound = false; 
     424        if (bRet) 
     425        { 
     426                /*bool bFound = false; 
    426427                for (size_t i = 0; i < m_verifiedPINs.size() && !bFound; i++) 
    427428                        bFound = (m_verifiedPINs[i] == Pin.ulID); 
    428429                if (!bFound) 
    429                         m_verifiedPINs.push_back(Pin.ulID); 
     430                        m_verifiedPINs.push_back(Pin.ulID); */ 
     431                m_verifiedPINs[Pin.ulID] = *pcsPin1; //Caching PIN 
    430432        } 
    431433 
     
    442444        unsigned long algo, const CByteArray & oData) 
    443445{ 
    444         // If SSO (Single Sign-On) is false and we didn't verify the 
    445         // PIN yet, then we do this first without trying if it's 
    446         // realy needed. 
    447  
    448         if (!m_poContext->m_bSSO) 
    449         { 
    450                 bool bFound = false; 
    451                 for (size_t i = 0; i < m_verifiedPINs.size() && !bFound; i++) 
    452                         bFound = (m_verifiedPINs[i] == Pin.ulID); 
    453  
    454                 if (!bFound) 
    455                 { 
    456                         MWLOG(LEV_INFO, MOD_CAL, L"     No SSO: ask PIN and sign (key: ID=0x%0x, algo=0x%0x, " 
    457                                 L"%d bytes input)", key.ulID, algo, oData.Size()); 
    458                         return SignInternal(key, algo, oData, &Pin); 
    459                 } 
    460         } 
    461  
    462         // First try to sign. 
    463     // If this returns a "Security conditions not satisfied" 
    464     // then first do a Pin verify and then try again 
    465         MWLOG(LEV_INFO, MOD_CAL, L"     Trying to Sign (key: ID=0x%0x, algo=0x%0x, " 
    466                 L"%d bytes input)", key.ulID, algo, oData.Size()); 
    467         //printf ("Trying to Sign (key: ID=0x%0x, algo=0x%0x, %d bytes input\n", key.ulID, algo, oData.Size()); 
    468     try 
    469     { 
    470         return SignInternal(key, algo, oData, &Pin); 
    471     } 
    472     catch(CMWException & e) 
    473     { 
    474       if ((unsigned)e.GetError() == EIDMW_ERR_NOT_AUTHENTICATED) 
    475         { 
    476                         MWLOG(LEV_INFO, MOD_CAL, L"     Couldn't sign, asking PIN and trying again"); 
    477             return SignInternal(key, algo, oData); 
    478         } 
    479         else 
    480             throw e; 
    481     } 
     446 
     447        MWLOG(LEV_INFO, MOD_CAL, L"     No SSO: ask PIN and sign (key: ID=0x%0x, algo=0x%0x, " 
     448                        L"%d bytes input)", key.ulID, algo, oData.Size()); 
     449        return SignInternal(key, algo, oData, &Pin); 
     450 
    482451} 
    483452 
     
    594563 
    595564    CByteArray oResp = SendAPDU(0xA4, 0x00, ucP2, oPath); 
    596         if (ShouldSelectApplet(0xA4, getSW12(oResp))) 
    597         { 
    598                 // The file still wasn't found, so let's first try to select the applet 
    599                 if (SelectApplet()) 
    600                 { 
    601                         m_selectAppletMode = ALW_SELECT_APPLET; 
    602                         oResp = SendAPDU(0xA4, 0x80, ucP2, oPath);              } 
    603         } 
     565    if (ShouldSelectApplet(0xA4, getSW12(oResp))) 
     566    { 
     567        // The file still wasn't found, so let's first try to select the applet 
     568        if (SelectApplet()) 
     569        { 
     570            m_selectAppletMode = ALW_SELECT_APPLET; 
     571            oResp = SendAPDU(0xA4, 0x80, ucP2, oPath); 
     572        } 
     573    } 
    604574 
    605575        getSW12(oResp, 0x9000); 
     
    619589{ 
    620590    // Update Binary 
    621         CByteArray oDataVoid; 
     591    CByteArray oDataVoid; 
    622592 
    623593    if (ulOffset == 0) 
     
    627597    } 
    628598 
    629     CByteArray ret = SendAPDU(0xD6, (unsigned char) (ulOffset / 256), 
    630                               (unsigned char) (ulOffset % 256), oData); 
    631  
    632     return ret; 
     599    return SendAPDU(0xD6, (unsigned char) (ulOffset / 256), 
     600                    (unsigned char) (ulOffset % 256), oData); 
    633601} 
    634602 
  • middleware-offline/trunk/_src/eidmw/cardlayer/PkiCard.h

    r35 r82  
    5353        const CByteArray & oData); 
    5454 
    55         virtual DlgPinUsage PinUsage2Dlg(const tPin & Pin, const tPrivKey *pKey) = 0; 
     55    virtual DlgPinUsage PinUsage2Dlg(const tPin & Pin, const tPrivKey *pKey) = 0; 
     56 
    5657    virtual unsigned long PinStatus(const tPin & Pin) = 0; 
    5758    virtual CByteArray RootCAPubKey() = 0; 
     
    7879 
    7980protected: 
    80         std::vector <unsigned long> m_verifiedPINs; 
     81    std::map <unsigned int, std::string> m_verifiedPINs; 
    8182 
    82         virtual bool ShouldSelectApplet(unsigned char ins, unsigned long ulSW12); 
     83    virtual bool ShouldSelectApplet(unsigned char ins, unsigned long ulSW12); 
    8384    virtual bool SelectApplet(); 
    8485 
  • middleware-offline/trunk/_src/eidmw/cardlayer/Reader.cpp

    r35 r82  
    212212} 
    213213 
     214void CReader::setSSO(bool value) 
     215{ 
     216        m_poCard->setSSO(value); 
     217} 
     218 
    214219void CReader::Disconnect(tDisconnectMode disconnectMode) 
    215220{ 
  • middleware-offline/trunk/_src/eidmw/cardlayer/Reader.h

    r35 r82  
    8080         * Returns the ATR of the card that is currently present. 
    8181         */ 
    82         CByteArray GetATR(); 
    83  
    84         bool IsPinpadReader(); 
     82    CByteArray GetATR(); 
     83 
     84    bool IsPinpadReader(); 
    8585 
    8686    tCardType GetCardType(); 
     
    9292    std::string GetSerialNr(); 
    9393    std::string GetCardLabel(); 
     94 
     95    void setSSO(bool value); 
    9496 
    9597        /* Lock the card for exclusive use. Multiple calls are possible 
  • middleware-offline/trunk/_src/eidmw/cardlayer/cardpluginPteid/PteidCard.cpp

    r59 r82  
    181181                                } 
    182182 
    183                                 bool bIsPteidCard = oData.Size() == 2 && oData.GetByte(0) == 0x90 && oData.GetByte(1) == 0x00; 
    184  
    185                                 if (bIsPteidCard) 
    186                                 { 
    187                                         ulVersion = 1; 
    188                                         poCard = new CPteidCard(hCard, poContext, poPinpad, oData, 
     183                                ulVersion = 1; 
     184                                poCard = new CPteidCard(hCard, poContext, poPinpad, oData, 
    189185                                                        bNeedToSelectApplet ? ALW_SELECT_APPLET : TRY_SELECT_APPLET, ulVersion); 
    190                                         //#ifdef __APPLE__ 
    191                                 } else { 
    192                                         // On Mac, if an unknown asynchronous card is inserted, 
    193                                         // we don't return NULL but a CUnknownCard instance. 
    194                                         // Reason: if we return NULL then the SISCardPlugin who 
    195                                         // will be consulted next in card of a ACR38U reader 
    196                                         // causes the reader/driver to get in a strange state 
    197                                         // (if no SIS card is present) and if then a CUnknownCard 
    198                                         // is instantiated, it will throw an exception if e.g. 
    199                                         // SCardStatus() is called. 
    200                                         // Remark: this trick won't work if synchronous card 
    201                                         // (other then the SIS card is inserted). 
    202                                         //return new CUnknownCard(hCard, poContext, poPinpad, CByteArray()); 
    203                                 } 
    204                                 //#endif 
    205186                        } 
    206187                } 
     
    246227                                } 
    247228 
    248                                 bool bIsPteidCard = oData.Size() == 2 && oData.GetByte(0) == 0x90 && oData.GetByte(1) == 0x00; 
    249  
    250                                 if (bIsPteidCard) { 
    251229                                        ulVersion = 2; 
    252230                                        poCard = new CPteidCard(hCard, poContext, poPinpad, oData, 
    253231                                                        bNeedToSelectApplet ? ALW_SELECT_APPLET : TRY_SELECT_APPLET, ulVersion); 
    254                                         //#ifdef __APPLE__ 
    255                                 } else { 
    256                                         // On Mac, if an unknown asynchronous card is inserted, 
    257                                         // we don't return NULL but a CUnknownCard instance. 
    258                                         // Reason: if we return NULL then the SISCardPlugin who 
    259                                         // will be consulted next in card of a ACR38U reader 
    260                                         // causes the reader/driver to get in a strange state 
    261                                         // (if no SIS card is present) and if then a CUnknownCard 
    262                                         // is instantiated, it will throw an exception if e.g. 
    263                                         // SCardStatus() is called. 
    264                                         // Remark: this trick won't work if synchronous card 
    265                                         // (other then the SIS card is inserted). 
    266                                         //return new CUnknownCard(hCard, poContext, poPinpad, CByteArray()); 
    267                                 } 
    268                                 //#endif 
    269232                        } 
    270233                } 
     
    426389                        //bOK = PinCmd(PIN_OP_RESET, pin, pszNewPin, "", *triesLeft, NULL); // martinho - reset pin 
    427390                        bOK = false; 
    428                 } 
    429                 if (bOK) 
    430                         triesLeft = PinStatus(pin); 
     391                }        
    431392        } 
    432393        catch(...) 
     
    451412                        usage = DLG_PIN_SIGN; 
    452413        } 
    453         else if (Pin.ulID == 2) 
    454                 usage = DLG_PIN_SIGN; 
    455         else 
    456                 usage = DLG_PIN_AUTH; 
     414    else if (Pin.ulID == 1) 
     415        usage = DLG_PIN_AUTH; 
     416    else if (Pin.ulID == 2) 
     417        usage = DLG_PIN_SIGN; 
     418    else if (Pin.ulID == 3) 
     419        usage = DLG_PIN_ADDRESS; 
    457420 
    458421        return usage; 
     
    725688    } else { 
    726689 
    727         if (ulInputLen != 36) 
    728                 IasSignatureHelper(); 
     690        //if (ulInputLen != 36) 
     691        //      IasSignatureHelper(); 
    729692 
    730693        oDataias.Append(0x95); 
     
    751714    // printf("++++ Pteid12\n"); 
    752715    CAutoLock autolock(this); 
    753  
     716    bool bOK = false; 
    754717    m_ucCLA = 0x00; 
    755718 
    756     // Pretty unique for smart cards: first MSE SET, then verify PIN 
    757     // (needed for the nonrep key/pin, but also usable for the auth key/pin) 
    758719    if (pPin != NULL) 
    759720    { 
    760721        unsigned long ulRemaining = 0; 
    761         bool bOK = PinCmd(PIN_OP_VERIFY, *pPin, "", "", ulRemaining, &key); 
     722        if (m_poContext->m_bSSO) 
     723        { 
     724                std::string cached_pin = ""; 
     725                if (m_verifiedPINs.find(pPin->ulID) != m_verifiedPINs.end()) 
     726                { 
     727                        cached_pin = m_verifiedPINs[pPin->ulID]; 
     728 
     729                        MWLOG(LEV_DEBUG, MOD_CAL, L"Debug: Using cached pin for %s", pPin->csLabel.c_str()); 
     730                } 
     731                bOK = PinCmd(PIN_OP_VERIFY, *pPin, cached_pin, "", ulRemaining, &key); 
     732        } 
     733        else 
     734                bOK = PinCmd(PIN_OP_VERIFY, *pPin, "", "", ulRemaining, &key); 
    762735        if (!bOK) 
    763                         throw CMWEXCEPTION(ulRemaining == 0 ? EIDMW_ERR_PIN_BLOCKED : EIDMW_ERR_PIN_BAD); 
     736                throw CMWEXCEPTION(ulRemaining == 0 ? EIDMW_ERR_PIN_BLOCKED : EIDMW_ERR_PIN_BAD); 
    764737    } 
    765738         
  • middleware-offline/trunk/_src/eidmw/cardlayer/pteid35cardlayer.vcproj

    r34 r82  
    149149                                Name="VCLinkerTool" 
    150150                                LinkLibraryDependencies="false" 
    151                                 AdditionalDependencies="WS2_32.Lib pteid35DlgsWin32.lib pteid35common.lib winscard.lib" 
    152                                 OutputFile="..\_Binaries35\$(ConfigurationName)\pteid35$(ProjectName).dll" 
     151                                AdditionalDependencies="WS2_32.Lib pteidDlgsWin32.lib pteidcommon.lib winscard.lib" 
     152                                OutputFile="..\_Binaries35\$(ConfigurationName)\pteid$(ProjectName).dll" 
    153153                                LinkIncremental="1" 
    154154                                AdditionalLibraryDirectories="..\_Binaries35/$(ConfigurationName)" 
  • middleware-offline/trunk/_src/eidmw/common/common.pro

    r34 r82  
    6363           prefix.h \ 
    6464           StringOps.h \ 
    65            xmlUserData.h \ 
    6665           libtomcrypt/tomcrypt_argchk.h \ 
    6766           libtomcrypt/tomcrypt_cfg.h \ 
  • middleware-offline/trunk/_src/eidmw/common/eidErrors.h

    r41 r82  
    8080#define EIDMW_ERR_NOT_ACTIVATED        0xe1d0020A 
    8181 
     82#define EIDMW_ERR_PINREF_NOT_FOUND         0xe1d0020B 
     83 
    8284 
    8385// Reader errors 
  • middleware-offline/trunk/_src/eidmw/common/pteid35common.vcproj

    r34 r82  
    22<VisualStudioProject 
    33        ProjectType="Visual C++" 
    4         Version="8.00" 
     4        Version="8,00" 
    55        Name="common" 
    66        ProjectGUID="{39710980-B40E-4B06-B8E8-D86B125007F3}" 
     
    102102                </Configuration> 
    103103                <Configuration 
     104                        Name="Release|Win32" 
     105                        OutputDirectory="$(SolutionDir)$(ConfigurationName)" 
     106                        IntermediateDirectory="$(ConfigurationName)" 
     107                        ConfigurationType="2" 
     108                        CharacterSet="1" 
     109                        WholeProgramOptimization="1" 
     110                        > 
     111                        <Tool 
     112                                Name="VCPreBuildEventTool" 
     113                                CommandLine="..\set_build_nbr.bat" 
     114                        /> 
     115                        <Tool 
     116                                Name="VCCustomBuildTool" 
     117                        /> 
     118                        <Tool 
     119                                Name="VCXMLDataGeneratorTool" 
     120                        /> 
     121                        <Tool 
     122                                Name="VCWebServiceProxyGeneratorTool" 
     123                        /> 
     124                        <Tool 
     125                                Name="VCMIDLTool" 
     126                        /> 
     127                        <Tool 
     128                                Name="VCCLCompilerTool" 
     129                                PreprocessorDefinitions="PTEID_35;WIN32;NDEBUG;_WINDOWS;_USRDLL;EIDMW_CMN_EXPORT" 
     130                                RuntimeLibrary="2" 
     131                                TreatWChar_tAsBuiltInType="true" 
     132                                UsePrecompiledHeader="0" 
     133                                WarningLevel="3" 
     134                                Detect64BitPortabilityProblems="true" 
     135                                DebugInformationFormat="3" 
     136                        /> 
     137                        <Tool 
     138                                Name="VCManagedResourceCompilerTool" 
     139                        /> 
     140                        <Tool 
     141                                Name="VCResourceCompilerTool" 
     142                                PreprocessorDefinitions="PTEID_35;_UNICODE;UNICODE" 
     143                        /> 
     144                        <Tool 
     145                                Name="VCPreLinkEventTool" 
     146                        /> 
     147                        <Tool 
     148                                Name="VCLinkerTool" 
     149                                LinkLibraryDependencies="false" 
     150                                AdditionalDependencies="WS2_32.Lib" 
     151                                OutputFile="..\_Binaries35\$(ConfigurationName)\pteid$(ProjectName).dll" 
     152                                LinkIncremental="1" 
     153                                GenerateDebugInformation="true" 
     154                                SubSystem="2" 
     155                                OptimizeReferences="2" 
     156                                EnableCOMDATFolding="2" 
     157                                TargetMachine="1" 
     158                        /> 
     159                        <Tool 
     160                                Name="VCALinkTool" 
     161                        /> 
     162                        <Tool 
     163                                Name="VCManifestTool" 
     164                        /> 
     165                        <Tool 
     166                                Name="VCXDCMakeTool" 
     167                        /> 
     168                        <Tool 
     169                                Name="VCBscMakeTool" 
     170                        /> 
     171                        <Tool 
     172                                Name="VCFxCopTool" 
     173                        /> 
     174                        <Tool 
     175                                Name="VCAppVerifierTool" 
     176                        /> 
     177                        <Tool 
     178                                Name="VCWebDeploymentTool" 
     179                        /> 
     180                        <Tool 
     181                                Name="VCPostBuildEventTool" 
     182                                CommandLine="..\misc\pteid\pteid35.bat" 
     183                        /> 
     184                </Configuration> 
     185                <Configuration 
    104186                        Name="Debug|x64" 
    105187                        OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" 
     
    157239                                SubSystem="2" 
    158240                                TargetMachine="17" 
    159                         /> 
    160                         <Tool 
    161                                 Name="VCALinkTool" 
    162                         /> 
    163                         <Tool 
    164                                 Name="VCManifestTool" 
    165                         /> 
    166                         <Tool 
    167                                 Name="VCXDCMakeTool" 
    168                         /> 
    169                         <Tool 
    170                                 Name="VCBscMakeTool" 
    171                         /> 
    172                         <Tool 
    173                                 Name="VCFxCopTool" 
    174                         /> 
    175                         <Tool 
    176                                 Name="VCAppVerifierTool" 
    177                         /> 
    178                         <Tool 
    179                                 Name="VCWebDeploymentTool" 
    180                         /> 
    181                         <Tool 
    182                                 Name="VCPostBuildEventTool" 
    183                                 CommandLine="..\misc\pteid\pteid35.bat" 
    184                         /> 
    185                 </Configuration> 
    186                 <Configuration 
    187                         Name="Release|Win32" 
    188                         OutputDirectory="$(SolutionDir)$(ConfigurationName)" 
    189                         IntermediateDirectory="$(ConfigurationName)" 
    190                         ConfigurationType="2" 
    191                         CharacterSet="1" 
    192                         WholeProgramOptimization="1" 
    193                         > 
    194                         <Tool 
    195                                 Name="VCPreBuildEventTool" 
    196                                 CommandLine="..\set_build_nbr.bat" 
    197                         /> 
    198                         <Tool 
    199                                 Name="VCCustomBuildTool" 
    200                         /> 
    201                         <Tool 
    202                                 Name="VCXMLDataGeneratorTool" 
    203                         /> 
    204                         <Tool 
    205                                 Name="VCWebServiceProxyGeneratorTool" 
    206                         /> 
    207                         <Tool 
    208                                 Name="VCMIDLTool" 
    209                         /> 
    210                         <Tool 
    211                                 Name="VCCLCompilerTool" 
    212                                 PreprocessorDefinitions="PTEID_35;WIN32;NDEBUG;_WINDOWS;_USRDLL;EIDMW_CMN_EXPORT" 
    213                                 RuntimeLibrary="2" 
    214                                 TreatWChar_tAsBuiltInType="true" 
    215                                 UsePrecompiledHeader="0" 
    216                                 WarningLevel="3" 
    217                                 Detect64BitPortabilityProblems="true" 
    218                                 DebugInformationFormat="3" 
    219                         /> 
    220                         <Tool 
    221                                 Name="VCManagedResourceCompilerTool" 
    222                         /> 
    223                         <Tool 
    224                                 Name="VCResourceCompilerTool" 
    225                                 PreprocessorDefinitions="PTEID_35;_UNICODE;UNICODE" 
    226                         /> 
    227                         <Tool 
    228                                 Name="VCPreLinkEventTool" 
    229                         /> 
    230                         <Tool 
    231                                 Name="VCLinkerTool" 
    232                                 LinkLibraryDependencies="false" 
    233                                 AdditionalDependencies="WS2_32.Lib" 
    234                                 OutputFile="..\_Binaries35\$(ConfigurationName)\pteid35$(ProjectName).dll" 
    235                                 LinkIncremental="1" 
    236                                 GenerateDebugInformation="true" 
    237                                 SubSystem="2" 
    238                                 OptimizeReferences="2" 
    239                                 EnableCOMDATFolding="2" 
    240                                 TargetMachine="1" 
    241241                        /> 
    242242                        <Tool 
  • middleware-offline/trunk/_src/eidmw/dialogs/dialogsQTsrv/dialogsQTsrv.pro

    r34 r82  
    3131### Special compiler flags used 
    3232### 
    33 QMAKE_CXXFLAGS+=-finput-charset=cp1252 
     33## QMAKE_CXXFLAGS+=-finput-charset=cp1252 
    3434QMAKE_CXXFLAGS+=-fno-strict-aliasing 
    3535 
     
    5656           dlgWndAskPIN.h \ 
    5757           dlgWndAskPINs.h \ 
    58            dlgWndAskAccess.h \ 
    59            dlgWndModal.h \ 
    6058           dlgWndBadPIN.h \ 
    6159           dlgWndPinpadInfo.h 
     
    6462FORMS += dlgWndAskPIN.ui \ 
    6563         dlgWndAskPINs.ui \ 
    66          dlgWndAskAccess.ui \ 
    67          dlgWndModal.ui \ 
    6864         dlgWndBadPIN.ui \ 
    6965         dlgWndPinpadInfo.ui 
     
    7470           dlgWndAskPIN.cpp \ 
    7571           dlgWndAskPINs.cpp  \ 
    76            dlgWndAskAccess.cpp  \ 
    77            dlgWndModal.cpp  \ 
    7872           dlgWndBadPIN.cpp \ 
    7973           dlgWndPinpadInfo.cpp 
  • middleware-offline/trunk/_src/eidmw/dialogs/dialogsQTsrv/dlgWndAskPIN.cpp

    r5 r82  
    1919**************************************************************************** */ 
    2020 
     21#include <iostream> 
     22 
    2123#include "dlgWndAskPIN.h" 
    2224#include "../langUtil.h" 
     
    2931{ 
    3032        ui.setupUi(this); 
     33        setFixedSize(416,258); 
    3134 
    3235        if( pinInfo.ulFlags & PIN_FLAG_DIGITS ) 
     
    4346 
    4447        QString Title; 
     48 
    4549        //if( DApplic == DLG_APP_BELPIC ) 
    4650        //{ 
     
    6973        ui.lblHeader->setText( QString::fromWCharArray(GETSTRING_DLG(EnterYourPin)) ); 
    7074        ui.lblHeader->setAccessibleName( QString::fromWCharArray(GETSTRING_DLG(EnterYourPin)) ); 
    71         ui.lblPINName->setText( QString::fromWCharArray(GETSTRING_DLG(Pin)) ); 
    72         ui.lblPINName->setAccessibleName( QString::fromWCharArray(GETSTRING_DLG(Pin)) ); 
    73         ui.lblPINName_2->setText( QString::fromWCharArray(GETSTRING_DLG(Pin)) ); 
    74         ui.lblPINName_2->setAccessibleName( QString::fromWCharArray(GETSTRING_DLG(Pin)) ); 
     75    ui.lblPINName->setText( QString::fromWCharArray(GETSTRING_DLG(AuthenticationPin)) ); 
     76    ui.lblPINName->setAccessibleName( QString::fromWCharArray(GETSTRING_DLG(AuthenticationPin)) ); 
     77    ui.lblPINName_2->setText( QString::fromWCharArray(GETSTRING_DLG(AuthenticationPin)) ); 
     78    ui.lblPINName_2->setAccessibleName( QString::fromWCharArray(GETSTRING_DLG(AuthenticationPin)) ); 
    7579 
    7680        ui.btnOk->setText( QString::fromWCharArray(GETSTRING_DLG(Ok)) ); 
     
    7983        ui.btnCancel->setAccessibleName( QString::fromWCharArray(GETSTRING_DLG(Cancel)) ); 
    8084 
    81         if( PinPusage == DLG_PIN_SIGN ) 
     85    if( PinPusage == DLG_PIN_SIGN ) 
    8286                this->setStyleSheet("background-image: url(:/Resources/bg_SignaturePin.png);"); 
    83         else 
     87    else 
    8488                this->setStyleSheet("background-image: url(:/Resources/bg_AuthenticationPin.png);"); 
    8589 
  • middleware-offline/trunk/_src/eidmw/dialogs/dialogsQTsrv/dlgWndAskPINs.cpp

    r5 r82  
    3030        ui.setupUi(this); 
    3131 
     32        setFixedSize(416, 258); 
     33 
    3234        //this->resize( 350, 280 ); 
    3335        m_UK_InputField = 0; 
  • middleware-offline/trunk/_src/eidmw/dialogs/dialogsQTsrv/dlgWndBadPIN.cpp

    r25 r82  
    2929        ui.setupUi(this); 
    3030 
     31        setFixedSize(411, 183); 
     32 
    3133        QString Title=""; 
    3234        //if( DApplic == DLG_APP_BELPIC ) 
     
    3840        //else 
    3941        //{ 
    40                 Title+=QString::fromWCharArray(GETSTRING_DLG(Notification)); 
     42        Title+=QString::fromWCharArray(GETSTRING_DLG(Notification)); 
    4143                Title+=": "; 
    4244        //} 
    43         Title+=QString::fromWCharArray(GETSTRING_DLG(Bad)); 
    44         Title+=" "; 
    45         Title+=PINName; 
    46  
    47         wcout << PINName.toStdWString() << endl; 
     45    //Title+=QString::fromWCharArray(GETSTRING_DLG(Bad)); 
     46    Title+=" "; 
     47    Title+=PINName; 
    4848 
    4949        this->setWindowTitle(Title); 
     
    7272        { 
    7373                sCenter+=PINName; 
    74                 sCenter+=" "; 
     74        sCenter+=" "; 
    7575                sCenter+=QString::fromWCharArray(GETSTRING_DLG(PinBlocked)); 
    7676                ui.btnRetry->setVisible(false); 
  • middleware-offline/trunk/_src/eidmw/dialogs/dialogsQTsrv/dlgWndPinpadInfo.cpp

    r25 r82  
    2929{ 
    3030        ui.setupUi(this); 
     31    setFixedSize(417, 259); 
    3132 
    3233        QString Title=""; 
     
    3839        //      Title+=": "; 
    3940        //} 
    40         Title+=QString::fromWCharArray(GETSTRING_DLG(PinpadInfo)); 
     41 
     42    if (operation == DLG_PIN_OP_CHANGE) 
     43        Title+=QString::fromUtf8("Alterar PIN "); 
     44    else if (operation == DLG_PIN_OP_VERIFY) 
     45        Title+=QString::fromUtf8("Verificar PIN "); 
     46    else 
     47        Title+=QString::fromWCharArray(GETSTRING_DLG(PinpadInfo)); 
     48 
    4149        if(!Reader.isEmpty()) 
    4250        { 
     
    4452                Title+=Reader; 
    4553        } 
     54 
    4655        parent->setWindowTitle( Title ); 
    4756 
     
    4958        tmpHeader = PINName; 
    5059 
    51 //      ui.label_2->setText( tmpHeader ); 
    52 //      ui.label_2->setAccessibleName( tmpHeader ); 
    53 //      ui.label->setText( Message ); 
    54 //      ui.label->setAccessibleName( Message ); 
     60    ui.label_2->setText( tmpHeader ); 
     61    ui.label_2->setAccessibleName( tmpHeader ); 
     62    ui.label->wordWrap(); 
     63    ui.label->setText(QString::fromWCharArray(GETSTRING_DLG(PleaseEnterYourPinOnThePinpadReader))); 
     64    ui.label->setAccessibleName(QString::fromWCharArray(GETSTRING_DLG(PleaseEnterYourPinOnThePinpadReader))); 
    5565        m_ulHandle = ulHandle; 
    5666//      ui.lblIcon->setPixmap( QPixmap( ":/Resources/ICO_CARD_PIN_128x128.png" ) ); 
  • middleware-offline/trunk/_src/eidmw/dialogs/dialogsQTsrv/dlgWndPinpadInfo.ui

    r25 r82  
    33 <class>dlgWndPinpadInfo</class> 
    44 <widget class="QWidget" name="dlgWndPinpadInfo"> 
     5  <property name="windowModality"> 
     6   <enum>Qt::WindowModal</enum> 
     7  </property> 
    58  <property name="geometry"> 
    69   <rect> 
     
    811    <y>0</y> 
    912    <width>417</width> 
    10     <height>259</height> 
     13    <height>258</height> 
    1114   </rect> 
     15  </property> 
     16  <property name="sizePolicy"> 
     17   <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> 
     18    <horstretch>0</horstretch> 
     19    <verstretch>0</verstretch> 
     20   </sizepolicy> 
     21  </property> 
     22  <property name="minimumSize"> 
     23   <size> 
     24    <width>417</width> 
     25    <height>258</height> 
     26   </size> 
     27  </property> 
     28  <property name="maximumSize"> 
     29   <size> 
     30    <width>417</width> 
     31    <height>258</height> 
     32   </size> 
    1233  </property> 
    1334  <property name="windowTitle"> 
     
    2950    <property name="geometry"> 
    3051     <rect> 
    31       <x>210</x> 
     52      <x>220</x> 
    3253      <y>110</y> 
     54      <width>171</width> 
     55      <height>61</height> 
     56     </rect> 
     57    </property> 
     58    <property name="styleSheet"> 
     59     <string notr="true">background-image: url(:/Resources/alpha.png);</string> 
     60    </property> 
     61    <property name="text"> 
     62     <string/> 
     63    </property> 
     64    <property name="wordWrap"> 
     65     <bool>true</bool> 
     66    </property> 
     67   </widget> 
     68   <widget class="QLabel" name="label_2"> 
     69    <property name="geometry"> 
     70     <rect> 
     71      <x>220</x> 
     72      <y>60</y> 
    3373      <width>241</width> 
    3474      <height>41</height> 
     
    3979    </property> 
    4080    <property name="text"> 
    41      <string>Por Favor, introduza o PIN.</string> 
     81     <string/> 
    4282    </property> 
    4383   </widget> 
     
    4585 </widget> 
    4686 <layoutdefault spacing="6" margin="11"/> 
    47  <resources> 
    48   <include location="dlgs.qrc"/> 
    49  </resources> 
     87 <resources/> 
    5088 <connections/> 
    5189</ui> 
  • middleware-offline/trunk/_src/eidmw/dialogs/dialogsQTsrv/main.cpp

    r25 r82  
    3737#include "dlgWndAskPINs.h" 
    3838#include "dlgWndBadPIN.h" 
    39 #include "dlgWndAskAccess.h" 
    40 #include "dlgWndModal.h" 
    4139#include "dlgWndPinpadInfo.h" 
    4240#include "SharedMem.h" 
     
    126124                                if( oData->usage == DLG_PIN_UNKNOWN ) 
    127125                                { 
    128                                         PINName = QString::fromWCharArray(oData->pinName); 
    129                                 } 
    130                                 else 
    131                                 { 
    132                                         PINName = GETQSTRING_DLG(Pin); 
    133                                 } 
     126                    if( wcsstr(oData->pinName,L"PIN da Autentica") != 0 ) 
     127                        PINName=QString::fromUtf8("Pin de Autenticação"); 
     128                    else 
     129                        PINName = QString::fromWCharArray(oData->pinName); 
     130                                } 
     131                else if (oData->usage == DLG_PIN_AUTH) 
     132                                { 
     133                    PINName = QString::fromUtf8("PIN da Autenticação"); 
     134                                } 
     135                else if (oData->usage == DLG_PIN_SIGN) 
     136                { 
     137                    PINName = QString::fromUtf8("PIN da Assinatura"); 
     138                } 
     139                else if (oData->usage == DLG_PIN_ADDRESS) 
     140                { 
     141                    PINName = QString::fromUtf8("PIN da Morada"); 
     142                } 
    134143 
    135144                                //Quickfix for encoding problem! It should be fixed later! 
    136                                 if( wcsstr(oData->pinName,L"PIN da Autentica") != 0 ) 
    137                                         PINName=QString::fromUtf8("Pin de Autenticacao"); 
     145                                //if( wcsstr(oData->pinName,L"PIN da Autentica") != 0 ) 
     146                                //      PINName=QString::fromUtf8("Pin de Autenticacao"); 
    138147 
    139148                                QString Header; 
     
    144153                                                { 
    145154                                                        case DLG_PIN_AUTH: 
    146                                                                 Header = GETQSTRING_DLG(PleaseEnterYourPin); 
     155                                Header = GETQSTRING_DLG(PleaseEnterYourPin); 
    147156                                                                Header += ", "; 
    148157                                                                Header += GETQSTRING_DLG(InOrderToAuthenticateYourself); 
     
    334343                                                { 
    335344                                                        PINName = QString::fromWCharArray(oData->pinName); 
     345                            QByteArray teste = PINName.toUtf8(); 
     346                            QString mystr(teste); 
    336347                                                } 
    337348                                                break; 
     
    339350 
    340351                                //Quickfix for encoding problem! It should be fixed later! 
    341                                 if( wcsstr(oData->pinName,L"PIN da Autentica") != 0 ) 
    342                                         PINName=QString::fromUtf8("Pin de Autenticacao"); 
    343                                 //wcout << "oData->pinName: " << oData->pinName << endl; 
    344                                 //wcout << "PINName " << PINName.toStdWString() << endl; 
     352                if( wcsstr(oData->pinName,L"PIN da Autentica") != 0 ) 
     353                    PINName=QString::fromUtf8("PIN da Autentica\xc3\xa7\xc3\xa3o"); 
    345354 
    346355                                dlg = new dlgWndBadPIN( PINName, oData->ulRemainingTries ); 
     
    494503                                                        PINName = QString::fromWCharArray(oInfoData->pinName); 
    495504                                                        break; 
     505                        case DLG_PIN_AUTH: 
     506                            PINName = QString::fromUtf8("PIN da Autenticação"); 
     507                            break; 
     508                        case DLG_PIN_SIGN: 
     509                            PINName = QString::fromUtf8("PIN da Assinatura"); 
     510                            break; 
     511                        case DLG_PIN_ADDRESS: 
     512                            PINName = QString::fromUtf8("PIN da Morada"); 
     513                            break; 
    496514                                                default: 
    497515                                                        if( wcscmp(oInfoData->pinName,L"") == 0  ) 
     
    698716                        return 0; 
    699717                }  
    700                 else if (iFunctionIndex == DLG_DISPLAY_MODAL) 
    701                 { 
    702                         QApplication a(argc, argv); 
    703                         DlgDisplayModalArguments* oData; 
    704                         SharedMem oShMemory; 
    705                         oShMemory.Attach( sizeof(DlgDisplayModalArguments), readableFilePath.c_str(),(void **) &oData); 
    706  
    707                         dlgWndModal *dlg = NULL; 
    708                         try  
    709                         { 
    710                                 QString qsMesg; 
    711                                 qsMesg=QString::fromWCharArray(oData->mesg); 
    712  
    713                                 dlg = new dlgWndModal(   
    714                                                                           oData->icon,  
    715                                                                           qsMesg,  
    716                                                                           oData->buttons, 
    717                                                                           oData->EnterButton, 
    718                                                                           oData->CancelButton ); 
    719                                 dlg->exec(); 
    720  
    721                                 eIDMW::DlgRet dlgResult = dlg->dlgResult; 
    722                                 oData->returnValue = dlgResult; 
    723  
    724                                 delete dlg; 
    725                                 dlg = NULL; 
    726                                 oShMemory.Detach((void *)oData); 
    727  
    728                                 return 0; 
    729                         } 
    730                         catch( ... ) 
    731                         { 
    732                                 if( dlg ) delete dlg; 
    733  
    734                                 oData->returnValue = DLG_ERR; 
    735                                 oShMemory.Detach((void *)oData); 
    736  
    737                                 return 0; 
    738                         } 
    739                         oData->returnValue = DLG_CANCEL; 
    740                         oShMemory.Detach((void *)oData); 
    741                         return 0; 
    742                 }  
    743                 else if (iFunctionIndex == DLG_ASK_ACCESS)  
    744                 { 
    745  
    746                         QApplication a(argc, argv); 
    747                         // attach to the segment and get a pointer 
    748                         DlgAskAccessArguments *oData = NULL; 
    749  
    750                         SharedMem oShMemory; 
    751                         oShMemory.Attach( sizeof(DlgAskAccessArguments), readableFilePath.c_str(),(void **) &oData); 
    752  
    753                         dlgWndAskAccess *dlg = NULL; 
    754                         try  
    755                         { 
    756                                 QString qsAppPath; 
    757                                 qsAppPath=QString::fromWCharArray( oData->appPath ); 
    758                                 QString qsReaderName; 
    759                                 qsReaderName=QString::fromWCharArray( oData->readerName); 
    760  
    761                                 dlg = new dlgWndAskAccess(   
    762                                                                                   qsAppPath,  
    763                                                                                   qsReaderName, oData->operation ); 
    764                                 dlg->exec(); 
    765  
    766                                 eIDMW::DlgRet dlgResult = dlg->dlgResult; 
    767                                 oData->returnValue = dlgResult; 
    768  
    769                                 if(dlg->ForAllIsChecked()) 
    770                                 { 
    771                                         oData->forAllOperations =1; 
    772                                 } 
    773                                 else 
    774                                 { 
    775                                         oData->forAllOperations = 0; 
    776                                 } 
    777  
    778                                 delete dlg; 
    779                                 dlg = NULL; 
    780                                 oShMemory.Detach((void *)oData); 
    781                                 return 0; 
    782                         } 
    783                         catch( ... ) 
    784                         { 
    785                                 if( dlg )  delete dlg; 
    786                                 oData->returnValue = DLG_ERR; 
    787                                 oShMemory.Detach((void *)oData); 
    788                                 return 0; 
    789                         } 
    790                         oData->returnValue = DLG_ERR; 
    791                         oShMemory.Detach((void *)oData); 
    792        
    793                         return 0; 
    794                 } 
    795  
    796         }  
     718        } 
    797719        else  
    798720        { 
  • middleware-offline/trunk/_src/eidmw/dialogs/dialogsWin32/pteid35DlgsWin32.vcproj

    r5 r82  
    22<VisualStudioProject 
    33        ProjectType="Visual C++" 
    4         Version="8.00" 
     4        Version="8,00" 
    55        Name="DlgsWin32" 
    66        ProjectGUID="{E27CF8F7-E472-4966-B7D6-448B1427A0D6}" 
     
    111111                </Configuration> 
    112112                <Configuration 
    113                         Name="Release|Win32" 
    114                         OutputDirectory="$(SolutionDir)$(ConfigurationName)" 
    115                         IntermediateDirectory="../_Intermediate/$(ConfigurationName)" 
    116                         ConfigurationType="2" 
    117                         CharacterSet="1" 
    118                         WholeProgramOptimization="1" 
    119                         BuildLogFile="$(IntDir)\$(TargetFileName).BuildLog.htm" 
    120                         > 
    121                         <Tool 
    122                                 Name="VCPreBuildEventTool" 
    123                         /> 
    124                         <Tool 
    125                                 Name="VCCustomBuildTool" 
    126                         /> 
    127                         <Tool 
    128                                 Name="VCXMLDataGeneratorTool" 
    129                         /> 
    130                         <Tool 
    131                                 Name="VCWebServiceProxyGeneratorTool" 
    132                         /> 
    133                         <Tool 
    134                                 Name="VCMIDLTool" 
    135                         /> 
    136                         <Tool 
    137                                 Name="VCCLCompilerTool" 
    138                                 AdditionalIncludeDirectories="..\..\common" 
    139                                 PreprocessorDefinitions="PTEID_35;WIN32;NDEBUG;_WINDOWS;_USRDLL;DLGSWIN32_EXPORTS" 
    140                                 RuntimeLibrary="2" 
    141                                 TreatWChar_tAsBuiltInType="true" 
    142                                 UsePrecompiledHeader="0" 
    143                                 PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch" 
    144                                 AssemblerListingLocation="$(IntDir)\" 
    145                                 ObjectFile="$(IntDir)\" 
    146                                 ProgramDataBaseFileName="$(IntDir)\$(TargetFileName).vc80.pdb" 
    147                                 XMLDocumentationFileName="$(IntDir)\" 
    148                                 WarningLevel="3" 
    149                                 Detect64BitPortabilityProblems="true" 
    150                                 DebugInformationFormat="0" 
    151                         /> 
    152                         <Tool 
    153                                 Name="VCManagedResourceCompilerTool" 
    154                         /> 
    155                         <Tool 
    156                                 Name="VCResourceCompilerTool" 
    157                                 PreprocessorDefinitions="PTEID_35;_UNICODE;UNICODE" 
    158                         /> 
    159                         <Tool 
    160                                 Name="VCPreLinkEventTool" 
    161                         /> 
    162                         <Tool 
    163                                 Name="VCLinkerTool" 
    164                                 AdditionalDependencies="pteid35common.lib psapi.lib" 
    165                                 OutputFile="..\..\_Binaries35\$(ConfigurationName)\pteid35$(ProjectName).dll" 
    166                                 LinkIncremental="1" 
    167                                 AdditionalLibraryDirectories="..\..\_Binaries35\$(ConfigurationName)" 
    168                                 ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" 
    169                                 GenerateDebugInformation="true" 
    170                                 SubSystem="2" 
    171                                 OptimizeReferences="2" 
    172                                 EnableCOMDATFolding="2" 
    173                                 TargetMachine="1" 
    174                         /> 
    175                         <Tool 
    176                                 Name="VCALinkTool" 
    177                         /> 
    178                         <Tool 
    179                                 Name="VCManifestTool" 
    180                                 OutputManifestFile="$(IntDir)\$(TargetFileName).embed.manifest" 
    181                                 ManifestResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res" 
    182                                 DependencyInformationFile="$(IntDir)\mt.dep" 
    183                         /> 
    184                         <Tool 
    185                                 Name="VCXDCMakeTool" 
    186                         /> 
    187                         <Tool 
    188                                 Name="VCBscMakeTool" 
    189                         /> 
    190                         <Tool 
    191                                 Name="VCFxCopTool" 
    192                         /> 
    193                         <Tool 
    194                                 Name="VCAppVerifierTool" 
    195                         /> 
    196                         <Tool 
    197                                 Name="VCWebDeploymentTool" 
    198                         /> 
    199                         <Tool 
    200                                 Name="VCPostBuildEventTool" 
    201                         /> 
    202                 </Configuration> 
    203                 <Configuration 
    204113                        Name="Debug|x64" 
    205114                        OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" 
     
    255164                        <Tool 
    256165                                Name="VCLinkerTool" 
    257                                 UseUnicodeResponseFiles="true" 
    258                                 AdditionalDependencies="pteid35commonD.lib psapi.lib" 
    259                                 OutputFile="..\..\_Binaries35\$(PlatformName)\$(ConfigurationName)\pteid35$(ProjectName)D.dll" 
     166                                AdditionalDependencies="pteidcommon.lib psapi.lib" 
     167                                OutputFile="..\..\_Binaries35\$(ConfigurationName)\pteid$(ProjectName).dll" 
    260168                                LinkIncremental="1" 
    261169                                AdditionalLibraryDirectories="..\..\_Binaries35\$(PlatformName)\$(ConfigurationName)" 
     
    294202                </Configuration> 
    295203                <Configuration 
    296                         Name="Release|x64" 
    297                         OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" 
    298                         IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" 
     204                        Name="Release|Win32" 
     205                        OutputDirectory="$(SolutionDir)$(ConfigurationName)" 
     206                        IntermediateDirectory="../_Intermediate/$(ConfigurationName)" 
    299207                        ConfigurationType="2" 
    300208                        CharacterSet="1" 
     
    316224                        <Tool 
    317225                                Name="VCMIDLTool" 
    318                                 TargetEnvironment="3" 
    319226                        /> 
    320227                        <Tool 
     
    347254                                Name="VCLinkerTool" 
    348255                                AdditionalDependencies="pteid35common.lib psapi.lib" 
    349                                 OutputFile="..\..\_Binaries35\$(PlatformName)\$(ConfigurationName)\pteid35$(ProjectName).dll" 
     256                                OutputFile="..\..\_Binaries35\$(ConfigurationName)\pteid35$(ProjectName).dll" 
     257                                LinkIncremental="1" 
     258                                AdditionalLibraryDirectories="..\..\_Binaries35\$(ConfigurationName)" 
     259                                ManifestFile="$(IntDir)\$(TargetFileName).intermediate.manifest" 
     260                                GenerateDebugInformation="true" 
     261                                SubSystem="2" 
     262                                OptimizeReferences="2" 
     263                                EnableCOMDATFolding="2" 
     264                                TargetMachine="1" 
     265                        /> 
     266                        <Tool 
     267                                Name="VCALinkTool" 
     268                        /> 
     269                        <Tool 
     270                                Name="VCManifestTool" 
     271                                OutputManifestFile="$(IntDir)\$(TargetFileName).embed.manifest" 
     272                                ManifestResourceFile="$(IntDir)\$(TargetFileName).embed.manifest.res" 
     273                                DependencyInformationFile="$(IntDir)\mt.dep" 
     274                        /> 
     275                        <Tool 
     276                                Name="VCXDCMakeTool" 
     277                        /> 
     278                        <Tool 
     279                                Name="VCBscMakeTool" 
     280                        /> 
     281                        <Tool 
     282                                Name="VCFxCopTool" 
     283                        /> 
     284                        <Tool 
     285                                Name="VCAppVerifierTool" 
     286                        /> 
     287                        <Tool 
     288                                Name="VCWebDeploymentTool" 
     289                        /> 
     290                        <Tool 
     291                                Name="VCPostBuildEventTool" 
     292                        /> 
     293                </Configuration> 
     294                <Configuration 
     295                        Name="Release|x64" 
     296                        OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" 
     297                        IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" 
     298                        ConfigurationType="2" 
     299                        CharacterSet="1" 
     300                        WholeProgramOptimization="1" 
     301                        BuildLogFile="$(IntDir)\$(TargetFileName).BuildLog.htm" 
     302                        > 
     303                        <Tool 
     304                                Name="VCPreBuildEventTool" 
     305                        /> 
     306                        <Tool 
     307                                Name="VCCustomBuildTool" 
     308                        /> 
     309                        <Tool 
     310                                Name="VCXMLDataGeneratorTool" 
     311                        /> 
     312                        <Tool 
     313                                Name="VCWebServiceProxyGeneratorTool" 
     314                        /> 
     315                        <Tool 
     316                                Name="VCMIDLTool" 
     317                                TargetEnvironment="3" 
     318                        /> 
     319                        <Tool 
     320                                Name="VCCLCompilerTool" 
     321                                AdditionalIncludeDirectories="..\..\common" 
     322                                PreprocessorDefinitions="PTEID_35;WIN32;NDEBUG;_WINDOWS;_USRDLL;DLGSWIN32_EXPORTS" 
     323                                RuntimeLibrary="2" 
     324                                TreatWChar_tAsBuiltInType="true" 
     325                                UsePrecompiledHeader="0" 
     326                                PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch" 
     327                                AssemblerListingLocation="$(IntDir)\" 
     328                                ObjectFile="$(IntDir)\" 
     329                                ProgramDataBaseFileName="$(IntDir)\$(TargetFileName).vc80.pdb" 
     330                                XMLDocumentationFileName="$(IntDir)\" 
     331                                WarningLevel="3" 
     332                                Detect64BitPortabilityProblems="true" 
     333                                DebugInformationFormat="0" 
     334                        /> 
     335                        <Tool 
     336                                Name="VCManagedResourceCompilerTool" 
     337                        /> 
     338                        <Tool 
     339                                Name="VCResourceCompilerTool" 
     340                                PreprocessorDefinitions="PTEID_35;_UNICODE;UNICODE" 
     341                        /> 
     342                        <Tool 
     343                                Name="VCPreLinkEventTool" 
     344                        /> 
     345                        <Tool 
     346                                Name="VCLinkerTool" 
     347                                AdditionalDependencies="pteidcommon.lib psapi.lib" 
     348                                OutputFile="..\..\_Binaries35\$(PlatformName)\$(ConfigurationName)\pteid$(ProjectName).dll" 
    350349                                LinkIncremental="1" 
    351350                                AdditionalLibraryDirectories="..\..\_Binaries35\$(PlatformName)\$(ConfigurationName)" 
  • middleware-offline/trunk/_src/eidmw/dialogs/language.h

    r25 r82  
    5858DEFINE_LANG_STR(Pin) = {L"PIN", L"PIN", L"PIN", L"PIN"}; 
    5959DEFINE_LANG_STR(Puk) = {L"PUK", L"PUK", L"PUK", L"PUK"}; 
    60 DEFINE_LANG_STR(Retry) = {L"&Retry", L"Repetir", L"&Rï¿œessayer", L"&Erneut versuchen"}; 
     60DEFINE_LANG_STR(Retry) = {L"&Retry", L"Repetir", L"&Rᅵessayer", L"&Erneut versuchen"}; 
    6161DEFINE_LANG_STR(Always) = {L"&Always", L"&Sempre", L"&Toujours", L"&Immer"}; 
    6262DEFINE_LANG_STR(Never) = {L"Ne&ver", L"Nunca", L"&Jamais", L"&Nie"}; 
     
    6464DEFINE_LANG_STR(Application) = {L"Application:", L"Aplicacao:", L"Application:", L"Anwendung:"}; 
    6565DEFINE_LANG_STR(Function) = {L"Function:", L"Funcao:", L"Fonction:", L"Funktion:"}; 
    66 DEFINE_LANG_STR(AnApplicationWantsToAccessTheCard) = {L"An Application wants to access the card !", L"Uma aplicação esta a tentar ler o cartao !", L"Une application essaye d'accï¿œder ï¿œ la carte !", L"Eine Anwendung will auf die Karte zugreifen!"}; 
    67 DEFINE_LANG_STR(ReadIdentityData) = {L"Read Identity data", L"A Ler dados do cartao", L"Lire les informations d'identitï¿œe", L"Identitï¿œtsdaten lesen"}; 
     66DEFINE_LANG_STR(AnApplicationWantsToAccessTheCard) = {L"An Application wants to access the card !", L"Uma aplicação esta a tentar ler o cartao !", L"Une application essaye d'accᅵder ᅵ la carte !", L"Eine Anwendung will auf die Karte zugreifen!"}; 
     67DEFINE_LANG_STR(ReadIdentityData) = {L"Read Identity data", L"A Ler dados do cartão", L"Lire les informations d'identitᅵe", L"Identitᅵtsdaten lesen"}; 
    6868DEFINE_LANG_STR(ReadPhoto) = {L"Read Photo", L"Foto lezen", L"Lire la photo", L"Bild lesen"}; 
    6969DEFINE_LANG_STR(ReadAddressData) = {L"Read Address data", L"Adresgegevens lezen", L"Lire l'adresse", L"Adressdaten lesen"}; 
    7070DEFINE_LANG_STR(ReadCertificates) = {L"Read Certificates", L"Certificaten lezen", L"Lire les certificats", L"Zertifikate lesen"}; 
    71 DEFINE_LANG_STR(ReadUnknownData) = {L"Read Unknown data", L"Onbekende data lezen", L"Lire des donnï¿œes", L"Unbekannte Daten lesen"}; 
    72 DEFINE_LANG_STR(DoYouWantToAcceptIt) = {L"Do you want to accept it ?", L"Deseja aceitar ?", L"Acceptez-vous ?", L"Mï¿œchten Sie akzeptieren?"}; 
    73 DEFINE_LANG_STR(ForAllOperations) = {L"For all operations", L"Para todas as operacoes", L"Pour toutes les opï¿œrations", L"Fï¿œr alle Funktionen"}; 
     71DEFINE_LANG_STR(ReadUnknownData) = {L"Read Unknown data", L"Onbekende data lezen", L"Lire des donnᅵes", L"Unbekannte Daten lesen"}; 
     72DEFINE_LANG_STR(DoYouWantToAcceptIt) = {L"Do you want to accept it ?", L"Deseja aceitar ?", L"Acceptez-vous ?", L"Mᅵchten Sie akzeptieren?"}; 
     73DEFINE_LANG_STR(ForAllOperations) = {L"For all operations", L"Para todas as operacoes", L"Pour toutes les opᅵrations", L"Fᅵr alle Funktionen"}; 
    7474DEFINE_LANG_STR(EnterYourPin) = {L"Enter your PIN", L"Introduza o PIN", L"Entrer votre code PIN", L"PIN eingeben"}; 
    7575DEFINE_LANG_STR(Asking) = {L"Asking", L"Perguntar", L"Entrez", L"Eingeben"}; 
     
    7777DEFINE_LANG_STR(PrivacyFilter) = {L"Privacy Filter", L"Filtro de privacidade", L"Privacy Filter", L"Datenschutz-Filter"}; 
    7878DEFINE_LANG_STR(EnterYour) = {L"Enter your", L"Entrar", L"Entrez votre", L"Geben Sie Ihre"}; 
    79 DEFINE_LANG_STR(ForVerification) = {L"for verification", L"voor verificatie", L"pour vï¿œrification", L"zwecks Bestï¿œtigung"}; 
    80 DEFINE_LANG_STR(ToUnblock) = {L"to unblock", L"para desbloquear", L"pour dï¿œbloquer", L"um freizugeben"}; 
    81 DEFINE_LANG_STR(Code) = {L"code", L"código", L"code", L"Kennzahl"}; 
     79DEFINE_LANG_STR(ForVerification) = {L"for verification", L"voor verificatie", L"pour vᅵrification", L"zwecks Bestᅵtigung"}; 
     80DEFINE_LANG_STR(ToUnblock) = {L"to unblock", L"para desbloquear", L"pour dᅵbloquer", L"um freizugeben"}; 
     81DEFINE_LANG_STR(Code) = {L"code", L"código", L"code", L"Kennzahl"}; 
    8282DEFINE_LANG_STR(AndSigning) = {L"and signing", L"e assinar", L"et signature", L"und Unterschrift"}; 
    8383DEFINE_LANG_STR(AndSign) = {L"and sign", L"e assinar", L"et signer", L"und unterschreiben"}; 
    84 DEFINE_LANG_STR(RenewingPinCode) = {L"Renewing PIN code", L"Renovar código PIN", L"Changement de code", L"PIN-Kennzahl erneuern"}; 
     84DEFINE_LANG_STR(RenewingPinCode) = {L"Renewing PIN code", L"Renovar código PIN", L"Changement de code", L"PIN-Kennzahl erneuern"}; 
    8585DEFINE_LANG_STR(CurrentPin) = {L"Current PIN", L"PIN Actual", L"Code actuel", L"Aktuelle PIN"}; 
    8686DEFINE_LANG_STR(NewPin) = {L"New PIN", L"Novo PIN", L"Nouveau", L"Neue PIN"}; 
    87 DEFINE_LANG_STR(ConfirmNewPin) = {L"Confirm new PIN", L"Confirmar código PIN", L"Confimez", L"Neue PIN bestï¿œtigen"}; 
    88 DEFINE_LANG_STR(EnterYourNewPinCode) = {L"Enter your New PIN code", L"Introduza o novo código PIN", L"Entrez votre nouveau code PIN", L"Neue PIN-Kennzahl eingeben"}; 
    89 DEFINE_LANG_STR(EnterYourNewPinCodeAgainToConfirm) = {L"Enter your New PIN code again to confirm", L"Introduza novamente o novo código PIN", L"Confimez votre nouveau code PIN", L"Neue PIN-Kennzahl erneut bestï¿œtigen"}; 
     87DEFINE_LANG_STR(ConfirmNewPin) = {L"Confirm new PIN", L"Confirmar código PIN", L"Confimez", L"Neue PIN bestᅵtigen"}; 
     88DEFINE_LANG_STR(EnterYourNewPinCode) = {L"Enter your New PIN code", L"Introduza o novo código PIN", L"Entrez votre nouveau code PIN", L"Neue PIN-Kennzahl eingeben"}; 
     89DEFINE_LANG_STR(EnterYourNewPinCodeAgainToConfirm) = {L"Enter your New PIN code again to confirm", L"Introduza novamente o novo código PIN", L"Confimez votre nouveau code PIN", L"Neue PIN-Kennzahl erneut bestᅵtigen"}; 
    9090DEFINE_LANG_STR(ErrorTheNewPinCodesAreNotIdentical) = {L"Error: The new PIN codes are not identical", L"Erro: os PINS nao sao iguais", L"Erreur: Les codes PIN ne sont pas identiques", L"Fehler: Die PIN-Kennzahlen sind nicht identisch"}; 
    91 DEFINE_LANG_STR(RetryEnterYourNewPinCode) = {L"Retry: Enter your New PIN code", L"Repetir: Introduza o novo código PIN", L"Rï¿œessayez: Entrez votre nouveau code PIN", L"Erneut versuchen: Neue PIN-Kennzahl eingeben"}; 
     91DEFINE_LANG_STR(RetryEnterYourNewPinCode) = {L"Retry: Enter your New PIN code", L"Repetir: Introduza o novo código PIN", L"Rᅵessayez: Entrez votre nouveau code PIN", L"Erneut versuchen: Neue PIN-Kennzahl eingeben"}; 
    9292DEFINE_LANG_STR(Bad) = {L"Bad", L"Erro", L"Erreur", L"Fehler"}; 
    93 DEFINE_LANG_STR(Notification) = {L"Notification", L"Atencao", L"Notification", L"Meldung"}; 
    94 DEFINE_LANG_STR(RemainingAttempts) = {L"remaining attempts", L"tentativas restantes", L"essais restants", L"ï¿œbrige Versuche"}; 
    95 DEFINE_LANG_STR(TryAgainOrCancel) = {L"Try again or cancel?", L"Tentar novamente on cancelar?", L"Essayez encore ou annulez", L"Erneut versuchen oder abbrechen?"}; 
    96 DEFINE_LANG_STR(PinBlocked) = {L"PIN blocked", L"PIN bloqueado", L"Code PIN bloquï¿œ", L"PIN gesperrt"}; 
     93DEFINE_LANG_STR(Notification) = {L"Notification", L"Atenção", L"Notification", L"Meldung"}; 
     94DEFINE_LANG_STR(RemainingAttempts) = {L"remaining attempts", L"tentativas restantes", L"essais restants", L"ᅵbrige Versuche"}; 
     95DEFINE_LANG_STR(TryAgainOrCancel) = {L"Try again or cancel?", L"Tentar novamente ou cancelar?", L"Essayez encore ou annulez", L"Erneut versuchen oder abbrechen?"}; 
     96DEFINE_LANG_STR(PinBlocked) = {L"PIN blocked", L"PIN bloqueado", L"Code PIN bloquᅵ", L"PIN gesperrt"}; 
    9797DEFINE_LANG_STR(PinpadInfo) = {L"Pinpad info", L"Pinpad info", L"Pinpad info", L"Pinpad-Info"}; 
    9898DEFINE_LANG_STR(Message) = {L"Message", L"Mensagem", L"Message", L"Nachricht"}; 
    9999DEFINE_LANG_STR(SignaturePin) = {L"Signature PIN", L"PIN de assinatura", L"Signature PIN", L"Unterschrift-PIN"}; 
    100 DEFINE_LANG_STR(AuthenticationPin) = {L"Authentication PIN", L"PIN de autenticacao", L"Authentification PIN", L"Authentisierungs-PIN"}; 
    101 DEFINE_LANG_STR(TheRootCertificateIsNotCorrect) = {L"The Root Certificate is not correct.", L"O certificado de Root está incorrecto.", L"Le certificat Root n'est pas correct.", L"Das Root-Zertifikat ist nicht korrekt."}; 
    102 DEFINE_LANG_STR(ThisMayBeATestCard) = {L"This may be a test card.", L"Este pode ser um cartao de testes.", L"Il s'agit peut-ï¿œtre d'une carte de test.", L"Dies kann eine Testkarte sein."}; 
    103 DEFINE_LANG_STR(PleaseEnterTheCorrectEidCard) = {L"Please enter the correct eID card.", L"Introduza um cartão valido.", L"Insï¿œrez une carte valide.", L"Bitte geben Sie die richtige eID-Karte ein."}; 
    104 DEFINE_LANG_STR(Caution) = {L"Caution:", L"Atencao:", L"Attention:", L"Achtung:"}; 
    105 DEFINE_LANG_STR(YouAreAboutToMakeALegallyBindingElectronic) = {L"You are about to make a legally binding electronic signature with your identity card.", L"You are about to make a legally binding electronic signature with your identity card.", L"Vous allez apposer une signature ï¿œlectronique juridiquement valide avec votre carte d'identitï¿œ", L"Mit Ihrem Personalausweis werden Sie eine rechtsgï¿œltige elektronische Unterschrift eingeben."}; 
    106 DEFINE_LANG_STR(PleaseEnterYourPin) = {L"Please enter your PIN", L"Introduza o codigo PIN", L"Entrez votre code PIN", L"Bitte geben Sie Ihre PIN ein"}; 
    107 DEFINE_LANG_STR(PleaseEnterYourPinOnThePinpadReader) = {L"Please enter your PIN on the pinpad reader", L"Please enter your PIN on the pinpad reader", L"Entrez votre code PIN sur le clavier du lecteur de carte", L"Bitte geben Sie Ihre PIN am Kartenlesegerï¿œt ein"}; 
    108 DEFINE_LANG_STR(ToContinueOrClickTheCancelButton) = {L"to continue or click the Cancel button.", L"para continuar ou clique em cancelar", L"ou cliquez sur le bouton Annuler.", L"um fortzufahren, oder klicken Sie auf die Schaltflï¿œche \"Abbrechen\"."}; 
     100DEFINE_LANG_STR(AuthenticationPin) = {L"Authentication PIN", L"PIN de autenticação", L"Authentification PIN", L"Authentisierungs-PIN"}; 
     101DEFINE_LANG_STR(TheRootCertificateIsNotCorrect) = {L"The Root Certificate is not correct.", L"O certificado de Root está incorrecto.", L"Le certificat Root n'est pas correct.", L"Das Root-Zertifikat ist nicht korrekt."}; 
     102DEFINE_LANG_STR(ThisMayBeATestCard) = {L"This may be a test card.", L"Este pode ser um cartao de testes.", L"Il s'agit peut-ᅵtre d'une carte de test.", L"Dies kann eine Testkarte sein."}; 
     103DEFINE_LANG_STR(PleaseEnterTheCorrectEidCard) = {L"Please enter the correct eID card.", L"Introduza um cartão válido.", L"Insᅵrez une carte valide.", L"Bitte geben Sie die richtige eID-Karte ein."}; 
     104DEFINE_LANG_STR(Caution) = {L"Caution:", L"Atenção:", L"Attention:", L"Achtung:"}; 
     105DEFINE_LANG_STR(YouAreAboutToMakeALegallyBindingElectronic) = {L"You are about to make a legally binding electronic signature with your identity card.", L"Voce está prestes a realizar uma assinatura electrónica legalmente válida com o seu cartão de identidade.", L"Vous allez apposer une signature ᅵlectronique juridiquement valide avec votre carte d'identitᅵ", L"Mit Ihrem Personalausweis werden Sie eine rechtsgᅵltige elektronische Unterschrift eingeben."}; 
     106DEFINE_LANG_STR(PleaseEnterYourPin) = {L"Please enter your PIN", L"Introduza o código PIN", L"Entrez votre code PIN", L"Bitte geben Sie Ihre PIN ein"}; 
     107DEFINE_LANG_STR(PleaseEnterYourPinOnThePinpadReader) = {L"Please enter your PIN on the pinpad reader", L"Por favor, introduza o PIN no seu leitor PINPAD.", L"Entrez votre code PIN sur le clavier du lecteur de carte", L"Bitte geben Sie Ihre PIN am Kartenlesegerᅵt ein"}; 
     108DEFINE_LANG_STR(ToContinueOrClickTheCancelButton) = {L"to continue or click the Cancel button.", L"para continuar ou clique em cancelar", L"ou cliquez sur le bouton Annuler.", L"um fortzufahren, oder klicken Sie auf die Schaltflᅵche \"Abbrechen\"."}; 
    109109DEFINE_LANG_STR(Warning) = {L"Warning:", L"Aviso:", L"Avertissement:", L"Warnung:"}; 
    110 DEFINE_LANG_STR(IfYouOnlyWantToLogOnToA) = {L"If you only want to log on to a web site or server, do NOT enter your PIN and click the Cancel button.", L"If you only want to log on to a web site or server, do NOT enter your PIN and click the Cancel button.", L"Si vous dï¿œsirez seulement vous connecter ï¿œ un site ou un serveur, n'entrez PAS votre code PIN.", L"Wenn Sie nur auf das Internet oder einen Server gehen mï¿œchten, geben Sie bitte Ihre PIN NICHT ein."}; 
     110DEFINE_LANG_STR(IfYouOnlyWantToLogOnToA) = {L"If you only want to log on to a web site or server, do NOT enter your PIN and click the Cancel button.", L"If you only want to log on to a web site or server, do NOT enter your PIN and click the Cancel button.", L"Si vous dᅵsirez seulement vous connecter ᅵ un site ou un serveur, n'entrez PAS votre code PIN.", L"Wenn Sie nur auf das Internet oder einen Server gehen mᅵchten, geben Sie bitte Ihre PIN NICHT ein."}; 
    111111DEFINE_LANG_STR(InOrderToAuthenticateYourself) = {L"in order to authenticate yourself.", L"para se autenticar", L"pour vous authentifier.", L"um sich zu authentisieren"}; 
    112 DEFINE_LANG_STR(ChangeYourPinOnTheReader) = {L"Change your PIN on the reader", L"Change your PIN on the reader", L"Modifiez votre code PIN sur le lecteur de carte", L"Bitte ï¿œndern Sie Ihren PIN am Kartenlesegerï¿œt"}; 
     112DEFINE_LANG_STR(ChangeYourPinOnTheReader) = {L"Change your PIN on the reader", L"Change your PIN on the reader", L"Modifiez votre code PIN sur le lecteur de carte", L"Bitte ᅵndern Sie Ihren PIN am Kartenlesegerᅵt"}; 
    113113DEFINE_LANG_STR(PleaseEnterYourPuk) = {L"Please enter your PUK", L"Introduza o cod. PUK", L"Entrez votre code PUK", L"Bitte geben Sie Ihren PUK ein"}; 
    114 DEFINE_LANG_STR(PleaseEnterYourPukOnThePinpadReader) = {L"Please enter your PUK on the pinpad reader", L"Geef uw PUK in op de kaartlezer", L"Entrez votre code PUK sur le clavier du lecteur de carte", L"Bitte geben Sie Ihren PUK am Kartenlesegerï¿œt ein"}; 
     114DEFINE_LANG_STR(PleaseEnterYourPukOnThePinpadReader) = {L"Please enter your PUK on the pinpad reader", L"Por favor, introduza o código PUK no seu leitor PINPAD.", L"Entrez votre code PUK sur le clavier du lecteur de carte", L"Bitte geben Sie Ihren PUK am Kartenlesegerᅵt ein"}; 
    115115DEFINE_LANG_STR(Your) = {L"your", L"seu", L"votre", L"Ihre"}; 
    116 DEFINE_LANG_STR(ChangeYourPin) = {L"Change your PIN", L"Alterar PIN", L"Modifiez votre code PIN", L"Bitte ï¿œndern Sie Ihren PIN"}; 
    117 DEFINE_LANG_STR(ChangeYourPuk) = {L"Change your PUK", L"Alterar PUK", L"Modifiez votre code PUK", L"Bitte ï¿œndern Sie Ihren PUK"}; 
    118 DEFINE_LANG_STR(OnTheReader) = {L"on the reader", L"no leitor", L"sur le lecteur de carte", L"am Kartenlesegerï¿œt"}; 
    119 DEFINE_LANG_STR(TheFollowingApplication1IsTrying) = {L"The following application '%1' is trying to read data on the eID card.\n\nDo you allow that?", L"A aplicacao '%1' esta a tentar aceder ao cartao.\nDeseja permitir?", L"Cette application '%1' essaye de lire vos donnï¿œes sur la carte eID.\n\nAcceptez-vous?", L"Das folgende Programm '%1' versucht, Daten auf der eID-Karte zu lesen.\n\nErlauben Sie das?"}; 
     116DEFINE_LANG_STR(ChangeYourPin) = {L"Change your PIN", L"Alterar PIN", L"Modifiez votre code PIN", L"Bitte ᅵndern Sie Ihren PIN"}; 
     117DEFINE_LANG_STR(ChangeYourPuk) = {L"Change your PUK", L"Alterar PUK", L"Modifiez votre code PUK", L"Bitte ᅵndern Sie Ihren PUK"}; 
     118DEFINE_LANG_STR(OnTheReader) = {L"on the reader", L"no leitor", L"sur le lecteur de carte", L"am Kartenlesegerᅵt"}; 
     119DEFINE_LANG_STR(TheFollowingApplication1IsTrying) = {L"The following application '%1' is trying to read data on the eID card.\n\nDo you allow that?", L"A aplicacao '%1' esta a tentar aceder ao cartao.\nDeseja permitir?", L"Cette application '%1' essaye de lire vos donnᅵes sur la carte eID.\n\nAcceptez-vous?", L"Das folgende Programm '%1' versucht, Daten auf der eID-Karte zu lesen.\n\nErlauben Sie das?"}; 
    120120DEFINE_LANG_STR(UnknownApplication) = {L"??? Unknown application ???", L"??? Aplicacao desconhecida ???", L"??? Application inconnue ???", L"??? Unbekannt Anwendung ???"}; 
    121121DEFINE_LANG_STR(PathOfTheApplication) = {L"PATH of the application :", L"Caminho para a aplicacao :", L"EMPLACEMENT de l'application :", L"PFAD der Anwendung :"}; 
    122 //DEFINE_LANG_STR(EnterOldNewVerify) = {L"Please enter your old PIN, followed by your new PIN and then enter your new PIN once more for verification purposes.", L"Geef eerst uw oude PIN in, nadien uw nieuwe PIN, en ten slotte ter controle nogmaals uw nieuwe PIN.", L"Veillez d'abord introduire votre ancien code PIN et ensuite votre nouveau code PIN. Pour terminer, veuillez rï¿œintroduire votre nouveau code PIN ï¿œ des fins de vï¿œrification.", L"Geben Sie zunï¿œchst Ihre alte PIN ein, dann Ihre neue PIN und abschlieï¿œend zur Kontrolle noch einmal Ihre neue PIN."}; 
     122//DEFINE_LANG_STR(EnterOldNewVerify) = {L"Please enter your old PIN, followed by your new PIN and then enter your new PIN once more for verification purposes.", L"Geef eerst uw oude PIN in, nadien uw nieuwe PIN, en ten slotte ter controle nogmaals uw nieuwe PIN.", L"Veillez d'abord introduire votre ancien code PIN et ensuite votre nouveau code PIN. Pour terminer, veuillez rᅵintroduire votre nouveau code PIN ᅵ des fins de vᅵrification.", L"Geben Sie zunᅵchst Ihre alte PIN ein, dann Ihre neue PIN und abschlieᅵend zur Kontrolle noch einmal Ihre neue PIN."}; 
    123123DEFINE_LANG_STR(EnterOldNewVerify) = {L"1) Enter your old PIN and press 'OK'. \n2) Enter your new PIN and press 'OK'.\n3) Enter your new PIN again and press 'OK'.", 
    124124                                                                                                                                                        L"1) Introduza o seu PIN anterior e clique em 'OK'. \n2) Introduza o seu novo PIN e clique em 'OK'.\n3) Introduza novamente o seu novo PIN e clique em 'OK'.", 
    125                                                                                                                                                         L"1) Insï¿œrez votre ancien code PIN et appuyez sur ᅵᅵOKᅵᅵ.\n2) Insï¿œrez votre nouveau code PIN et appuyez sur ᅵᅵOKᅵᅵ.\n3) Insï¿œrez une nouvelle fois votre nouveau code PIN et appuyez sur ᅵᅵOKᅵᅵ.", 
    126                                                                                                                                                         L"1) Geben Sie Ihre alte PIN ein und drï¿œcken Sie 'OK'.\n2) Geben Sie Ihre neue PIN ein und drï¿œcken Sie 'OK'.\n3) Geben Sie Ihre neue PIN erneut ein und drï¿œcken Sie 'OK'."}; 
     125                                                                                                                                                        L"1) Insᅵrez votre ancien code PIN et appuyez sur ᅵᅵOKᅵᅵ.\n2) Insᅵrez votre nouveau code PIN et appuyez sur ᅵᅵOKᅵᅵ.\n3) Insᅵrez une nouvelle fois votre nouveau code PIN et appuyez sur ᅵᅵOKᅵᅵ.", 
     126                                                                                                                                                        L"1) Geben Sie Ihre alte PIN ein und drᅵcken Sie 'OK'.\n2) Geben Sie Ihre neue PIN ein und drᅵcken Sie 'OK'.\n3) Geben Sie Ihre neue PIN erneut ein und drᅵcken Sie 'OK'."}; 
    127127 
    128128#define GETSTRING_DLG(code) LANG_STR_ ## code[CLang::GetLang()] 
  • middleware-offline/trunk/_src/eidmw/eidgui/AutoUpdates.cpp

    r63 r82  
    231231 
    232232        ver = version; 
    233         //ver = "3,5"; 
    234233#else 
    235234 
    236235        QString strVersion (WIN_GUI_VERSION_STRING); 
    237236        ver = strVersion.toStdString(); 
    238  
     237    std::cout << "LOCAL VER " << ver << std::endl; 
    239238        //printf ("value %f\n", localverd); 
    240239#endif 
     
    291290                archstr = "i386"; 
    292291 
     292#elif __APPLE__ 
     293    //check if it's OSX 32 or 64 bits 
     294    distrostr = "osx"; 
     295 
     296    if( QSysInfo::WordSize == 64 ) 
     297        archstr = "x86_64"; 
     298    else 
     299        archstr = "i386"; 
    293300#else 
    294301 
     
    360367                httpWin.show(); 
    361368                httpWin.exec(); 
    362         } 
     369        }     
     370#elif __APPLE__ 
     371        if (arch == "i386") 
     372        { 
     373                pkgname.append("pteidgui.dmg"); 
     374                downloadurl.append(pkgname); 
     375                HttpWindow httpWin(downloadurl, distro); 
     376                httpWin.show(); 
     377                httpWin.exec(); 
     378        } else { 
     379                pkgname.append("pteidgui.dmg"); 
     380                downloadurl.append(pkgname); 
     381                HttpWindow httpWin(downloadurl, distro); 
     382                httpWin.show(); 
     383                httpWin.exec(); 
     384        } 
    363385#else 
    364386 
  • middleware-offline/trunk/_src/eidmw/eidgui/CardInformation.h

    r34 r82  
    498498    { 
    499499        bool            bRetVal = false; 
    500         PTEID_EId&       pteid_eid= Card.getID(); 
    501  
    502         m_Fields[PERSODATA_INFO]        =  pteid_eid.getPersoData(); 
     500 
     501        m_Fields[PERSODATA_INFO]        =  Card.readPersonalNotes(); 
    503502        return bRetVal; 
    504503        } 
  • middleware-offline/trunk/_src/eidmw/eidgui/dlgAbout.cpp

    r34 r82  
    3232{ 
    3333        ui.setupUi(this); 
    34         ui.lblVersion->setText(version); 
     34        setFixedSize(406,436); 
    3535} 
    3636 
  • middleware-offline/trunk/_src/eidmw/eidgui/dlgAbout.ui

    r34 r82  
    1010    <x>0</x> 
    1111    <y>0</y> 
    12     <width>500</width> 
    13     <height>140</height> 
     12    <width>406</width> 
     13    <height>436</height> 
    1414   </rect> 
    1515  </property> 
    1616  <property name="maximumSize"> 
    1717   <size> 
    18     <width>500</width> 
    19     <height>140</height> 
     18    <width>550</width> 
     19    <height>500</height> 
    2020   </size> 
    2121  </property> 
    2222  <property name="windowTitle"> 
    23    <string>Identity Card: About</string> 
     23   <string>About</string> 
     24  </property> 
     25  <property name="styleSheet"> 
     26   <string notr="true"/> 
    2427  </property> 
    2528  <property name="modal"> 
    2629   <bool>true</bool> 
    2730  </property> 
    28   <widget class="QLabel" name="lblIcon"> 
    29    <property name="geometry"> 
    30     <rect> 
    31      <x>20</x> 
    32      <y>10</y> 
    33      <width>113</width> 
    34      <height>79</height> 
    35     </rect> 
    36    </property> 
    37    <property name="autoFillBackground"> 
    38     <bool>false</bool> 
    39    </property> 
    40    <property name="text"> 
    41     <string/> 
    42    </property> 
    43    <property name="pixmap"> 
    44     <pixmap resource="eidgui.qrc">:/images/Images/a-z_identiteitskaart_logo.png</pixmap> 
    45    </property> 
    46   </widget> 
    47   <widget class="QWidget" name="layoutWidget"> 
     31  <widget class="QLabel" name="label_2"> 
     32   <property name="geometry"> 
     33    <rect> 
     34     <x>20</x> 
     35     <y>250</y> 
     36     <width>371</width> 
     37     <height>22</height> 
     38    </rect> 
     39   </property> 
     40   <property name="text"> 
     41    <string>O software de Middleware do cartão de cidadão é </string> 
     42   </property> 
     43  </widget> 
     44  <widget class="QPushButton" name="btnOK"> 
     45   <property name="geometry"> 
     46    <rect> 
     47     <x>300</x> 
     48     <y>400</y> 
     49     <width>85</width> 
     50     <height>27</height> 
     51    </rect> 
     52   </property> 
     53   <property name="text"> 
     54    <string>Fechar</string> 
     55   </property> 
     56  </widget> 
     57  <widget class="QLabel" name="label_3"> 
     58   <property name="geometry"> 
     59    <rect> 
     60     <x>20</x> 
     61     <y>100</y> 
     62     <width>349</width> 
     63     <height>22</height> 
     64    </rect> 
     65   </property> 
     66   <property name="text"> 
     67    <string>Aplicação Oficial do Cartão de Cidadão Português.</string> 
     68   </property> 
     69  </widget> 
     70  <widget class="QLabel" name="label_4"> 
     71   <property name="geometry"> 
     72    <rect> 
     73     <x>20</x> 
     74     <y>150</y> 
     75     <width>361</width> 
     76     <height>21</height> 
     77    </rect> 
     78   </property> 
     79   <property name="text"> 
     80    <string>Caso tenha dificuldades na utilização desta aplicação,</string> 
     81   </property> 
     82   <property name="textFormat"> 
     83    <enum>Qt::PlainText</enum> 
     84   </property> 
     85  </widget> 
     86  <widget class="QLabel" name="label_5"> 
     87   <property name="geometry"> 
     88    <rect> 
     89     <x>20</x> 
     90     <y>170</y> 
     91     <width>361</width> 
     92     <height>21</height> 
     93    </rect> 
     94   </property> 
     95   <property name="text"> 
     96    <string>por favor consulte os manuais e secção de &quot;Perguntas </string> 
     97   </property> 
     98   <property name="textFormat"> 
     99    <enum>Qt::PlainText</enum> 
     100   </property> 
     101  </widget> 
     102  <widget class="QLabel" name="label_6"> 
     103   <property name="geometry"> 
     104    <rect> 
     105     <x>20</x> 
     106     <y>190</y> 
     107     <width>361</width> 
     108     <height>21</height> 
     109    </rect> 
     110   </property> 
     111   <property name="text"> 
     112    <string>Frequentes&quot; (FAQ), no site do cartão de cidadão:</string> 
     113   </property> 
     114   <property name="textFormat"> 
     115    <enum>Qt::PlainText</enum> 
     116   </property> 
     117  </widget> 
     118  <widget class="QWidget" name="widget" native="true"> 
    48119   <property name="geometry"> 
    49120    <rect> 
    50121     <x>0</x> 
    51      <y>100</y> 
    52      <width>483</width> 
    53      <height>29</height> 
    54     </rect> 
    55    </property> 
    56    <layout class="QHBoxLayout"> 
    57     <item> 
    58      <spacer> 
    59       <property name="orientation"> 
    60        <enum>Qt::Horizontal</enum> 
    61       </property> 
    62       <property name="sizeHint" stdset="0"> 
    63        <size> 
    64         <width>211</width> 
    65         <height>25</height> 
    66        </size> 
    67       </property> 
    68      </spacer> 
    69     </item> 
    70     <item> 
    71      <widget class="QPushButton" name="btnOK"> 
    72       <property name="text"> 
    73        <string>&amp;OK</string> 
    74       </property> 
    75      </widget> 
    76     </item> 
    77     <item> 
    78      <spacer> 
    79       <property name="orientation"> 
    80        <enum>Qt::Horizontal</enum> 
    81       </property> 
    82       <property name="sizeHint" stdset="0"> 
    83        <size> 
    84         <width>181</width> 
    85         <height>25</height> 
    86        </size> 
    87       </property> 
    88      </spacer> 
    89     </item> 
    90    </layout> 
    91   </widget> 
    92   <widget class="QLabel" name="lblVersion"> 
    93    <property name="geometry"> 
    94     <rect> 
    95      <x>340</x> 
    96      <y>10</y> 
    97      <width>121</width> 
    98      <height>22</height> 
    99     </rect> 
    100    </property> 
    101    <property name="text"> 
    102     <string/> 
    103    </property> 
     122     <y>0</y> 
     123     <width>541</width> 
     124     <height>91</height> 
     125    </rect> 
     126   </property> 
     127   <property name="styleSheet"> 
     128    <string notr="true">background-color: rgb(255, 255, 255);</string> 
     129   </property> 
     130   <widget class="QLabel" name="lblIcon"> 
     131    <property name="geometry"> 
     132     <rect> 
     133      <x>20</x> 
     134      <y>0</y> 
     135      <width>361</width> 
     136      <height>79</height> 
     137     </rect> 
     138    </property> 
     139    <property name="autoFillBackground"> 
     140     <bool>false</bool> 
     141    </property> 
     142    <property name="text"> 
     143     <string/> 
     144    </property> 
     145    <property name="pixmap"> 
     146     <pixmap resource="eidgui.qrc">:/images/Images/a-z_identiteitskaart_logo.png</pixmap> 
     147    </property> 
     148   </widget> 
    104149  </widget> 
    105150  <widget class="QLabel" name="label"> 
    106151   <property name="geometry"> 
    107152    <rect> 
    108      <x>141</x> 
    109      <y>39</y> 
     153     <x>20</x> 
     154     <y>210</y> 
     155     <width>241</width> 
     156     <height>17</height> 
     157    </rect> 
     158   </property> 
     159   <property name="text"> 
     160    <string>&lt;a href=&quot;http://cartaodecidadao.pt&quot;&gt; http://cartaodecidadao.pt</string> 
     161   </property> 
     162   <property name="openExternalLinks"> 
     163    <bool>true</bool> 
     164   </property> 
     165  </widget> 
     166  <widget class="QLabel" name="label_7"> 
     167   <property name="geometry"> 
     168    <rect> 
     169     <x>20</x> 
     170     <y>270</y> 
     171     <width>371</width> 
     172     <height>22</height> 
     173    </rect> 
     174   </property> 
     175   <property name="text"> 
     176    <string>disponibilizado sob licença EUPL 1.1:</string> 
     177   </property> 
     178  </widget> 
     179  <widget class="QLabel" name="label_8"> 
     180   <property name="geometry"> 
     181    <rect> 
     182     <x>20</x> 
     183     <y>290</y> 
     184     <width>361</width> 
     185     <height>17</height> 
     186    </rect> 
     187   </property> 
     188   <property name="text"> 
     189    <string>&lt;a href=&quot;http://ec.europa.eu/idabc/servlets/Doca924.pdf?id=31990&quot;&gt; http://ec.europa.eu/idabc/servlets/Doca924.pdf?id=31990</string> 
     190   </property> 
     191   <property name="openExternalLinks"> 
     192    <bool>true</bool> 
     193   </property> 
     194  </widget> 
     195  <widget class="QLabel" name="label_9"> 
     196   <property name="geometry"> 
     197    <rect> 
     198     <x>20</x> 
     199     <y>330</y> 
     200     <width>371</width> 
     201     <height>22</height> 
     202    </rect> 
     203   </property> 
     204   <property name="text"> 
     205    <string>Desenvolvido por Caixa Mágica Software e Mr.Net,</string> 
     206   </property> 
     207  </widget> 
     208  <widget class="QLabel" name="label_10"> 
     209   <property name="geometry"> 
     210    <rect> 
     211     <x>20</x> 
     212     <y>350</y> 
     213     <width>371</width> 
     214     <height>22</height> 
     215    </rect> 
     216   </property> 
     217   <property name="text"> 
     218    <string>com base no projecto belga eID Middleware :</string> 
     219   </property> 
     220  </widget> 
     221  <widget class="QLabel" name="label_11"> 
     222   <property name="geometry"> 
     223    <rect> 
     224     <x>20</x> 
     225     <y>370</y> 
     226     <width>361</width> 
     227     <height>17</height> 
     228    </rect> 
     229   </property> 
     230   <property name="text"> 
     231    <string>&lt;a href=&quot;http://code.google.com/p/eid-mw/&quot;&gt; http://code.google.com/p/eid-mw/</string> 
     232   </property> 
     233   <property name="openExternalLinks"> 
     234    <bool>true</bool> 
     235   </property> 
     236  </widget> 
     237  <widget class="QLabel" name="label_12"> 
     238   <property name="geometry"> 
     239    <rect> 
     240     <x>20</x> 
     241     <y>120</y> 
    110242     <width>349</width> 
    111      <height>23</height> 
    112     </rect> 
    113    </property> 
    114    <property name="text"> 
    115     <string>Copyright © 2009-2011</string> 
    116    </property> 
    117    <property name="alignment"> 
    118     <set>Qt::AlignCenter</set> 
    119    </property> 
    120   </widget> 
    121   <widget class="QLabel" name="label_2"> 
    122    <property name="geometry"> 
    123     <rect> 
    124      <x>141</x> 
    125      <y>68</y> 
    126      <width>349</width> 
    127      <height>22</height> 
    128     </rect> 
    129    </property> 
    130    <property name="text"> 
    131     <string>Caixa Mágica Software</string> 
    132    </property> 
    133    <property name="alignment"> 
    134     <set>Qt::AlignCenter</set> 
    135    </property> 
    136   </widget> 
    137   <widget class="QLabel" name="lblInfoTop"> 
    138    <property name="geometry"> 
    139     <rect> 
    140      <x>150</x> 
    141      <y>10</y> 
    142      <width>181</width> 
    143      <height>22</height> 
    144     </rect> 
    145    </property> 
    146    <property name="maximumSize"> 
    147     <size> 
    148      <width>200</width> 
    149      <height>100</height> 
    150     </size> 
    151    </property> 
    152    <property name="text"> 
    153     <string>Portuguese eID Runtime</string> 
    154    </property> 
    155    <property name="alignment"> 
    156     <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> 
    157    </property> 
    158   </widget> 
     243     <height>22</height> 
     244    </rect> 
     245   </property> 
     246   <property name="text"> 
     247    <string>Versão 2.0</string> 
     248   </property> 
     249  </widget> 
     250  <zorder>label_2</zorder> 
     251  <zorder></zorder> 
     252  <zorder></zorder> 
     253  <zorder>btnOK</zorder> 
     254  <zorder>label_3</zorder> 
     255  <zorder>label_4</zorder> 
     256  <zorder>label_5</zorder> 
     257  <zorder>label_6</zorder> 
     258  <zorder>widget</zorder> 
     259  <zorder>label</zorder> 
     260  <zorder>label_7</zorder> 
     261  <zorder>label_8</zorder> 
     262  <zorder>label_9</zorder> 
     263  <zorder>label_10</zorder> 
     264  <zorder>label_11</zorder> 
     265  <zorder>label_12</zorder> 
    159266 </widget> 
    160267 <resources> 
  • middleware-offline/trunk/_src/eidmw/eidgui/dlgPrint.ui

    r77 r82  
    3838        <x>20</x> 
    3939        <y>50</y> 
    40         <width>140</width> 
    41         <height>20</height> 
    42        </rect> 
    43       </property> 
    44       <property name="sizePolicy"> 
    45        <sizepolicy hsizetype="Fixed" vsizetype="Expanding"> 
    46         <horstretch>0</horstretch> 
    47         <verstretch>0</verstretch> 
    48        </sizepolicy> 
    49       </property> 
    50       <property name="text"> 
    51        <string>Indicações Extra</string> 
     40        <width>191</width> 
     41        <height>20</height> 
     42       </rect> 
     43      </property> 
     44      <property name="sizePolicy"> 
     45       <sizepolicy hsizetype="Fixed" vsizetype="Expanding"> 
     46        <horstretch>0</horstretch> 
     47        <verstretch>0</verstretch> 
     48       </sizepolicy> 
     49      </property> 
     50      <property name="text"> 
     51       <string>Additional Indications</string> 
    5252      </property> 
    5353     </widget> 
     
    5858        <y>0</y> 
    5959        <width>421</width> 
    60         <height>20</height> 
     60        <height>21</height> 
    6161       </rect> 
    6262      </property> 
     
    6565      </property> 
    6666      <property name="text"> 
    67        <string>Selecione os grupos de campos pretendidos:</string> 
     67       <string>Select the fields you want to include:</string> 
    6868      </property> 
    6969     </widget> 
     
    7373        <x>20</x> 
    7474        <y>30</y> 
    75         <width>154</width> 
    76         <height>20</height> 
    77        </rect> 
    78       </property> 
    79       <property name="sizePolicy"> 
    80        <sizepolicy hsizetype="Fixed" vsizetype="Expanding"> 
    81         <horstretch>0</horstretch> 
    82         <verstretch>0</verstretch> 
    83        </sizepolicy> 
    84       </property> 
    85       <property name="text"> 
    86        <string>Indicações Básicas</string> 
     75        <width>191</width> 
     76        <height>20</height> 
     77       </rect> 
     78      </property> 
     79      <property name="sizePolicy"> 
     80       <sizepolicy hsizetype="Fixed" vsizetype="Expanding"> 
     81        <horstretch>0</horstretch> 
     82        <verstretch>0</verstretch> 
     83       </sizepolicy> 
     84      </property> 
     85      <property name="text"> 
     86       <string>Basic Indications</string> 
    8787      </property> 
    8888     </widget> 
     
    103103      </property> 
    104104      <property name="text"> 
    105        <string>Morada</string> 
     105       <string>Address</string> 
    106106      </property> 
    107107     </widget> 
     
    122122      </property> 
    123123      <property name="text"> 
    124        <string>Indicações Pessoais</string> 
     124       <string>Personal Notes</string> 
    125125      </property> 
    126126     </widget> 
     
    135135      </property> 
    136136      <property name="text"> 
    137        <string>Cancelar</string> 
     137       <string>Cancel</string> 
    138138      </property> 
    139139     </widget> 
     
    151151      </property> 
    152152      <property name="text"> 
    153        <string>Imprimir</string> 
     153       <string>Print...</string> 
    154154      </property> 
    155155     </widget> 
     
    167167      </property> 
    168168      <property name="text"> 
    169        <string>Criar PDF</string> 
     169       <string>Create PDF...</string> 
    170170      </property> 
    171171     </widget> 
     
    186186      </property> 
    187187      <property name="text"> 
    188        <string>Assinatura Digital (XAdES)</string> 
     188       <string>Digital Signature (XAdES)</string> 
    189189      </property> 
    190190     </widget> 
     
    202202      </property> 
    203203      <property name="text"> 
    204        <string>Opções:</string> 
     204       <string>Options:</string> 
    205205      </property> 
    206206     </widget> 
  • middleware-offline/trunk/_src/eidmw/eidgui/dlgSignature.ui

    r41 r82  
    77    <x>0</x> 
    88    <y>0</y> 
    9     <width>483</width> 
    10     <height>292</height> 
     9    <width>489</width> 
     10    <height>290</height> 
    1111   </rect> 
    1212  </property> 
     
    1818  </property> 
    1919  <property name="windowTitle"> 
    20    <string>Assinatura de Ficheiros (XADES)</string> 
     20   <string>File Signature (XAdES)</string> 
    2121  </property> 
    2222  <property name="windowIcon"> 
     
    4343   </property> 
    4444   <property name="text"> 
    45     <string>Adicionar Ficheiros</string> 
     45    <string>Add Files...</string> 
    4646   </property> 
    4747  </widget> 
     
    5656   </property> 
    5757   <property name="text"> 
    58     <string>Lista de Ficheiros a assinar</string> 
     58    <string>Files to Sign</string> 
    5959   </property> 
    6060  </widget> 
     
    6969   </property> 
    7070   <property name="text"> 
    71     <string>Cancelar</string> 
     71    <string>Cancel</string> 
    7272   </property> 
    7373  </widget> 
     
    8585   </property> 
    8686   <property name="text"> 
    87     <string>Assinar</string> 
     87    <string>Sign...</string> 
    8888   </property> 
    8989  </widget> 
     
    9898   </property> 
    9999  </widget> 
    100   <widget class="QCheckBox" name="checkBox"> 
     100  <widget class="QCheckBox" name="checkbox_timestamp"> 
    101101   <property name="geometry"> 
    102102    <rect> 
     
    108108   </property> 
    109109   <property name="text"> 
    110     <string>Adicionar TimeStamp (XADES-T)</string> 
     110    <string>Add Timestamp (XAdES-T)</string> 
     111   </property> 
     112  </widget> 
     113  <widget class="QCheckBox" name="checkbox_singlefiles"> 
     114   <property name="geometry"> 
     115    <rect> 
     116     <x>10</x> 
     117     <y>260</y> 
     118     <width>221</width> 
     119     <height>20</height> 
     120    </rect> 
     121   </property> 
     122   <property name="text"> 
     123    <string>Create Individual Signatures</string> 
    111124   </property> 
    112125  </widget> 
  • middleware-offline/trunk/_src/eidmw/eidgui/dlgVerifySignature.ui

    r41 r82  
    1212  </property> 
    1313  <property name="windowTitle"> 
    14    <string>Validação de Assinaturas</string> 
     14   <string>Signature Validation</string> 
    1515  </property> 
    1616  <property name="windowIcon"> 
     
    4444   </property> 
    4545   <property name="text"> 
    46     <string>Fechar</string> 
     46    <string>Close</string> 
    4747   </property> 
    4848  </widget> 
     
    6060   </property> 
    6161   <property name="text"> 
    62     <string>Selecionar Assinatura</string> 
     62    <string>Select Signature File...</string> 
    6363   </property> 
    6464  </widget> 
  • middleware-offline/trunk/_src/eidmw/eidgui/dlgprint.cpp

    r77 r82  
    4444    { 
    4545                ui.setupUi(this); 
     46                setFixedSize(378, 233); 
    4647                const QIcon Ico = QIcon( ":/images/Images/Icons/Print.png" ); 
    4748                this->setWindowIcon( Ico ); 
  • middleware-offline/trunk/_src/eidmw/eidgui/dlgsignature.cpp

    r63 r82  
    1717 * http://www.gnu.org/licenses/. 
    1818 * 
    19  * Author: Luis Medinas <luis.medinas@caixamagica.pt> 
     19 * Authors: Luis Medinas <luis.medinas@caixamagica.pt> 
     20 *          André Guerreiro <andre.guerreiro@caixamagica.pt>    
     21 * 
    2022 **************************************************************************** */ 
    2123 
    2224#include <QListView> 
     25#include <QFileInfo> 
     26#include <QDir> 
    2327 
    2428#include <fstream> 
    2529#include <iostream> 
     30#include <string.h> 
    2631 
    2732#include "dlgsignature.h" 
     33 
    2834#include "eidlib.h" 
    2935#include "mainwnd.h" 
     
    7379} 
    7480 
     81void dlgSignature::ShowErrorMsgBox() 
     82{ 
     83 
     84        QString caption  = tr("Error"); 
     85        QString msg = tr("Error Generating Signature!"); 
     86        QMessageBox msgBoxp(QMessageBox::Warning, caption, msg, 0, this); 
     87        msgBoxp.exec(); 
     88} 
     89 
    7590void dlgSignature::on_pbCancel_clicked( void ) 
    7691{ 
     
    155170        QAbstractItemModel* model = view->model() ; 
    156171        QStringList strlist; 
     172        QFuture<void> future; 
     173        int n_files; 
    157174 
    158175        for ( int i = 0 ; i < model->rowCount() ; ++i ) 
     
    162179        } 
    163180 
    164         try 
    165         { 
    166             int i; 
    167             int listsize = strlist.count(); 
    168             char *cpychar; 
    169             const char **files_to_sign = new const char*[listsize]; 
    170                         char *output_file; 
    171  
    172             for (i=0; i < listsize; i++) 
    173             { 
    174                 int listtotalLength = strlist.at(i).size(); 
    175                 QString s = QDir::toNativeSeparators(strlist.at(i)); 
    176                 cpychar = new char[listtotalLength+1]; 
     181        int listsize = strlist.count(); 
     182        char *cpychar; 
     183        const char **files_to_sign = new const char*[listsize]; 
     184        char *output_file; 
     185 
     186        QCheckBox *signatures_checkbox = ui.checkbox_singlefiles; 
     187        bool individual_sigs = signatures_checkbox->checkState() == Qt::Checked; 
     188        for (n_files = 0; n_files < listsize; n_files++) 
     189        { 
     190                int listtotalLength = strlist.at(n_files).size(); 
     191                QString s = QDir::toNativeSeparators(strlist.at(n_files)); 
     192 
     193                cpychar = new char[listtotalLength+1]; 
    177194#ifdef WIN32             
    178                 strcpy(cpychar, s.toStdString().c_str()); 
     195                strcpy(cpychar, s.toStdString().c_str()); 
    179196#else            
    180                 strcpy(cpychar, s.toUtf8().constData()); 
     197                strcpy(cpychar, s.toUtf8().constData()); 
    181198#endif           
    182                 files_to_sign[i] = cpychar; 
    183                                 PTEID_LOG(PTEID_LOG_LEVEL_DEBUG, "eidgui", "File to Sign: %s", files_to_sign[i]); 
    184             } 
    185  
    186             QString defaultsavefilepath; 
    187             QString savefilepath; 
    188             QString nativedafaultpath; 
    189  
    190             defaultsavefilepath = QDir::homePath(); 
    191             defaultsavefilepath.append("/xadessign.zip"); 
    192             nativedafaultpath = QDir::toNativeSeparators(defaultsavefilepath); 
    193             savefilepath = QFileDialog::getSaveFileName(this, tr("Save File"), nativedafaultpath, tr("Zip files 'XAdES' (*.zip)")); 
    194             QString native_path = QDir::toNativeSeparators(savefilepath); 
    195  
    196             pdialog = new QProgressDialog(); 
    197             pdialog->setWindowModality(Qt::WindowModal); 
    198             pdialog->setWindowTitle(tr("Sign")); 
    199             pdialog->setLabelText(tr("Signing data...")); 
    200             pdialog->setMinimum(0); 
    201             pdialog->setMaximum(0); 
    202             connect(&this->FutureWatcher, SIGNAL(finished()), pdialog, SLOT(cancel())); 
    203  
    204                 //Get the Xades-T checkbox value 
    205                 QCheckBox *xades_t = ui.checkBox; 
    206                 bool is_xades_t = xades_t->checkState() == Qt::Checked; 
    207              
     199                files_to_sign[n_files] = cpychar; 
     200                PTEID_LOG(PTEID_LOG_LEVEL_DEBUG, "eidgui", "File to Sign: %s", files_to_sign[n_files]); 
     201        } 
     202 
     203        QString defaultsavefilepath; 
     204        QString savefilepath; 
     205        QString nativedafaultpath; 
     206 
     207        defaultsavefilepath = QDir::homePath(); 
     208        defaultsavefilepath.append("/xadessign.zip"); 
     209        nativedafaultpath = QDir::toNativeSeparators(defaultsavefilepath); 
     210        if (individual_sigs) 
     211        { 
     212                savefilepath = QFileDialog::getExistingDirectory(this, tr("Open Directory"), 
     213                                QDir::homePath(), 
     214                                QFileDialog::ShowDirsOnly); 
     215                //std::cout << "Savefilepath: " << savefilepath.toStdString() << std::endl; 
     216 
     217        } 
     218        else 
     219                savefilepath = QFileDialog::getSaveFileName(this, tr("Save File"),  
     220                                nativedafaultpath, tr("Zip files 'XAdES' (*.zip)")); 
     221        QString native_path = QDir::toNativeSeparators(savefilepath); 
     222 
     223        pdialog = new QProgressDialog(); 
     224        pdialog->setWindowModality(Qt::WindowModal); 
     225        pdialog->setWindowTitle(tr("Sign")); 
     226        pdialog->setLabelText(tr("Signing data...")); 
     227        pdialog->setMinimum(0); 
     228        pdialog->setMaximum(0); 
     229        connect(&this->FutureWatcher, SIGNAL(finished()), pdialog, SLOT(cancel())); 
     230 
     231        //Get the Xades-T checkbox value 
     232        QCheckBox *xades_t = ui.checkbox_timestamp; 
     233        bool is_xades_t = xades_t->checkState() == Qt::Checked; 
     234 
    208235 
    209236#ifdef WIN32             
    210             size_t len_2 = strlen(native_path.toStdString().c_str()); 
    211                 output_file = new char[len_2+1]; 
    212                 strcpy(output_file,(char*)native_path.toStdString().c_str()); 
     237        size_t len_2 = strlen(native_path.toStdString().c_str()); 
     238        output_file = new char[len_2+1]; 
     239        strcpy(output_file,(char*)native_path.toStdString().c_str()); 
    213240#else 
    214                 int outp_len = native_path.size();  
    215                 output_file =  new char[outp_len*2]; 
    216             strncpy(output_file, native_path.toUtf8().constData(), outp_len*2); 
     241        int outp_len = native_path.size();  
     242        output_file =  new char[outp_len*2]; 
     243        strncpy(output_file, native_path.toUtf8().constData(), outp_len*2); 
    217244#endif       
    218             PTEID_LOG(PTEID_LOG_LEVEL_DEBUG, "eidgui", "Save to file %s", output_file); 
    219             QFuture<void> future = QtConcurrent::run(this, &dlgSignature::runsign, files_to_sign, i, output_file, is_xades_t); 
    220             this->FutureWatcher.setFuture(future); 
    221  
    222             pdialog->exec(); 
    223  
    224             delete []files_to_sign; 
    225             delete cpychar; 
    226             delete []output_file; 
    227         } 
    228         catch (PTEID_Exception &e) 
    229         { 
    230             QString msg(tr("General exception")); 
    231             return; 
    232         } 
    233  
    234         this->close(); 
     245        PTEID_LOG(PTEID_LOG_LEVEL_DEBUG, "eidgui", "Save to file %s", output_file); 
     246        if (individual_sigs) 
     247                future =  
     248                        QtConcurrent::run(this, &dlgSignature::run_multiple_sign, files_to_sign, n_files, output_file, is_xades_t); 
     249                 
     250        else 
     251                future =  
     252                        QtConcurrent::run(this, &dlgSignature::runsign, files_to_sign, n_files, output_file, is_xades_t); 
     253        this->FutureWatcher.setFuture(future); 
     254 
     255        pdialog->exec(); 
     256 
     257        delete []files_to_sign; 
     258        delete cpychar; 
     259        delete []output_file; 
     260 
     261        this->close(); 
    235262} 
    236263 
     
    240267    try 
    241268    { 
    242             PTEID_EIDCard*      Card = dynamic_cast<PTEID_EIDCard*>(m_CI_Data.m_pCard); 
    243             PTEID_ByteArray SignXades; 
    244                         if (timestamp) 
    245                                 SignXades = Card->SignXadesT(paths, n_paths, output_path); 
    246                         else 
    247                                 SignXades = Card->SignXades(paths, n_paths, output_path); 
    248          
     269            PTEID_EIDCard*      Card = dynamic_cast<PTEID_EIDCard*>(m_CI_Data.m_pCard); 
     270            PTEID_ByteArray SignXades; 
     271            if (timestamp) 
     272                    SignXades = Card->SignXadesT(paths, n_paths, output_path); 
     273            else 
     274                    SignXades = Card->SignXades(paths, n_paths, output_path); 
     275 
    249276    } 
    250277    catch (PTEID_Exception &e) 
    251278    { 
    252         QString msg(tr("General exception")); 
    253         return; 
     279            ShowErrorMsgBox(); 
    254280    } 
    255281 
    256282    return; 
    257283} 
     284 
     285void replace_lastdot_inplace(char* initial_file_path) 
     286{ 
     287        // We can only search forward because memrchr and strrchr  
     288        // are not available on Windows *sigh* 
     289        char ch = '.'; 
     290        char * pdest = NULL, *last_dot= NULL; 
     291        while ((pdest = strchr(initial_file_path, ch)) != NULL) 
     292             last_dot = pdest; 
     293        if (last_dot != NULL) 
     294                *last_dot = '_'; 
     295} 
     296 
     297 
     298 
     299//XXX: output_path in this case should be a directory path 
     300void dlgSignature::run_multiple_sign(const char ** paths, unsigned int n_paths, const char *output_path, bool timestamp) 
     301{ 
     302 
     303    try 
     304    { 
     305         
     306            PTEID_EIDCard*      Card = dynamic_cast<PTEID_EIDCard*>(m_CI_Data.m_pCard); 
     307            if (timestamp) 
     308                    Card->SignXadesTIndividual(paths, n_paths, output_path); 
     309            else 
     310                    Card->SignXadesIndividual(paths, n_paths, output_path); 
     311    } 
     312    catch (PTEID_Exception &e) 
     313    { 
     314            ShowErrorMsgBox(); 
     315    } 
     316 
     317    return; 
     318} 
  • middleware-offline/trunk/_src/eidmw/eidgui/dlgsignature.h

    r63 r82  
    1818 *  
    1919 * Author: Luis Medinas <luis.medinas@caixamagica.pt> 
     20 *         André Guerreiro <andre.guerreiro@caixamagica.pt>     
     21 * 
    2022 **************************************************************************** */ 
    2123 
     
    5456    void SignListView (QStringList list); 
    5557    void runsign(const char ** paths, unsigned int n_paths, const char *output_path, bool timestamp); 
     58    void run_multiple_sign(const char**, unsigned int, const char*, bool); 
     59    void ShowErrorMsgBox(); 
    5660 
    5761}; 
  • middleware-offline/trunk/_src/eidmw/eidgui/eidgui.pro

    r59 r82  
    102102INCLUDEPATH += /usr/include/cairo 
    103103 
    104 LIBS += -Wl,-rpath,/usr/local/lib/pteidqt 
    105  
    106104LIBS += -L../lib  \ 
    107105        -l$${EIDLIB} \ 
    108106        -l$${COMMONLIB} \ 
    109         -l$${APPLAYERLIB} \ 
     107        -l$${APPLAYERLIB} \ 
    110108        -lfreeimagePTEiD 
    111109 
  • middleware-offline/trunk/_src/eidmw/eidgui/eidmw_nl.ts

    r59 r82  
    55    <name>MainWnd</name> 
    66    <message> 
    7         <location filename="mainwnd.cpp" line="2385"/> 
    8         <location filename="mainwnd.cpp" line="2416"/> 
    97        <source>Warning</source> 
    10         <translation>Aviso</translation> 
    11     </message> 
    12     <message> 
    13         <location filename="mainwnd.cpp" line="2386"/> 
    14         <location filename="mainwnd.cpp" line="2417"/> 
     8        <translation type="unfinished">Aviso</translation> 
     9    </message> 
     10    <message> 
    1511        <source>A problem has occurred while trying to read card. Please, try again.</source> 
    16         <translation>Ocorreu um erro ao tentar ler o cartão. Tente novamente por favor.</translation> 
    17     </message> 
    18     <message> 
    19         <location filename="mainwnd.ui" line="23"/> 
     12        <translation type="unfinished">Ocorreu um erro ao tentar ler o cartão. Tente novamente por favor.</translation> 
     13    </message> 
     14    <message> 
    2015        <source>Portuguese ID Card Management</source> 
    2116        <translation>Aplicação Oficial do Cartão de Cidadão</translation> 
    2217    </message> 
    2318    <message> 
    24         <location filename="mainwnd.ui" line="1629"/> 
    2519        <source>Additional Data</source> 
    2620        <translation>Outros Dados</translation> 
    2721    </message> 
    2822    <message> 
    29         <location filename="mainwnd.ui" line="1608"/> 
    3023        <source>Identity</source> 
    3124        <translation>Identidade</translation> 
    3225    </message> 
    3326    <message> 
    34         <location filename="mainwnd.ui" line="1713"/> 
    3527        <source>Notes</source> 
    3628        <translation>Notas</translation> 
    3729    </message> 
    3830    <message> 
    39         <location filename="mainwnd.ui" line="1692"/> 
    4031        <source>PIN Codes</source> 
    4132        <translation>Códigos PIN</translation> 
    4233    </message> 
    4334    <message> 
    44         <location filename="mainwnd.ui" line="1875"/> 
    4535        <source>Help</source> 
    4636        <translation>Ajuda</translation> 
    4737    </message> 
    48      
    49     <message> 
    50         <location filename="mainwnd.ui" line="2002"/> 
     38    <message> 
    5139        <source>Read Card</source> 
    5240        <translation>Ler Cartão</translation> 
    5341    </message> 
    5442    <message> 
    55         <location filename="mainwnd.ui" line="2055"/> 
    5643        <source>Export / Print</source> 
    5744        <translation>Exportar/Imprimir</translation> 
    5845    </message> 
    5946    <message> 
    60         <location filename="mainwnd.ui" line="2020"/> 
    6147        <source>Exit</source> 
    6248        <translation>Sair</translation> 
    6349    </message> 
    6450    <message> 
    65         <location filename="mainwnd.ui" line="2314"/> 
    6651        <source>Portuguese</source> 
    6752        <translation>Português</translation> 
    6853    </message> 
    6954    <message> 
    70         <location filename="mainwnd.ui" line="2332"/> 
    7155        <source>English</source> 
    7256        <translation>Inglês</translation> 
    7357    </message> 
    7458    <message> 
    75         <location filename="mainwnd.ui" line="2158"/> 
    7659        <source>Parameters</source> 
    7760        <translation>Parâmetros</translation> 
    7861    </message> 
    7962    <message> 
    80         <location filename="mainwnd.ui" line="2193"/> 
    8163        <source>Signature</source> 
    8264        <translation>Assinatura</translation> 
    8365    </message> 
    8466    <message> 
    85         <location filename="mainwnd.ui" line="2211"/> 
    8667        <source>Verify Signature</source> 
    8768        <translation>Verificar Assinatura</translation> 
    8869    </message> 
    8970    <message> 
    90         <location filename="mainwnd.ui" line="2469"/> 
    9171        <source>Updates</source> 
    9272        <translation>Actualizações</translation> 
    9373    </message> 
    9474    <message> 
    95         <location filename="mainwnd.ui" line="2434"/> 
    9675        <source>About</source> 
    9776        <translation>Acerca</translation> 
    9877    </message> 
    99      
    100      
    101      
    102     <message> 
    103         <location filename="mainwnd.ui" line="1775"/> 
    104         <location filename="mainwnd.ui" line="2086"/> 
     78    <message> 
    10579        <source>Tools</source> 
    10680        <translation>Opções</translation> 
    10781    </message> 
    10882    <message> 
    109         <location filename="mainwnd.ui" line="1984"/> 
    110         <location filename="mainwnd.ui" line="2341"/> 
    111         <location filename="mainwnd.ui" line="2521"/> 
    11283        <source>Card</source> 
    11384        <translation>Cartão</translation> 
    11485    </message> 
    11586    <message> 
    116         <location filename="mainwnd.ui" line="1749"/> 
    11787        <source>      Card</source> 
    11888        <translation>      Cartão</translation> 
    11989    </message> 
    120      
    121     <message> 
    122         <location filename="mainwnd.ui" line="404"/> 
     90    <message> 
    12391        <source>Kaartnr. / &lt;i&gt;Card No&lt;/i&gt;</source> 
    12492        <translation>Num. Cartão / &lt;i&gt;Card No&lt;/i&gt;</translation> 
    12593    </message> 
    12694    <message> 
    127         <location filename="mainwnd.ui" line="436"/> 
    128         <location filename="mainwnd.ui" line="1447"/> 
    129         <location filename="mainwnd.ui" line="2191"/> 
    13095        <source>Geldig van - tot / &lt;i&gt;Valid from - until&lt;/i&gt;</source> 
    13196        <translation>Validade / &lt;i&gt;Valid from - until&lt;/i&gt;</translation> 
    13297    </message> 
    13398    <message> 
    134         <location filename="mainwnd.ui" line="471"/> 
    13599        <source>Ouders / &lt;i&gt;Parents&lt;/i&gt;</source> 
    136100        <translation>Filiação / &lt;i&gt;Parents&lt;/i&gt;</translation> 
    137101    </message> 
    138102    <message> 
    139         <location filename="mainwnd.ui" line="662"/> 
    140103        <source>Foreigners</source> 
    141104        <translation>Estrangeiros</translation> 
    142105    </message> 
    143106    <message> 
    144         <location filename="mainwnd.ui" line="699"/> 
    145         <location filename="mainwnd.cpp" line="4359"/> 
    146107        <source>Name</source> 
    147108        <translation>Nome</translation> 
    148109    </message> 
    149110    <message utf8="true"> 
    150         <location filename="mainwnd.ui" line="904"/> 
    151111        <source>Belgische verblijfstitel - Titre de séjour belge</source> 
    152112        <translation>Belgische verblijfstitel - Titre de séjour belge</translation> 
    153113    </message> 
    154114    <message> 
    155         <location filename="mainwnd.ui" line="923"/> 
    156115        <source>Belgischer Aufenthaltstitel - Belgian residence permit</source> 
    157116        <translation>Belgischer Aufenthaltstitel - Belgian residence permit</translation> 
    158117    </message> 
    159118    <message> 
    160         <location filename="mainwnd.ui" line="935"/> 
    161119        <source>Sis</source> 
    162120        <translation>SIS</translation> 
    163121    </message> 
    164122    <message> 
    165         <location filename="mainwnd.ui" line="1182"/> 
    166123        <source>Identity &amp;Extra</source> 
    167124        <translation>Outros Dados</translation> 
    168125    </message> 
    169126    <message> 
    170         <location filename="mainwnd.ui" line="1109"/> 
    171127        <source>Identificatienummer&lt;br&gt;&lt;i&gt;National Number&lt;/i&gt;</source> 
    172128        <translation>Num. Identificação&lt;br&gt;&lt;i&gt;National Number&lt;/i&gt;</translation> 
    173129    </message> 
    174130    <message> 
    175         <location filename="mainwnd.ui" line="1153"/> 
    176131        <source>Chip nummer / &lt;i&gt;Chip number&lt;/i&gt;</source> 
    177132        <translation>Num. Chip / &lt;i&gt;Chip number&lt;/i&gt;</translation> 
    178133    </message> 
    179134    <message> 
    180         <location filename="mainwnd.ui" line="1306"/> 
    181135        <source>Kaart nummer / &lt;i&gt;Card number&lt;/i&gt;</source> 
    182136        <translation>Num. Cartão / &lt;i&gt;Card number&lt;/i&gt;</translation> 
    183137    </message> 
    184138    <message> 
    185         <location filename="mainwnd.ui" line="1544"/> 
    186139        <source>Special Status</source> 
    187140        <translation>Anotações especiais</translation> 
    188141    </message> 
    189142    <message> 
    190         <location filename="mainwnd.ui" line="1719"/> 
    191143        <source>Foreigners Extra</source> 
    192144        <translation>Foreigners Extra</translation> 
    193145    </message> 
    194146    <message> 
    195         <location filename="mainwnd.ui" line="2173"/> 
    196147        <source>Sis Extra</source> 
    197148        <translation>SIS Extra</translation> 
    198149    </message> 
    199150    <message> 
    200         <location filename="mainwnd.cpp" line="2951"/> 
    201         <location filename="mainwnd.cpp" line="2980"/> 
    202         <location filename="mainwnd.cpp" line="3028"/> 
    203151        <source>C&amp;ertificates</source> 
    204152        <translation>Certificados</translation> 
    205153    </message> 
    206154    <message> 
    207         <location filename="mainwnd.ui" line="2247"/> 
    208155        <source>Certificates Overview</source> 
    209156        <translation>Certificados</translation> 
    210157    </message> 
    211158    <message> 
    212         <location filename="mainwnd.ui" line="2263"/> 
    213159        <source>Owner</source> 
    214160        <translation>Proprietário</translation> 
    215161    </message> 
    216162    <message> 
    217         <location filename="mainwnd.ui" line="2283"/> 
    218163        <source>Issuer</source> 
    219164        <translation>Issuer</translation> 
    220165    </message> 
    221166    <message> 
    222         <location filename="mainwnd.ui" line="2303"/> 
    223167        <source>Key Lenght</source> 
    224168        <translation>Comprimento da chave</translation> 
    225169    </message> 
    226170    <message> 
    227         <location filename="mainwnd.ui" line="2326"/> 
    228171        <source>Valid From</source> 
    229172        <translation>Válido desde</translation> 
    230173    </message> 
    231174    <message> 
    232         <location filename="mainwnd.ui" line="2339"/> 
    233175        <source>Valid Until</source> 
    234176        <translation>Válido até</translation> 
    235177    </message> 
    236178    <message> 
    237         <location filename="mainwnd.ui" line="2409"/> 
    238179        <source>To use your identity card with applications like Internet Explorer, Microsoft Offfice,OpenOffice.org, Adobe Reader, Outlook, ... you first have to register the card in Windows. Select a certificate and click the &quot;Register&quot; button to register your certificates</source> 
    239180        <translation>To use your identity card with applications like Internet Explorer, Microsoft Offfice,OpenOffice.org, Adobe Reader, Outlook, ... you first have to register the card in Windows. Select a certificate and click the &quot;Register&quot; button to register your certificates</translation> 
    240181    </message> 
    241182    <message> 
    242         <location filename="mainwnd.ui" line="2442"/> 
    243183        <source>&amp;Register</source> 
    244184        <translation>&amp;Registar</translation> 
    245185    </message> 
    246186    <message> 
    247         <location filename="mainwnd.ui" line="2452"/> 
    248187        <source>&amp;Details &gt;&gt;</source> 
    249188        <translation>&amp;Detalhes &gt;&gt;</translation> 
    250189    </message> 
    251190    <message> 
    252         <location filename="mainwnd.cpp" line="2953"/> 
    253         <location filename="mainwnd.cpp" line="2982"/> 
    254         <location filename="mainwnd.cpp" line="3030"/> 
    255191        <source>C&amp;ard &amp;&amp; PIN</source> 
    256192        <translation>Cartão &amp;&amp; &amp;PIN</translation> 
    257193    </message> 
    258194    <message> 
    259         <location filename="mainwnd.ui" line="2483"/> 
    260195        <source>Version Info</source> 
    261196        <translation>Informação das versões</translation> 
    262197    </message> 
    263198    <message> 
    264         <location filename="mainwnd.ui" line="2511"/> 
    265199        <source>PIN Info</source> 
    266200        <translation>PIN info</translation> 
    267201    </message> 
    268202    <message> 
    269         <location filename="mainwnd.ui" line="2518"/> 
    270203        <source>PINs</source> 
    271204        <translation>PINs</translation> 
    272205    </message> 
    273206    <message> 
    274         <location filename="mainwnd.ui" line="2536"/> 
    275207        <source>PIN  Name</source> 
    276208        <translation>Descrição PIN</translation> 
    277209    </message> 
    278210    <message> 
    279         <location filename="mainwnd.ui" line="2549"/> 
    280211        <source>PIN  ID</source> 
    281212        <translation>PIN ID</translation> 
    282213    </message> 
    283214    <message> 
    284         <location filename="mainwnd.ui" line="2582"/> 
    285215        <source>PIN  Status</source> 
    286216        <translation>PIN Status</translation> 
    287217    </message> 
    288218    <message> 
    289         <location filename="mainwnd.ui" line="2615"/> 
    290219        <source>When you give a wrong PIN number 3 times, the connected services will be blocked. If so please contact your local goverment inctance. Press &quot;Cancel&quot; if you are unscertain.</source> 
    291220        <translation>Após introduzir o PIN errado 3 vezes, este irá ser bloqueado.</translation> 
    292221    </message> 
    293222    <message> 
    294         <location filename="mainwnd.ui" line="2643"/> 
    295         <location filename="mainwnd.ui" line="2974"/> 
    296223        <source>Test PIN</source> 
    297224        <translation>Testar PIN</translation> 
    298225    </message> 
    299226    <message> 
    300         <location filename="mainwnd.ui" line="2653"/> 
    301         <location filename="mainwnd.ui" line="2979"/> 
    302227        <source>Change PIN</source> 
    303228        <translation>Modificar PIN</translation> 
    304229    </message> 
    305230    <message> 
    306         <location filename="mainwnd.cpp" line="2955"/> 
    307         <location filename="mainwnd.cpp" line="2984"/> 
    308         <location filename="mainwnd.cpp" line="3032"/> 
    309         <location filename="mainwnd.cpp" line="3042"/> 
    310231        <source>&amp;Info</source> 
    311232        <translation>&amp;Info</translation> 
    312233    </message> 
    313234    <message> 
    314         <location filename="mainwnd.ui" line="2750"/> 
    315235        <source>&amp;Card</source> 
    316236        <translation>&amp;Cartão</translation> 
    317237    </message> 
    318238    <message> 
    319         <location filename="mainwnd.ui" line="2766"/> 
    320239        <source>&amp;Tools</source> 
    321240        <translation>&amp;Ferramentas</translation> 
    322241    </message> 
    323242    <message> 
    324         <location filename="mainwnd.ui" line="2260"/> 
    325         <location filename="mainwnd.ui" line="1833"/> 
    326         <location filename="mainwnd.ui" line="2296"/> 
    327         <location filename="mainwnd.ui" line="2538"/> 
    328243        <source>Language</source> 
    329244        <translation>Idioma</translation> 
    330245    </message> 
    331246    <message> 
    332         <location filename="mainwnd.ui" line="1833"/> 
    333247        <source>      Language</source> 
    334248        <translation>      Idioma</translation> 
    335249    </message> 
    336250    <message> 
    337         <location filename="mainwnd.ui" line="2781"/> 
    338         <source>Help</source> 
    339         <translation>Ajuda</translation> 
    340     </message> 
    341     <message> 
    342         <location filename="mainwnd.ui" line="2795"/> 
    343251        <source>toolBar</source> 
    344252        <translation>Toolbar</translation> 
    345253    </message> 
    346254    <message> 
    347         <location filename="mainwnd.ui" line="2829"/> 
    348255        <source>E&amp;xit</source> 
    349256        <translation>Sair</translation> 
    350257    </message> 
    351258    <message> 
    352         <location filename="mainwnd.ui" line="2841"/> 
    353         <location filename="mainwnd.cpp" line="2112"/> 
    354259        <source>Reload eID</source> 
    355         <translation>(Re)Ler Cartão</translation> 
    356     </message> 
    357     <message> 
    358         <location filename="mainwnd.cpp" line="3613"/> 
     260        <translation type="unfinished">(Re)Ler Cartão</translation> 
     261    </message> 
     262    <message> 
    359263        <source>Clear</source> 
    360         <translation>Limpar</translation> 
    361     </message> 
    362     <message> 
    363         <location filename="mainwnd.ui" line="2892"/> 
     264        <translation type="unfinished">Limpar</translation> 
     265    </message> 
     266    <message> 
    364267        <source>Print eID</source> 
    365268        <translation>Imprimir</translation> 
    366269    </message> 
    367270    <message> 
    368         <location filename="mainwnd.ui" line="2900"/> 
    369271        <source>Printer Settings</source> 
    370272        <translation>Definições de Impressão</translation> 
    371273    </message> 
    372274    <message> 
    373         <location filename="mainwnd.ui" line="2912"/> 
    374275        <source>&amp;Options</source> 
    375276        <translation>Opções</translation> 
    376277    </message> 
    377278    <message> 
    378         <location filename="mainwnd.ui" line="2920"/> 
    379         <location filename="mainwnd.cpp" line="5061"/> 
    380279        <source>&amp;English</source> 
    381         <translation>&amp;English</translation> 
    382     </message> 
    383     <message> 
    384         <location filename="mainwnd.ui" line="2928"/> 
    385         <location filename="mainwnd.cpp" line="5043"/> 
     280        <translation type="unfinished">&amp;English</translation> 
     281    </message> 
     282    <message> 
    386283        <source>&amp;Nederlands</source> 
    387284        <translation>&amp;Nederlands</translation> 
    388285    </message> 
    389286    <message utf8="true"> 
    390         <location filename="mainwnd.ui" line="2936"/> 
    391         <location filename="mainwnd.cpp" line="5034"/> 
    392287        <source>&amp;Français</source> 
    393288        <translation>&amp;Français</translation> 
    394289    </message> 
    395290    <message> 
    396         <location filename="mainwnd.ui" line="2944"/> 
    397         <location filename="mainwnd.cpp" line="5052"/> 
    398291        <source>&amp;Deutsch</source> 
    399292        <translation>&amp;Deutsch</translation> 
    400293    </message> 
    401294    <message> 
    402         <location filename="mainwnd.ui" line="2949"/> 
    403295        <source>&amp;Help / Manual</source> 
    404296        <translation>&amp;Help / Handleiding</translation> 
    405297    </message> 
    406298    <message> 
    407         <location filename="mainwnd.ui" line="2958"/> 
    408299        <source>&amp;About</source> 
    409300        <translation>&amp;Info</translation> 
    410301    </message> 
    411302    <message> 
    412         <location filename="mainwnd.ui" line="2969"/> 
    413303        <source>&amp;Show Toolbar</source> 
    414304        <translation>Mostrar Toolbar</translation> 
    415305    </message> 
    416306    <message> 
    417         <location filename="mainwnd.ui" line="2987"/> 
    418307        <source>PIN renew (PUK)</source> 
    419308        <translation>PIN renew (PUK)</translation> 
    420309    </message> 
    421310    <message> 
    422         <location filename="mainwnd.ui" line="2996"/> 
    423311        <source>Zoom &amp;In</source> 
    424312        <translation>Zoom in</translation> 
    425313    </message> 
    426314    <message> 
    427         <location filename="mainwnd.ui" line="2999"/> 
    428315        <source>+</source> 
    429316        <translation>+</translation> 
    430317    </message> 
    431318    <message> 
    432         <location filename="mainwnd.ui" line="3011"/> 
    433319        <source>&amp;Zoom Out</source> 
    434320        <translation>Zoom out</translation> 
    435321    </message> 
    436322    <message> 
    437         <location filename="mainwnd.ui" line="3014"/> 
    438323        <source>-</source> 
    439324        <translation>-</translation> 
    440325    </message> 
    441326    <message> 
    442         <location filename="mainwnd.ui" line="3022"/> 
    443327        <source>Display pinpad info</source> 
    444328        <translation>Mostrar info PIN-pad</translation> 
    445329    </message> 
    446330    <message> 
    447         <location filename="mainwnd.ui" line="3027"/> 
    448331        <source>Close pinpad info</source> 
    449332        <translation>Fechar info PIN-pad</translation> 
    450333    </message> 
    451334    <message> 
    452         <location filename="mainwnd.ui" line="3032"/> 
    453335        <source>&amp;Identity Card</source> 
    454336        <translation>&amp;Identity Card</translation> 
    455337    </message> 
    456338    <message> 
    457         <location filename="mainwnd.ui" line="3037"/> 
    458         <location filename="mainwnd.ui" line="3040"/> 
    459         <location filename="mainwnd.ui" line="3043"/> 
    460339        <source>SIS Card</source> 
    461340        <translation>SIS Card</translation> 
    462341    </message> 
    463342    <message> 
    464         <location filename="mainwnd.ui" line="3048"/> 
    465343        <source>Kids Card</source> 
    466344        <translation>Kids Card</translation> 
    467345    </message> 
    468346    <message> 
    469         <location filename="mainwnd.ui" line="3053"/> 
    470347        <source>Foreigner Card</source> 
    471348        <translation>Foreigner Card</translation> 
    472349    </message> 
    473350    <message> 
    474         <location filename="mainwnd.cpp" line="467"/> 
    475351        <source>Mi&amp;nimize</source> 
    476         <translation>Minimizar</translation> 
    477     </message> 
    478     <message> 
    479         <location filename="mainwnd.cpp" line="470"/> 
     352        <translation type="unfinished">Minimizar</translation> 
     353    </message> 
     354    <message> 
    480355        <source>&amp;Restore</source> 
    481         <translation>Restaurar</translation> 
    482     </message> 
    483     <message> 
    484         <location filename="mainwnd.ui" line="23"/> 
     356        <translation type="unfinished">Restaurar</translation> 
     357    </message> 
     358    <message> 
    485359        <source>eid</source> 
    486360        <translation>eID</translation> 
    487361    </message> 
    488362    <message> 
    489         <location filename="mainwnd.ui" line="496"/> 
    490363        <source>Information not available</source> 
    491364        <translation>Informação não disponível</translation> 
    492365    </message> 
    493366    <message> 
    494         <location filename="mainwnd.cpp" line="3559"/> 
    495367        <source>Serial nr</source> 
    496368        <translation>Num. Série</translation> 
    497369    </message> 
    498370    <message> 
    499         <location filename="mainwnd.cpp" line="3560"/> 
    500371        <source>Component Code</source> 
    501372        <translation>Cod Componente</translation> 
    502373    </message> 
    503374    <message> 
    504         <location filename="mainwnd.cpp" line="3561"/> 
    505         <location filename="mainwnd.cpp" line="3562"/> 
    506375        <source>OS Number</source> 
    507376        <translation>Num OS</translation> 
    508377    </message> 
    509378    <message> 
    510         <location filename="mainwnd.cpp" line="3563"/> 
    511379        <source>Softmask Number</source> 
    512380        <translation>Num Softmask</translation> 
    513381    </message> 
    514382    <message> 
    515         <location filename="mainwnd.cpp" line="3564"/> 
    516383        <source>Softmask Version</source> 
    517384        <translation>Versão Softmask</translation> 
    518385    </message> 
    519386    <message> 
    520         <location filename="mainwnd.cpp" line="3565"/> 
    521387        <source>Applet Version</source> 
    522388        <translation>Versão Applet</translation> 
    523389    </message> 
    524390    <message> 
    525         <location filename="mainwnd.cpp" line="3566"/> 
    526391        <source>Global OS Version</source> 
    527392        <translation>Versão Global OS</translation> 
    528393    </message> 
    529394    <message> 
    530         <location filename="mainwnd.cpp" line="3567"/> 
    531395        <source>Applet Interface Version</source> 
    532396        <translation>Versão Applet Interface</translation> 
    533397    </message> 
    534398    <message> 
    535         <location filename="mainwnd.cpp" line="3568"/> 
    536399        <source>PKCS1 Support</source> 
    537400        <translation>Suporte PKCS1</translation> 
    538401    </message> 
    539402    <message> 
    540         <location filename="mainwnd.cpp" line="3569"/> 
    541403        <source>Key Exchange Version</source> 
    542404        <translation>Key Exchange Version</translation> 
    543405    </message> 
    544406    <message> 
    545         <location filename="mainwnd.cpp" line="3570"/> 
    546407        <source>Applet Life Cycle</source> 
    547408        <translation>Applet Life Cycle</translation> 
    548409    </message> 
    549410    <message> 
    550         <location filename="mainwnd.cpp" line="3571"/> 
    551411        <source>Graphical Personalisation</source> 
    552412        <translation>Graphical Personalisation</translation> 
    553413    </message> 
    554414    <message> 
    555         <location filename="mainwnd.cpp" line="3572"/> 
    556415        <source>Electrical Personalisation Interface</source> 
    557416        <translation>Electrical Personalisation Interface</translation> 
    558417    </message> 
    559418    <message> 
    560         <location filename="mainwnd.h" line="331"/> 
    561419        <source>Test</source> 
    562420        <translation>Test</translation> 
    563421    </message> 
    564422    <message> 
    565         <location filename="mainwnd.h" line="334"/> 
    566423        <source>Date</source> 
    567424        <translation>Data</translation> 
    568425    </message> 
    569426    <message> 
    570         <location filename="mainwnd.h" line="337"/> 
    571427        <source>Valid</source> 
    572428        <translation>Válido</translation> 
    573429    </message> 
    574430    <message> 
    575         <location filename="mainwnd.h" line="340"/> 
    576431        <source>Valid CRL</source> 
    577432        <translation>Validar CRL</translation> 
    578433    </message> 
    579434    <message> 
    580         <location filename="mainwnd.h" line="343"/> 
    581435        <source>Valid OCSP</source> 
    582436        <translation>Validar OCSP</translation> 
    583437    </message> 
    584438    <message> 
    585         <location filename="mainwnd.cpp" line="4590"/> 
    586         <location filename="mainwnd.h" line="348"/> 
    587         <location filename="mainwnd.h" line="367"/> 
    588439        <source>Unknown</source> 
    589         <translation>Desconhecido</translation> 
    590     </message> 
    591     <message> 
    592         <location filename="mainwnd.ui" line="518"/> 
     440        <translation type="unfinished">Desconhecido</translation> 
     441    </message> 
     442    <message> 
    593443        <source>txtCountry_1</source> 
    594444        <translation>BELGIË</translation> 
    595445    </message> 
    596446    <message> 
    597         <location filename="mainwnd.ui" line="236"/> 
    598447        <source>txtCountry_2</source> 
    599448        <translation>BELGIQUE</translation> 
    600449    </message> 
    601450    <message> 
    602         <location filename="mainwnd.ui" line="255"/> 
    603451        <source>txtCountry_3</source> 
    604452        <translation>BELGIEN</translation> 
    605453    </message> 
    606454    <message> 
    607         <location filename="mainwnd.ui" line="274"/> 
    608455        <source>txtCountry_4</source> 
    609456        <translation>BELGIUM</translation> 
    610457    </message> 
    611458    <message> 
    612         <location filename="mainwnd.ui" line="293"/> 
    613         <location filename="mainwnd.cpp" line="3984"/> 
    614459        <source>txtIdentityCard_3</source> 
    615460        <translation>PERSONALAUSWEIS</translation> 
    616461    </message> 
    617462    <message> 
    618         <location filename="mainwnd.ui" line="217"/> 
    619         <location filename="mainwnd.cpp" line="3982"/> 
    620463        <source>txtIdentityCard_1</source> 
    621464        <translation>IDENTITEITSKAART</translation> 
    622465    </message> 
    623466    <message> 
    624         <location filename="mainwnd.ui" line="179"/> 
    625         <location filename="mainwnd.cpp" line="3983"/> 
    626467        <source>txtIdentityCard_2</source> 
    627468        <translation>CARTE D&apos;IDENTITE</translation> 
    628469    </message> 
    629470    <message> 
    630         <location filename="mainwnd.ui" line="198"/> 
    631         <location filename="mainwnd.cpp" line="3985"/> 
    632471        <source>txtIdentityCard_4</source> 
    633472        <translation>IDENTITY CARD</translation> 
    634473    </message> 
    635474    <message> 
    636         <location filename="mainwnd.ui" line="594"/> 
    637475        <source>Naam / &lt;i&gt;Name&lt;/i&gt;</source> 
    638476        <translation>Nome / &lt;i&gt;Name&lt;/i&gt;</translation> 
    639477    </message> 
    640478    <message> 
    641         <location filename="mainwnd.ui" line="553"/> 
    642479        <source>Geslacht / &lt;i&gt;Sex&lt;/i&gt; </source> 
    643480        <translation>Género / &lt;i&gt;Sex&lt;/i&gt; </translation> 
    644481    </message> 
    645482    <message> 
    646         <location filename="mainwnd.cpp" line="1989"/> 
    647483        <source>Belgian EID Middleware</source> 
    648         <translation>Belgian EID Middleware</translation> 
    649     </message> 
    650     <message> 
    651         <location filename="mainwnd.cpp" line="1990"/> 
     484        <translation type="unfinished">Belgian EID Middleware</translation> 
     485    </message> 
     486    <message> 
    652487        <source>The Root Certificate is not correct. 
    653488This may be a test card. 
    654489 
    655490Do you want to accept it?</source> 
    656         <translation>The Root Certificate is not correct. 
     491        <translation type="unfinished">The Root Certificate is not correct. 
    657492This may be a test card. 
    658493 
     
    661496    </message> 
    662497    <message> 
    663         <location filename="mainwnd.cpp" line="2119"/> 
    664         <location filename="mainwnd.cpp" line="5337"/> 
    665498        <source>Unknown card type</source> 
    666         <translation>Tipo de cartão desconhecido</translation> 
    667     </message> 
    668     <message> 
    669         <location filename="mainwnd.cpp" line="2127"/> 
     499        <translation type="unfinished">Tipo de cartão desconhecido</translation> 
     500    </message> 
     501    <message> 
    670502        <source>Index out of range</source> 
    671         <translation>Impossivel executar a operação</translation> 
    672     </message> 
    673     <message> 
    674         <location filename="mainwnd.cpp" line="2132"/> 
     503        <translation type="unfinished">Impossivel executar a operação</translation> 
     504    </message> 
     505    <message> 
    675506        <source>Bad card type</source> 
    676         <translation>Bad card type</translation> 
    677     </message> 
    678     <message> 
    679         <location filename="mainwnd.cpp" line="1790"/> 
    680         <location filename="mainwnd.cpp" line="1942"/> 
    681         <location filename="mainwnd.cpp" line="2090"/> 
    682         <location filename="mainwnd.cpp" line="2242"/> 
    683         <location filename="mainwnd.cpp" line="2504"/> 
     507        <translation type="unfinished">Bad card type</translation> 
     508    </message> 
     509    <message> 
    684510        <source>No card present</source> 
    685         <translation>Cartão não encontrado</translation> 
    686     </message> 
    687     <message> 
    688         <location filename="mainwnd.cpp" line="2805"/> 
    689         <location filename="mainwnd.cpp" line="2891"/> 
    690         <location filename="mainwnd.cpp" line="5481"/> 
     511        <translation type="unfinished">Cartão não encontrado</translation> 
     512    </message> 
     513    <message> 
    691514        <source>General exception</source> 
    692         <translation>Impossível executar a operação</translation> 
    693     </message> 
    694     <message> 
    695         <location filename="mainwnd.cpp" line="2312"/> 
    696         <location filename="mainwnd.cpp" line="2325"/> 
    697         <source>Warning</source> 
    698         <translation>Aviso</translation> 
    699     </message> 
    700     <message> 
    701         <location filename="mainwnd.cpp" line="5533"/> 
     515        <translation type="unfinished">Impossível executar a operação</translation> 
     516    </message> 
     517    <message> 
    702518        <source>Error</source> 
    703         <translation>Erro</translation> 
    704     </message> 
    705     <message> 
    706         <location filename="mainwnd.cpp" line="4501"/> 
    707         <location filename="mainwnd.cpp" line="4738"/> 
     519        <translation type="unfinished">Erro</translation> 
     520    </message> 
     521    <message> 
    708522        <source>none</source> 
    709         <translation>none</translation> 
    710     </message> 
    711     <message> 
    712         <location filename="mainwnd.cpp" line="4502"/> 
    713         <location filename="mainwnd.cpp" line="4739"/> 
     523        <translation type="unfinished">none</translation> 
     524&n