On 12/17/2012 11:37 AM, Anna Pavlova wrote:
> Hello Douglas,
>
>
>  > Sounds like p11 == NULL, or p11->C_Initialize is NULL or not valid.
>
> I did:
>
> printf("p11 = 0x%0x, p11->C_Initialize = 0x%0x\n", p11, p11->C_Initialize);
>
> in pkcs11-tool.c, just after C_LoadModule and before p11->C_Initialize(NULL)
>
> and got:
>
> p11 = 0xb7214060, p11->C_Initialize = 0x5810b6fa

OK, but is 0x5810b6fa in your module?

What version of OpenSC are you running?
On what OS?

>
> so it is not null.
>
>
>  >Can you run this under gdb?
>
> Unfortunately I'm not very good in gdb :-(
>
> anna@anna:~/OpenSC/src/tools$ export LD_LIBRARY_PATH=`ls ../*/.libs -d | tr 
> '\012' :`
> anna@anna:~/OpenSC/src/tools$ cd .libs/
> anna@anna:~/OpenSC/src/tools/.
> libs$ gdb 'pkcs11-tool --module /home/anna/PKCS11_Project/libPkcs11.so'
>
> the last command returns:
> pkcs11-tool --module /home/anna/PKCS11_Project/libPkcs11.so: No such file or 
> directory.


One way is to use the --args

    gdb --args pkcs11-tool --module /home/anna/PKCS11_Project/libPkcs11.so -l -O

    break  pkcs11-tool.c:558
    run

If it crashes, It should show a back trace.
If it does not then to print out the p11 structure:

  p *p11


I will ask again, does your module define the C_GetFunctionList, and does it
return a valid function list?

How did you link it?





>
> Of course, when I run only:
> anna@anna:~/OpenSC/src/tools/.libs$ gdb pkcs11-tool
>
> that one runs and I can run in debug mode, but I'm afraid that then I'm not 
> loading my module.
>
> Do you know how can I run gdb and also use my own library? Sorry, I'm not 
> really used to work with gdb :-(
>
>
>  >Did you define a C_GetFunctionList in the module?
>
> Yes I did. In fact when I printed out in pkcs11-tool.c
>
> printf("%d \n",p11->version.major);
> printf("%d \n",p11->version.minor);
>
> it printed out the correct values. This is also the only thing that I can 
> call with p11. But yes, C_GetFunctionList is defined in my library.
>
>
>
>  >You must make sure the you module is linked as a module
>  >and not just a shared library, so that functions returned by
>  >  C_GetFunctionList  points at the functions in your module,
>  >and not ones that may be defined by the caller.
>
> This is an interesting point, thank you. Actually no, I have built and linked 
> it just like a shared library. I thought  what's written as 'module' in the 
> code and 'shared library' are the same things.
>
> Thanks,
> Anna
>
>
> On Mon, Dec 17, 2012 at 4:18 PM, Douglas E. Engert <deeng...@anl.gov 
> <mailto:deeng...@anl.gov>> wrote:
>
>
>
>     On 12/17/2012 7:01 AM, Anna Pavlova wrote:
>      > Hello,
>      >
>      > I am new to OpenSC but I was looking for a 3rd party tool with which I 
> could test my self-developed pkcs11 library and I came across the OpenSC 
> pkcs11-tool.
>      >
>      > I installed OpenSC under Ubuntu11.10, following 
> http://www.gooze.eu/howto/smartcard-quickstarter-guide/opensc-installation-under-gnu-linux
>      >   everything went fine, but when I wanted to run the pkcs11-tool:
>      >
>      >  >  pkcs11-tool --module /home/anna/PKCS11_Project/libPkcs11.so -l -O
>
>
>      >
>      > I got segmentation fault.
>      >
>      > I was able to find the place where the code crashed. In pkcs11-tool.c 
> the line (558):
>      >
>      > rv = p11->C_Initialize(NULL);
>
>     Sounds like p11 == NULL, or p11->C_Initialize is NULL or not valid.
>     It should point at your C_Initialize routine.
>
>     Can you run this under gdb?
>
>      >
>      > seem to crash. The message is just "Segmentation fault"
>      >
>      > The module loads apparently fine.
>      > module = C_LoadModule(opt_module, &p11);  //no error here
>      >
>      > The problem is, that in my pkcs11 library I put an error message at 
> the very beginning of the C_Initialize function, but not even this is printed 
> out. So I don't think the crash comes from my
>     library.
>      > I turned on the creation of a log file in my pkcs11 library, but not 
> even my pkcs11 library log file is created.
>      >
>
>     Did you define a C_GetFunctionList in the module?
>
>     You must make sure the you module is linked as a module
>     and not just a shared library, so that functions returned by
>        C_GetFunctionList  points at the functions in your module,
>     and not ones that may be defined by the caller.
>
>     Have a look at the pkcs11-spy too which is a PKCS#11 module that loads
>     a second PKCS#11 module.
>
>      >
>      > I tried to google this problem and found this old thread:
>      > 
> http://www.opensc-project.org/pipermail/opensc-devel/2003-April/000831.html
>      >
>      > But it didn't really help me (rebuilding openssl didn't solve the 
> problem..). Could anyone help?
>      >
>      > Thanks for any help,
>      > Anna
>      >
>      >
>      > _______________________________________________
>      > opensc-devel mailing list
>      > opensc-devel@lists.opensc-project.org 
> <mailto:opensc-devel@lists.opensc-project.org>
>      > http://www.opensc-project.org/mailman/listinfo/opensc-devel
>      >
>
>     --
>
>        Douglas E. Engert  <deeng...@anl.gov <mailto:deeng...@anl.gov>>
>        Argonne National Laboratory
>        9700 South Cass Avenue
>        Argonne, Illinois  60439
>     (630) 252-5444 <tel:%28630%29%20252-5444>
>     _______________________________________________
>     opensc-devel mailing list
>     opensc-devel@lists.opensc-project.org 
> <mailto:opensc-devel@lists.opensc-project.org>
>     http://www.opensc-project.org/mailman/listinfo/opensc-devel
>
>

-- 

  Douglas E. Engert  <deeng...@anl.gov>
  Argonne National Laboratory
  9700 South Cass Avenue
  Argonne, Illinois  60439
  (630) 252-5444
_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to