From: Ronald T. <ron...@ia...> - 2011-03-23 09:36:52
|
Hi, How about initializing TcTssValidation val first? Ronald Am 23.03.2011 00:08, schrieb Mudassar Aslam: > Hi, > > I am trying to certify a key using AIK key. My code was working fine before > but then I reset my TPM and re-created keys. Probably after that or due to > any other reason I am now getting following exception. > > Exception in thread "main" java.lang.NullPointerException > at > iaik.tc.tss.api.structs.common.TcBasicTypeDecoder.checkBoundaryPreconditions(TcBasicTypeDecoder.java:90) > at iaik.tc.tss.api.structs.tpm.TcTpmNonce.decode(TcTpmNonce.java:78) > at > iaik.tc.tss.api.structs.common.TcCompositeTypeDecoder.<init>(TcCompositeTypeDecoder.java:54) > at > iaik.tc.tss.api.structs.common.TcCompositeTypeDecoder.<init>(TcCompositeTypeDecoder.java:40) > at iaik.tc.tss.api.structs.tpm.TcTpmNonce.<init>(TcTpmNonce.java:46) > at iaik.tc.tss.impl.java.tsp.TcRsaKey.certifyKey(TcRsaKey.java:279) > at tests.TestCertifyKey.main(TestCertifyKey.java:90) > > My code is: > > try{ > TcIContext context = new > TcTssContextFactory().newContextObject(); > context.connect(); > > > TcITpm tpm = context.getTpmObject(); > > TcIPolicy ownerPolicy = > context.createPolicyObject(TcTssConstants.TSS_POLICY_USAGE); > ownerPolicy.setSecret(TcTssConstants.TSS_SECRET_MODE_PLAIN, > Define.OWNER_SECRET); > ownerPolicy.assignToObject(tpm); > > > /*KEY CREATION*/ > > //Parent key SRK > TcIRsaKey srk = > context.getKeyByUuid(TcTssConstants.TSS_PS_TYPE_SYSTEM,TcUuidFactory.getInstance().getUuidSRK()); > TcIPolicy srkPolicy = > context.createPolicyObject(TcTssConstants.TSS_POLICY_USAGE); > srkPolicy.setSecret(TcTssConstants.TSS_SECRET_MODE_SHA1, > TcBlobData.newByteArray(TcTssConstants.TSS_WELL_KNOWN_SECRET) ); > srkPolicy.assignToObject(srk); > > > /*Binding Key*/ > // Create an empty binding key object > long keyAttributes = TcTssConstants.TSS_KEY_SIZE_2048 | > TcTssConstants.TSS_KEY_TYPE_BIND | > TcTssConstants.TSS_KEY_VOLATILE | > TcTssConstants.TSS_KEY_NOT_MIGRATABLE | > TcTssConstants.TSS_KEY_NO_AUTHORIZATION; > //default > > TcIRsaKey bindKey = context.createRsaKeyObject(keyAttributes); > > // Bind key usage policy > TcIPolicy bindKeyPolicy = > context.createPolicyObject(TcTssConstants.TSS_POLICY_USAGE); > bindKeyPolicy.setSecret(TcTssConstants.TSS_SECRET_MODE_PLAIN, > Define.BIND_KEY_SECRET); > bindKeyPolicy.assignToObject(bindKey); > > // Bind key migration policy (just to avoid popup) > TcIPolicy bindKeyMigrationPolicy = > context.createPolicyObject(TcTssConstants.TSS_POLICY_MIGRATION); > bindKeyMigrationPolicy.setSecret(TcTssConstants.TSS_SECRET_MODE_SHA1, > TcBlobData.newByteArray(TcTssConstants.TSS_WELL_KNOWN_SECRET) ); > bindKeyMigrationPolicy.assignToObject(bindKey); > > //Parent key SRK (already loaded) > bindKey.createKey(srk, null); > > /*Store on HDD*/ > TcTssUuid bindKeyUUID = > TcUuidFactory.getInstance().generateRandomUuid(); > context.registerKey(bindKey, TcTssConstants.TSS_PS_TYPE_SYSTEM, > bindKeyUUID, TcTssConstants.TSS_PS_TYPE_SYSTEM, > TcUuidFactory.getInstance().getUuidSRK()); > > System.out.println("Bind key registered in persistant system > storage with " + bindKeyUUID.toString()); > bindKey.loadKey(srk); > > TcIRsaKey aikKey = > context.createRsaKeyObject(Define.AIK_KEY_ATTRIBUTES); > > // create the UUID of the AIK > TcTssUuid uuid = new TcTssUuid().initString(Define.aikKeyUuid); > aikKey = context.getKeyByUuid(TcTssConstants.TSS_PS_TYPE_SYSTEM, > uuid); > > // set usage secret for identity key > TcIPolicy aikUsgPol = > context.createPolicyObject(TcTssConstants.TSS_POLICY_USAGE); > aikUsgPol.setSecret(TcTssConstants.TSS_SECRET_MODE_PLAIN, > Define.AIK_SECRET); > aikUsgPol.assignToObject(aikKey); > > TcIPolicy aikMigPol = > context.createPolicyObject(TcTssConstants.TSS_POLICY_MIGRATION); > aikMigPol.setSecret(TcTssConstants.TSS_SECRET_MODE_PLAIN, > TcBlobData.newString("none")); > aikMigPol.assignToObject(aikKey); > aikKey.loadKey(srk); > > > TcTssValidation val = new TcTssValidation(); > TcTssValidation validationResult = bindKey.certifyKey(aikKey, > val); > > > > context.closeContext(); > } > catch (TcTssException e){ > e.printStackTrace(); > } > > } > > > > Regards. > > Mudassar Aslam > > > ------------------------------------------------------------------------------ > Enable your software for Intel(R) Active Management Technology to meet the > growing manageability and security demands of your customers. Businesses > are taking advantage of Intel(R) vPro (TM) technology - will your software > be a part of the solution? Download the Intel(R) Manageability Checker > today! http://p.sf.net/sfu/intel-dev2devmar > _______________________________________________ > Trustedjava-support mailing list > Tru...@li... > https://lists.sourceforge.net/lists/listinfo/trustedjava-support |