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 6 #ifndef VBOOT_2_RETURN_CODES_H_ 7 #define VBOOT_2_RETURN_CODES_H_ 8 9 /* 10 * Return codes from verified boot functions. 11 * 12 * Note that other values may be passed through from vb2ex_*() calls; see 13 * the comment for VB2_ERROR_EX below. 14 */ 15 enum vb2_return_code { 16 /* Success - no error */ 17 VB2_SUCCESS = 0, 18 19 /* 20 * All vboot2 error codes start at a large offset from zero, to reduce 21 * the risk of overlap with other error codes (TPM, etc.). 22 */ 23 VB2_ERROR_BASE = 0x10000000, 24 25 /* Unknown / unspecified error */ 26 VB2_ERROR_UNKNOWN = VB2_ERROR_BASE + 1, 27 28 /* Mock error for testing */ 29 VB2_ERROR_MOCK, 30 31 /********************************************************************** 32 * SHA errors 33 */ 34 VB2_ERROR_SHA = VB2_ERROR_BASE + 0x010000, 35 36 /* Bad algorithm in vb2_digest_init() */ 37 VB2_ERROR_SHA_INIT_ALGORITHM, 38 39 /* Bad algorithm in vb2_digest_extend() */ 40 VB2_ERROR_SHA_EXTEND_ALGORITHM, 41 42 /* Bad algorithm in vb2_digest_finalize() */ 43 VB2_ERROR_SHA_FINALIZE_ALGORITHM, 44 45 /* Digest size buffer too small in vb2_digest_finalize() */ 46 VB2_ERROR_SHA_FINALIZE_DIGEST_SIZE, 47 48 /********************************************************************** 49 * RSA errors 50 */ 51 VB2_ERROR_RSA = VB2_ERROR_BASE + 0x020000, 52 53 /* Padding mismatch in vb2_check_padding() */ 54 VB2_ERROR_RSA_PADDING, 55 56 /* Bad algorithm in vb2_check_padding() */ 57 VB2_ERROR_RSA_PADDING_ALGORITHM, 58 59 /* Null param passed to vb2_verify_digest() */ 60 VB2_ERROR_RSA_VERIFY_PARAM, 61 62 /* Bad algorithm in vb2_verify_digest() */ 63 VB2_ERROR_RSA_VERIFY_ALGORITHM, 64 65 /* Bad signature length in vb2_verify_digest() */ 66 VB2_ERROR_RSA_VERIFY_SIG_LEN, 67 68 /* Work buffer too small in vb2_verify_digest() */ 69 VB2_ERROR_RSA_VERIFY_WORKBUF, 70 71 /* Digest mismatch in vb2_verify_digest() */ 72 VB2_ERROR_RSA_VERIFY_DIGEST, 73 74 /* Bad size calculation in vb2_check_padding() */ 75 VB2_ERROR_RSA_PADDING_SIZE, 76 77 /********************************************************************** 78 * NV storage errors 79 */ 80 VB2_ERROR_NV = VB2_ERROR_BASE + 0x030000, 81 82 /* Bad header in vb2_nv_check_crc() */ 83 VB2_ERROR_NV_HEADER, 84 85 /* Bad CRC in vb2_nv_check_crc() */ 86 VB2_ERROR_NV_CRC, 87 88 /********************************************************************** 89 * Secure data storage errors 90 */ 91 VB2_ERROR_SECDATA = VB2_ERROR_BASE + 0x040000, 92 93 /* Bad CRC in vb2_secdata_check_crc() */ 94 VB2_ERROR_SECDATA_CRC, 95 96 /* Bad struct version in vb2_secdata_init() */ 97 VB2_ERROR_SECDATA_VERSION, 98 99 /* Invalid param in vb2_secdata_get() */ 100 VB2_ERROR_SECDATA_GET_PARAM, 101 102 /* Invalid param in vb2_secdata_set() */ 103 VB2_ERROR_SECDATA_SET_PARAM, 104 105 /* Invalid flags passed to vb2_secdata_set() */ 106 VB2_ERROR_SECDATA_SET_FLAGS, 107 108 /* Called vb2_secdata_get() with uninitialized secdata */ 109 VB2_ERROR_SECDATA_GET_UNINITIALIZED, 110 111 /* Called vb2_secdata_set() with uninitialized secdata */ 112 VB2_ERROR_SECDATA_SET_UNINITIALIZED, 113 114 /********************************************************************** 115 * Common code errors 116 */ 117 VB2_ERROR_COMMON = VB2_ERROR_BASE + 0x050000, 118 119 /* Buffer is smaller than alignment offset in vb2_align() */ 120 VB2_ERROR_ALIGN_BIGGER_THAN_SIZE, 121 122 /* Buffer is smaller than request in vb2_align() */ 123 VB2_ERROR_ALIGN_SIZE, 124 125 /* Parent wraps around in vb2_verify_member_inside() */ 126 VB2_ERROR_INSIDE_PARENT_WRAPS, 127 128 /* Member wraps around in vb2_verify_member_inside() */ 129 VB2_ERROR_INSIDE_MEMBER_WRAPS, 130 131 /* Member outside parent in vb2_verify_member_inside() */ 132 VB2_ERROR_INSIDE_MEMBER_OUTSIDE, 133 134 /* Member data wraps around in vb2_verify_member_inside() */ 135 VB2_ERROR_INSIDE_DATA_WRAPS, 136 137 /* Member data outside parent in vb2_verify_member_inside() */ 138 VB2_ERROR_INSIDE_DATA_OUTSIDE, 139 140 /* Unsupported signature algorithm in vb2_unpack_key() */ 141 VB2_ERROR_UNPACK_KEY_SIG_ALGORITHM, /* 0x150008 */ 142 143 /* Bad key size in vb2_unpack_key() */ 144 VB2_ERROR_UNPACK_KEY_SIZE, 145 146 /* Bad key alignment in vb2_unpack_key() */ 147 VB2_ERROR_UNPACK_KEY_ALIGN, 148 149 /* Bad key array size in vb2_unpack_key() */ 150 VB2_ERROR_UNPACK_KEY_ARRAY_SIZE, 151 152 /* Bad algorithm in vb2_verify_data() */ 153 VB2_ERROR_VDATA_ALGORITHM, 154 155 /* Incorrect signature size for algorithm in vb2_verify_data() */ 156 VB2_ERROR_VDATA_SIG_SIZE, 157 158 /* Data smaller than length of signed data in vb2_verify_data() */ 159 VB2_ERROR_VDATA_NOT_ENOUGH_DATA, 160 161 /* Not enough work buffer for digest in vb2_verify_data() */ 162 VB2_ERROR_VDATA_WORKBUF_DIGEST, 163 164 /* Not enough work buffer for hash temp data in vb2_verify_data() */ 165 VB2_ERROR_VDATA_WORKBUF_HASHING, /* 0x150010 */ 166 167 /* 168 * Bad digest size in vb2_verify_data() - probably because algorithm 169 * is bad. 170 */ 171 VB2_ERROR_VDATA_DIGEST_SIZE, 172 173 /* Unsupported hash algorithm in vb2_unpack_key() */ 174 VB2_ERROR_UNPACK_KEY_HASH_ALGORITHM, 175 176 /* Member data overlaps member header */ 177 VB2_ERROR_INSIDE_DATA_OVERLAP, 178 179 /* Unsupported packed key struct version */ 180 VB2_ERROR_UNPACK_KEY_STRUCT_VERSION, 181 182 /* 183 * Buffer too small for total, fixed size, or description reported in 184 * common header, or member data checked via 185 * vb2_verify_common_member(). 186 */ 187 VB2_ERROR_COMMON_TOTAL_SIZE, 188 VB2_ERROR_COMMON_FIXED_SIZE, 189 VB2_ERROR_COMMON_DESC_SIZE, 190 VB2_ERROR_COMMON_MEMBER_SIZE, /* 0x150018 */ 191 192 /* 193 * Total, fixed, description, or member offset/size not a multiple of 194 * 32 bits. 195 */ 196 VB2_ERROR_COMMON_TOTAL_UNALIGNED, 197 VB2_ERROR_COMMON_FIXED_UNALIGNED, 198 VB2_ERROR_COMMON_DESC_UNALIGNED, 199 VB2_ERROR_COMMON_MEMBER_UNALIGNED, 200 201 /* Common struct description or member data wraps address space */ 202 VB2_ERROR_COMMON_DESC_WRAPS, 203 VB2_ERROR_COMMON_MEMBER_WRAPS, 204 205 /* Common struct description is not null-terminated */ 206 VB2_ERROR_COMMON_DESC_TERMINATOR, 207 208 /* Member data overlaps previous data */ 209 VB2_ERROR_COMMON_MEMBER_OVERLAP, /* 0x150020 */ 210 211 /* Signature bad magic number */ 212 VB2_ERROR_SIG_MAGIC, 213 214 /* Signature incompatible version */ 215 VB2_ERROR_SIG_VERSION, 216 217 /* Signature header doesn't fit */ 218 VB2_ERROR_SIG_HEADER_SIZE, 219 220 /* Signature unsupported algorithm */ 221 VB2_ERROR_SIG_ALGORITHM, 222 223 /* Signature bad size for algorithm */ 224 VB2_ERROR_SIG_SIZE, 225 226 /* Wrong amount of data signed */ 227 VB2_ERROR_VDATA_SIZE, 228 229 /* Digest mismatch */ 230 VB2_ERROR_VDATA_VERIFY_DIGEST, 231 232 /* Key algorithm doesn't match signature algorithm */ 233 VB2_ERROR_VDATA_ALGORITHM_MISMATCH, 234 235 /* Bad magic number in vb2_unpack_key() */ 236 VB2_ERROR_UNPACK_KEY_MAGIC, 237 238 /********************************************************************** 239 * Keyblock verification errors (all in vb2_verify_keyblock()) 240 */ 241 VB2_ERROR_KEYBLOCK = VB2_ERROR_BASE + 0x060000, 242 243 /* Data buffer too small for header */ 244 VB2_ERROR_KEYBLOCK_TOO_SMALL_FOR_HEADER, 245 246 /* Magic number not present */ 247 VB2_ERROR_KEYBLOCK_MAGIC, 248 249 /* Header version incompatible */ 250 VB2_ERROR_KEYBLOCK_HEADER_VERSION, 251 252 /* Data buffer too small for keyblock */ 253 VB2_ERROR_KEYBLOCK_SIZE, 254 255 /* Signature data offset outside keyblock */ 256 VB2_ERROR_KEYBLOCK_SIG_OUTSIDE, 257 258 /* Signature signed more data than size of keyblock */ 259 VB2_ERROR_KEYBLOCK_SIGNED_TOO_MUCH, 260 261 /* Signature signed less data than size of keyblock header */ 262 VB2_ERROR_KEYBLOCK_SIGNED_TOO_LITTLE, 263 264 /* Signature invalid */ 265 VB2_ERROR_KEYBLOCK_SIG_INVALID, 266 267 /* Data key outside keyblock */ 268 VB2_ERROR_KEYBLOCK_DATA_KEY_OUTSIDE, 269 270 /* Data key outside signed part of keyblock */ 271 VB2_ERROR_KEYBLOCK_DATA_KEY_UNSIGNED, 272 273 /* Signature signed wrong amount of data */ 274 VB2_ERROR_KEYBLOCK_SIGNED_SIZE, 275 276 /* No signature matching key GUID */ 277 VB2_ERROR_KEYBLOCK_SIG_GUID, 278 279 /********************************************************************** 280 * Preamble verification errors (all in vb2_verify_preamble()) 281 */ 282 VB2_ERROR_PREAMBLE = VB2_ERROR_BASE + 0x070000, 283 284 /* Preamble data too small to contain header */ 285 VB2_ERROR_PREAMBLE_TOO_SMALL_FOR_HEADER, 286 287 /* Header version incompatible */ 288 VB2_ERROR_PREAMBLE_HEADER_VERSION, 289 290 /* Header version too old */ 291 VB2_ERROR_PREAMBLE_HEADER_OLD, 292 293 /* Data buffer too small for preamble */ 294 VB2_ERROR_PREAMBLE_SIZE, 295 296 /* Signature data offset outside preamble */ 297 VB2_ERROR_PREAMBLE_SIG_OUTSIDE, 298 299 /* Signature signed more data than size of preamble */ 300 VB2_ERROR_PREAMBLE_SIGNED_TOO_MUCH, 301 302 /* Signature signed less data than size of preamble header */ 303 VB2_ERROR_PREAMBLE_SIGNED_TOO_LITTLE, 304 305 /* Signature invalid */ 306 VB2_ERROR_PREAMBLE_SIG_INVALID, 307 308 /* Body signature outside preamble */ 309 VB2_ERROR_PREAMBLE_BODY_SIG_OUTSIDE, 310 311 /* Kernel subkey outside preamble */ 312 VB2_ERROR_PREAMBLE_KERNEL_SUBKEY_OUTSIDE, 313 314 /* Bad magic number */ 315 VB2_ERROR_PREAMBLE_MAGIC, 316 317 /* Hash is signed */ 318 VB2_ERROR_PREAMBLE_HASH_SIGNED, 319 320 /********************************************************************** 321 * Misc higher-level code errors 322 */ 323 VB2_ERROR_MISC = VB2_ERROR_BASE + 0x080000, 324 325 /* Work buffer too small in vb2_init_context() */ 326 VB2_ERROR_INITCTX_WORKBUF_SMALL, 327 328 /* Work buffer unaligned in vb2_init_context() */ 329 VB2_ERROR_INITCTX_WORKBUF_ALIGN, 330 331 /* Work buffer too small in vb2_fw_parse_gbb() */ 332 VB2_ERROR_GBB_WORKBUF, 333 334 /* Bad magic number in vb2_read_gbb_header() */ 335 VB2_ERROR_GBB_MAGIC, 336 337 /* Incompatible version in vb2_read_gbb_header() */ 338 VB2_ERROR_GBB_VERSION, 339 340 /* Old version in vb2_read_gbb_header() */ 341 VB2_ERROR_GBB_TOO_OLD, 342 343 /* Header size too small in vb2_read_gbb_header() */ 344 VB2_ERROR_GBB_HEADER_SIZE, 345 346 /* Work buffer too small for root key in vb2_load_fw_keyblock() */ 347 VB2_ERROR_FW_KEYBLOCK_WORKBUF_ROOT_KEY, 348 349 /* Work buffer too small for header in vb2_load_fw_keyblock() */ 350 VB2_ERROR_FW_KEYBLOCK_WORKBUF_HEADER, 351 352 /* Work buffer too small for keyblock in vb2_load_fw_keyblock() */ 353 VB2_ERROR_FW_KEYBLOCK_WORKBUF, 354 355 /* Keyblock version out of range in vb2_load_fw_keyblock() */ 356 VB2_ERROR_FW_KEYBLOCK_VERSION_RANGE, 357 358 /* Keyblock version rollback in vb2_load_fw_keyblock() */ 359 VB2_ERROR_FW_KEYBLOCK_VERSION_ROLLBACK, 360 361 /* Missing firmware data key in vb2_load_fw_preamble() */ 362 VB2_ERROR_FW_PREAMBLE2_DATA_KEY, 363 364 /* Work buffer too small for header in vb2_load_fw_preamble() */ 365 VB2_ERROR_FW_PREAMBLE2_WORKBUF_HEADER, 366 367 /* Work buffer too small for preamble in vb2_load_fw_preamble() */ 368 VB2_ERROR_FW_PREAMBLE2_WORKBUF, 369 370 /* Firmware version out of range in vb2_load_fw_preamble() */ 371 VB2_ERROR_FW_PREAMBLE_VERSION_RANGE, 372 373 /* Firmware version rollback in vb2_load_fw_preamble() */ 374 VB2_ERROR_FW_PREAMBLE_VERSION_ROLLBACK, 375 376 /* Not enough space in work buffer for resource object */ 377 VB2_ERROR_READ_RESOURCE_OBJECT_BUF, 378 379 /********************************************************************** 380 * API-level errors 381 */ 382 VB2_ERROR_API = VB2_ERROR_BASE + 0x090000, 383 384 /* Bag tag in vb2api_init_hash() */ 385 VB2_ERROR_API_INIT_HASH_TAG, 386 387 /* Preamble not present in vb2api_init_hash() */ 388 VB2_ERROR_API_INIT_HASH_PREAMBLE, 389 390 /* Work buffer too small in vb2api_init_hash() */ 391 VB2_ERROR_API_INIT_HASH_WORKBUF, 392 393 /* Missing firmware data key in vb2api_init_hash() */ 394 VB2_ERROR_API_INIT_HASH_DATA_KEY, 395 396 /* Uninitialized work area in vb2api_extend_hash() */ 397 VB2_ERROR_API_EXTEND_HASH_WORKBUF, 398 399 /* Too much data hashed in vb2api_extend_hash() */ 400 VB2_ERROR_API_EXTEND_HASH_SIZE, 401 402 /* Preamble not present in vb2api_check_hash() */ 403 VB2_ERROR_API_CHECK_HASH_PREAMBLE, 404 405 /* Uninitialized work area in vb2api_check_hash() */ 406 VB2_ERROR_API_CHECK_HASH_WORKBUF, 407 408 /* Wrong amount of data hashed in vb2api_check_hash() */ 409 VB2_ERROR_API_CHECK_HASH_SIZE, 410 411 /* Work buffer too small in vb2api_check_hash() */ 412 VB2_ERROR_API_CHECK_HASH_WORKBUF_DIGEST, 413 414 /* Bag tag in vb2api_check_hash() */ 415 VB2_ERROR_API_CHECK_HASH_TAG, 416 417 /* Missing firmware data key in vb2api_check_hash() */ 418 VB2_ERROR_API_CHECK_HASH_DATA_KEY, 419 420 /* Siganature size mismatch in vb2api_check_hash() */ 421 VB2_ERROR_API_CHECK_HASH_SIG_SIZE, 422 423 /* Phase one needs recovery mode */ 424 VB2_ERROR_API_PHASE1_RECOVERY, 425 426 /* Bag tag in vb2api_check_hash() */ 427 VB2_ERROR_API_INIT_HASH_GUID, 428 429 /* Siganature mismatch in vb2api_check_hash() */ 430 VB2_ERROR_API_CHECK_HASH_SIG, 431 432 /* Invalid enum vb2_pcr_digest requested to vb2api_get_pcr_digest */ 433 VB2_ERROR_API_PCR_DIGEST, 434 435 /* Buffer size for the digest is too small for vb2api_get_pcr_digest */ 436 VB2_ERROR_API_PCR_DIGEST_BUF, 437 438 /********************************************************************** 439 * Errors which may be generated by implementations of vb2ex functions. 440 * Implementation may also return its own specific errors, which should 441 * NOT be in the range VB2_ERROR_BASE...VB2_ERROR_MAX to avoid 442 * conflicting with future vboot2 error codes. 443 */ 444 VB2_ERROR_EX = VB2_ERROR_BASE + 0x0a0000, 445 446 /* Read resource not implemented */ 447 VB2_ERROR_EX_READ_RESOURCE_UNIMPLEMENTED, 448 449 /* Resource index not found */ 450 VB2_ERROR_EX_READ_RESOURCE_INDEX, 451 452 /* Size of resource not big enough for requested offset and/or size */ 453 VB2_ERROR_EX_READ_RESOURCE_SIZE, 454 455 /* TPM clear owner failed */ 456 VB2_ERROR_EX_TPM_CLEAR_OWNER, 457 458 /* TPM clear owner not implemented */ 459 VB2_ERROR_EX_TPM_CLEAR_OWNER_UNIMPLEMENTED, 460 461 /* Hardware crypto engine doesn't support this algorithm (non-fatal) */ 462 VB2_ERROR_EX_HWCRYPTO_UNSUPPORTED, 463 464 465 /********************************************************************** 466 * Errors generated by host library (non-firmware) start here. 467 */ 468 VB2_ERROR_HOST_BASE = 0x20000000, 469 470 /********************************************************************** 471 * Errors generated by host library misc functions 472 */ 473 VB2_ERROR_HOST_MISC = VB2_ERROR_HOST_BASE + 0x010000, 474 475 /* Unable to open file in read_file() */ 476 VB2_ERROR_READ_FILE_OPEN, 477 478 /* Bad size in read_file() */ 479 VB2_ERROR_READ_FILE_SIZE, 480 481 /* Unable to allocate buffer in read_file() */ 482 VB2_ERROR_READ_FILE_ALLOC, 483 484 /* Unable to read data in read_file() */ 485 VB2_ERROR_READ_FILE_DATA, 486 487 /* Unable to open file in write_file() */ 488 VB2_ERROR_WRITE_FILE_OPEN, 489 490 /* Unable to write data in write_file() */ 491 VB2_ERROR_WRITE_FILE_DATA, 492 493 /* Unable to convert string to struct vb_guid */ 494 VB2_ERROR_STR_TO_GUID, 495 496 /* Unable to convert struct vb_guid to string */ 497 VB2_ERROR_GUID_TO_STR, 498 499 /********************************************************************** 500 * Errors generated by host library key functions 501 */ 502 VB2_ERROR_HOST_KEY = VB2_ERROR_HOST_BASE + 0x020000, 503 504 /* Unable to allocate key in vb2_private_key_read_pem() */ 505 VB2_ERROR_READ_PEM_ALLOC, 506 507 /* Unable to open .pem file in vb2_private_key_read_pem() */ 508 VB2_ERROR_READ_PEM_FILE_OPEN, 509 510 /* Bad RSA data from .pem file in vb2_private_key_read_pem() */ 511 VB2_ERROR_READ_PEM_RSA, 512 513 /* Unable to set private key description */ 514 VB2_ERROR_PRIVATE_KEY_SET_DESC, 515 516 /* Bad magic number in vb2_private_key_unpack() */ 517 VB2_ERROR_UNPACK_PRIVATE_KEY_MAGIC, 518 519 /* Bad common header in vb2_private_key_unpack() */ 520 VB2_ERROR_UNPACK_PRIVATE_KEY_HEADER, 521 522 /* Bad key data in vb2_private_key_unpack() */ 523 VB2_ERROR_UNPACK_PRIVATE_KEY_DATA, 524 525 /* Bad struct version in vb2_private_key_unpack() */ 526 VB2_ERROR_UNPACK_PRIVATE_KEY_STRUCT_VERSION, 527 528 /* Unable to allocate buffer in vb2_private_key_unpack() */ 529 VB2_ERROR_UNPACK_PRIVATE_KEY_ALLOC, 530 531 /* Unable to unpack RSA key in vb2_private_key_unpack() */ 532 VB2_ERROR_UNPACK_PRIVATE_KEY_RSA, 533 534 /* Unable to set description in vb2_private_key_unpack() */ 535 VB2_ERROR_UNPACK_PRIVATE_KEY_DESC, 536 537 /* Bad bare hash key in vb2_private_key_unpack() */ 538 VB2_ERROR_UNPACK_PRIVATE_KEY_HASH, 539 540 /* Unable to create RSA data in vb2_private_key_write() */ 541 VB2_ERROR_PRIVATE_KEY_WRITE_RSA, 542 543 /* Unable to allocate packed key buffer in vb2_private_key_write() */ 544 VB2_ERROR_PRIVATE_KEY_WRITE_ALLOC, 545 546 /* Unable to write file in vb2_private_key_write() */ 547 VB2_ERROR_PRIVATE_KEY_WRITE_FILE, 548 549 /* Bad algorithm in vb2_private_key_hash() */ 550 VB2_ERROR_PRIVATE_KEY_HASH, 551 552 /* Unable to determine key size in vb2_public_key_alloc() */ 553 VB2_ERROR_PUBLIC_KEY_ALLOC_SIZE, 554 555 /* Unable to allocate buffer in vb2_public_key_alloc() */ 556 VB2_ERROR_PUBLIC_KEY_ALLOC, 557 558 /* Unable to set public key description */ 559 VB2_ERROR_PUBLIC_KEY_SET_DESC, 560 561 /* Unable to read key data in vb2_public_key_read_keyb() */ 562 VB2_ERROR_READ_KEYB_DATA, 563 564 /* Wrong amount of data read in vb2_public_key_read_keyb() */ 565 VB2_ERROR_READ_KEYB_SIZE, 566 567 /* Unable to allocate key buffer in vb2_public_key_read_keyb() */ 568 VB2_ERROR_READ_KEYB_ALLOC, 569 570 /* Error unpacking RSA arrays in vb2_public_key_read_keyb() */ 571 VB2_ERROR_READ_KEYB_UNPACK, 572 573 /* Unable to read key data in vb2_packed_key_read() */ 574 VB2_ERROR_READ_PACKED_KEY_DATA, 575 576 /* Bad key data in vb2_packed_key_read() */ 577 VB2_ERROR_READ_PACKED_KEY, 578 579 /* Unable to determine key size in vb2_public_key_pack() */ 580 VB2_ERROR_PUBLIC_KEY_PACK_SIZE, 581 582 /* Bad hash algorithm in vb2_public_key_hash() */ 583 VB2_ERROR_PUBLIC_KEY_HASH, 584 585 /********************************************************************** 586 * Errors generated by host library signature functions 587 */ 588 VB2_ERROR_HOST_SIG = VB2_ERROR_HOST_BASE + 0x030000, 589 590 /* Bad hash algorithm in vb2_digest_info() */ 591 VB2_ERROR_DIGEST_INFO, 592 593 /* 594 * Unable to determine signature size for key algorithm in 595 * vb2_sig_size_for_key(). 596 */ 597 VB2_ERROR_SIG_SIZE_FOR_KEY, 598 599 /* Bad signature size in vb2_sign_data() */ 600 VB2_SIGN_DATA_SIG_SIZE, 601 602 /* Unable to get digest info in vb2_sign_data() */ 603 VB2_SIGN_DATA_DIGEST_INFO, 604 605 /* Unable to get digest size in vb2_sign_data() */ 606 VB2_SIGN_DATA_DIGEST_SIZE, 607 608 /* Unable to allocate digest buffer in vb2_sign_data() */ 609 VB2_SIGN_DATA_DIGEST_ALLOC, 610 611 /* Unable to initialize digest in vb2_sign_data() */ 612 VB2_SIGN_DATA_DIGEST_INIT, 613 614 /* Unable to extend digest in vb2_sign_data() */ 615 VB2_SIGN_DATA_DIGEST_EXTEND, 616 617 /* Unable to finalize digest in vb2_sign_data() */ 618 VB2_SIGN_DATA_DIGEST_FINALIZE, 619 620 /* RSA encrypt failed in vb2_sign_data() */ 621 VB2_SIGN_DATA_RSA_ENCRYPT, 622 623 /* Not enough buffer space to hold signature in vb2_sign_object() */ 624 VB2_SIGN_OBJECT_OVERFLOW, 625 626 /********************************************************************** 627 * Errors generated by host library keyblock functions 628 */ 629 VB2_ERROR_HOST_KEYBLOCK = VB2_ERROR_HOST_BASE + 0x040000, 630 631 /* Unable to determine signature sizes for vb2_create_keyblock() */ 632 VB2_KEYBLOCK_CREATE_SIG_SIZE, 633 634 /* Unable to pack data key for vb2_create_keyblock() */ 635 VB2_KEYBLOCK_CREATE_DATA_KEY, 636 637 /* Unable to allocate buffer in vb2_create_keyblock() */ 638 VB2_KEYBLOCK_CREATE_ALLOC, 639 640 /* Unable to sign keyblock in vb2_create_keyblock() */ 641 VB2_KEYBLOCK_CREATE_SIGN, 642 643 /********************************************************************** 644 * Errors generated by host library firmware preamble functions 645 */ 646 VB2_ERROR_HOST_FW_PREAMBLE = VB2_ERROR_HOST_BASE + 0x050000, 647 648 /* Unable to determine signature sizes for vb2_create_fw_preamble() */ 649 VB2_FW_PREAMBLE_CREATE_SIG_SIZE, 650 651 /* Unable to allocate buffer in vb2_create_fw_preamble() */ 652 VB2_FW_PREAMBLE_CREATE_ALLOC, 653 654 /* Unable to sign preamble in vb2_create_fw_preamble() */ 655 VB2_FW_PREAMBLE_CREATE_SIGN, 656 657 /********************************************************************** 658 * Highest non-zero error generated inside vboot library. Note that 659 * error codes passed through vboot when it calls external APIs may 660 * still be outside this range. 661 */ 662 VB2_ERROR_MAX = VB2_ERROR_BASE + 0x1fffffff, 663 }; 664 665 #endif /* VBOOT_2_RETURN_CODES_H_ */ 666