12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- diff -Nur secure_delete-3.1-old/smem.1 secure_delete-3.1/smem.1
- --- secure_delete-3.1-old/smem.1 2011-06-20 16:31:36.890599669 +0300
- +++ secure_delete-3.1/smem.1 2011-06-20 16:37:11.867622820 +0300
- @@ -9,7 +9,7 @@
- sdmem \- secure memory wiper (secure_deletion toolkit)
-
- .SH SYNOPSIS
- -.B sdmem [-f] [-l] [-l] [-v]
- +.B sdmem [-f] [-l] [-l] [-m] [-v]
-
- .SH DESCRIPTION
- .I sdmem
- @@ -54,6 +54,9 @@
- -l for a second time lessons the security even more: only one pass with
- 0x00 is written.
- .TP
- +.B \-m
- +moderate security. Five passes are written.
- +.TP
- .B \-v
- verbose mode
- .PP
- diff -Nur secure_delete-3.1-old/smem.c secure_delete-3.1/smem.c
- --- secure_delete-3.1-old/smem.c 2011-06-20 16:31:36.889599617 +0300
- +++ secure_delete-3.1/smem.c 2011-06-20 16:32:58.805684329 +0300
- @@ -46,6 +46,7 @@
- printf("Options:\n");
- printf("\t-f fast (and insecure mode): no /dev/urandom.\n");
- printf("\t-l lessens the security (use twice for total insecure mode).\n");
- + printf("\t-m moderate security (5 writes).\n");
- printf("\t-v is verbose mode.\n");
- printf("\nsmem does a secure overwrite of the memory (RAM), because memory contents can\n");
- printf("be recovered even after a shutdown! Default is secure mode (38 writes).\n");
- @@ -127,7 +128,19 @@
- alarm(600); /* needed to prevent mem caching */
-
- while ( (ptr = calloc(4096, 16)) != NULL) {
- - if (mode > 0) {
- + if (mode == 3) {
- + __sdel_fill_buf(write_modes[0], BLOCKSIZE + 2, buf);
- + memcpy(ptr, buf, BLOCKSIZE);
- + __sdel_fill_buf(write_modes[1], BLOCKSIZE + 2, buf);
- + memcpy(ptr, buf, BLOCKSIZE);
- + __sdel_random_buf(BLOCKSIZE + 2, buf);
- + memcpy(ptr, buf, BLOCKSIZE);
- + __sdel_fill_buf(write_modes[0], BLOCKSIZE + 2, buf);
- + memcpy(ptr, buf, BLOCKSIZE);
- + __sdel_fill_buf(write_modes[1], BLOCKSIZE + 2, buf);
- + memcpy(ptr, buf, BLOCKSIZE);
- + }
- + else if (mode > 0) {
- for (turn=0; turn<=36; turn++) {
- if ((mode == 1) && (turn > 0)) break;
- if ((turn>=5) && (turn<=31)) {
- @@ -170,7 +183,7 @@
- help();
-
- while (1) {
- - result = getopt(argc, argv, "FfLlSsVvZz");
- + result = getopt(argc, argv, "FfLlmSsVvZz");
- if (result<0) break;
- switch (result) {
- case 'F' :
- @@ -179,6 +192,8 @@
- case 'L' :
- case 'l' : if (secure) secure--;
- break;
- + case 'm' : secure = 3;
- + break;
- case 'S' :
- case 's' : secure++;
- break;
|