177 if (
rs ==
sizeof(
int))
return r;
179 printf(
"+++ERROR+++ : aux_rand: neither /dev/urandom nor /dev/random are available or readable!\n");
183 memcpy((
void *)&
t1, (
void *)&
tv.tv_sec,
sizeof(
int));
184 memcpy((
void *)&
t2, (
void *)&
tv.tv_usec,
sizeof(
int));
224 if ( *
i1-- != *
i2-- )
225 return(
i1[1] >
i2[1] ? 1 : -1 );
237 if ( (
l=
c1->n_len) !=
c2->n_len)
238 return(
l -
c2->n_len);
272 if ( (
l=
s1->n_len) <
s2->n_len) {
332 for (
lc=1, ld=0;
l--;
lc++) {
371 d->n_len =
n_sub(
s1->n_part,
s2->n_part,
d->n_part
372 ,
s1->n_len,
s2->n_len );
384 for (i=
l,mul=0; i; i--) {
408 d->n_len =
n_mult(
n->n_part,
m,
d->n_part,
n->n_len );
430 for (i=
l,
vp=
id; i--;)
450 if ( (*
p1++ = *
vp++))
495 for (;
l >= 0; ld++,
i1--,
i1e--,
l--,
i3--) {
498 if (ld ==
l2 && ! *
i1e) {
527 if (
lq>0 && !
q->n_part[
lq -1])
562#if rsa_MAXBIT == rsa_LOWBITS
588 if ( (i=
n->n_len) &&
n->n_part[i-1] == 0 )
656 while ( ! (
nt.n_part[0] & 1)) {
676 if (
a_cmp( &t[at], &t[
bt]) < 0) {
677 tmp= at; at=
bt;
bt= tmp;
680 while ( t[
bt].n_len) {
682 tmp= at; at=
bt;
bt= tmp;
703 return(
n->n_part[0] &
m );
803 ret = ((
f == 1) || (
f == 7)) ? 1 : -1;
857 if ( t[at].n_part[0] & 1) {
862 tmp = at; at =
nt;
nt = tmp;
900 for (;
w &&
m;
m--) {
903 for (i=
n->n_len-1,
p=
a.n_part; i; i--)
972 i0=k%3;
i1=(k+2)%3;
i2=(k+1)%3;
976 }
while (
r[
i0].n_len);
996 const char *hex =
"0123456789ABCDEF" ;
1001 p=&num[
sizeof(num) -1];
1010 while (
len-- && *
p ==
'0')
1018 const char *
randdev =
"/dev/urandom";
1023 if (read(fd, &seed,
sizeof(seed))) {;}
1026 seed = (
unsigned int)time(0);
1094 static char hex[] =
"0123456789ABCDEF";
1103 for (i=
len; i; i--) {
1105 *
ph-- = hex[ (
c >> 4) & 0xF ];
1106 *
ph-- = hex[
c & 0xF ];
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
int n_cmp(rsa_INT *i1, rsa_INT *i2, int l)
static rsa_NUMBER g_mod_z2[rsa_MAXBIT]
void a_imult(rsa_NUMBER *n, rsa_INT m, rsa_NUMBER *d)
void m_exp(rsa_NUMBER *x, rsa_NUMBER *n, rsa_NUMBER *z)
void a_mult(rsa_NUMBER *m1, rsa_NUMBER *m2, rsa_NUMBER *d)
void a_div2(rsa_NUMBER *n)
int n_sub(rsa_INT *p1, rsa_INT *p2, rsa_INT *p3, int l, int lo)
void m_mult(rsa_NUMBER *m1, rsa_NUMBER *m2, rsa_NUMBER *d)
int a_cmp(rsa_NUMBER *c1, rsa_NUMBER *c2)
void n_div(rsa_NUMBER *d1, rsa_NUMBER *z2, rsa_NUMBER *q, rsa_NUMBER *r)
void a_assign(rsa_NUMBER *d, rsa_NUMBER *s)
static int jak_g(rsa_NUMBER *, rsa_NUMBER *)
void a_ggt(rsa_NUMBER *a, rsa_NUMBER *b, rsa_NUMBER *f)
static int jakobi(rsa_NUMBER *, rsa_NUMBER *)
void gen_number(int len, rsa_NUMBER *n)
void a_sub(rsa_NUMBER *s1, rsa_NUMBER *s2, rsa_NUMBER *d)
void a_div(rsa_NUMBER *d1, rsa_NUMBER *d2, rsa_NUMBER *q, rsa_NUMBER *r)
void do_crypt(char *s, char *d, int len, rsa_NUMBER *e)
void a_add(rsa_NUMBER *s1, rsa_NUMBER *s2, rsa_NUMBER *d)
int n_mult(rsa_INT *n, rsa_INT m, rsa_INT *d, int l)
void m_add(rsa_NUMBER *s1, rsa_NUMBER *s2, rsa_NUMBER *d)
static int aux_rand()
rand() implementation using /udev/random or /dev/random, if available
static int jak_f(rsa_NUMBER *)
int n_bits(rsa_NUMBER *n, int b)
void m_init(rsa_NUMBER *n, rsa_NUMBER *o)
void inv(rsa_NUMBER *d, rsa_NUMBER *phi, rsa_NUMBER *e)
int n_bitlen(rsa_NUMBER *n)
int p_prim(rsa_NUMBER *n, int m)
int rsa_num_sget(rsa_NUMBER *, char *)
int rsa_num_sput(rsa_NUMBER *, char *, int)
rsa_INT n_part[(300 *8/(16+1))]
static uint64_t sum(uint64_t i)