Commit 1f69d84e authored by fetke's avatar fetke
Browse files

some simplifications of the types, some corrections

parent 529976e2
Loading
Loading
Loading
Loading
+72 −73
Original line number Diff line number Diff line
@@ -179,8 +179,9 @@ module ePassport_Types {
					FirstInterindustryClass		first,
					FurtherInterindustryClass	further
				} with {
					variant
					"use=com.testingtech.ttcn.tci.helper.EPassportCodecHelper;encode=EPassportCodecHelper.encodeClass();decode=EPassportCodecHelper.decodeClass();"
				    // ISO/IEC 7816-4:2005(E), tables 2 and 3:
					variant (first)		"fieldPresent=bits(0,2,0x0)";
					variant (further)	"fieldPresent=bits(0,2,0x1)";
				};

				type record FirstInterindustryClass {
@@ -205,19 +206,19 @@ module ePassport_Types {
				type enumerated ChainingControl {
					e_lastOrOnlyCommand(0),
					e_notLastCommand(1)
				} with {variant "length=1"}
				} with {variant "length=1;unsigned;"}

				type enumerated FirstSM {
					e_noSM(0),
					e_proprietarySM(1),
					e_SmCommandHeaderNotProcessed(2),
					e_SmCommandHeaderAuthenticated(3)
				} with {variant "length=2"}
				} with {variant "length=2;unsigned;"}

				type enumerated FurtherSM {
					e_noSM(0),
					e_SmCommandHeaderNotProcessed(1)
				} with {variant "length=1"}
				} with {variant "length=1;unsigned;"}

				type enumerated Instruction {
					e_deactivateFile(4), // 0x04
@@ -270,7 +271,7 @@ module ePassport_Types {
					e_terminateDF_1(230), // 0xE6
					e_terminateDF_2(232), // 0xE8
					e_terminateCardUsage(254) //0xFE
				} with {variant "length=8"}
				} with {variant "length=8;unsigned;"}

				type Bit8 P1Status;
				type Bit8 P2Status;
@@ -292,7 +293,7 @@ module ePassport_Types {
				type record RawPayload {
					FailureReason failureReason,
					octetstring undecrypted,
					octetstring undecoded
					octetstring undecoded optional
				}

				type enumerated FailureReason {
@@ -343,21 +344,21 @@ module ePassport_Types {
					e_selectByDFName(4),
					e_selectFromMF(8),
					e_selectFromCurrentDF(9)
				} with {variant "length=4"}
				} with {variant "length=4;unsigned;"}

				type enumerated FileControlInformation {
					e_returnFCITemplate(0),
					e_returnFCPTemplate(1),
					e_returnFMDTemplate(2),
					e_noResponseOrProprietary(3)
				} with {variant "length=2"}
				} with {variant "length=2;unsigned;"}

				type enumerated FileOccurrence {
					e_firstOrOnlyOccurrence(0),
					e_lastOccurrence(1),
					e_nextOccurrence(2),
					e_previousOccurrence(3)
				} with {variant "length=2"}
				} with {variant "length=2;unsigned;"}

				type union SelectPayload {
					SelectData selectData, RawPayload rawPayload
@@ -386,7 +387,7 @@ module ePassport_Types {
				type enumerated FileIdOrLongOffset {
					e_longOffset(0),
					e_fileIdAndOffset(1)
				} with { variant "length=1" }
				} with { variant "length=1;unsigned;" }

				type record FileIdAndOffset {
					FileIdOrLongOffset fileIdPresent(e_fileIdAndOffset),
@@ -432,7 +433,7 @@ module ePassport_Types {
					octetstring data, // FIXME: unfinished; maybe more variants are to be used later
					LengthE	lengthE
				} with {
					variant (data) "length=getIntTag('lengthC')"
					variant (data) "length=getIntTag('lengthC');unsigned;"
				}

			} // end ReadBinaryWithOffsetDataObjectMsg
@@ -474,7 +475,7 @@ module ePassport_Types {
				type enumerated ReferenceDataScope {
					e_globalReferenceData(0),
					e_specificReferenceData(1)
				} with {variant "length=2"}
				} with {variant "length=2;unsigned;"}  // TODO: really length == 2?  why?  comment!

				type union ExternalOrMutualAuthenticatePayload {
					ExternalOrMutualAuthenticateData externalOrMutualAuthenticateData,
@@ -529,29 +530,29 @@ module ePassport_Types {
				type enumerated MseSecureMessagingInCommandDataField {
					e_mseNoSecureMessagingInCommandDataField(0),
					e_mseSecureMessagingInCommandDataField(1)
				} with {variant "length=1"}
				} with {variant "length=1;unsigned;"}

				type enumerated MseSecureMessagingInResponseDataField {
					e_mseNoSecureMessagingInResponseDataField(0),
					e_mseSecureMessagingInResponseDataField(1)
				} with {variant "length=1"}
				} with {variant "length=1;unsigned;"}

				type enumerated MseComputationDeciphermentIntAuthKeyAgreement {
					e_mseNoComputationDeciphermentIntAuthKeyAgreement(0),
					e_mseComputationDeciphermentIntAuthKeyAgreement(1)
				} with {variant "length=1"}
				} with {variant "length=1;unsigned;"}

				type enumerated MseVerificationEnciphermentExtAuthKeyAgreement {
					e_mseNoVerificationEnciphermentExtAuthKeyAgreement(0),
					e_mseVerificationEnciphermentExtAuthKeyAgreement(1)
				} with {variant "length=1"}
				} with {variant "length=1;unsigned;"}

				type enumerated MseFunction {
					e_mseFunctionSet(1),
					e_mseFunctionStore(2),
					e_mseFunctionRestore(3),
					e_mseFunctionErase(4)
				} with {variant "length=4"}
				} with {variant "length=4;unsigned;"}  // TODO: really length == 4?  Why?  Comment!

				type enumerated MseCrtTag {
					e_crtAT(164),
@@ -560,7 +561,7 @@ module ePassport_Types {
					e_crtCCT(180),
					e_crtDST(182),
					e_crtCT(184)
				} with {variant "length=8"}
				} with {variant "length=8;unsigned;"}

				type union ManageSecurityEnvironmentPayload {
					ManageSecurityEnvironmentData manageSecurityEnvironmentData,
@@ -719,7 +720,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x80)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				// File and key references
@@ -730,7 +731,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x81)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtDfName {
@@ -740,7 +741,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x82)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtReferenceOfSecretOrPublicKey {
@@ -750,7 +751,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x83)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtReferenceOfSessionOrPrivateKey {
@@ -760,7 +761,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x84)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtKeyUsageTemplate {
@@ -770,7 +771,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0xA3)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				// Initial data reference: Initial check block
@@ -781,7 +782,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x85)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtIcbChainingBlock {
@@ -791,7 +792,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x86)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtIcbPreviousInitialValueBlockPlusOne {
@@ -801,7 +802,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x87)&&bytes(1,4,0x00000000)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtIcbInitialValueBlock {
@@ -811,7 +812,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x87)&&!bytes(1,4,0x00000000)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				// Initial data reference: auxiliary data elements
@@ -822,7 +823,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x88)&&bytes(1,4,0x00000000)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtAuxNoFurtherIndication {
@@ -832,7 +833,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x88)&&!bytes(1,4,0x00000000)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtAuxIndexOfProprietaryDataElement {
@@ -840,10 +841,9 @@ module ePassport_Types {
					TlvLength tlvLength,
					octetstring tlvValue
				} with {
					// TODO: if possible, simplify that range-stuff (also below):
					variant "present=(bytes(1,0x89)||bytes(1,0x8a)||bytes(1,0x8b)||bytes(1,0x8c)||bytes(1,0x8d))&&bytes(1,4,0x00000000)"
					variant "present=bytesRange(0,1,0x89,0x8d)&&bytes(1,4,0x00000000)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtAuxValueOfProprietaryDataElement {
@@ -851,9 +851,9 @@ module ePassport_Types {
					TlvLength tlvLength,
					octetstring tlvValue
				} with {
					variant "present=(bytes(1,0x89)||bytes(1,0x8a)||bytes(1,0x8b)||bytes(1,0x8c)||bytes(1,0x8d))&&!bytes(1,4,0x00000000)"
					variant "present=bytesRange(0,1,0x89,0x8d)&&!bytes(1,4,0x00000000)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtAuxHashCodeProvidedByCard {
@@ -864,7 +864,7 @@ module ePassport_Types {
					// 0x90 L>0 does not exist. TODO: ask Dirk what happens in this case
					variant "present=bytes(1,0x90)&&bytes(1,4,0x00000000)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtAuxRandomNumberProvidedByCard {
@@ -874,7 +874,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x91)&&bytes(1,4,0x00000000)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtAuxRandomNumber {
@@ -884,7 +884,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x91)&&!bytes(1,4,0x00000000)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtAuxTimestampProvidedByCard {
@@ -894,7 +894,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x92)&&!bytes(1,4,0x00000000)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtAuxTimestamp {
@@ -904,7 +904,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x92)&&!bytes(1,4,0x00000000)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtAuxPreviousDigitalSignatureCounterPlusOne {
@@ -914,7 +914,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x93)&&bytes(1,4,0x00000000)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtAuxDigitalSignatureCounter {
@@ -924,7 +924,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x93)&&!bytes(1,4,0x00000000)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtAuxChallengeOrDataElementForDerivingKey {
@@ -934,7 +934,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x94)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtUsageQualifierByte {
@@ -944,7 +944,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x95)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

				type record CrtCryptogramContentReference {
@@ -954,7 +954,7 @@ module ePassport_Types {
				} with {
					variant "present=bytes(1,0x8e)"
					variant (tlvLength) "intTag='tlvLength'";
					variant (tlvValue) "length=getIntTag('tlvLength')";
					variant (tlvValue) "length=getIntTag('tlvLength');unsigned;";
				}

			} // end DataObjects
@@ -968,19 +968,18 @@ module ePassport_Types {
				ResponseData responseData optional,
				W1W2Status w1w2
			} with {
				variant "isPDU"
				variant "isPdu;"
			}

			type union ResponseData {
				PlainTextResponseData plainText,
				EncryptedResponseData encrypted
				RawPayload rawPayload
			} with {
				variant
				"use=com.testingtech.ttcn.tci.helper.EPassportCodecHelper;encode=EPassportCodecHelper.encodeResponseData();decode=EPassportCodecHelper.decodeResponseData();"
			}

			type octetstring PlainTextResponseData with { variant "noCodec" };
			type octetstring EncryptedResponseData with { variant "noCodec" };
			type Oct2 W1W2Status;
		} // end group commandTypesGroup
	}