Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/tests/dev/cgd Retire the old C helper in h_img2cgd since we ...
details: https://anonhg.NetBSD.org/src/rev/5a7ef44d3131
branches: trunk
changeset: 759667:5a7ef44d3131
user: pooka <pooka%NetBSD.org@localhost>
date: Tue Dec 14 17:48:31 2010 +0000
description:
Retire the old C helper in h_img2cgd since we can now write everything
with a shellscript in terms of rump.cgdconfig and dd.
diffstat:
tests/dev/cgd/Makefile | 12 +-
tests/dev/cgd/h_img2cgd/Makefile | 20 ---
tests/dev/cgd/h_img2cgd/cgd.conf | 8 -
tests/dev/cgd/h_img2cgd/img2cgd.c | 223 --------------------------------------
tests/dev/cgd/paramsfile | 8 +
tests/dev/cgd/t_cgd.sh | 42 +++++--
6 files changed, 41 insertions(+), 272 deletions(-)
diffs (truncated from 366 to 300 lines):
diff -r 7b2c4458d183 -r 5a7ef44d3131 tests/dev/cgd/Makefile
--- a/tests/dev/cgd/Makefile Tue Dec 14 17:46:21 2010 +0000
+++ b/tests/dev/cgd/Makefile Tue Dec 14 17:48:31 2010 +0000
@@ -1,18 +1,12 @@
-# $NetBSD: Makefile,v 1.1 2010/11/11 22:38:47 pooka Exp $
+# $NetBSD: Makefile,v 1.2 2010/12/14 17:48:31 pooka Exp $
#
.include <bsd.own.mk>
TESTSDIR= ${TESTSBASE}/dev/cgd
+FILES= paramsfile
+FILESDIR= ${TESTSDIR}
TESTS_SH= t_cgd
-SUBDIR= h_img2cgd
-
-LDADD+= -lrumpdev_cgd -lrumpdev -lrumpvfs
-LDADD+= -lrump
-LDADD+= -lrumpuser -lpthread
-
-NOMAN=
-
.include <bsd.test.mk>
diff -r 7b2c4458d183 -r 5a7ef44d3131 tests/dev/cgd/h_img2cgd/Makefile
--- a/tests/dev/cgd/h_img2cgd/Makefile Tue Dec 14 17:46:21 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-# $NetBSD: Makefile,v 1.2 2010/11/11 22:44:50 pooka Exp $
-#
-
-PROG= h_img2cgd
-SRCS= img2cgd.c
-FILES= cgd.conf
-NOMAN=1
-
-BINDIR= ${TESTSBASE}/dev/cgd/h_img2cgd
-FILESDIR= ${TESTSBASE}/dev/cgd/h_img2cgd
-
-.include <bsd.own.mk>
-
-RUMP_ACTION= #defined
-CPPFLAGS+= -DCGDCONFIG_AS_LIB
-.include "${NETBSDSRCDIR}/sbin/cgdconfig/Makefile.cgdconfig"
-
-WARNS= 3
-
-.include <bsd.prog.mk>
diff -r 7b2c4458d183 -r 5a7ef44d3131 tests/dev/cgd/h_img2cgd/cgd.conf
--- a/tests/dev/cgd/h_img2cgd/cgd.conf Tue Dec 14 17:46:21 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-algorithm aes-cbc;
-iv-method encblkno1;
-keylength 128;
-verify_method none;
-keygen pkcs5_pbkdf2/sha1 {
- iterations 42;
- salt AAAAgKajcCnHR7sR1k1RKQ9Q0uY=;
-};
diff -r 7b2c4458d183 -r 5a7ef44d3131 tests/dev/cgd/h_img2cgd/img2cgd.c
--- a/tests/dev/cgd/h_img2cgd/img2cgd.c Tue Dec 14 17:46:21 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-/* $NetBSD: img2cgd.c,v 1.1 2010/11/11 22:38:47 pooka Exp $ */
-
-/*
- * Copyright (c) 2009 Antti Kantee. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/types.h>
-#include <sys/param.h>
-
-#include <assert.h>
-#include <err.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <rump/rump.h>
-#include <rump/rump_syscalls.h>
-
-#include "cgdconfig.h"
-
-/*
- * We really should use disklabel. However, for the time being,
- * use a endian independent magic number at offset == 0 and a
- * 64bit size at offset == 8.
- */
-#define MYMAGIC 0x11000a00000a0011LL
-#define MAGOFF 0
-#define SIZEOFF 8
-
-#define SKIPLABEL 8192
-#define IMG_MINSIZE (120*1024) /* label/mbr/etc search looks here and there */
-
-static void
-usage(void)
-{
-
- fprintf(stderr, "usage: %s read|write cgd_image file\n", getprogname());
- exit(1);
-}
-
-typedef ssize_t (*readfn)(int, void *, size_t);
-typedef ssize_t (*writefn)(int, const void *, size_t);
-
-#define BLOCKSIZE 512
-#define BLKROUND(a) (((a)+(BLOCKSIZE-1)) & ~(BLOCKSIZE-1))
-
-static void
-doxfer(int fd_from, int fd_to, off_t nbytes, readfn rfn, writefn wfn,
- int roundwrite)
-{
- char buf[8192];
- ssize_t n;
-
- assert(sizeof(buf) % BLOCKSIZE == 0);
- if (roundwrite)
- nbytes = BLKROUND(nbytes);
-
- memset(buf, 0, sizeof(buf));
- while (nbytes) {
- n = rfn(fd_from, buf, sizeof(buf));
- if (n == -1)
- err(1, "read");
- if (n == 0)
- break;
- n = MIN(n, nbytes);
- if (roundwrite)
- n = BLKROUND(n);
- nbytes -= n;
- if (wfn(fd_to, buf, n) == -1)
- err(1, "write");
- }
-}
-
-#define RFLAGS (O_RDONLY)
-#define WFLAGS (O_WRONLY | O_CREAT | O_TRUNC)
-int
-main(int argc, char *argv[])
-{
- char *the_argv[10];
- const char *cgd_file, *img_file;
- char *config_file;
- struct stat sb_cgd, sb_file;
- off_t nbytes;
- int error;
- int fd, fd_r;
- int readmode;
-
- setprogname(argv[0]);
-
- if (argc != 5)
- usage();
-
- readmode = 0; /* XXXgcc */
- if (strcmp(argv[2], "read") == 0)
- readmode = 1;
- else if (strcmp(argv[2], "write") == 0)
- readmode = 0;
- else
- usage();
-
- config_file = argv[1];
- cgd_file = argv[3];
- img_file = argv[4];
-
- if (stat(img_file, &sb_file) == -1) {
- if (!readmode)
- err(1, "cannot open file image %s", img_file);
- } else {
- if (!S_ISREG(sb_file.st_mode))
- errx(1, "%s is not a regular file", img_file);
- }
-
- if (stat(cgd_file, &sb_cgd) == -1) {
- if (readmode)
- err(1, "cannot open cgd image %s", cgd_file);
- } else {
- if (!S_ISREG(sb_cgd.st_mode))
- errx(1, "%s is not a regular file", cgd_file);
- }
-
- /*
- * Create a file big enough to hold the file we are encrypting.
- * This is because cgd works on a device internally and does
- * not know how to enlarge a device (surprisingly ...).
- */
- if (!readmode) {
- uint64_t tmpval;
-
- fd = open(cgd_file, WFLAGS, 0755);
- if (fd == -1)
- err(1, "fd");
- ftruncate(fd,
- MAX(IMG_MINSIZE, BLKROUND(sb_file.st_size)) + SKIPLABEL);
-
- /* write magic info */
- tmpval = MYMAGIC;
- if (pwrite(fd, &tmpval, 8, MAGOFF) != 8)
- err(1, "magic write failed");
- tmpval = htole64(sb_file.st_size);
- if (pwrite(fd, &tmpval, 8, SIZEOFF) != 8)
- err(1, "size write failed");
-
- close(fd);
-
- nbytes = sb_file.st_size;
- } else {
- uint64_t tmpval;
-
- fd = open(cgd_file, RFLAGS);
- if (fd == -1)
- err(1, "image open failed");
-
- if (pread(fd, &tmpval, 8, MAGOFF) != 8)
- err(1, "magic read failed");
- if (tmpval != MYMAGIC)
- errx(1, "%s is not a valid image", cgd_file);
- if (pread(fd, &tmpval, 8, SIZEOFF) != 8)
- errx(1, "size read failed");
- close(fd);
-
- nbytes = le64toh(tmpval);
- }
-
- rump_init();
- if ((error = rump_pub_etfs_register("/cryptfile", cgd_file,
- RUMP_ETFS_BLK)) != 0) {
- printf("etfs: %d\n", error);
- exit(1);
- }
-
- the_argv[0] = strdup("cgdconfig");
- the_argv[1] = strdup("-p");
- the_argv[2] = strdup("cgd0");
- the_argv[3] = strdup("/cryptfile");
- the_argv[4] = config_file;
- the_argv[5] = NULL;
- error = cgdconfig(5, the_argv);
- if (error) {
- fprintf(stderr, "cgdconfig failed: %d (%s)\n",
- error, strerror(error));
- exit(1);
- }
-
- fd = open(img_file, readmode ? WFLAGS : RFLAGS, 0755);
- if (fd == -1)
- err(1, "fd");
- fd_r = rump_sys_open("/dev/rcgd0d", O_RDWR, 0755);
- if (fd_r == -1)
- err(1, "fd_r");
- if (rump_sys_lseek(fd_r, SKIPLABEL, SEEK_SET) == -1)
- err(1, "rump lseek");
-
- if (readmode) {
- doxfer(fd_r, fd, nbytes, rump_sys_read, write, 0);
- } else {
- doxfer(fd, fd_r, sb_file.st_size, read, rump_sys_write, 1);
- }
-
- return 0;
-}
diff -r 7b2c4458d183 -r 5a7ef44d3131 tests/dev/cgd/paramsfile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/dev/cgd/paramsfile Tue Dec 14 17:48:31 2010 +0000
@@ -0,0 +1,8 @@
+algorithm aes-cbc;
+iv-method encblkno1;
+keylength 128;
+verify_method none;
+keygen pkcs5_pbkdf2/sha1 {
+ iterations 42;
+ salt AAAAgKajcCnHR7sR1k1RKQ9Q0uY=;
+};
Home |
Main Index |
Thread Index |
Old Index