From b0da7e69e032e904937d792469cec7525a26fd38 Mon Sep 17 00:00:00 2001 From: Mimi Zohar Date: Wed, 5 Mar 2014 13:00:48 +0200 Subject: [PATCH] Define symbolic keyring name Currently evmctl supports importing keys onto a particular keyring based on a numeric keyring identifier. This patch adds support for importing keys based special values as defined by keyctl. Thread keyring: @t (-1) Process keyring: @p (-2) Session keyring: @s (-3) User specific keyring: @u (-4) User default session keyring: @us (-5) Group specific keyring: @g (-6) Signed-off-by: Mimi Zohar --- src/evmctl.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/evmctl.c b/src/evmctl.c index eb6bf19..74c22ca 100644 --- a/src/evmctl.c +++ b/src/evmctl.c @@ -887,10 +887,26 @@ static int cmd_import(struct command *cmd) } else ring = g_argv[optind++]; - if (!ring) - id = KEY_SPEC_USER_KEYRING; - else - id = atoi(ring); + id = KEY_SPEC_USER_KEYRING; /* default keyring */ + + if (ring) { + if (ring[0] != '@') { + id = atoi(ring); + } else { + if (strcmp(ring, "@t") == 0) + id = -1; + else if (strcmp(ring, "@p") == 0) + id = -2; + else if (strcmp(ring, "@s") == 0) + id = -3; + else if (strcmp(ring, "@u") == 0) + id = -4; + else if (strcmp(ring, "@us") == 0) + id = -5; + else if (strcmp(ring, "@g") == 0) + id = -6; + } + } key = read_pub_key(inkey, x509); if (!key)