aboutsummaryrefslogtreecommitdiffstats
path: root/src/libpts/plugins/imv_attestation/attest.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libpts/plugins/imv_attestation/attest.c')
-rw-r--r--src/libpts/plugins/imv_attestation/attest.c38
1 files changed, 36 insertions, 2 deletions
diff --git a/src/libpts/plugins/imv_attestation/attest.c b/src/libpts/plugins/imv_attestation/attest.c
index ca9efab10..ac91b5aa7 100644
--- a/src/libpts/plugins/imv_attestation/attest.c
+++ b/src/libpts/plugins/imv_attestation/attest.c
@@ -97,10 +97,12 @@ static void do_args(int argc, char *argv[])
enum {
OP_UNDEF,
OP_USAGE,
- OP_FILES,
+ OP_KEYS,
OP_COMPONENTS,
- OP_PRODUCTS,
+ OP_FILES,
OP_HASHES,
+ OP_MEASUREMENTS,
+ OP_PRODUCTS,
OP_ADD,
OP_DEL,
} op = OP_UNDEF;
@@ -116,8 +118,10 @@ static void do_args(int argc, char *argv[])
{ "help", no_argument, NULL, 'h' },
{ "components", no_argument, NULL, 'c' },
{ "files", no_argument, NULL, 'f' },
+ { "keys", no_argument, NULL, 'k' },
{ "products", no_argument, NULL, 'p' },
{ "hashes", no_argument, NULL, 'H' },
+ { "measurements", no_argument, NULL, 'M' },
{ "add", no_argument, NULL, 'a' },
{ "delete", no_argument, NULL, 'd' },
{ "del", no_argument, NULL, 'd' },
@@ -129,6 +133,8 @@ static void do_args(int argc, char *argv[])
{ "directory", required_argument, NULL, 'D' },
{ "dir", required_argument, NULL, 'D' },
{ "file", required_argument, NULL, 'F' },
+ { "key", required_argument, NULL, 'K' },
+ { "owner", required_argument, NULL, 'O' },
{ "product", required_argument, NULL, 'P' },
{ "sha1", no_argument, NULL, '1' },
{ "sha256", no_argument, NULL, '2' },
@@ -137,6 +143,7 @@ static void do_args(int argc, char *argv[])
{ "fid", required_argument, NULL, '5' },
{ "pid", required_argument, NULL, '6' },
{ "cid", required_argument, NULL, '7' },
+ { "kid", required_argument, NULL, '8' },
{ 0,0,0,0 }
};
@@ -154,12 +161,18 @@ static void do_args(int argc, char *argv[])
case 'f':
op = OP_FILES;
continue;
+ case 'k':
+ op = OP_KEYS;
+ continue;
case 'p':
op = OP_PRODUCTS;
continue;
case 'H':
op = OP_HASHES;
continue;
+ case 'M':
+ op = OP_MEASUREMENTS;
+ continue;
case 'a':
op = OP_ADD;
continue;
@@ -199,6 +212,15 @@ static void do_args(int argc, char *argv[])
exit(EXIT_FAILURE);
}
continue;
+ case 'K':
+ if (!attest->set_key(attest, optarg, op == OP_ADD))
+ {
+ exit(EXIT_FAILURE);
+ }
+ continue;
+ case 'O':
+ attest->set_owner(attest, optarg);
+ continue;
case 'P':
if (!attest->set_product(attest, optarg, op == OP_ADD))
{
@@ -238,6 +260,12 @@ static void do_args(int argc, char *argv[])
exit(EXIT_FAILURE);
}
continue;
+ case '8':
+ if (!attest->set_kid(attest, atoi(optarg)))
+ {
+ exit(EXIT_FAILURE);
+ }
+ continue;
}
break;
}
@@ -250,6 +278,9 @@ static void do_args(int argc, char *argv[])
case OP_PRODUCTS:
attest->list_products(attest);
break;
+ case OP_KEYS:
+ attest->list_keys(attest);
+ break;
case OP_COMPONENTS:
attest->list_components(attest);
break;
@@ -259,6 +290,9 @@ static void do_args(int argc, char *argv[])
case OP_HASHES:
attest->list_hashes(attest);
break;
+ case OP_MEASUREMENTS:
+ attest->list_measurements(attest);
+ break;
case OP_ADD:
attest->add(attest);
break;