Add Broadcom / Netgear changes from RAXE 1.0.0.48
[project/bcm63xx/u-boot.git] / tools / passwd_gen.c
diff --git a/tools/passwd_gen.c b/tools/passwd_gen.c
new file mode 100644 (file)
index 0000000..da16289
--- /dev/null
@@ -0,0 +1,29 @@
+#include <u-boot/sha256.h>
+#include <string.h>
+
+int main(int argc, char **argv)
+{
+       char combined[256];
+       char sha[32];
+       char password[32];
+       int i;
+       char cset[] =
+           "abcdefghijk#mnopqrstuvwxyzABCDEFGHIJKLMN-PQRSTUVWXYZ@!23456789_*";
+       long long pass;
+       if (argc != 3) {
+               printf("must have exactly 2 args\n");
+               printf("usage:   %s secret serialnum\n", argv[0]);
+               printf("example:  %s password12345 16777216\n", argv[0]);
+               printf(" would generate the password for device sernum 16777216 if the secret is password12345\n");
+               exit(1);
+       }
+       strcpy(combined, argv[1]);
+       strcat(combined, argv[2]);
+       sha256_csum_wd(combined, strlen(combined), sha, 1024);
+       memcpy(&pass, sha, sizeof(pass));
+       for (i = 0; i < 8; i++) {
+               password[i] = cset[(pass >> (6 * i)) & 0x3f];
+       }
+       password[8] = 0;
+       printf("password:%s\n", password);
+}