|
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!
|