void bagelsinit(){ int sendrc; static unsigned char hdr1[]="HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n" "<html><body><span style=\"color:#0000A0\">\r\n" "<center><h1>Olduino 1802 BAGELS Server</h1></center>"; static unsigned char Inst1[]= "I AM THINKING OF A 3 DIGIT NUMBER.<BR>TRY TO GUESS " //50 "MY NUMBER AND I WILL GIVE YOU CLUES AS FOLLOWS:<BR>" "...PICO - ONE DIGIT IS IN THE WRONG PLACE<BR>" "...FERMI - ONE DIGIT IS IN THE CORRECT PLACE<BR>" "...BAGELS - NO DIGIT IS CORRECT<P>"; static unsigned char gform[]="<p><form method=\"GET\">\r\n" "<input type=\"text\" name=\"G\">" "<input type=\"submit\" value=\"Enter Your Guess\">\r\n" "</form>"; static unsigned char trlr[]="</body></html>\r\n\r\n"; int x=sizeof(trlr); sendconst(hdr1); // Now Send the HTTP Response first part printf("I.\n"); //sendconst(Inst1); // Now Send the instructions send0(Inst1,sizeof(Inst1)-1); // Now Send the instructions printf(".I\n"); sendconst(gform); // Now Send the rest of the page sendlit("<a href=\"http://goo.gl/p4C0Cg\">Olduino</a>: An Arduino for the First of Us<p>"); sendconst(trlr); // Now Send the rest of the page thisip.l=getip(); thisipslot=getipslot(thisip);//finds or assigns a slot for the ip setsecret(); strcpy((char*)secrets[thisipslot],(char*)secret); printf("IP: %d.%d.%d.%d,slot %d,secret %s\n",thisip.c[0],thisip.c[1],thisip.c[2],thisip.c[3],thisipslot,secrets[thisipslot]); }
void bagelsinit(){ int sendrc; games++; pages++; sendconst(hdr1a);send0s(itoa(pages,pnbuf)); sendconst(hdr1b); // Now Send the HTTP Response first part sendconst(Inst1); // Now Send the instructions sendconst(Inst2); // Now Finish the instructions sendconst(gform); // Now Send the rest of the page sendconst(olduinolink); sendconst(trlr); // Now Send the trailer thisip.l=getip(); thisipslot=getipslot(thisip);//finds or assigns a slot for the ip setsecret(); strcpy((char*)secrets[thisipslot],(char*)secret); printf("IP: %d.%d.%d.%d,slot %d,secret %s\n", thisip.c[0],thisip.c[1],thisip.c[2],thisip.c[3],thisipslot,secrets[thisipslot]); }
void bagelsinit(){ int sendrc; unsigned int secretnum; char strtemp[8]; static unsigned char hdr1[]="HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n" "<html><body><span style=\"color:#0000A0\">\r\n" "<center><h1>Olduino 1802 BAGELS Server</h1></center>"; static unsigned char Inst1[]= "I AM THINKING OF A 3 DIGIT NUMBER.<BR>TRY TO GUESS " //50 "MY NUMBER AND I WILL GIVE YOU CLUES AS FOLLOWS:<BR>" "...PICO - ONE DIGIT IS IN THE WRONG PLACE<BR>" "...FERMI - ONE DIGIT IS IN THE CORRECT PLACE<BR>" "...BAGELS - NO DIGIT IS CORRECT<P>"; static unsigned char gform[]="<p><form method=\"GET\">\r\n" "<input type=\"text\" name=\"G\">" "<input type=\"submit\" value=\"Enter Your Guess\">\r\n" "</form>"; static unsigned char postform[]="<p><form method=\"POST\">\r\n" //"<p>\r\n" "<input type=\"submit\" value=\"Secret Test\">\r\n" "<input type=\"text\" name=\"S\" value=\"xyz\">" "</form>"; static unsigned char trlr[]="</body></html>\r\n\r\n"; int x=sizeof(trlr); sendconst(hdr1); // Now Send the HTTP Response first part printf("I.\n"); //sendconst(Inst1); // Now Send the instructions send0(Inst1,sizeof(Inst1)-1); // Now Send the instructions printf(".I\n"); sendconst(gform); // Now Send the rest of the page sendconst(postform); // Now Send the rest of the page sendlit("<a href=\"http://goo.gl/p4C0Cg\">Olduino</a>: An Arduino for the First of Us<p>"); sendconst(trlr); // Now Send the rest of the page // send0(trlr,sizeof(trlr)-1); // Now Send the rest of the page setsecret(); printf("%s\n",secret); }
void main(int argc, char *argv[]) { char *u, key[DESKEYLEN], answer[32], p9pass[32]; int which, i, newkey, newbio, dosecret; long t; Acctbio a; Fs *f; srand(getpid()*time(0)); fmtinstall('K', keyfmt); which = 0; ARGBEGIN{ case 'p': which |= Plan9; break; case 'n': which |= Securenet; break; default: usage(); }ARGEND argv0 = "changeuser"; if(argc != 1) usage(); u = *argv; if(memchr(u, '\0', ANAMELEN) == 0) error("bad user name"); if(!which) which = Plan9; newbio = 0; t = 0; a.user = 0; if(which & Plan9){ f = &fs[Plan9]; newkey = 1; if(exists(f->keys, u)){ readln("assign new password? [y/n]: ", answer, sizeof answer, 0); if(answer[0] != 'y' && answer[0] != 'Y') newkey = 0; } if(newkey) getpass(key, p9pass, 1, 1); dosecret = getsecret(newkey, p9pass); t = getexpiration(f->keys, u); install(f->keys, u, key, t, newkey); if(dosecret && setsecret(KEYDB, u, p9pass) == 0) error("error writing Inferno/pop secret"); newbio = querybio(f->who, u, &a); if(newbio) wrbio(f->who, &a); print("user %s installed for Plan 9\n", u); syslog(0, AUTHLOG, "user %s installed for plan 9", u); } if(which & Securenet){ f = &fs[Securenet]; newkey = 1; if(exists(f->keys, u)){ readln("assign new key? [y/n]: ", answer, sizeof answer, 0); if(answer[0] != 'y' && answer[0] != 'Y') newkey = 0; } if(newkey) for(i=0; i<DESKEYLEN; i++) key[i] = nrand(256); if(a.user == 0){ t = getexpiration(f->keys, u); newbio = querybio(f->who, u, &a); } install(f->keys, u, key, t, newkey); if(newbio) wrbio(f->who, &a); findkey(f->keys, u, key); print("user %s: SecureNet key: %K\n", u, key); checksum(key, answer); print("verify with checksum %s\n", answer); print("user %s installed for SecureNet\n", u); syslog(0, AUTHLOG, "user %s installed for securenet", u); } exits(0); }
void changepasswd(Ticketreq *tr) { Ticket t; char tbuf[TICKETLEN+1]; char prbuf[PASSREQLEN]; Passwordreq pr; char okey[DESKEYLEN], nkey[DESKEYLEN]; char *err; if(findkey(KEYDB, tr->uid, okey) == 0){ /* make one up so caller doesn't know it was wrong */ mkkey(okey); syslog(0, AUTHLOG, "cp-fail uid %s", raddr); } /* send back a ticket with a new key */ memmove(t.chal, tr->chal, CHALLEN); mkkey(t.key); tbuf[0] = AuthOK; t.num = AuthTp; safecpy(t.cuid, tr->uid, sizeof(t.cuid)); safecpy(t.suid, tr->uid, sizeof(t.suid)); convT2M(&t, tbuf+1, okey); write(1, tbuf, sizeof(tbuf)); /* loop trying passwords out */ for(;;){ if(readn(0, prbuf, PASSREQLEN) < 0) exits(0); convM2PR(prbuf, &pr, t.key); if(pr.num != AuthPass){ replyerror("protocol botch1: %s", raddr); exits(0); } passtokey(nkey, pr.old); if(memcmp(nkey, okey, DESKEYLEN)){ replyerror("protocol botch2: %s", raddr); continue; } if(*pr.new){ err = okpasswd(pr.new); if(err){ replyerror("%s %s", err, raddr); continue; } passtokey(nkey, pr.new); } if(pr.changesecret && setsecret(KEYDB, tr->uid, pr.secret) == 0){ replyerror("can't write secret %s", raddr); continue; } if(*pr.new && setkey(KEYDB, tr->uid, nkey) == 0){ replyerror("can't write key %s", raddr); continue; } break; } prbuf[0] = AuthOK; write(1, prbuf, 1); succeed(tr->uid); return; }