package de.persosim.simulator.perso; import de.persosim.simulator.cardobjects.MasterFile; import de.persosim.simulator.cardobjects.TrustPointCardObject; import de.persosim.simulator.cardobjects.TrustPointIdentifier; import de.persosim.simulator.crypto.certificates.CardVerifiableCertificate; import de.persosim.simulator.exception.AccessDeniedException; import de.persosim.simulator.exception.CertificateNotParseableException; import de.persosim.simulator.protocols.ta.TerminalType; import de.persosim.simulator.tlv.ConstructedTlvDataObject; import de.persosim.simulator.utils.HexString; /** * Standard personalization with same defaults used within the test PKI but with * trustpoints based on keys provided. * <p/> * This personalization is intended to be as close to the currently available * nPA as possible. During development the closest already supported * configuration is used. * * @author amay * */ public class DefaultPersoGt extends Profile01 { @Override public void setPersoDataContainer() { super.setPersoDataContainer(); persoDataContainer.setEfCardAccess("3181C13012060A04007F0007020204020202010202010D300D060804007F00070202020201023012060A04007F00070202030202020102020129301C060904007F000702020302300C060704007F0007010202010D020129303E060804007F000702020831323012060A04007F0007020203020202010202012D301C060904007F000702020302300C060704007F0007010202010D02012D302A060804007F0007020206161E687474703A2F2F6273692E62756E642E64652F6369662F6E70612E786D6C"); persoDataContainer.setEfCardSecurity("308204D606092A864886F70D010702A08204C7308204C3020103310F300D0609608648016503040204050030820188060804007F0007030201A082017A04820176318201723012060A04007F0007020204020202010202010D300D060804007F00070202020201023017060A04007F0007020205020330090201010201010101003019060904007F000702020502300C060704007F0007010202010D3017060A04007F0007020205020330090201010201020101FF3012060A04007F00070202030202020102020129301C060904007F000702020302300C060704007F0007010202010D0201293062060904007F0007020201023052300C060704007F0007010202010D0342000419D4B7447788B0E1993DB35500999627E739A4E5E35F02D8FB07D6122E76567F17758D7A3AA6943EF23E5E2909B3E8B31BFAA4544C2CBF1FB487F31FF239C8F8020129303E060804007F000702020831323012060A04007F0007020203020202010202012D301C060904007F000702020302300C060704007F0007010202010D02012D302A060804007F0007020206161E687474703A2F2F6273692E62756E642E64652F6369662F6E70612E786D6CA08202303082022C308201D3A003020102020102300906072A8648CE3D04013034310B3009060355040613024445310C300A060355040A1303484A50311730150603550403130E446F635369676E657220526F6F743020170D3134313031333131323430305A180F39393939313233313233353935395A302F310B3009060355040613024445310C300A060355040A1303484A503112301006035504031309446F635369676E6572308201333081EC06072A8648CE3D02013081E0020101302C06072A8648CE3D0101022100A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377304404207D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9042026DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B60441048BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F046997022100A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7020101034200044F1D38F79215929B3A6C616104DFD01A4960CEB3A99A80A26AD67478A82320A4910630DE4272ABED3BACAB5A5DDC7EB1AA4E17E47A8BBDF3CF0BF85B6A518545300906072A8648CE3D0401034800304502206CDD112FD37689ADF8F1A631EE8148A32202E4173EC6061C3EAC764B050C2D6A022100A58130A6473B318C5942EC3822965EAAAAD5065C63F1A914901B7EDAF8CC4A223181EC3081E902010130393034310B3009060355040613024445310C300A060355040A1303484A50311730150603550403130E446F635369676E657220526F6F74020102300D06096086480165030402040500A046301706092A864886F70D010903310A060804007F0007030201302B06092A864886F70D010904311E041CC57AFB616E6837B63B22666F48547E3AD71795E33326C0CE5FF27C3A300A06082A8648CE3D040301044630440220032D8A8CE0616D860900B5E1797DD07A370C1B8531009026E6B36466A5F822A5022051CC97D5349AC994D0BA0752156DB628EDECA80C0E5F67C76FC7E65E43329156"); persoDataContainer.setEfChipSecurity("3082070306092A864886F70D010702A08206F4308206F0020103310F300D06096086480165030402040500308203B5060804007F0007030201A08203A7048203A33182039F3012060A04007F0007020204020202010202010D300D060804007F00070202020201023017060A04007F0007020205020330090201010201010101003019060904007F000702020502300C060704007F0007010202010D3017060A04007F0007020205020330090201010201020101FF3012060A04007F00070202030202020102020129301C060904007F000702020302300C060704007F0007010202010D0201293062060904007F0007020201023052300C060704007F0007010202010D0342000419D4B7447788B0E1993DB35500999627E739A4E5E35F02D8FB07D6122E76567F17758D7A3AA6943EF23E5E2909B3E8B31BFAA4544C2CBF1FB487F31FF239C8F80201293081A3060804007F00070202083181963012060A04007F0007020203020202010202012D301C060904007F000702020302300C060704007F0007010202010D02012D3062060904007F0007020201023052300C060704007F0007010202010D034200041AC6CAE884A6C2B8461404150F54CD1150B21E862A4E5F21CE34290C741104BD1BF31ED91E085D7C630E8B4D10A8AE22BBB2898B44B52EA0F4CDADCF57CFBA2502012D302A060804007F0007020206161E687474703A2F2F6273692E62756E642E64652F6369662F6E70612E786D6C308201C3060804007F0007020207308201B5300B0609608648016503040204308201A43021020101041C2FF0247F59DD3C646E314F03ABB33EE91A586577EBDF48D3864EC34D3021020102041C37823963B71AF0BF5698D1FDC30DA2B7F9ECE57CFA4959BEE9D6D9943021020103041CA105E4EF19FEEC01DC64FBE1AECBEBC2A492DE78C89D439A8C301E853021020104041CAD81D20DBD4F5687FDB05E5037EC267609FDE28C6036FDBDF2C8B4333021020105041CA90F28EB7A0FA0DE83ABF3293D14E0838B9C85FC7277CBB97737A32B3021020106041C712B8550E49A13C64DCED4457E9A0F5A85DC26CD6A321596723005D63021020107041C42A8FA36B60887ED022CD3B6ECC255220FBE8CB3F607E416601FCAA63021020108041C6446E0A909967462B5C1117634F8A1B557EF74BE3F606C1E94EFAE433021020109041C635D1017F4ABC656B9FDDDD7E0FBB1E992B7686E89485E6AB51B638B302102010D041C04DB93544A64BC1245B10AAB266386F08F8E89F72E1DB178C172624D3021020111041CF0CBFF6A779EDF9D354EC73AF2297DA08389D5AE492F6F6B36C040143021020112041C57CE396CA707B96FA37C580F693230E4D4AEBB97293F0909489D95CBA08202303082022C308201D3A003020102020102300906072A8648CE3D04013034310B3009060355040613024445310C300A060355040A1303484A50311730150603550403130E446F635369676E657220526F6F743020170D3134313031333131323430305A180F39393939313233313233353935395A302F310B3009060355040613024445310C300A060355040A1303484A503112301006035504031309446F635369676E6572308201333081EC06072A8648CE3D02013081E0020101302C06072A8648CE3D0101022100A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377304404207D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9042026DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B60441048BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F046997022100A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7020101034200044F1D38F79215929B3A6C616104DFD01A4960CEB3A99A80A26AD67478A82320A4910630DE4272ABED3BACAB5A5DDC7EB1AA4E17E47A8BBDF3CF0BF85B6A518545300906072A8648CE3D0401034800304502206CDD112FD37689ADF8F1A631EE8148A32202E4173EC6061C3EAC764B050C2D6A022100A58130A6473B318C5942EC3822965EAAAAD5065C63F1A914901B7EDAF8CC4A223181EC3081E902010130393034310B3009060355040613024445310C300A060355040A1303484A50311730150603550403130E446F635369676E657220526F6F74020102300D06096086480165030402040500A046301706092A864886F70D010903310A060804007F0007030201302B06092A864886F70D010904311E041CD467691DFC209B26321A8BBF89EA8FFE93135C31478A8BE33C0A8805300A06082A8648CE3D04030104463044022009009B8D8D3FCAECE1E37B477D7BD82F46528AF97E990B6EC34BB4BB4D6585F30220767A069901768B582CAACE379E8BAE1233E66384DC6D8B874CD50747B3445208"); } @Override protected void addTaTrustPoints(MasterFile mf) throws CertificateNotParseableException, AccessDeniedException { // certificates byte[] cvcaIsData = HexString .toByteArray("7F218201B07F4E8201685F290100420D444549534356434130303030317F4982011D060A04007F000702020202038120A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E537782207D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9832026DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B68441048BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F0469978520A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7864104524770B0DDFBBA5A73E91E2562724F5A0CF1927A7333D1071BAB1120E8412EA2150DBDA7B85772BBA33C9FDD5637D303378A5A954CE6162488E4A5FF1EBABCF68701015F200D444549534356434130303030317F4C0E060904007F0007030102015301E35F25060105010100055F24060106010100055F3740422307D9B16408AB73E6F268B4FDDC30685641C571480A8123B0C6D2AAA9A902325CC87D93139924185320723A5D5A035F7A603B31664752C774A22B99C38D94"); byte[] cvcaAtData = HexString .toByteArray("7F218201B47F4E82016C5F290100420D444541544356434130303030317F4982011D060A04007F000702020202038120A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E537782207D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9832026DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B68441048BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F0469978520A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A786410462DEB4D891CE0B3BA124FB0941786986245FE2AA2F482A30754E2B05F06136CB39D5237CE3805E88BD87293B877F39EF464792E053C6644D671A14FB0E058C908701015F200D444541544356434130303030317F4C12060904007F0007030102025305FE1FFFFFFF5F25060105010100055F24060106010100055F37408BD0D199516491AD5128AA65E5480412F5A55E4E40C8ED7D6173A4D5CD53B91013228A376F27B5D190A94367ACEF0C022FAE1B694AD106C443E2A0EF57A9ECCD"); byte[] cvcaStData = HexString .toByteArray("7F218201B07F4E8201685F290100420D444553544356434130303030317F4982011D060A04007F000702020202038120A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E537782207D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9832026DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B68441048BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F0469978520A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A78641048DC4235B331A3284B46233D0575E707A3904045B0A67D119F332E7145A57C8B96EF68FBD1F5E675226B0715497C49D5122181C81626110A2EF36DC6BFA6215BB8701015F200D444553544356434130303030317F4C0E060904007F0007030102035301C35F25060105010100055F24060106010100055F37402384EDBEBAEE5B0128089FF3F9ACF1897898044662F6212F24B202799603BA9A05A8A41FC306A8467AEC4582C19EDDEDF6BA1E93980649506C931A68A23B8E0E"); ConstructedTlvDataObject cvcaIsTlv = new ConstructedTlvDataObject(cvcaIsData); ConstructedTlvDataObject cvcaAtTlv = new ConstructedTlvDataObject(cvcaAtData); ConstructedTlvDataObject cvcaStTlv = new ConstructedTlvDataObject(cvcaStData); // TA trustpoints TrustPointCardObject trustPointIs = new TrustPointCardObject(new TrustPointIdentifier(TerminalType.IS), new CardVerifiableCertificate(cvcaIsTlv)); mf.addChild(trustPointIs); TrustPointCardObject trustPointAt = new TrustPointCardObject(new TrustPointIdentifier(TerminalType.AT), new CardVerifiableCertificate(cvcaAtTlv)); mf.addChild(trustPointAt); TrustPointCardObject trustPointSt = new TrustPointCardObject(new TrustPointIdentifier(TerminalType.ST), new CardVerifiableCertificate(cvcaStTlv)); mf.addChild(trustPointSt); } }