Programm bleibt ständig hängen
-
ich hab OpenSSL ein wenig umgeschrieben und jetzt bleibt ständig bei der verschlüsselung alles hängen als wenn ich irgendwo eine endlos schleife hätte
aber ich kann den fehler nicht findenund zwar ist es in meiner square & multiply funktion jedesmal wenn die irgendwo aufgerufen wird geht nix mehr
edit: nichtmal die printfs werden angezeigt ... als würde er die funktion überspringen
int BN_SM(BIGNUM *erg, const BIGNUM *m, const BIGNUM *e, const BIGNUM *n, BN_CTX *ctx, BN_SM_CTX *sm) { printf("test"); int binArray[2048]; int i, num; for(i=0; i<2048; i++) { binArray[i]=0; } num=BN_num_bits(e); for(i=sizeof(num)*8-1; i>=0; --i) { binArray[i]=((num>>i)&1); } //S&M BIGNUM *c; int d=2048; //BIGNUM *ModCN; BIGNUM *ModMN; BN_CTX_start(ctx); c = BN_CTX_get(ctx); if (c == NULL) goto err; //ModCN = BN_CTX_get(ctx); //if (ModCN == NULL) goto err; ModMN = BN_CTX_get(ctx); if (ModMN == NULL) goto err; while(binArray[d]!=1) { d--; } printf("%i",d); for(i=d; i>=0; i--) { printf("%i",d); //BN_mod_mul(c,c,c,n,ctx); BN_exp(c,c,c,ctx); BN_mod(c,c,n,ctx); if(binArray[i]==1) { BN_mod(ModMN,m,n,ctx); BN_mul(c,c,ModMN,ctx); } } return(1); err: BN_CTX_end(ctx); return(0); }
-
frag das im openssl forum, woher sollen wir das denn hier wissen, lolz..
-
wenn man schon printf()'s als debugging hilfsmittel verwendet, dann sollte man auch sicherstellen, daß stdout geflusht wird. also ein "\n" am string ranhängen, wenn das nicht hilft noch ein fflush(stdout) nach printf() ausführen.
-
berniebuttson schrieb:
frag das im openssl forum, woher sollen wir das denn hier wissen, lolz..
ja ne die funktion ist ja nicht von openssl die hab ich selbst gemacht darum hab ichs hier rein geschrieben.
hast du nen link zu nem deutschsprachigen openssl forum ?aber ich hab gerade selbst rausgekriegt woran es liegt
anscheinend wird bignum *c mit 0 initialisiert und damit hat
BN_exp ein problem
dumm nur das es nicht einfach eine funktion gibt mit der ich c eine 1 zuweisen kann