diff options
author | Tao Bao <tbao@google.com> | 2016-02-03 18:16:56 +0100 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-02-03 18:16:56 +0100 |
commit | 351ddbbc0a8ff1257f5ad963c850204558a38d70 (patch) | |
tree | d588a2f9f86e0eac79c9aeb2dcb1591353229272 /verifier.h | |
parent | Merge "uncrypt: generate map file by renaming tmp file." (diff) | |
parent | recovery: Refactor verifier and verifier_test. (diff) | |
download | android_bootable_recovery-351ddbbc0a8ff1257f5ad963c850204558a38d70.tar android_bootable_recovery-351ddbbc0a8ff1257f5ad963c850204558a38d70.tar.gz android_bootable_recovery-351ddbbc0a8ff1257f5ad963c850204558a38d70.tar.bz2 android_bootable_recovery-351ddbbc0a8ff1257f5ad963c850204558a38d70.tar.lz android_bootable_recovery-351ddbbc0a8ff1257f5ad963c850204558a38d70.tar.xz android_bootable_recovery-351ddbbc0a8ff1257f5ad963c850204558a38d70.tar.zst android_bootable_recovery-351ddbbc0a8ff1257f5ad963c850204558a38d70.zip |
Diffstat (limited to 'verifier.h')
-rw-r--r-- | verifier.h | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/verifier.h b/verifier.h index 15f8d98e4..4eafc7565 100644 --- a/verifier.h +++ b/verifier.h @@ -17,6 +17,9 @@ #ifndef _RECOVERY_VERIFIER_H #define _RECOVERY_VERIFIER_H +#include <memory> +#include <vector> + #include "mincrypt/p256.h" #include "mincrypt/rsa.h" @@ -25,17 +28,25 @@ typedef struct { p256_int y; } ECPublicKey; -typedef struct { +struct Certificate { typedef enum { RSA, EC, } KeyType; + Certificate(int hash_len_, KeyType key_type_, + std::unique_ptr<RSAPublicKey>&& rsa_, + std::unique_ptr<ECPublicKey>&& ec_) : + hash_len(hash_len_), + key_type(key_type_), + rsa(std::move(rsa_)), + ec(std::move(ec_)) { } + int hash_len; // SHA_DIGEST_SIZE (SHA-1) or SHA256_DIGEST_SIZE (SHA-256) KeyType key_type; - RSAPublicKey* rsa; - ECPublicKey* ec; -} Certificate; + std::unique_ptr<RSAPublicKey> rsa; + std::unique_ptr<ECPublicKey> ec; +}; /* addr and length define a an update package file that has been * loaded (or mmap'ed, or whatever) into memory. Verify that the file @@ -43,9 +54,9 @@ typedef struct { * one of the constants below. */ int verify_file(unsigned char* addr, size_t length, - const Certificate *pKeys, unsigned int numKeys); + const std::vector<Certificate>& keys); -Certificate* load_keys(const char* filename, int* numKeys); +bool load_keys(const char* filename, std::vector<Certificate>& certs); #define VERIFY_SUCCESS 0 #define VERIFY_FAILURE 1 |