The attached code does exactly what you want. Regarding your problem, I think you
didn't satisfy the access conditions to create the file(secure messaging in this case).
----------
The individual's ability to perceive a problem is inversely
proportional to his responsibility for the fix.
- Defensive deafness doctrine
>-----Original Message-----
>From: David Caruso [mailto:[EMAIL PROTECTED]]
>Sent: Wednesday, July 26, 2000 7:34 PM
>To: [EMAIL PROTECTED]
>Subject: [OCF] No proper credentials available
>
>
>I am new to smartcard programming and need a little help.
>
>I have a GCR500 terminal and GPK8000 cards. The cards are
>brand new - no one
>has touched them other than myself. The test programs that
>come with the
>OCF download work so I know that everything is set up properly from a
>configuration standpoint.
>
>My end goal is to try to create a file on the card, fill it
>with data, and
>then read it back. I am using the examples in the OCF
>Programmer's Guide as
>a...well...guide.
>
>My problem comes when I try to create a transparent file on
>the card. I get
>the following error message:
>
>opencard.opt.service.CardServiceMissingCredentialsException: No proper
>credentials available
> at
>com.gemplus.opencard.service.gpk.access.GPKCardAccessor.secureT
>heSession
> at
>com.gemplus.opencard.service.gpk.access.GPKCardAccessor.executeCommand
> at
>com.gemplus.opencard.service.gpk.file.GPKFileSystemService.create
> at
>com.gemplus.opencard.service.gpk.file.GPKFileUtilityService.createEF
> at
>com.gemplus.opencard.service.gpk.file.GPKFileUtilityService.cre
>ateTransparen
>tFile
> at com.dataline.smartcard.CreateFile.init(CreateFile.java:44)
> at com.dataline.smartcard.CreateFile.main(CreateFile.java:70)
>
>Here is the code for my attempt at writing:
>
> // Get file service
> GPKFileUtilityService facs =
>(GPKFileUtilityService)sc.getCardService(
>
>GPKFileUtilityService.class,
> true
> );
> // Construct filepaths to the file on the card we will be using.
> CardFilePath rootFilePath = facs.getRoot();
> CardFilePath userFilePath = new CardFilePath(rootFilePath);
> userFilePath.append(new CardFilePath(":c009"));
>
> CardFile rootFile = new CardFile(facs);
> CardFile userFile = new CardFile(facs, userFilePath);
>
> if (!rootFile.exists(new CardFilePath(":c009"))) {
> facs.createTransparentFile(userFilePath, 20, null);
> }
>
> // Get a writer for the file.
> CardFileWriter cfw = new CardFileWriter(userFile);
>
> cfw.write("data");
> cfw.flush();
> cfw.close();
>
>The exception occurs on the facs.createTransparentFile() call.
> I'm assuming
>that I need to use some kind of key or secret code, but am
>unsure about the
>process.
>
>If this is the problem could someone give me a pointer to some
>docs (I've
>already read the OCF Programmer's Guide and it didn't really
>clear anything
>up) or fill me in on what I'm doing wrong?
>
>Thanks
>
>
>---
>> Visit the OpenCard web site at http://www.opencard.org/ for more
>> information on OpenCard---binaries, source code, documents.
>> This list is being archived at
>http://www.opencard.org/archive/opencard/
>
>! To unsubscribe
>from the [EMAIL PROTECTED] mailing list send an email
>! to
>! [EMAIL PROTECTED]
>! containing the word
>! unsubscribe
>! in the body.
>
>
TestMPCOS.java
Util.class