From: Maksim D. <dk...@bf...> - 2007-12-14 16:06:55
|
Hi! I currently have the following problem when trying to use jTSS with Vista. When I try to context_.connect(); I receive the exception: Exception in thread "main" java.lang.NoClassDefFoundError: iaik/tss/api/exceptions/tcs/TcTddlException at iaik.tc.tss.impl.java.tddl.TcTddlVista.tbsContextCreate(Native Method) at iaik.tc.tss.impl.java.tddl.TcTddlVista.open(Unknown Source) at iaik.tc.tss.impl.java.tddl.TcTddl.getInstance(Unknown Source) at iaik.tc.tss.impl.java.tcs.TcTcsCommon.isOrdinalSupported(Unknown Source) at iaik.tc.tss.impl.java.tcs.tcsi.TcTcsi.<clinit>(Unknown Source) at iaik.tc.tss.impl.java.tsp.tcsbinding.local.TcTcsBindingLocal.TcsiOpenContext(Unknown Source) at iaik.tc.tss.impl.java.tsp.internal.TcTspInternal.TspContextOpen_Internal(Unknown Source) at iaik.tc.tss.impl.java.tsp.TcContext.connect(Unknown Source) at iaik.tc.tss.impl.java.tsp.TcContext.connect(Unknown Source) at TPMCommon.setUp(TPMCommon.java:58) at clientTPM.setUp(clientTPM.java:42) at clientTPMTest.main(clientTPMTest.java:16) Vista TBS error received but unable to throw proper exception!Vista TBS Error (0x80284001): An internal software error occurred (One possible reason: Insufficient permissions to access TPM). This the full code example: import iaik.tc.tss.api.constants.tsp.TcTssConstants; import iaik.tc.tss.api.structs.common.TcBlobData; import iaik.tc.tss.api.tspi.TcIPolicy; import iaik.tc.tss.api.exceptions.common.TcTssException; //import iaik.tc.tss.api.structs.tsp.TcTssVersion; import iaik.tc.tss.api.structs.tsp.TcUuidFactory; import iaik.tc.tss.api.tspi.TcIContext; import iaik.tc.tss.api.tspi.TcIRsaKey; import iaik.tc.tss.impl.java.tsp.TcTssLocalCallFactory; public class TPMCommon { // UNICODE (UTF-16LE) String without NULL termination public static final TcBlobData OWNER_SECRET = TcBlobData.newString("tpmsecret"); //public static final TcBlobData OWNER_SECRET = TcBlobData.newString("hugoowner"); // The TSS_WELL_KNOWN_SECRET goes in "as is". public static final TcBlobData SRK_SECRET = TcBlobData.newByteArray(TcTssConstants.TSS_WELL_KNOWN_SECRET); //public static final TcBlobData SRK_SECRET=TcBlobData.newString("srk"); //Remember to change the SRK_SECRET_MODE as well public static final long OWNER_SECRET_MODE = TcTssConstants.TSS_SECRET_MODE_PLAIN; public static final long SRK_SECRET_MODE = TcTssConstants.TSS_SECRET_MODE_SHA1; // public static final long SRK_SECRET_MODE = TcTssConstants.TSS_SECRET_MODE_PLAIN; public static TcIPolicy tpmPolicy = null; public static TcIPolicy srkPolicy = null; public TcIContext context_ = null; public TcIRsaKey srk_ = null; public void setUp() throws Exception { //super.setUp(); context_ = new TcTssLocalCallFactory().newContextObject(); context_.connect(); Could you help me please? I have no idea where the problem is. The TPM itself is initialized, active and owned. Thank you! |