FriBID är ett fritt program för e-legitimation med BankID.
OBS! FriBID är i praktiken nedlagt, och fungarar inte att använda längre.
You are not logged in.
Pages: 1
Hej
har lyckats bygga fribid på openbsd, har oxå fått hem p12 filen från Länsförsäkringar.
Men sen var det stopp!
Testsidan för fribid ger felkod -1 för båda testerna.
Nåt förslag på hur gå vidare ?
Offline
Har aldrig kört OpenBSD själv, men här är några förslag:
Kolla efter felmeddelanden i ~/.xsession-errors om den filen finns
Alternativt kan du starta webbläsaren från en terminal så att outputen hamnar där (förslagsvis med "-no-remote" om du kör Firefox).
Prova att byta namn på katalogen ~/cbt (som innehåller certifikatfiler för e-legitimationerna) och se om FriBID går att starta då.
Testa scriptet "testsign.sh" i client/ i sourcen (men kommentera ut raden med valgrind och zzuf och avkommentera den under)
Offline
Hej igen
Error från Firefox:
"fribid: pipe error in plugin
"
provade att byta namn på cbt, ingen skillnad.
körde testsign.sh enl instruktion.
problem:
sha1sum finns inte i OpenBSD ersatte den därför med sha1 i scriptet.
"head" som finns i scriptet är inte kompatibelt med BSD "head". Ersatte den därför med ett hembryggt head. Om jag förstår det hela rätt ska den filtrera bort allt utom dom 5 första byten. Stämmer det?
efter detta blev de ändrade raderna i scripet:
"
#sha="`echo $signature | sha1sum | head -c 5`"
sha="`echo $signature | sha1| hbhead`"
"
(sha blir utan filtreing 40 bytes lång)
resultat vid körning:
"
$sh testsign.sh
error=, length=, sha1=adc83
Segmentation fault (core dumped)
"
början på man page för sha1:
"
NAME
sha1 - calculate a message-digest fingerprint (checksum) for a file
SYNOPSIS
sha1 [-bpqrtx] [-c [checklist ...]] [-s string] [file ...]
DESCRIPTION
sha1 takes as input a message of arbitrary length and produces as output
a 160-bit "fingerprint" or "message digest" of the input. It is
conjectured that it is computationally infeasible to produce two messages
having the same message digest (a collision), or to produce any message
having a given prespecified target message digest. However, researchers
have developed theoretical attacks that significantly reduce the amount
of time needed to find a collision in SHA-1. The use of other message
digest functions, such as sha256(1), is now preferred.
The SHA-1 algorithm is intended for digital signature applications, where
a large file must be "compressed" in a secure manner before being
encrypted with a private (secret) key under a public-key cryptosystem
such as RSA.
The options are as follows:
...
"
Offline
Ok, så det blir en segfault i FriBID. Prova att skapa en textfil med detta innehåll:
3;
20;https://example.com/
11;example.com
14;198.51.100.200
12;MTIzNDU2Nzg5
0;
0;
0;
5;UTF-8
4;aGkK
0;
hack
Kör sedan "sign"-binären i en debugger med filen ovan pipe:ad till standard input. Vet inte riktigt vad man brukar köra för debuggers på OpenBSD men om du kör GDB så kan du använda dessa kommandon:
$ gdb client/sign
(gdb) run --internal--ipc=10 < signdata.txt
<Programmet kraschar>
(gdb) bt
<Stacktrace skrivs ut. Posta den på forumet>
Offline
OK och tack för dom snabba svaren,
här kommer tracen:
$ gdb sign
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "amd64-unknown-openbsd5.4"...
(no debugging symbols found)
(gdb) run --internal--ipc=10 < signdata.txt
Starting program: /home/ole/Downloads/fribid-1.0.3/client/sign --internal--ipc=10 < signdata.txt
Program received signal SIGSEGV, Segmentation fault.
closedir (dirp=0x0) at /usr/src/lib/libc/gen/closedir.c:50
50 free(dirp->dd_td->td_locs);
(gdb) bt
#0 closedir (dirp=0x0) at /usr/src/lib/libc/gen/closedir.c:50
#1 0x0000174b0c30b3ec in platform_closeDir ()
from /home/ole/Downloads/fribid-1.0.3/client/sign
#2 0x0000174b0c30b49b in platform_openDir ()
from /home/ole/Downloads/fribid-1.0.3/client/sign
#3 0x0000174b0c30c7a8 in platform_addKeyDirectories ()
from /home/ole/Downloads/fribid-1.0.3/client/sign
#4 0x0000174b0c30a58d in pipeCommand ()
from /home/ole/Downloads/fribid-1.0.3/client/sign
#5 0x0000174b0c30a66c in pipeData ()
from /home/ole/Downloads/fribid-1.0.3/client/sign
#6 0x0000174b0c30b99c in pipeCallback ()
from /home/ole/Downloads/fribid-1.0.3/client/sign
#7 0x0000174d106f289a in g_main_context_dispatch ()
from /usr/local/lib/libglib-2.0.so.3600.1
#8 0x0000174d106f4648 in g_main_context_iterate ()
from /usr/local/lib/libglib-2.0.so.3600.1
#9 0x0000174d106f576b in g_main_loop_run ()
from /usr/local/lib/libglib-2.0.so.3600.1
#10 0x0000174d0e9c6883 in gtk_main ()
from /usr/local/lib/libgtk-x11-2.0.so.2400.0
#11 0x0000174b0c309e12 in main ()
from /home/ole/Downloads/fribid-1.0.3/client/sign
Offline
hej igen
kom ett litet steg vidare
Moddade platform_closeDir i client/posix.c
enl:
void platform_closeDir(PlatformDirIter *iter)
{
// printf(" platform_closeDir \n");
// if (iter->dir == NULL)
//printf("iter->dir == NULL \n");
if (iter->dir != NULL)
closedir(iter->dir);
free(iter->path);
free(iter);
}
scriptet säger sen :
"
$ sh testsign.sh
error=0, length=, sha1=24163
är det i sin ordning?
Last edited by Hellqvio (2014-04-07 18:36:11)
Offline
Jippy!
gled in som en svan på banken efter ändringen.
liten fundering bara:
"platform_closeDir" funktionen kallas två gånger från platform_addKeyDirectories då parametern len där är 1;
är det meningen ?
Om det det finns något allm intresse kanske mina moddingar för bygget i övrigt också kanske borde presenteras:
körde ./configure med " --plugin-path= /usr/local/lib/mozilla/plugins
klämde sen in
"
CCFLAGS += `pkg-config --cflags gtk+-2.0`
LIBS += `pkg-config --libs --cflags gtk+-2.0`
"
i client/Makefile för att få det att fungera. Detta borde kanske ha varit med i configure, men configure är inte riktigt min kopp av te.
/Ole
Offline
Bra att du fick det att fungera. Har committat platform_closeDir-fixen. Angående addKeyDirectories och len-variabeln så verkar 1 ha fått betydelsen "2 stycken" av någon anledning. Kanske borde fixa det också.
Angående flaggona till Makefile, har du testat med "./configure --with-gtk=2" istället? För det där ska vara default om man inte kör GTK3 (med undantag för --cflags-flaggan i LIBS).
Offline
Provade att köra configure :
"
$ ./configure --plugin-path=/usr/local/lib/mozilla/plugins --with-gtk=2
"
det gick bra.
gtk3 gick också bra.
inga ändringar i Makefilerna är nödvändiga.
Angående min ändring i platform_closeDir tror jag detta är mer att betrakta som en "albyl", rätt ställa att angripa problemet borde vara i addKeyDirectories.
Att försöka använda free() på null variabler kan också ställa till det.
en liten ändring jag också gjort för att undvika varningar i kompileringen för omdefinitioner är enligt nedan:
"
--- client/misc.h~ Fri Jan 31 22:52:07 2014
+++ client/misc.h Mon Apr 7 09:35:10 2014
@@ -26,9 +26,9 @@
#define MISC_H
#include <stdbool.h>
-
+#ifndef SIZE_T_MAX
#define SIZE_T_MAX ((size_t)-1)
-
+#endif
/**
* Adds to a size_t and checks for integer overflow
*
"
Offline
angående malloc/free i OpenBSD
se nedan man malloc .
DIAGNOSTICS
If malloc(), calloc(), realloc(), or free() detect an error condition, a
message will be printed to file descriptor 2 (not using stdio). Errors
will result in the process being aborted, unless the a option has been
specified.
Here is a brief description of the error messages and what they mean:
``out of memory''
If the X option is specified it is an error for malloc(),
calloc(), or realloc() to return NULL.
``malloc init mmap failed''
This is a rather weird condition that is most likely to indicate
a seriously overloaded system or a ulimit restriction.
``bogus pointer (double free?)''
An attempt to free() or realloc() an unallocated pointer was
made.
``chunk is already free''
There was an attempt to free a chunk that had already been freed.
.......
Men
Jag fick problem, senare packade upp hela fribid på ett nytt ställe patchade configurerade. men då ville inte gtk.c bygga.
Efter lite forskning upptäckte jag att configure inte fungerade som jag antagit trots make clean ./configure etc var client/Makefilen orörd.
Jag kom sedan på att den styrs av parametrar från configure. Det fungerar inte BSDmake ( bla annat är if/else statser annorlunda).
laddade därför ner gmake, med den gick det bra !
Offline
Pages: 1