Author: nbd Date: 2015-10-12 15:11:03 +0200 (Mon, 12 Oct 2015) New Revision: 47185
Modified: trunk/tools/firmware-utils/src/buffalo-enc.c Log: firmware-utils/buffalo-enc: add support for decrypting data with an offset Signed-off-by: Felix Fietkau <[email protected]> Modified: trunk/tools/firmware-utils/src/buffalo-enc.c =================================================================== --- trunk/tools/firmware-utils/src/buffalo-enc.c 2015-10-11 22:41:30 UTC (rev 47184) +++ trunk/tools/firmware-utils/src/buffalo-enc.c 2015-10-12 13:11:03 UTC (rev 47185) @@ -34,6 +34,7 @@ static char *product; static char *version; static int do_decrypt; +static int offset; void usage(int status) { @@ -52,6 +53,7 @@ " -p <product> set product name to <product>\n" " -v <version> set version to <version>\n" " -h show this screen\n" +" -O Offset of encrypted data in file (decryption)\n" ); exit(status); @@ -87,7 +89,7 @@ ep.key = (unsigned char *) crypt_key; ep.longstate = longstate; - err = decrypt_buf(&ep, buf, src_len); + err = decrypt_buf(&ep, buf + offset, src_len - offset); if (err) { ERR("unable to decrypt '%s'", ifname); goto out; @@ -100,7 +102,7 @@ printf("Data len\t: %u\n", ep.datalen); printf("Checksum\t: 0x%08x\n", ep.csum); - err = write_buf_to_file(ofname, buf, ep.datalen); + err = write_buf_to_file(ofname, buf + offset, ep.datalen); if (err) { ERR("unable to write to file '%s'", ofname); goto out; @@ -239,7 +241,7 @@ while ( 1 ) { int c; - c = getopt(argc, argv, "adi:m:o:hlp:v:k:r:s:"); + c = getopt(argc, argv, "adi:m:o:hlp:v:k:O:r:s:"); if (c == -1) break; @@ -271,6 +273,9 @@ case 's': seed = strtoul(optarg, NULL, 16); break; + case 'O': + offset = strtoul(optarg, NULL, 0); + break; case 'h': usage(EXIT_SUCCESS); break; _______________________________________________ openwrt-commits mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits
