diff options
author | Mattias Nissler <mnissler@google.com> | 2016-04-13 03:49:17 +0200 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-04-13 03:49:17 +0200 |
commit | ecd32c786c1469e476b29d13c3a25663d593da62 (patch) | |
tree | 571fa80724f0356932d702fc75376e126d5a8c6d /verifier.h | |
parent | resolve merge conflicts of a58a6db to nyc-dev-plus-aosp (diff) | |
parent | resolve merge conflicts of 2bf95ac to nyc-dev-plus-aosp (diff) | |
download | android_bootable_recovery-ecd32c786c1469e476b29d13c3a25663d593da62.tar android_bootable_recovery-ecd32c786c1469e476b29d13c3a25663d593da62.tar.gz android_bootable_recovery-ecd32c786c1469e476b29d13c3a25663d593da62.tar.bz2 android_bootable_recovery-ecd32c786c1469e476b29d13c3a25663d593da62.tar.lz android_bootable_recovery-ecd32c786c1469e476b29d13c3a25663d593da62.tar.xz android_bootable_recovery-ecd32c786c1469e476b29d13c3a25663d593da62.tar.zst android_bootable_recovery-ecd32c786c1469e476b29d13c3a25663d593da62.zip |
Diffstat (limited to 'verifier.h')
-rw-r--r-- | verifier.h | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/verifier.h b/verifier.h index 4eafc7565..58083fe14 100644 --- a/verifier.h +++ b/verifier.h @@ -20,32 +20,42 @@ #include <memory> #include <vector> -#include "mincrypt/p256.h" -#include "mincrypt/rsa.h" +#include <openssl/ec_key.h> +#include <openssl/rsa.h> +#include <openssl/sha.h> -typedef struct { - p256_int x; - p256_int y; -} ECPublicKey; +struct RSADeleter { + void operator()(RSA* rsa) { + RSA_free(rsa); + } +}; + +struct ECKEYDeleter { + void operator()(EC_KEY* ec_key) { + EC_KEY_free(ec_key); + } +}; struct Certificate { typedef enum { - RSA, - EC, + KEY_TYPE_RSA, + KEY_TYPE_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_)) { } + Certificate(int hash_len_, + KeyType key_type_, + std::unique_ptr<RSA, RSADeleter>&& rsa_, + std::unique_ptr<EC_KEY, ECKEYDeleter>&& 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) + // SHA_DIGEST_LENGTH (SHA-1) or SHA256_DIGEST_LENGTH (SHA-256) + int hash_len; KeyType key_type; - std::unique_ptr<RSAPublicKey> rsa; - std::unique_ptr<ECPublicKey> ec; + std::unique_ptr<RSA, RSADeleter> rsa; + std::unique_ptr<EC_KEY, ECKEYDeleter> ec; }; /* addr and length define a an update package file that has been |