diff options
Diffstat (limited to 'smcc/src')
| -rw-r--r-- | smcc/src/main/java/at/gv/egiz/smcc/STARCOSCard.java | 28 | ||||
| -rw-r--r-- | smcc/src/test/resources/at/gv/egiz/smcc/test/ecard/ECardG3ActivateTest.xml | 5 | 
2 files changed, 22 insertions, 11 deletions
| diff --git a/smcc/src/main/java/at/gv/egiz/smcc/STARCOSCard.java b/smcc/src/main/java/at/gv/egiz/smcc/STARCOSCard.java index 18595e45..027a5b7a 100644 --- a/smcc/src/main/java/at/gv/egiz/smcc/STARCOSCard.java +++ b/smcc/src/main/java/at/gv/egiz/smcc/STARCOSCard.java @@ -870,14 +870,26 @@ public class STARCOSCard extends AbstractSignatureCard implements PINMgmtSignatu        resp = reader.modify(channel, apduSpec, provider, pinInfo);      } else { -      NewReferenceDataAPDUSpec apduSpec = new NewReferenceDataAPDUSpec( -          new byte[] { -              (byte) 0x00, (byte) 0x24, (byte) 0x00, pinInfo.getKID(), (byte) 0x10, -              (byte) 0x25, (byte) 0x12, (byte) 0x34, (byte) 0x5f, (byte) 0xff, -              (byte) 0xff, (byte) 0xff, (byte) 0xff,  -              (byte) 0x20, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, -              (byte) 0xff, (byte) 0xff, (byte) 0xff }, -          1, VerifyAPDUSpec.PIN_FORMAT_BCD, 7, 4, 4); +      NewReferenceDataAPDUSpec apduSpec; +      if (generation < 4) { +        apduSpec = new NewReferenceDataAPDUSpec( +            new byte[] { +                (byte) 0x00, (byte) 0x24, (byte) 0x00, pinInfo.getKID(), (byte) 0x10, +                (byte) 0x26, (byte) 0x12, (byte) 0x34, (byte) 0x56, (byte) 0xff, +                (byte) 0xff, (byte) 0xff, (byte) 0xff, +                (byte) 0x20, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, +                (byte) 0xff, (byte) 0xff, (byte) 0xff }, +            1, VerifyAPDUSpec.PIN_FORMAT_BCD, 7, 4, 4); +      } else { +        apduSpec = new NewReferenceDataAPDUSpec( +            new byte[] { +                (byte) 0x00, (byte) 0x24, (byte) 0x00, pinInfo.getKID(), (byte) 0x10, +                (byte) 0x25, (byte) 0x12, (byte) 0x34, (byte) 0x5f, (byte) 0xff, +                (byte) 0xff, (byte) 0xff, (byte) 0xff, +                (byte) 0x20, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, +                (byte) 0xff, (byte) 0xff, (byte) 0xff }, +            1, VerifyAPDUSpec.PIN_FORMAT_BCD, 7, 4, 4); +      }        apduSpec.setPinInsertionOffsetNew(8);        resp = reader.modify(channel, apduSpec, provider, pinInfo);      } diff --git a/smcc/src/test/resources/at/gv/egiz/smcc/test/ecard/ECardG3ActivateTest.xml b/smcc/src/test/resources/at/gv/egiz/smcc/test/ecard/ECardG3ActivateTest.xml index 8bc39510..9fec2d42 100644 --- a/smcc/src/test/resources/at/gv/egiz/smcc/test/ecard/ECardG3ActivateTest.xml +++ b/smcc/src/test/resources/at/gv/egiz/smcc/test/ecard/ECardG3ActivateTest.xml @@ -48,7 +48,7 @@  			<map>  				<entry key="0x01">  					<bean parent="kartenPIN"> -						<property name="pin" value="25:12:34:5f:ff:ff:ff:ff" /> +						<property name="pin" value="26:12:34:56:ff:ff:ff:ff" />  						<property name="state">  							<util:constant static-field="at.gv.egiz.smcc.PIN.STATE_PIN_NOTACTIVE" />  						</property> @@ -76,11 +76,10 @@  						<property name="state">  							<util:constant static-field="at.gv.egiz.smcc.PIN.STATE_PIN_NOTACTIVE" />  						</property> -						<property name="pin" value="25:12:34:5f:ff:ff:ff:ff" />  					</bean>  				</entry>  			</map>  		</property>  	</bean> -</beans>
\ No newline at end of file +</beans> | 
