diff --git a/firmware/l0dable/pwgen.c b/firmware/l0dable/pwgen.c new file mode 100644 index 0000000..329f6c5 --- /dev/null +++ b/firmware/l0dable/pwgen.c @@ -0,0 +1,58 @@ +#include "basic/basic.h" + +#include "usetable.h" + +#define PW_LEN 8 + +void pw_cleanup(char * pw); +void pw_set(char * pw, uint16_t * k); + +void ram(void) +{ + char pw[PW_LEN+1]; + uint16_t k[8]; + int button; + memset(k, 0, 16); + while(1){ + lcdClear(); + lcdNl(); + lcdPrintln(" password"); + lcdPrintln(" generator"); + lcdNl(); + lcdNl(); + pw_set(pw,k); + pw_cleanup(pw); + lcdPrint(" "); + lcdPrintln(pw); + lcdRefresh(); + delayms(23); + while((button=getInputRaw())==BTN_NONE) + delayms(23); + if(button==BTN_LEFT) return; + } +} + +void pw_cleanup(char * pw) +{ + int i; + for(i=0;i0x7a)pw[i]-=0x10; + if((pw[i]>'Z')&&(pw[i]<'a')) + pw[i]-=0x10; + } +} + +void pw_set(char * pw, uint16_t * k) +{ + int i; + memset(pw,0,PW_LEN); /* wipe old PW */ + for(i=0;i<4;i++) + k[1]=getRandom(); + xxtea_encode_words(pw,PW_LEN/4,k); + pw[PW_LEN]=0; +} + diff --git a/tools/image/img2lcd.pl b/tools/image/img2lcd.pl new file mode 100755 index 0000000..5f9fee1 --- /dev/null +++ b/tools/image/img2lcd.pl @@ -0,0 +1,72 @@ +#!/usr/bin/perl + +# img2lcd.pl - by 05/2011, BSD Licence +# +# This script converts an image to .lcd format for the r0ket + +use strict; +use warnings; +use Getopt::Long; +use Module::Load; + +$|=1; + +### +### Runtime Options +### + +my ($verbose); + +GetOptions ( + "verbose" => \$verbose, # flag + "help" => sub { + print <new($in); + + +my $w=$image->width; +my $h=$image->height; + +my @img; +for my $y (0..$h){ + for my $x (0..$w){ + my $px= $image->getPixel($x,$y); + $img[$x][$y/8]|=$px<<(7-$y%8); + if($verbose){ + $px=~y/01/ */; print STDERR $px; + }; + }; + if ($verbose){ + print STDERR "<\n"; + }; +}; + +open(F,">",$out)||die "open: $!"; + +my $hb=int($h/8); +for my $y (0..$hb){ + for my $x (0..$w){ + printf F "%c",$img[$w-$x][$hb-$y]; + }; +}; + +close(F); diff --git a/tools/image/src/i42.gif b/tools/image/src/i42.gif new file mode 100755 index 0000000..acd34ee Binary files /dev/null and b/tools/image/src/i42.gif differ