blob: da162894026d80613d5e075eefb104684b954614 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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);
}
|