aboutsummaryrefslogtreecommitdiffstats
path: root/verifier.h
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2013-10-09 10:14:35 -0700
committerKenny Root <kroot@google.com>2013-10-10 14:19:19 -0700
commit7a4adb5268ae71260c86788ccdeb7a699c80ee0a (patch)
treeda4a744e642f5014c3a1085097590bd4a5997f1c /verifier.h
parent58c60900ac3682fab08f64373bdd1020713b48f7 (diff)
downloadbootable_recovery-7a4adb5268ae71260c86788ccdeb7a699c80ee0a.zip
bootable_recovery-7a4adb5268ae71260c86788ccdeb7a699c80ee0a.tar.gz
bootable_recovery-7a4adb5268ae71260c86788ccdeb7a699c80ee0a.tar.bz2
Add support for ECDSA signatures
This adds support for key version 5 which is an EC key using the NIST P-256 curve parameters. OTAs may be signed with these keys using the ECDSA signature algorithm with SHA-256. Change-Id: Id88672a3deb70681c78d5ea0d739e10f839e4567
Diffstat (limited to 'verifier.h')
-rw-r--r--verifier.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/verifier.h b/verifier.h
index 6ce1b44..023d3bf 100644
--- a/verifier.h
+++ b/verifier.h
@@ -17,11 +17,24 @@
#ifndef _RECOVERY_VERIFIER_H
#define _RECOVERY_VERIFIER_H
+#include "mincrypt/p256.h"
#include "mincrypt/rsa.h"
-typedef struct Certificate {
+typedef struct {
+ p256_int x;
+ p256_int y;
+} ECPublicKey;
+
+typedef struct {
+ typedef enum {
+ RSA,
+ EC,
+ } KeyType;
+
int hash_len; // SHA_DIGEST_SIZE (SHA-1) or SHA256_DIGEST_SIZE (SHA-256)
- RSAPublicKey* public_key;
+ KeyType key_type;
+ RSAPublicKey* rsa;
+ ECPublicKey* ec;
} Certificate;
/* Look in the file for a signature footer, and verify that it