File: intel_keym_v1.cpp

package info (click to toggle)
uefitool 0.28.0%2BA73-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 7,728 kB
  • sloc: ansic: 55,322; cpp: 23,375; sh: 43; xml: 23; makefile: 5
file content (126 lines) | stat: -rw-r--r-- 4,101 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
// This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild

#include "intel_keym_v1.h"
#include "../kaitai/exceptions.h"
const std::set<intel_keym_v1_t::structure_ids_t> intel_keym_v1_t::_values_structure_ids_t{
    intel_keym_v1_t::STRUCTURE_IDS_KEYM,
};
bool intel_keym_v1_t::_is_defined_structure_ids_t(intel_keym_v1_t::structure_ids_t v) {
    return intel_keym_v1_t::_values_structure_ids_t.find(v) != intel_keym_v1_t::_values_structure_ids_t.end();
}

intel_keym_v1_t::intel_keym_v1_t(kaitai::kstream* p__io, kaitai::kstruct* p__parent, intel_keym_v1_t* p__root) : kaitai::kstruct(p__io) {
    m__parent = p__parent;
    m__root = p__root ? p__root : this;
    m_km_hash = nullptr;
    m_key_signature = nullptr;
    _read();
}

void intel_keym_v1_t::_read() {
    m_structure_id = static_cast<intel_keym_v1_t::structure_ids_t>(m__io->read_u8le());
    if (!(m_structure_id == intel_keym_v1_t::STRUCTURE_IDS_KEYM)) {
        throw kaitai::validation_not_equal_error<intel_keym_v1_t::structure_ids_t>(intel_keym_v1_t::STRUCTURE_IDS_KEYM, m_structure_id, m__io, std::string("/seq/0"));
    }
    m_version = m__io->read_u1();
    {
        uint8_t _ = m_version;
        if (!(_ < 32)) {
            throw kaitai::validation_expr_error<uint8_t>(m_version, m__io, std::string("/seq/1"));
        }
    }
    m_km_version = m__io->read_u1();
    m_km_svn = m__io->read_u1();
    m_km_id = m__io->read_u1();
    m_km_hash = std::unique_ptr<km_hash_t>(new km_hash_t(m__io, this, m__root));
    m_key_signature = std::unique_ptr<key_signature_t>(new key_signature_t(m__io, this, m__root));
}

intel_keym_v1_t::~intel_keym_v1_t() {
    _clean_up();
}

void intel_keym_v1_t::_clean_up() {
}

intel_keym_v1_t::key_signature_t::key_signature_t(kaitai::kstream* p__io, intel_keym_v1_t* p__parent, intel_keym_v1_t* p__root) : kaitai::kstruct(p__io) {
    m__parent = p__parent;
    m__root = p__root;
    m_public_key = nullptr;
    m_signature = nullptr;
    _read();
}

void intel_keym_v1_t::key_signature_t::_read() {
    m_version = m__io->read_u1();
    m_key_id = m__io->read_u2le();
    m_public_key = std::unique_ptr<public_key_t>(new public_key_t(m__io, this, m__root));
    m_sig_scheme = m__io->read_u2le();
    m_signature = std::unique_ptr<signature_t>(new signature_t(m__io, this, m__root));
}

intel_keym_v1_t::key_signature_t::~key_signature_t() {
    _clean_up();
}

void intel_keym_v1_t::key_signature_t::_clean_up() {
}

intel_keym_v1_t::km_hash_t::km_hash_t(kaitai::kstream* p__io, intel_keym_v1_t* p__parent, intel_keym_v1_t* p__root) : kaitai::kstruct(p__io) {
    m__parent = p__parent;
    m__root = p__root;
    _read();
}

void intel_keym_v1_t::km_hash_t::_read() {
    m_hash_algorithm_id = m__io->read_u2le();
    m_len_hash = m__io->read_u2le();
    m_hash = m__io->read_bytes(len_hash());
}

intel_keym_v1_t::km_hash_t::~km_hash_t() {
    _clean_up();
}

void intel_keym_v1_t::km_hash_t::_clean_up() {
}

intel_keym_v1_t::public_key_t::public_key_t(kaitai::kstream* p__io, intel_keym_v1_t::key_signature_t* p__parent, intel_keym_v1_t* p__root) : kaitai::kstruct(p__io) {
    m__parent = p__parent;
    m__root = p__root;
    _read();
}

void intel_keym_v1_t::public_key_t::_read() {
    m_version = m__io->read_u1();
    m_size_bits = m__io->read_u2le();
    m_exponent = m__io->read_u4le();
    m_modulus = m__io->read_bytes(size_bits() / 8);
}

intel_keym_v1_t::public_key_t::~public_key_t() {
    _clean_up();
}

void intel_keym_v1_t::public_key_t::_clean_up() {
}

intel_keym_v1_t::signature_t::signature_t(kaitai::kstream* p__io, intel_keym_v1_t::key_signature_t* p__parent, intel_keym_v1_t* p__root) : kaitai::kstruct(p__io) {
    m__parent = p__parent;
    m__root = p__root;
    _read();
}

void intel_keym_v1_t::signature_t::_read() {
    m_version = m__io->read_u1();
    m_size_bits = m__io->read_u2le();
    m_hash_algorithm_id = m__io->read_u2le();
    m_signature = m__io->read_bytes(size_bits() / 8);
}

intel_keym_v1_t::signature_t::~signature_t() {
    _clean_up();
}

void intel_keym_v1_t::signature_t::_clean_up() {
}