import esc-1.1.2-14.el8
This commit is contained in:
		
							parent
							
								
									84a2730cb4
								
							
						
					
					
						commit
						58ab463b97
					
				
							
								
								
									
										343
									
								
								SOURCES/esc-1.1.2-fix7.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										343
									
								
								SOURCES/esc-1.1.2-fix7.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,343 @@ | |||||||
|  | diff -up ./esc/src/app/esc.js.fix7 ./esc/src/app/esc.js
 | ||||||
|  | --- ./esc/src/app/esc.js.fix7	2020-05-30 18:57:40.423388032 -0700
 | ||||||
|  | +++ ./esc/src/app/esc.js	2020-05-30 19:01:40.769955310 -0700
 | ||||||
|  | @@ -30,6 +30,12 @@ const ESC_CONFIG_FILE_NAME = "esc.conf";
 | ||||||
|  |  const ESC_CONFIG_GROUP = "ESC"; | ||||||
|  |  const ESC_PWORD_FILE = "pword"; | ||||||
|  |   | ||||||
|  | +const STATUS_ENROLLED="Enrolled";
 | ||||||
|  | +const STATUS_FORMATTED="Formatted";
 | ||||||
|  | +const STATUS_UNFORMATTED="Unformatted";
 | ||||||
|  | +const STATUS_UNKNOWN="Unknown";
 | ||||||
|  | +const FORMATTED_CODE=2;
 | ||||||
|  | +
 | ||||||
|  |  const UNKNOWN_LABEL = "unknown"; | ||||||
|  |  const CoolKeyNotifyIface = '<node> \ | ||||||
|  |  <interface name="com.jmagne.CoolKeyNotify"> \ | ||||||
|  | @@ -185,17 +191,17 @@ class ESC {
 | ||||||
|  |      _getStatusString(intStatus) { | ||||||
|  |          switch(intStatus) { | ||||||
|  |              case 4: | ||||||
|  | -                return "enrolled";
 | ||||||
|  | +                return STATUS_ENROLLED;
 | ||||||
|  |              break; | ||||||
|  |   | ||||||
|  |              case 2: | ||||||
|  | -                return "uninitialized";
 | ||||||
|  | +                return STATUS_FORMATTED;
 | ||||||
|  |              break; | ||||||
|  |              case 1: | ||||||
|  | -                return "unknown";
 | ||||||
|  | +                return STATUS_UNFORMATTED;
 | ||||||
|  |              break; | ||||||
|  |              default: | ||||||
|  | -                return "unknown";
 | ||||||
|  | +                return STATUS_UNKNOWN;
 | ||||||
|  |              break; | ||||||
|  |          } | ||||||
|  |       } | ||||||
|  | @@ -216,14 +222,30 @@ class ESC {
 | ||||||
|  |               let issuer = inserted.issuer; | ||||||
|  |               let issuedTo = inserted.issued_to; | ||||||
|  |   | ||||||
|  | +             let cachedIssuer = null;
 | ||||||
|  | +
 | ||||||
|  | +             if(inserted.is_a_cool_key) {
 | ||||||
|  | +	         cachedIssuer = this._phoneHomeMgr.getCachedIssuer(aKeyID);
 | ||||||
|  | +	     }
 | ||||||
|  | +
 | ||||||
|  | +	     if(cachedIssuer != null) {
 | ||||||
|  | +                 issuer = cachedIssuer;
 | ||||||
|  | +	     }
 | ||||||
|  | +
 | ||||||
|  |               if(issuer == null || issuer.length == 0) { | ||||||
|  | -                 issuer = "unknown";
 | ||||||
|  | +                 issuer = STATUS_UNKNOWN;
 | ||||||
|  |               } | ||||||
|  |               if(issuedTo == null || issuedTo.length == 0) { | ||||||
|  | -                 issuedTo = "unknown";
 | ||||||
|  | +                 issuedTo = STATUS_UNKNOWN;
 | ||||||
|  |               } | ||||||
|  | +             let newStatus = inserted.status;
 | ||||||
|  | +             
 | ||||||
|  | +             if(newStatus == FORMATTED_CODE) {
 | ||||||
|  | +                 issuedTo = STATUS_UNKNOWN;
 | ||||||
|  | +             }
 | ||||||
|  | +
 | ||||||
|  |               this._tokenStore.set (this._tokenStore.append(), [0, 1, 2, 3, 4], | ||||||
|  | -                [issuer, issuedTo, this._getStatusString(inserted.status), aKeyID,aKeyType]);
 | ||||||
|  | +                [issuer, issuedTo, this._getStatusString(newStatus), aKeyID,aKeyType]);
 | ||||||
|  |   | ||||||
|  |               let [ isSelected, iter]  = this._tokenStore.get_iter_first(); | ||||||
|  |   | ||||||
|  | diff -up ./esc/src/app/opensc.esc.conf.fix7 ./esc/src/app/opensc.esc.conf
 | ||||||
|  | --- ./esc/src/app/opensc.esc.conf.fix7	2020-05-30 18:54:14.079618060 -0700
 | ||||||
|  | +++ ./esc/src/app/opensc.esc.conf	2020-05-30 19:02:16.191744158 -0700
 | ||||||
|  | @@ -89,12 +89,12 @@ app default {
 | ||||||
|  |      } | ||||||
|  |      reader_driver openct { | ||||||
|  |      }; | ||||||
|  | -    card_drivers = coolkey, cac, piv, default;
 | ||||||
|  | +    card_drivers = coolkey, cac,cac1, piv, default;
 | ||||||
|  |      secure_messaging local_authentic  { | ||||||
|  |          module_path = /usr/lib64; | ||||||
|  |      } | ||||||
|  |      framework pkcs15 { | ||||||
|  | -        builtin_emulators = coolkey, cac, piv;
 | ||||||
|  | +        builtin_emulators = coolkey, cac, cac1, piv;
 | ||||||
|  |      } | ||||||
|  |  } | ||||||
|  |  app opensc-pkcs11 { | ||||||
|  | diff -up ./esc/src/app/operationDialog.js.fix7 ./esc/src/app/operationDialog.js
 | ||||||
|  | --- ./esc/src/app/operationDialog.js.fix7	2020-05-30 18:54:48.700411683 -0700
 | ||||||
|  | +++ ./esc/src/app/operationDialog.js	2020-05-30 19:03:01.354474940 -0700
 | ||||||
|  | @@ -47,34 +47,32 @@ operationDialog.prototype = {
 | ||||||
|  |          if(tokenInfo == null) { | ||||||
|  |              this.app_alert("Invalid Token!"); | ||||||
|  |          } | ||||||
|  | -        this.dialog = new Gtk.Dialog ({ transient_for: this.app._window,
 | ||||||
|  | -                         modal: true,deletable: false,
 | ||||||
|  | -                         title: TOKEN_OPERATION, border_width: 10 });
 | ||||||
|  |   | ||||||
|  |          this.operation = operation; | ||||||
|  |          this.tokenInfo = tokenInfo; | ||||||
|  |   | ||||||
|  |          let opMessage = ""; | ||||||
|  |          if(this.operation == OP_FORMAT) { | ||||||
|  | -            opMessage = "Format Smart Card";
 | ||||||
|  | +            opMessage = "Format Smart Card:";
 | ||||||
|  |   | ||||||
|  |          } else if(this.operation == OP_ENROLL)  { | ||||||
|  | -            opMessage = "Enroll Smart Card";
 | ||||||
|  | +            opMessage = "Enroll Smart Card:";
 | ||||||
|  |          } else if(this.operation == OP_PIN_RESET) { | ||||||
|  | -            opMessage = "Reset Smart Card Pin";
 | ||||||
|  | +            opMessage = "Reset Smart Card Pin:";
 | ||||||
|  |          } else { | ||||||
|  |              this.app._alert("operationdDialog: Invalid operation!"); | ||||||
|  |              return; | ||||||
|  |          } | ||||||
|  |   | ||||||
|  | +        this.dialog = new Gtk.Dialog ({ transient_for: this.app._window,
 | ||||||
|  | +                         modal: true,deletable: false,
 | ||||||
|  | +                         title: TOKEN_OPERATION, border_width: 10 });
 | ||||||
|  | +
 | ||||||
|  |          this.area = this.dialog.get_content_area(); | ||||||
|  |          this.grid = new Gtk.Grid ({row_spacing: 20, column_spacing: 20}); | ||||||
|  |   | ||||||
|  | -        this.message = new Gtk.Label ({label: opMessage});
 | ||||||
|  | -        this.area.add (this.message);
 | ||||||
|  | -
 | ||||||
|  |          //this.throbberImage = new Gtk.Image({file: this.app._currentDir + "/" + "throbber-anim5.gif"}); | ||||||
|  | -
 | ||||||
|  | +        this.label = new Gtk.Label({label: opMessage});
 | ||||||
|  |          this.progressBar = new Gtk.ProgressBar ({ valign: Gtk.Align.CENTER }); | ||||||
|  |          this.progressBar.set_fraction(0.0); | ||||||
|  |   | ||||||
|  | @@ -86,15 +84,16 @@ operationDialog.prototype = {
 | ||||||
|  |          this.ldapUserLabel = new Gtk.Label({label: "Ldap User:"}); | ||||||
|  |          this.ldapUserBox =  new Gtk.Entry(); | ||||||
|  |   | ||||||
|  | -        this.grid.attach(this.ldapUserLabel, 0, 0, 1,1);
 | ||||||
|  | -        this.grid.attach(this.ldapUserBox,1, 0,1,1);
 | ||||||
|  | +        this.grid.attach(this.label,0,0,1,1);
 | ||||||
|  | +        this.grid.attach(this.ldapUserLabel, 0, 1, 1,1);
 | ||||||
|  | +        this.grid.attach(this.ldapUserBox,1, 1,1,1);
 | ||||||
|  |   | ||||||
|  |          this.ldapPasswordLabel = new Gtk.Label({label: "Ldap Password:"}); | ||||||
|  |          this.ldapPasswordBox = new Gtk.Entry(); | ||||||
|  |          this.ldapPasswordBox.set_visibility(false); | ||||||
|  |   | ||||||
|  | -        this.grid.attach(this.ldapPasswordLabel,2,0,1,1);
 | ||||||
|  | -        this.grid.attach(this.ldapPasswordBox,3,0,1,1);
 | ||||||
|  | +        this.grid.attach(this.ldapPasswordLabel,2,1,1,1);
 | ||||||
|  | +        this.grid.attach(this.ldapPasswordBox,3,1,1,1);
 | ||||||
|  |   | ||||||
|  |          if(this.operation !=  OP_FORMAT ) { | ||||||
|  |   | ||||||
|  | @@ -106,10 +105,10 @@ operationDialog.prototype = {
 | ||||||
|  |              this.confirmPinBox = new Gtk.Entry(); | ||||||
|  |              this.confirmPinBox.set_visibility(false); | ||||||
|  |   | ||||||
|  | -            this.grid.attach(this.newpinLabel, 0,1,1,1);
 | ||||||
|  | -            this.grid.attach(this.newpinBox,1,1,1,1);
 | ||||||
|  | -            this.grid.attach(this.confirmPinLabel,2,1,1,1);
 | ||||||
|  | -            this.grid.attach(this.confirmPinBox,3,1,1,1);
 | ||||||
|  | +            this.grid.attach(this.newpinLabel, 0,2,1,1);
 | ||||||
|  | +            this.grid.attach(this.newpinBox,1,2,1,1);
 | ||||||
|  | +            this.grid.attach(this.confirmPinLabel,2,2,1,1);
 | ||||||
|  | +            this.grid.attach(this.confirmPinBox,3,2,1,1);
 | ||||||
|  |          } | ||||||
|  |   | ||||||
|  |          this.oKButton = new  Gtk.Button ({label: OpLabels[this.operation]});  | ||||||
|  | @@ -117,11 +116,11 @@ operationDialog.prototype = {
 | ||||||
|  |          this.dismissButton = new Gtk.Button({label: "Cancel" }); | ||||||
|  |   | ||||||
|  |          //this.grid.attach(this.throbberImage,0,2,1,1); | ||||||
|  | -        this.grid.attach(this.progressLabel, 0,2,1,1);
 | ||||||
|  | +        this.grid.attach(this.progressLabel, 0,3,1,1);
 | ||||||
|  |          //this.throbberImage.hide(); | ||||||
|  | -        this.grid.attach(this.progressBar, 1,2,1,1);
 | ||||||
|  | -        this.grid.attach (this.oKButton,2,2,1,1);
 | ||||||
|  | -        this.grid.attach (this.dismissButton,3,2,1,1);
 | ||||||
|  | +        this.grid.attach(this.progressBar, 1,3,1,1);
 | ||||||
|  | +        this.grid.attach (this.oKButton,2,3,1,1);
 | ||||||
|  | +        this.grid.attach (this.dismissButton,3,3,1,1);
 | ||||||
|  |   | ||||||
|  |          // Connect the button to the function that handles what it does | ||||||
|  |          this.oKButton.connect ("clicked", this.oKHandler.bind(this)); | ||||||
|  | diff -up ./esc/src/app/phoneHome.js.fix7 ./esc/src/app/phoneHome.js
 | ||||||
|  | --- ./esc/src/app/phoneHome.js.fix7	2020-05-30 18:55:43.223086670 -0700
 | ||||||
|  | +++ ./esc/src/app/phoneHome.js	2020-05-30 19:03:49.787186230 -0700
 | ||||||
|  | @@ -93,7 +93,7 @@ phoneHome.prototype = {
 | ||||||
|  |   | ||||||
|  |          this.phArea = this.phDialog.get_content_area(); | ||||||
|  |          this.phMessage = new Gtk.Label ({label: "Enter url: ex: http://test.host.com:8080/tps/phoneHome"}); | ||||||
|  | -        this.phArea.add (this.phMessage);
 | ||||||
|  | +        //this.phArea.add (this.phMessage);
 | ||||||
|  |   | ||||||
|  |          this.phActionArea = this.phDialog.get_action_area(); | ||||||
|  |          this.phUrlBox =  new Gtk.Entry({width_chars: 35}); | ||||||
|  | @@ -108,9 +108,9 @@ phoneHome.prototype = {
 | ||||||
|  |          this.phActionArea.add(this.phGrid); | ||||||
|  |   | ||||||
|  |          this.phOKButton = Gtk.Button.new_from_stock (Gtk.STOCK_OK); | ||||||
|  | -
 | ||||||
|  | -        this.phGrid.attach(this.phUrlBox, 0, 0, 1,1);
 | ||||||
|  | -        this.phGrid.attach(this.phOKButton,1, 0,1,1);
 | ||||||
|  | +        this.phGrid.add(this.phMessage);
 | ||||||
|  | +        this.phGrid.attach(this.phUrlBox, 0, 1, 1,1);
 | ||||||
|  | +        this.phGrid.attach(this.phOKButton,1, 1,1,1);
 | ||||||
|  |   | ||||||
|  |          // Connect the button to the function that handles what it does | ||||||
|  |          this.phOKButton.connect ("clicked", this.phoneHomeOKHandler.bind(this)); | ||||||
|  | @@ -228,9 +228,9 @@ phoneHome.prototype = {
 | ||||||
|  |          if(!aKeyID) | ||||||
|  |              return null; | ||||||
|  |   | ||||||
|  | -        var issuerValue = this.app._configValueWithKeyID(aKeyID,KEY_ISSUER);
 | ||||||
|  | +        let issuerValue = this.app._configValueWithKeyID(aKeyID,KEY_ISSUER);
 | ||||||
|  |   | ||||||
|  | -        if(!issuerValue)
 | ||||||
|  | +        if(issuerValue == null)
 | ||||||
|  |              return null; | ||||||
|  |   | ||||||
|  |          issuer = this.app._getConfigValue(issuerValue); | ||||||
|  | diff -up ./esc/src/app/pinDialog.js.fix7 ./esc/src/app/pinDialog.js
 | ||||||
|  | --- ./esc/src/app/pinDialog.js.fix7	2020-05-30 18:55:09.395288320 -0700
 | ||||||
|  | +++ ./esc/src/app/pinDialog.js	2020-05-30 19:04:51.380819066 -0700
 | ||||||
|  | @@ -36,16 +36,15 @@ pinDialog.prototype = {
 | ||||||
|  |      launchPinPrompt: function(notify) { | ||||||
|  |   | ||||||
|  |          this.notify = notify; | ||||||
|  | +        this.message = "Token Pin Entry";
 | ||||||
|  |          this.dialog = new Gtk.Dialog ({ transient_for: this.app._window, | ||||||
|  |                           modal: true, | ||||||
|  |                           expand: false, | ||||||
|  | -                         title: PIN_OPERATION ,border_width: 20, deletable: false });
 | ||||||
|  | +                         title: this.message ,border_width: 20, deletable: false });
 | ||||||
|  |   | ||||||
|  |          this.area = this.dialog.get_content_area(); | ||||||
|  |          this.grid = new Gtk.Grid ({row_spacing: 10, column_spacing: 20}); | ||||||
|  |   | ||||||
|  | -        this.message = new Gtk.Label ({label: "Enter Token Pin"});
 | ||||||
|  | -        this.area.add (this.message);
 | ||||||
|  |   | ||||||
|  |          this.actionArea = this.dialog.get_action_area(); | ||||||
|  |          this.pinBox =  new Gtk.Entry(); | ||||||
|  | diff -up ./esc/src/lib/coolkey/CoolKey.cpp.fix7 ./esc/src/lib/coolkey/CoolKey.cpp
 | ||||||
|  | --- ./esc/src/lib/coolkey/CoolKey.cpp.fix7	2020-05-30 18:56:35.827773090 -0700
 | ||||||
|  | +++ ./esc/src/lib/coolkey/CoolKey.cpp	2020-05-30 19:05:30.561585507 -0700
 | ||||||
|  | @@ -511,6 +511,11 @@ HRESULT CoolKeyGetCUIDDirectly(char *aBu
 | ||||||
|  |   | ||||||
|  |      CKYCardConnection_BeginTransaction(conn); | ||||||
|  |   | ||||||
|  | +    status = CKYApplet_SelectCardManager(conn, &apduRC);
 | ||||||
|  | +    if (status != CKYSUCCESS) {
 | ||||||
|  | +        goto done;
 | ||||||
|  | +    }
 | ||||||
|  | +
 | ||||||
|  |      status = CKYApplet_GetCUID(conn, &cuid, &apduRC); | ||||||
|  |      if (status != CKYSUCCESS) { | ||||||
|  |          goto done; | ||||||
|  | @@ -764,7 +769,6 @@ HRESULT CoolKeyGetCPLCDataDirectly(CKYAp
 | ||||||
|  |      } | ||||||
|  |   | ||||||
|  |      CKYCardConnection_BeginTransaction(conn); | ||||||
|  | -    unsigned long state;
 | ||||||
|  |   | ||||||
|  |      status = CKYApplet_SelectCardManager(conn, &apduRC); | ||||||
|  |      if (status != CKYSUCCESS) { | ||||||
|  | diff -up ./esc/src/lib/coolkey/CoolKeyHandler.cpp.fix7 ./esc/src/lib/coolkey/CoolKeyHandler.cpp
 | ||||||
|  | --- ./esc/src/lib/coolkey/CoolKeyHandler.cpp.fix7	2020-05-30 18:56:56.511649792 -0700
 | ||||||
|  | +++ ./esc/src/lib/coolkey/CoolKeyHandler.cpp	2020-05-30 19:06:21.955279145 -0700
 | ||||||
|  | @@ -2157,11 +2157,22 @@ copySerialNumber(char *dest, const char
 | ||||||
|  |  // it will probably have Dashes and store in lower case some time in the | ||||||
|  |  // future. | ||||||
|  |  // | ||||||
|  | -static HRESULT
 | ||||||
|  | +static HRESULT 
 | ||||||
|  |  getCUIDFromTokenInfo(CK_TOKEN_INFO *tokenInfo, char *tokenSerialNumber) | ||||||
|  |  { | ||||||
|  | +    const int minCUIDLen = 18;
 | ||||||
|  | +
 | ||||||
|  |      char *cp = tokenSerialNumber; | ||||||
|  |   | ||||||
|  | +    if( tokenSerialNumber == NULL) {
 | ||||||
|  | +        return E_FAIL;
 | ||||||
|  | +    }
 | ||||||
|  | +
 | ||||||
|  | +    if(tokenInfo == NULL) {
 | ||||||
|  | +        *cp = 0;
 | ||||||
|  | +	return E_FAIL;
 | ||||||
|  | +    }
 | ||||||
|  | +
 | ||||||
|  |      if (isxdigit(tokenInfo->manufacturerID[0]) && | ||||||
|  |          isxdigit(tokenInfo->manufacturerID[1]) && | ||||||
|  |          isxdigit(tokenInfo->manufacturerID[2]) && | ||||||
|  | @@ -2181,6 +2192,10 @@ getCUIDFromTokenInfo(CK_TOKEN_INFO *toke
 | ||||||
|  |      } | ||||||
|  |      *cp=0; | ||||||
|  |   | ||||||
|  | +    if( strlen(tokenSerialNumber) < minCUIDLen) {
 | ||||||
|  | +        return E_FAIL;
 | ||||||
|  | +    }
 | ||||||
|  | +
 | ||||||
|  |      return S_OK; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | @@ -2207,7 +2222,7 @@ CKHGetCoolKeyInfo(PK11SlotInfo *aSlot,Co
 | ||||||
|  |      CK_TOKEN_INFO tokenInfo; | ||||||
|  |      CoolKeyInfo *info = NULL; | ||||||
|  |      SECStatus status; | ||||||
|  | -    HRESULT hres,atrRes,cuidRes,cycleRes;
 | ||||||
|  | +    HRESULT hres,atrRes,cycleRes,cuidRes;
 | ||||||
|  |   | ||||||
|  |      char *readerName =  PK11_GetSlotName(aSlot); | ||||||
|  |   | ||||||
|  | @@ -2327,22 +2342,16 @@ CKHGetCoolKeyInfo(PK11SlotInfo *aSlot,Co
 | ||||||
|  |        goto failed; | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | -    hres = getCUIDFromTokenInfo(&tokenInfo, info->mCUID);
 | ||||||
|  | -  /* shouldn't the be != S_SUCCESS? */
 | ||||||
|  | -    if (hres == E_FAIL) {
 | ||||||
|  | -        goto failed;
 | ||||||
|  | -    }
 | ||||||
|  | -
 | ||||||
|  | +    cuidRes = getCUIDFromTokenInfo(&tokenInfo, info->mCUID);
 | ||||||
|  |      //Check for blank cuid and put something there | ||||||
|  |   | ||||||
|  | -     if(isACOOLKey && strlen(info->mCUID) == 0 )
 | ||||||
|  | -     {
 | ||||||
|  | +     if(isACOOLKey && cuidRes == E_FAIL) {
 | ||||||
|  |          //Let's try to get the cuid directly from the token. | ||||||
|  |   | ||||||
|  |          cuidRes = CoolKeyGetCUIDDirectly(cuidChar, 100, readerName); | ||||||
|  |   | ||||||
|  |          if(cuidRes != S_OK) { | ||||||
|  | -           strcpy(info->mCUID, "blank-token");
 | ||||||
|  | +           strcpy(info->mCUID, "unknown");
 | ||||||
|  |          } else { | ||||||
|  |             strcpy(info->mCUID, cuidChar);    | ||||||
|  |          } | ||||||
							
								
								
									
										60
									
								
								SOURCES/esc-1.1.2-fix8.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								SOURCES/esc-1.1.2-fix8.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,60 @@ | |||||||
|  | diff -up ./esc/src/app/opensc.esc.conf.fix8 ./esc/src/app/opensc.esc.conf
 | ||||||
|  | --- ./esc/src/app/opensc.esc.conf.fix8	2020-08-07 16:17:37.464650003 -0700
 | ||||||
|  | +++ ./esc/src/app/opensc.esc.conf	2020-08-07 16:20:21.861957011 -0700
 | ||||||
|  | @@ -89,12 +89,12 @@ app default {
 | ||||||
|  |      } | ||||||
|  |      reader_driver openct { | ||||||
|  |      }; | ||||||
|  | -    card_drivers = coolkey, cac,cac1, piv, default;
 | ||||||
|  | +    card_drivers = coolkey, cac,cac1, PIV-II, default;
 | ||||||
|  |      secure_messaging local_authentic  { | ||||||
|  |          module_path = /usr/lib64; | ||||||
|  |      } | ||||||
|  |      framework pkcs15 { | ||||||
|  | -        builtin_emulators = coolkey, cac, cac1, piv;
 | ||||||
|  | +        builtin_emulators = coolkey, cac, cac1, PIV-II;
 | ||||||
|  |      } | ||||||
|  |  } | ||||||
|  |  app opensc-pkcs11 { | ||||||
|  | diff -up ./esc/src/lib/coolkey/CoolKey.cpp.fix8 ./esc/src/lib/coolkey/CoolKey.cpp
 | ||||||
|  | --- ./esc/src/lib/coolkey/CoolKey.cpp.fix8	2020-08-07 12:05:35.982966019 -0700
 | ||||||
|  | +++ ./esc/src/lib/coolkey/CoolKey.cpp	2020-08-07 16:08:16.747602873 -0700
 | ||||||
|  | @@ -593,6 +593,7 @@ char *CoolKeyGetFullReaderName(const cha
 | ||||||
|  |  	} else { | ||||||
|  |              fullReaderName = strdup(thisReader); | ||||||
|  |              PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s CoolKeyGetFullReaderName correct full name:  %s \n",fullReaderName,GetTStamp(tBuff,56))); | ||||||
|  | +	    break;
 | ||||||
|  |          } | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | diff -up ./esc/src/lib/coolkey/CoolKeyHandler.cpp.fix8 ./esc/src/lib/coolkey/CoolKeyHandler.cpp
 | ||||||
|  | --- ./esc/src/lib/coolkey/CoolKeyHandler.cpp.fix8	2020-08-07 12:05:44.394982245 -0700
 | ||||||
|  | +++ ./esc/src/lib/coolkey/CoolKeyHandler.cpp	2020-08-07 16:10:35.504862004 -0700
 | ||||||
|  | @@ -2225,8 +2225,17 @@ CKHGetCoolKeyInfo(PK11SlotInfo *aSlot,Co
 | ||||||
|  |      HRESULT hres,atrRes,cycleRes,cuidRes; | ||||||
|  |   | ||||||
|  |      char *readerName =  PK11_GetSlotName(aSlot); | ||||||
|  | +    int readerNameLen = strlen(readerName);
 | ||||||
|  |   | ||||||
|  | -    char *actualReaderName = CoolKeyGetFullReaderName(readerName);
 | ||||||
|  | +    //Since there is no local support to get a reader name by slot,
 | ||||||
|  | +    //Will simply do a partial substring compare, using less characters
 | ||||||
|  | +    //to avoid any hard coded trailing chars.
 | ||||||
|  | +    
 | ||||||
|  | +    char partialReaderName[60];
 | ||||||
|  | +    memset(partialReaderName, 0, 60);
 | ||||||
|  | +
 | ||||||
|  | +    strncpy(partialReaderName,readerName, 59);
 | ||||||
|  | +    char *actualReaderName =   CoolKeyGetFullReaderName(partialReaderName);
 | ||||||
|  |   | ||||||
|  |      memset((void *) &tokenInfo,0,sizeof(tokenInfo)); | ||||||
|  |      ATR.data = NULL; // initialize for error processing | ||||||
|  | @@ -2348,7 +2357,7 @@ CKHGetCoolKeyInfo(PK11SlotInfo *aSlot,Co
 | ||||||
|  |       if(isACOOLKey && cuidRes == E_FAIL) { | ||||||
|  |          //Let's try to get the cuid directly from the token. | ||||||
|  |   | ||||||
|  | -        cuidRes = CoolKeyGetCUIDDirectly(cuidChar, 100, readerName);
 | ||||||
|  | +        cuidRes = CoolKeyGetCUIDDirectly(cuidChar, 100, actualReaderName);
 | ||||||
|  |   | ||||||
|  |          if(cuidRes != S_OK) { | ||||||
|  |             strcpy(info->mCUID, "unknown"); | ||||||
							
								
								
									
										41
									
								
								SOURCES/esc-1.1.2-fix9.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								SOURCES/esc-1.1.2-fix9.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,41 @@ | |||||||
|  | diff -up ./esc/src/app/esc.js.fix9 ./esc/src/app/esc.js
 | ||||||
|  | --- ./esc/src/app/esc.js.fix9	2020-08-12 11:15:29.423093856 -0700
 | ||||||
|  | +++ ./esc/src/app/esc.js	2020-08-12 11:43:47.646556310 -0700
 | ||||||
|  | @@ -271,7 +271,6 @@ class ESC {
 | ||||||
|  |           if(!insertedToken && !doReset) { | ||||||
|  |               return; | ||||||
|  |           } | ||||||
|  | -     
 | ||||||
|  |           if(doReset) { | ||||||
|  |               this._operationsGrid.remove(this._phoneHomeButton); | ||||||
|  |               this._operationsGrid.remove(this._enrollButton); | ||||||
|  | @@ -297,6 +296,12 @@ class ESC {
 | ||||||
|  |               } | ||||||
|  |   | ||||||
|  |               this._operationsGrid.show_all(); | ||||||
|  | +         } else {
 | ||||||
|  | +             if(insertedToken.status == 4) {
 | ||||||
|  | +                 this._operationsGrid.add(this._certDetailButton);
 | ||||||
|  | +		 this._operationsGrid.show_all();
 | ||||||
|  | +
 | ||||||
|  | +	     }
 | ||||||
|  |           } | ||||||
|  |       } | ||||||
|  |   | ||||||
|  | diff -up ./esc/src/lib/coolkey/CoolKeyHandler.cpp.fix9 ./esc/src/lib/coolkey/CoolKeyHandler.cpp
 | ||||||
|  | --- ./esc/src/lib/coolkey/CoolKeyHandler.cpp.fix9	2020-08-12 10:59:24.844704399 -0700
 | ||||||
|  | +++ ./esc/src/lib/coolkey/CoolKeyHandler.cpp	2020-08-12 11:11:05.480713407 -0700
 | ||||||
|  | @@ -2329,11 +2329,11 @@ CKHGetCoolKeyInfo(PK11SlotInfo *aSlot,Co
 | ||||||
|  |      } | ||||||
|  |   | ||||||
|  |      //Massage the tokenInfo so it adhered to when coolkey was doing it. | ||||||
|  | -    if(hasApplet) {
 | ||||||
|  | +    if(hasApplet == 1 || isACAC == 1 || isAPIV == 1) {
 | ||||||
|  |          tokenInfo.firmwareVersion.major = 1;     | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | -    if(isPersonalized) {
 | ||||||
|  | +    if(isPersonalized == 1 || isACAC == 1 || isAPIV == 1) {
 | ||||||
|  |          tokenInfo.flags |= CKF_TOKEN_INITIALIZED; | ||||||
|  |      } | ||||||
|  |   | ||||||
| @ -1,6 +1,6 @@ | |||||||
| Name: esc  | Name: esc  | ||||||
| Version: 1.1.2 | Version: 1.1.2 | ||||||
| Release: 11%{?dist} | Release: 14%{?dist} | ||||||
| Summary: Enterprise Security Client Smart Card Client | Summary: Enterprise Security Client Smart Card Client | ||||||
| License: GPL+ | License: GPL+ | ||||||
| URL: http://directory.fedora.redhat.com/wiki/CoolKey  | URL: http://directory.fedora.redhat.com/wiki/CoolKey  | ||||||
| @ -13,6 +13,9 @@ Patch3: esc-1.1.2-fix3.patch | |||||||
| Patch4: esc-1.1.2-fix4.patch | Patch4: esc-1.1.2-fix4.patch | ||||||
| Patch5: esc-1.1.2-fix5.patch | Patch5: esc-1.1.2-fix5.patch | ||||||
| Patch6: esc-1.1.2-fix6.patch | Patch6: esc-1.1.2-fix6.patch | ||||||
|  | Patch7: esc-1.1.2-fix7.patch | ||||||
|  | Patch8: esc-1.1.2-fix8.patch | ||||||
|  | Patch9: esc-1.1.2-fix9.patch | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| #BuildRequires: doxygen fontconfig-devel | #BuildRequires: doxygen fontconfig-devel | ||||||
| @ -77,6 +80,9 @@ cryptographic smartcards. | |||||||
| %patch4 -p1 -b .fix4 | %patch4 -p1 -b .fix4 | ||||||
| %patch5 -p1 -b .fix5 | %patch5 -p1 -b .fix5 | ||||||
| %patch6 -p1 -b .fix6 | %patch6 -p1 -b .fix6 | ||||||
|  | %patch7 -p1 -b .fix7 | ||||||
|  | %patch8 -p1 -b .fix8 | ||||||
|  | %patch9 -p1 -b .fix9 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| %build | %build | ||||||
| @ -145,6 +151,14 @@ cp %{escname}/esc/LICENSE $RPM_BUILD_ROOT/%{docdir} | |||||||
| %{_datadir}/%{appdir}/esc.desktop | %{_datadir}/%{appdir}/esc.desktop | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Fri Aug 07 2020 Jack Magne <jmagne@redhat.com> - 1.1.2-14 | ||||||
|  | - Resolves: rhbz#1848629 - Smartcard is not detected by esc. Ammendment to bug fix. | ||||||
|  | * Fri Aug 07 2020 Jack Magne <jmagne@redhat.com> - 1.1.2-13 | ||||||
|  | - Resolves: rhbz#1848629 - Smartcard is not detected by esc | ||||||
|  | * Sat May 30 2020 Jack Magne <jmagne@redhat.com> - 1.1.2-12 | ||||||
|  | - Resolves: rhbz#1646486 - alt tokens not detected by ESC | ||||||
|  | - Resolves: rhbz#1774750 - ESC's unusual behavior after formatting a blank Gemalto token | ||||||
|  | - Resolves: rhbz#1774770 - After formatting a Gemalto/SCP03 token, ESC shows incorrect Issuer, Issued To, Status, and Token ID details | ||||||
| * Wed Nov 13 2019 Jack Magne <jmagne@redhat.com> - 1.1.2-11 | * Wed Nov 13 2019 Jack Magne <jmagne@redhat.com> - 1.1.2-11 | ||||||
| - Resolves: rhbz#1724787 - ESC - HTTP GET Requests incorrectly Being Sent To TPS for Token Operations [8.2]  | - Resolves: rhbz#1724787 - ESC - HTTP GET Requests incorrectly Being Sent To TPS for Token Operations [8.2]  | ||||||
| - Resolves: rhbz#1734117 - ESC does not detect/recognize both clean and formatted (with phone home) smart cards | - Resolves: rhbz#1734117 - ESC does not detect/recognize both clean and formatted (with phone home) smart cards | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user