|  | /* Copyright (c) 2014 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. | 
|  | * | 
|  | * Crypto constants for verified boot | 
|  | */ | 
|  |  | 
|  | #pragma once | 
|  | #include <stdint.h> | 
|  |  | 
|  | /* Verified boot crypto algorithms */ | 
|  | enum vb2_crypto_algorithm { | 
|  | VB2_ALG_RSA1024_SHA1   = 0, | 
|  | VB2_ALG_RSA1024_SHA256 = 1, | 
|  | VB2_ALG_RSA1024_SHA512 = 2, | 
|  | VB2_ALG_RSA2048_SHA1   = 3, | 
|  | VB2_ALG_RSA2048_SHA256 = 4, | 
|  | VB2_ALG_RSA2048_SHA512 = 5, | 
|  | VB2_ALG_RSA4096_SHA1   = 6, | 
|  | VB2_ALG_RSA4096_SHA256 = 7, | 
|  | VB2_ALG_RSA4096_SHA512 = 8, | 
|  | VB2_ALG_RSA8192_SHA1   = 9, | 
|  | VB2_ALG_RSA8192_SHA256 = 10, | 
|  | VB2_ALG_RSA8192_SHA512 = 11, | 
|  |  | 
|  | /* Number of algorithms */ | 
|  | VB2_ALG_COUNT | 
|  | }; | 
|  |  | 
|  | /* Algorithm types for signatures */ | 
|  | enum vb2_signature_algorithm { | 
|  | /* Invalid or unsupported signature type */ | 
|  | VB2_SIG_INVALID = 0, | 
|  |  | 
|  | /* | 
|  | * No signature algorithm.  The digest is unsigned.  See | 
|  | * VB2_ID_NONE_* for key IDs to use with this algorithm. | 
|  | */ | 
|  | VB2_SIG_NONE = 1, | 
|  |  | 
|  | /* RSA algorithms of the given length in bits (1024-8192) */ | 
|  | VB2_SIG_RSA1024 = 2,  /* Warning!  This is likely to be deprecated! */ | 
|  | VB2_SIG_RSA2048 = 3, | 
|  | VB2_SIG_RSA4096 = 4, | 
|  | VB2_SIG_RSA8192 = 5, | 
|  | }; | 
|  |  | 
|  | /* Algorithm types for hash digests */ | 
|  | enum vb2_hash_algorithm { | 
|  | /* Invalid or unsupported digest type */ | 
|  | VB2_HASH_INVALID = 0, | 
|  |  | 
|  | /* SHA-1.  Warning: This is likely to be deprecated soon! */ | 
|  | VB2_HASH_SHA1 = 1, | 
|  |  | 
|  | /* SHA-256 and SHA-512 */ | 
|  | VB2_HASH_SHA256 = 2, | 
|  | VB2_HASH_SHA512 = 3, | 
|  |  | 
|  | /* Last index. Don't add anything below. */ | 
|  | VB2_HASH_ALG_COUNT, | 
|  | }; | 
|  |  |