summaryrefslogtreecommitdiff
path: root/common/vboot/vb21_lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/vboot/vb21_lib.c')
-rw-r--r--common/vboot/vb21_lib.c108
1 files changed, 0 insertions, 108 deletions
diff --git a/common/vboot/vb21_lib.c b/common/vboot/vb21_lib.c
deleted file mode 100644
index 4e215c14e5..0000000000
--- a/common/vboot/vb21_lib.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/*
- * Common utility APIs for vboot 2.1
- */
-
-#include "common.h"
-#include "host_command.h"
-#include "rsa.h"
-#include "rwsig.h"
-#include "system.h"
-#include "vb21_struct.h"
-#include "vboot.h"
-
-int vb21_is_packed_key_valid(const struct vb21_packed_key *key)
-{
- if (key->c.magic != VB21_MAGIC_PACKED_KEY)
- return EC_ERROR_VBOOT_KEY_MAGIC;
- if (key->key_size != sizeof(struct rsa_public_key))
- return EC_ERROR_VBOOT_KEY_SIZE;
- return EC_SUCCESS;
-}
-
-int vb21_is_signature_valid(const struct vb21_signature *sig,
- const struct vb21_packed_key *key)
-{
- if (sig->c.magic != VB21_MAGIC_SIGNATURE)
- return EC_ERROR_VBOOT_SIG_MAGIC;
- if (sig->sig_size != RSANUMBYTES)
- return EC_ERROR_VBOOT_SIG_SIZE;
- if (key->sig_alg != sig->sig_alg)
- return EC_ERROR_VBOOT_SIG_ALGORITHM;
- if (key->hash_alg != sig->hash_alg)
- return EC_ERROR_VBOOT_HASH_ALGORITHM;
- /* Validity check signature offset and data size. */
- if (sig->sig_offset < sizeof(*sig))
- return EC_ERROR_VBOOT_SIG_OFFSET;
- if (sig->sig_offset + RSANUMBYTES > CONFIG_RW_SIG_SIZE)
- return EC_ERROR_VBOOT_SIG_OFFSET;
- if (sig->data_size > CONFIG_RW_SIZE - CONFIG_RW_SIG_SIZE)
- return EC_ERROR_VBOOT_DATA_SIZE;
- return EC_SUCCESS;
-}
-
-const struct vb21_packed_key *vb21_get_packed_key(void)
-{
- return (const struct vb21_packed_key *)(CONFIG_RO_PUBKEY_ADDR);
-}
-
-static void read_rwsig_info(struct ec_response_rwsig_info *r)
-{
-
- const struct vb21_packed_key *vb21_key;
- int rv;
-
- vb21_key = vb21_get_packed_key();
-
- r->sig_alg = vb21_key->sig_alg;
- r->hash_alg = vb21_key->hash_alg;
- r->key_version = vb21_key->key_version;
- { BUILD_ASSERT(sizeof(r->key_id) == sizeof(vb21_key->id),
- "key ID sizes must match"); }
- { BUILD_ASSERT(sizeof(vb21_key->id) == sizeof(vb21_key->id.raw),
- "key ID sizes must match"); }
- memcpy(r->key_id, vb21_key->id.raw, sizeof(r->key_id));
-
- rv = vb21_is_packed_key_valid(vb21_key);
- r->key_is_valid = (rv == EC_SUCCESS);
-}
-
-static int command_rwsig_info(int argc, char **argv)
-{
- int i;
- struct ec_response_rwsig_info r;
-
- read_rwsig_info(&r);
-
- ccprintf("sig_alg: %d\n", r.sig_alg);
- ccprintf("key_version: %d\n", r.key_version);
- ccprintf("hash_alg: %d\n", r.hash_alg);
- ccprintf("key_is_valid: %d\n", r.key_is_valid);
-
- ccprintf("key_id: ");
- for (i = 0; i < sizeof(r.key_id); i++)
- ccprintf("%x", r.key_id[i]);
- ccprintf("\n");
-
- return EC_SUCCESS;
-}
-DECLARE_CONSOLE_COMMAND(rwsiginfo, command_rwsig_info, NULL,
- "Display rwsig info on console.");
-
-static enum ec_status
-host_command_rwsig_info(struct host_cmd_handler_args *args)
-{
- struct ec_response_rwsig_info *r = args->response;
-
- read_rwsig_info(r);
- args->response_size = sizeof(*r);
-
- return EC_RES_SUCCESS;
-}
-
-DECLARE_HOST_COMMAND(EC_CMD_RWSIG_INFO, host_command_rwsig_info,
- EC_VER_MASK(EC_VER_RWSIG_INFO));