diff options
author | Rob Austein <sra@hactrn.net> | 2016-06-16 00:35:53 -0400 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2016-06-16 00:35:53 -0400 |
commit | 91c894464c857338b47076b7d644c6e10583cea9 (patch) | |
tree | 6a6dc7f4a0d5f96419b622bb6f73c0dcbe872bde | |
parent | 070a8bae7310ac1bc3c94902e377bd685ff4b10a (diff) |
Tweak unit tests to be a bit less annoying on Alpha.
* Don't modify the wheel PIN unless specifically requested
* Don't try to run the Novena RPC test server (or any server) by default.
Still need to rewrite some of the RSA key tests, particularly the
external key load test, to conform to known implementation constraint
that key length must be a multiple of 32 bits; deferred until we
switch back to hardware modexp, as this won't matter until then.
-rw-r--r-- | unit_tests.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/unit_tests.py b/unit_tests.py index beb819b..a3ad19b 100644 --- a/unit_tests.py +++ b/unit_tests.py @@ -23,13 +23,13 @@ def parse_arguments(argv = ()): parser.add_argument("--quiet", action = "store_true", help = "suppress chatter") parser.add_argument("--so-pin", default = "fnord", help = "security officer PIN") parser.add_argument("--user-pin", default = "fnord", help = "user PIN") - parser.add_argument("--wheel-pin", default = "fnord", help = "wheel PIN") + parser.add_argument("--wheel-pin", help = "wheel PIN") parser.add_argument("--initial-pin", help = "initial PIN", default = "YouReallyNeedToChangeThisPINRightNowWeAreNotKidding") parser.add_argument("--slot", default = 0, type = int, help = "slot number") parser.add_argument("--libpkcs11", default = "./libpkcs11.so", help = "PKCS #11 library") parser.add_argument("--p11util", default = "./p11util", help = "p11util binary") - parser.add_argument("--server", default = "../libhal/tests/test-rpc_server", help = "RPC server binary") + parser.add_argument("--server", help = "RPC server binary") parser.add_argument("--all-tests", action = "store_true", help = "enable tests usually skipped") parser.add_argument("--sql-file", default = "unit_tests.db", help = "SQLite3 database") parser.add_argument("--ks-client", default = "unit_tests.ks-client", help = "client keystore (ks_mmap only)") @@ -59,20 +59,27 @@ def setUpModule(): environ["CRYPTECH_KEYSTORE"] = new_file(args.ks_client) server_keystore = new_file(args.ks_server) - if isfile(args.server): + # The sudo and environment variable here are for the Novena, They + # don't make much sense for the Alpha. May want to factor them + # out and make them the caller's problem at some point. + if args.server and isfile(args.server): cmd = [args.server] if geteuid() != 0: cmd.insert(0, "sudo") if not args.quiet: print "Starting RPC server:", " ".join(cmd) - rpc = Popen(cmd, - env = dict(environ, - CRYPTECH_KEYSTORE = server_keystore)) + rpc = Popen(cmd, env = dict(environ, CRYPTECH_KEYSTORE = server_keystore)) + # Order of PINs here is significant, see p11util for details. if not args.quiet: print "Setting PINs" - Popen((args.p11util, "-wsup"), stdin = PIPE).communicate("".join(pin + "\n" for pin in ( - args.initial_pin, args.wheel_pin, args.so_pin, args.user_pin))) + if args.wheel_pin is None: + flags = "-sup" + pins = (args.initial_pin, args.so_pin, args.user_pin) + else: + flags = "-wsup" + pins = (args.initial_pin, args.wheel_pin, args.so_pin, args.user_pin) + Popen((args.p11util, flags), stdin = PIPE).communicate("".join(pin + "\n" for pin in pins)) if not args.quiet: print "Loading PKCS #11 library", args.libpkcs11 |