crypto: initial import of the chromeos vboot libraries
[akaros.git] / kern / lib / crypto / include / 2crypto.h
1 /* Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
2  * Use of this source code is governed by a BSD-style license that can be
3  * found in the LICENSE file.
4  *
5  * Crypto constants for verified boot
6  */
7
8 #ifndef VBOOT_REFERENCE_VBOOT_2CRYPTO_H_
9 #define VBOOT_REFERENCE_VBOOT_2CRYPTO_H_
10 #include <stdint.h>
11
12 /* Verified boot crypto algorithms */
13 enum vb2_crypto_algorithm {
14         VB2_ALG_RSA1024_SHA1   = 0,
15         VB2_ALG_RSA1024_SHA256 = 1,
16         VB2_ALG_RSA1024_SHA512 = 2,
17         VB2_ALG_RSA2048_SHA1   = 3,
18         VB2_ALG_RSA2048_SHA256 = 4,
19         VB2_ALG_RSA2048_SHA512 = 5,
20         VB2_ALG_RSA4096_SHA1   = 6,
21         VB2_ALG_RSA4096_SHA256 = 7,
22         VB2_ALG_RSA4096_SHA512 = 8,
23         VB2_ALG_RSA8192_SHA1   = 9,
24         VB2_ALG_RSA8192_SHA256 = 10,
25         VB2_ALG_RSA8192_SHA512 = 11,
26
27         /* Number of algorithms */
28         VB2_ALG_COUNT
29 };
30
31 /* Algorithm types for signatures */
32 enum vb2_signature_algorithm {
33         /* Invalid or unsupported signature type */
34         VB2_SIG_INVALID = 0,
35
36         /*
37          * No signature algorithm.  The digest is unsigned.  See
38          * VB2_ID_NONE_* for key IDs to use with this algorithm.
39          */
40         VB2_SIG_NONE = 1,
41
42         /* RSA algorithms of the given length in bits (1024-8192) */
43         VB2_SIG_RSA1024 = 2,  /* Warning!  This is likely to be deprecated! */
44         VB2_SIG_RSA2048 = 3,
45         VB2_SIG_RSA4096 = 4,
46         VB2_SIG_RSA8192 = 5,
47 };
48
49 /* Algorithm types for hash digests */
50 enum vb2_hash_algorithm {
51         /* Invalid or unsupported digest type */
52         VB2_HASH_INVALID = 0,
53
54         /* SHA-1.  Warning: This is likely to be deprecated soon! */
55         VB2_HASH_SHA1 = 1,
56
57         /* SHA-256 and SHA-512 */
58         VB2_HASH_SHA256 = 2,
59         VB2_HASH_SHA512 = 3,
60
61         /* Last index. Don't add anything below. */
62         VB2_HASH_ALG_COUNT,
63 };
64
65 #endif /* VBOOT_REFERENCE_VBOOT_2CRYPTO_H_ */