socsvn commit: r270040 - in soc2013/def/crashdump-head: sbin/dumpkey sbin/savecore sys/amd64/conf sys/conf sys/kern sys/sys
def at FreeBSD.org
def at FreeBSD.org
Wed Jun 25 22:53:07 UTC 2014
Author: def
Date: Wed Jun 25 22:53:04 2014
New Revision: 270040
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=270040
Log:
Style.
Modified:
soc2013/def/crashdump-head/sbin/dumpkey/dumpkey.c
soc2013/def/crashdump-head/sbin/savecore/dumpfile.c
soc2013/def/crashdump-head/sbin/savecore/dumpfile.h
soc2013/def/crashdump-head/sys/amd64/conf/GENERIC
soc2013/def/crashdump-head/sys/conf/options
soc2013/def/crashdump-head/sys/kern/kern_shutdown.c
soc2013/def/crashdump-head/sys/sys/conf.h
soc2013/def/crashdump-head/sys/sys/kerneldump.h
Modified: soc2013/def/crashdump-head/sbin/dumpkey/dumpkey.c
==============================================================================
--- soc2013/def/crashdump-head/sbin/dumpkey/dumpkey.c Wed Jun 25 20:30:47 2014 (r270039)
+++ soc2013/def/crashdump-head/sbin/dumpkey/dumpkey.c Wed Jun 25 22:53:04 2014 (r270040)
@@ -14,12 +14,13 @@
#include <unistd.h>
#define PATH_DEVRANDOM "/dev/random"
-#define DEVBLK_SIZE 512
static void
usage(void)
{
- printf("%s\n%s\n", "usage: dumpkey -e public_key",
+
+ printf("%s\n%s\n",
+ "usage: dumpkey -e public_key",
" dumpkey -d private_key -k encrypted_key -c encrypted_core");
}
@@ -146,7 +147,7 @@
decrypt_core(char *encrypted_core, char *private_key_file,
char *encrypted_key_file)
{
- char buf[DEVBLK_SIZE];
+ char buf[KERNELDUMP_BUFFER_SIZE];
char key[KERNELDUMP_KEY_SIZE], iv[KERNELDUMP_IV_SIZE];
struct kerneldumpkey dumpkey;
FILE *fp, *fp_w;
@@ -179,9 +180,10 @@
offset = buf_used = 0;
do {
- bytes = fread(buf + buf_used, 1, DEVBLK_SIZE - buf_used, fp);
+ bytes = fread(buf + buf_used, 1, KERNELDUMP_BUFFER_SIZE -
+ buf_used, fp);
buf_used += bytes;
- if (buf_used == DEVBLK_SIZE) {
+ if (buf_used == KERNELDUMP_BUFFER_SIZE) {
error = rijndael_cipherInit(&dumpkey.ci, MODE_CBC, iv);
if (error <= 0) {
printf("Error: cannot initialize a cipher.\n");
Modified: soc2013/def/crashdump-head/sbin/savecore/dumpfile.c
==============================================================================
--- soc2013/def/crashdump-head/sbin/savecore/dumpfile.c Wed Jun 25 20:30:47 2014 (r270039)
+++ soc2013/def/crashdump-head/sbin/savecore/dumpfile.c Wed Jun 25 22:53:04 2014 (r270040)
@@ -58,12 +58,13 @@
fd = (dumpFile *)cookie;
saved = 0;
- while (size + fd->buf_used >= DEVBLK_SIZE) {
- resid = DEVBLK_SIZE - fd->buf_used;
+ while (size + fd->buf_used >= KERNELDUMP_BUFFER_SIZE) {
+ resid = KERNELDUMP_BUFFER_SIZE - fd->buf_used;
memcpy(fd->buf + fd->buf_used, data, resid);
fd->buf_used += resid;
- if (fwrite(fd->buf, 1, DEVBLK_SIZE, fd->fp) != DEVBLK_SIZE) {
+ if (fwrite(fd->buf, 1, KERNELDUMP_BUFFER_SIZE, fd->fp) !=
+ KERNELDUMP_BUFFER_SIZE) {
fd->buf_used -= resid;
return (saved);
}
Modified: soc2013/def/crashdump-head/sbin/savecore/dumpfile.h
==============================================================================
--- soc2013/def/crashdump-head/sbin/savecore/dumpfile.h Wed Jun 25 20:30:47 2014 (r270039)
+++ soc2013/def/crashdump-head/sbin/savecore/dumpfile.h Wed Jun 25 22:53:04 2014 (r270040)
@@ -3,12 +3,10 @@
#include <sys/kerneldump.h>
-#define DEVBLK_SIZE 512
-
typedef struct _dumpFile {
FILE *fp;
char ciphertext[KERNELDUMP_CIPHERTEXT_SIZE];
- char buf[DEVBLK_SIZE];
+ char buf[KERNELDUMP_BUFFER_SIZE];
int buf_used;
} dumpFile;
Modified: soc2013/def/crashdump-head/sys/amd64/conf/GENERIC
==============================================================================
--- soc2013/def/crashdump-head/sys/amd64/conf/GENERIC Wed Jun 25 20:30:47 2014 (r270039)
+++ soc2013/def/crashdump-head/sys/amd64/conf/GENERIC Wed Jun 25 22:53:04 2014 (r270040)
@@ -352,4 +352,4 @@
device vmx # VMware VMXNET3 Ethernet
# Unattended encrypted kernel crash dumps
-options ENCRYPT_CRASH
+options ENCRYPT_CRASH_DUMP
Modified: soc2013/def/crashdump-head/sys/conf/options
==============================================================================
--- soc2013/def/crashdump-head/sys/conf/options Wed Jun 25 20:30:47 2014 (r270039)
+++ soc2013/def/crashdump-head/sys/conf/options Wed Jun 25 22:53:04 2014 (r270040)
@@ -919,4 +919,4 @@
RANDOM_RWFILE opt_random.h
# Unattended encrypted kernel crash dumps
-ENCRYPT_CRASH opt_crash.h
+ENCRYPT_CRASH_DUMP opt_ecd.h
Modified: soc2013/def/crashdump-head/sys/kern/kern_shutdown.c
==============================================================================
--- soc2013/def/crashdump-head/sys/kern/kern_shutdown.c Wed Jun 25 20:30:47 2014 (r270039)
+++ soc2013/def/crashdump-head/sys/kern/kern_shutdown.c Wed Jun 25 22:53:04 2014 (r270040)
@@ -38,11 +38,11 @@
__FBSDID("$FreeBSD$");
#include "opt_ddb.h"
+#include "opt_ecd.h"
#include "opt_kdb.h"
#include "opt_panic.h"
#include "opt_sched.h"
#include "opt_watchdog.h"
-#include "opt_crash.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -87,8 +87,6 @@
#include <sys/signalvar.h>
-#include <opencrypto/cryptodev.h>
-
#ifndef PANIC_REBOOT_WAIT_TIME
#define PANIC_REBOOT_WAIT_TIME 15 /* default to 15 seconds */
#endif
@@ -142,11 +140,11 @@
SYSCTL_INT(_kern_shutdown, OID_AUTO, show_busybufs, CTLFLAG_RW,
&show_busybufs, 0, "");
+#ifdef ENCRYPT_CRASH_DUMP
static struct kerneldumpkey dumperkey;
static struct kerneldumpbuffer dumperbuffer;
-#ifdef ENCRYPT_CRASH
SYSCTL_STRUCT(_kern, OID_AUTO, dumpkey, CTLFLAG_RW, &dumperkey,
- kerneldumpkey, "Kernel crash dump key");
+ kerneldumpkey, "Kernel crash dump key");
#endif
/*
@@ -859,8 +857,7 @@
if (dumper.dumper != NULL)
return (EBUSY);
dumper = *di;
-
-#ifdef ENCRYPT_CRASH
+#ifdef ENCRYPT_CRASH_DUMP
kerneldump_crypto_init(&dumper, &dumperkey, &dumperbuffer);
#endif
@@ -875,7 +872,7 @@
/* Call dumper with encrypted data. */
int
dump_encrypted_write(struct dumperinfo *di, void *virtual, vm_offset_t physical,
- off_t offset, size_t length)
+ off_t offset, size_t length)
{
struct kerneldumpkey *kdk;
struct kerneldumpbuffer *kdb;
@@ -886,31 +883,32 @@
/* Write kernel dump headers. */
if (kdb->kdhoffset == 0 || offset == di->mediaoffset + di->mediasize -
- sizeof(struct kerneldumpheader)) {
+ sizeof(struct kerneldumpheader)) {
kdb->kdhoffset = offset + length;
- return (di->dumper(di->priv, virtual, physical, offset, length));
+ return (di->dumper(di->priv, virtual, physical, offset,
+ length));
}
while (length > 0) {
- memcpy(kdb->buf, virtual, KERNELDUMP_DEVBLK_SIZE);
+ memcpy(kdb->buf, virtual, KERNELDUMP_BUFFER_SIZE);
error = rijndael_blockEncrypt(&kdk->ci, &kdk->ki, kdb->buf,
- KERNELDUMP_DEVBLK_SIZE * 8, kdb->buf);
+ KERNELDUMP_BUFFER_SIZE * 8, kdb->buf);
if (error <= 0)
return (-1);
error = rijndael_cipherInit(&kdk->ci, MODE_CBC, kdb->buf +
- KERNELDUMP_DEVBLK_SIZE - KERNELDUMP_IV_SIZE);
+ KERNELDUMP_BUFFER_SIZE - KERNELDUMP_IV_SIZE);
if (error <= 0)
return (-1);
- error = (di->dumper(di->priv, kdb->buf, physical, offset, KERNELDUMP_DEVBLK_SIZE));
-
+ error = di->dumper(di->priv, kdb->buf, physical, offset,
+ KERNELDUMP_BUFFER_SIZE);
if (error)
return (error);
- virtual = (void *)((char *)virtual + KERNELDUMP_DEVBLK_SIZE);
- length -= KERNELDUMP_DEVBLK_SIZE;
- offset += KERNELDUMP_DEVBLK_SIZE;
+ virtual = (void *)((char *)virtual + KERNELDUMP_BUFFER_SIZE);
+ length -= KERNELDUMP_BUFFER_SIZE;
+ offset += KERNELDUMP_BUFFER_SIZE;
}
return (0);
@@ -930,7 +928,6 @@
(uintmax_t)length, (intmax_t)di->mediasize);
return (ENOSPC);
}
-
#ifdef ENCRYPT_CRASH
return (dump_encrypted_write(di, virtual, physical, offset, length));
#else
@@ -940,16 +937,16 @@
void
kerneldump_crypto_init(struct dumperinfo *di, struct kerneldumpkey *kdk,
- struct kerneldumpbuffer *kdb)
+ struct kerneldumpbuffer *kdb)
{
+
if (kdk == NULL || kdb == NULL) {
- printf("Attempt to initialize a non-existing kernel dump key and buffer.");
+ printf("Attempt to initialize a kernel dump key and buffer.");
return;
}
di->kdk = kdk;
di->kdb = kdb;
-
bzero(di->kdb, sizeof(struct kerneldumpbuffer));
}
Modified: soc2013/def/crashdump-head/sys/sys/conf.h
==============================================================================
--- soc2013/def/crashdump-head/sys/sys/conf.h Wed Jun 25 20:30:47 2014 (r270039)
+++ soc2013/def/crashdump-head/sys/sys/conf.h Wed Jun 25 22:53:04 2014 (r270040)
@@ -328,19 +328,20 @@
struct kerneldumpbuffer;
struct dumperinfo {
- dumper_t *dumper; /* Dumping function. */
- void *priv; /* Private parts. */
- u_int blocksize; /* Size of block in bytes. */
- u_int maxiosize; /* Max size allowed for an individual I/O */
- off_t mediaoffset; /* Initial offset in bytes. */
- off_t mediasize; /* Space available in bytes. */
+ dumper_t *dumper; /* Dumping function. */
+ void *priv; /* Private parts. */
+ u_int blocksize; /* Size of block in bytes. */
+ u_int maxiosize; /* Max size allowed for an individual I/O */
+ off_t mediaoffset; /* Initial offset in bytes. */
+ off_t mediasize; /* Space available in bytes. */
struct kerneldumpkey *kdk; /* Kernel dump key. */
struct kerneldumpbuffer *kdb; /* Kernel dump buffer. */
};
int set_dumper(struct dumperinfo *, const char *_devname);
int dump_write(struct dumperinfo *, void *, vm_offset_t, off_t, size_t);
-int dump_encrypted_write(struct dumperinfo *, void *, vm_offset_t, off_t, size_t);
+int dump_encrypted_write(struct dumperinfo *di, void *virtual, vm_offset_t physical,
+ off_t offset, size_t length);
void dumpsys(struct dumperinfo *);
int doadump(boolean_t);
extern int dumping; /* system is dumping */
Modified: soc2013/def/crashdump-head/sys/sys/kerneldump.h
==============================================================================
--- soc2013/def/crashdump-head/sys/sys/kerneldump.h Wed Jun 25 20:30:47 2014 (r270039)
+++ soc2013/def/crashdump-head/sys/sys/kerneldump.h Wed Jun 25 22:53:04 2014 (r270040)
@@ -79,6 +79,7 @@
#define KERNELDUMP_KEY_SIZE 32
#define KERNELDUMP_IV_SIZE 16
#define KERNELDUMP_CIPHERTEXT_SIZE 256
+#define KERNELDUMP_BUFFER_SIZE 512
uint64_t dumplength; /* excl headers */
uint64_t dumptime;
uint32_t blocksize;
@@ -89,6 +90,12 @@
uint32_t parity;
};
+struct kerneldumpkey {
+ char ciphertext[KERNELDUMP_CIPHERTEXT_SIZE];
+ keyInstance ki;
+ cipherInstance ci;
+};
+
/*
* Parity calculation is endian insensitive.
*/
@@ -105,21 +112,14 @@
return (parity);
}
-struct kerneldumpkey {
- char ciphertext[KERNELDUMP_CIPHERTEXT_SIZE];
- keyInstance ki;
- cipherInstance ci;
-};
-
#ifdef _KERNEL
struct kerneldumpbuffer {
-#define KERNELDUMP_DEVBLK_SIZE 512
- uint8_t buf[KERNELDUMP_DEVBLK_SIZE]; /* Raw data buffer. */
- off_t kdhoffset; /* Offset value of the first kdh. */
+ uint8_t buf[KERNELDUMP_BUFFER_SIZE]; /* Raw data buffer. */
+ off_t kdhoffset; /* Offset value of the first kdh. */
};
void kerneldump_crypto_init(struct dumperinfo *di, struct kerneldumpkey *kdk,
- struct kerneldumpbuffer *kdb);
+ struct kerneldumpbuffer *kdb);
void mkdumpheader(struct kerneldumpheader *kdh, char *magic, uint32_t archver,
uint64_t dumplen, uint32_t blksz);
#endif
More information about the svn-soc-all
mailing list