@super-protocol/addons-tee 0.8.17-beta.1 → 0.8.17-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bindings/amd-sev-snp-napi-rs/amd-sev-snp-napi-rs.linux-x64-gnu.node +0 -0
- package/bindings/sp-sev/.github/auto_assign-issues.yml +5 -0
- package/bindings/sp-sev/.github/auto_assign.yml +21 -0
- package/bindings/sp-sev/.github/dependabot.yml +6 -0
- package/bindings/sp-sev/.github/workflows/dco.yml +10 -0
- package/bindings/sp-sev/.github/workflows/lint.yml +56 -0
- package/bindings/sp-sev/.github/workflows/test.yml +54 -0
- package/bindings/sp-sev/.rustfmt.toml +2 -0
- package/bindings/sp-sev/CODEOWNERS +1 -0
- package/bindings/sp-sev/Cargo.lock +2221 -0
- package/bindings/sp-sev/Cargo.toml +80 -0
- package/bindings/sp-sev/LICENSE +201 -0
- package/bindings/sp-sev/README.md +82 -0
- package/bindings/sp-sev/build.rs +17 -0
- package/bindings/sp-sev/docs/attestation/README.md +239 -0
- package/bindings/sp-sev/docs/attestation/certchain.dot +14 -0
- package/bindings/sp-sev/docs/attestation/certchain.dot.png +0 -0
- package/bindings/sp-sev/docs/attestation/prerequisites.md +6 -0
- package/bindings/sp-sev/docs/attestation/process.msc +60 -0
- package/bindings/sp-sev/docs/attestation/process.msc.png +0 -0
- package/bindings/sp-sev/docs/attestation/protections.md +53 -0
- package/bindings/sp-sev/package-version.py +11 -0
- package/bindings/sp-sev/tests/api.rs +191 -0
- package/bindings/sp-sev/tests/certs.rs +143 -0
- package/bindings/sp-sev/tests/certs_data/cert_chain_milan +74 -0
- package/bindings/sp-sev/tests/certs_data/cert_chain_turin +74 -0
- package/bindings/sp-sev/tests/certs_data/report_milan.hex +1 -0
- package/bindings/sp-sev/tests/certs_data/vcek_milan.der +0 -0
- package/bindings/sp-sev/tests/certs_data/vcek_turin.der +0 -0
- package/bindings/sp-sev/tests/guest.rs +56 -0
- package/bindings/sp-sev/tests/id-block.rs +168 -0
- package/bindings/sp-sev/tests/measurement/ovmf_AmdSev_suffix.bin +0 -0
- package/bindings/sp-sev/tests/measurement/ovmf_OvmfX64_suffix.bin +0 -0
- package/bindings/sp-sev/tests/measurement/test_auth_block.bin +0 -0
- package/bindings/sp-sev/tests/measurement/test_auth_key.pem +6 -0
- package/bindings/sp-sev/tests/measurement/test_auth_sig.bin +0 -0
- package/bindings/sp-sev/tests/measurement/test_id_key.pem +6 -0
- package/bindings/sp-sev/tests/measurement/test_id_sig.bin +0 -0
- package/bindings/sp-sev/tests/measurement.rs +510 -0
- package/bindings/sp-sev/tests/naples/ark.cert.bad +0 -0
- package/bindings/sp-sev/tests/naples/ark.cert.sig +0 -0
- package/bindings/sp-sev/tests/naples/ark.rs +38 -0
- package/bindings/sp-sev/tests/naples/ask.rs +29 -0
- package/bindings/sp-sev/tests/naples/cek.cert +0 -0
- package/bindings/sp-sev/tests/naples/cek.rs +30 -0
- package/bindings/sp-sev/tests/naples/mod.rs +20 -0
- package/bindings/sp-sev/tests/naples/oca.cert +0 -0
- package/bindings/sp-sev/tests/naples/oca.rs +45 -0
- package/bindings/sp-sev/tests/naples/pdh.cert +0 -0
- package/bindings/sp-sev/tests/naples/pdh.rs +28 -0
- package/bindings/sp-sev/tests/naples/pek.cert +0 -0
- package/bindings/sp-sev/tests/naples/pek.rs +32 -0
- package/bindings/sp-sev/tests/rome/ark.rs +33 -0
- package/bindings/sp-sev/tests/rome/ask.rs +29 -0
- package/bindings/sp-sev/tests/rome/cek.cert +0 -0
- package/bindings/sp-sev/tests/rome/cek.rs +29 -0
- package/bindings/sp-sev/tests/rome/mod.rs +16 -0
- package/bindings/sp-sev/tests/rome/oca.cert +0 -0
- package/bindings/sp-sev/tests/rome/oca.rs +45 -0
- package/bindings/sp-sev/tests/rome/pdh.cert +0 -0
- package/bindings/sp-sev/tests/rome/pdh.rs +28 -0
- package/bindings/sp-sev/tests/rome/pek.cert +0 -0
- package/bindings/sp-sev/tests/rome/pek.rs +32 -0
- package/bindings/sp-sev/tests/session.rs +39 -0
- package/bindings/sp-sev/tests/sev_launch.rs +120 -0
- package/bindings/sp-sev/tests/snp_launch.rs +108 -0
- package/bindings/utils/virtee/libsev.so +0 -0
- package/bindings/utils/virtee/snpguest +0 -0
- package/dist/sgx-native-module/sev-snp.d.ts +1 -0
- package/dist/sgx-native-module/sev-snp.js +3 -2
- package/package.json +1 -1
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
|
|
3
|
+
#![cfg(all(feature = "openssl", feature = "snp", target_os = "linux"))]
|
|
4
|
+
|
|
5
|
+
use std::{
|
|
6
|
+
convert::{TryFrom, TryInto},
|
|
7
|
+
fs,
|
|
8
|
+
io::Read,
|
|
9
|
+
path::PathBuf,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
use base64::{engine::general_purpose, Engine as _};
|
|
13
|
+
use hex::{self, FromHex};
|
|
14
|
+
|
|
15
|
+
use sev::measurement::{
|
|
16
|
+
idblock::{load_priv_key, snp_calculate_id},
|
|
17
|
+
idblock_types::{IdAuth, SevEcdsaPubKey, SevEcdsaSig},
|
|
18
|
+
snp::SnpLaunchDigest,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// Testing that the appropriate id-block and key digests are being generated.
|
|
22
|
+
#[test]
|
|
23
|
+
fn test_id_block_and_key_digests() {
|
|
24
|
+
// Expected ID-BLOCk, ID-KEY digest and AUTH-KEY digest
|
|
25
|
+
let expected_id_block = "oU1jg0HlZ0Yo/h4C++3r5eWrT68d1y2JZgaOYVu5nv0T0hSzXCMXFbOOJj3GBZdFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAwAAAAAA".to_string();
|
|
26
|
+
let expected_id_key_digest =
|
|
27
|
+
"WfssaG36T+9J84M5qndckAUcKNVzg93DuvO160sUlt87DbvcuuX+J2d6ZEggdz/i".to_string();
|
|
28
|
+
let expected_auth_key_digest =
|
|
29
|
+
"7tgRafsMteDsNHlPEo/U4MSkb2fGWhrfqB/LJLzAiMJyNpt//D6ytq9qQoShs2xf".to_string();
|
|
30
|
+
|
|
31
|
+
// Pre-generated launch digest
|
|
32
|
+
let launch_digest = Vec::from_hex("a14d638341e5674628fe1e02fbedebe5e5ab4faf1dd72d8966068e615bb99efd13d214b35c231715b38e263dc6059745").unwrap();
|
|
33
|
+
let id_launch_digest: SnpLaunchDigest = SnpLaunchDigest::new(launch_digest.try_into().unwrap());
|
|
34
|
+
|
|
35
|
+
// Generating ID-block and key digests
|
|
36
|
+
let block_calculations = snp_calculate_id(
|
|
37
|
+
Some(id_launch_digest),
|
|
38
|
+
None,
|
|
39
|
+
None,
|
|
40
|
+
None,
|
|
41
|
+
None,
|
|
42
|
+
"./tests/measurement/test_id_key.pem".into(),
|
|
43
|
+
"./tests/measurement/test_auth_key.pem".into(),
|
|
44
|
+
)
|
|
45
|
+
.unwrap();
|
|
46
|
+
|
|
47
|
+
// Converting ID-block and key digests into BASE64
|
|
48
|
+
let id_block_string =
|
|
49
|
+
general_purpose::STANDARD.encode(bincode::serialize(&block_calculations.id_block).unwrap());
|
|
50
|
+
let id_key_digest_string = general_purpose::STANDARD
|
|
51
|
+
.encode::<Vec<u8>>(block_calculations.id_key_digest.try_into().unwrap());
|
|
52
|
+
let auth_key_digest_string = general_purpose::STANDARD
|
|
53
|
+
.encode::<Vec<u8>>(block_calculations.auth_key_digest.try_into().unwrap());
|
|
54
|
+
|
|
55
|
+
// Comparing results
|
|
56
|
+
assert_eq!(id_block_string, expected_id_block);
|
|
57
|
+
assert_eq!(id_key_digest_string, expected_id_key_digest);
|
|
58
|
+
assert_eq!(auth_key_digest_string, expected_auth_key_digest);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/// Using private test keys and a pre-generated signatures, the application should always generate the same AUTH-BLOCK.
|
|
62
|
+
#[test]
|
|
63
|
+
fn test_auth_block_generation() {
|
|
64
|
+
// Expected AUTH-BLOCK
|
|
65
|
+
let expected_auth_block = "AQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
66
|
+
AAAAAAAAAAAAAAAAAAAAAAAOXTv32b+eBhvU6PfGrK4FkJqcPGnwTzGPATXq5x/30F71yMaxvIwEdhOntvAbc42gAAAAAAA\
|
|
67
|
+
AAAAAAAAAAAAAAAAAAAAAAAANQZTcpn3oOB7G0mfAMrA908H16vpqph6Slk5VSL7zMrGukh8m3hasM7ZCdE0Zel2AAAAAAA\
|
|
68
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
69
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
70
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
71
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
72
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
73
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAB9tPIC4+57yn/fdR+jeP8uV3ZBDh2ixkyxVIzwMR131TMq4yC\
|
|
74
|
+
wv8iwbzwkmTT529gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6+k5w4NQsIzZvaUDyFOA39fGAS9xlmdnsyFMveqDetHW2+C\
|
|
75
|
+
hmxUMfBzblH0KjXzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
76
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
77
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
78
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
79
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
80
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
81
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
82
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
83
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
84
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
85
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
86
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
87
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
88
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7iHuUVX9Whon/SFXD9+2ZgQw9VOz\
|
|
89
|
+
UKWURNNwY3QIOyqdxo0y5dmZ3GqMfDrRi6pkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADyYei5XacbKjVCX0iiGad9uw/uJS\
|
|
90
|
+
9k0YzpmIi5+09wsQQBG33+o+A0k3Giv69vkTMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
91
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
92
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
93
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
94
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
95
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAACMhkXa\
|
|
96
|
+
1XNJo8X/xsGl90pWnw+DPAeLsizXlHTw/pLOcWpzmFuimWIz0UyQ1ovHcGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD1rId\
|
|
97
|
+
x4JERA8nyov5IQ3cZKsyziMw6/bdZtVY+zQiTX6niAoEIEHqnSITJojB5PIYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
98
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
99
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
100
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
101
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
102
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
103
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
104
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
105
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
106
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
107
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
108
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
109
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
110
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
111
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
112
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
113
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
114
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
115
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
116
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
117
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
118
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
119
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
120
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
121
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\
|
|
122
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
|
|
123
|
+
.to_string();
|
|
124
|
+
|
|
125
|
+
// Test keys in pem format
|
|
126
|
+
let id_path: PathBuf = "./tests/measurement/test_id_key.pem".into();
|
|
127
|
+
let auth_path: PathBuf = "./tests/measurement/test_auth_key.pem".into();
|
|
128
|
+
|
|
129
|
+
// Get id private test key from pem
|
|
130
|
+
let id_ec_priv_key = load_priv_key(id_path).unwrap();
|
|
131
|
+
|
|
132
|
+
// Generate id public key, should always be the same
|
|
133
|
+
let id_ec_pub_key = SevEcdsaPubKey::try_from(&id_ec_priv_key).unwrap();
|
|
134
|
+
|
|
135
|
+
// Get id signature from file (can't regenerate, different each time)
|
|
136
|
+
let mut id_sig_file = fs::File::open("./tests/measurement/test_id_sig.bin").unwrap();
|
|
137
|
+
let mut id_block_bytes = Vec::new();
|
|
138
|
+
id_sig_file.read_to_end(&mut id_block_bytes).unwrap();
|
|
139
|
+
let id_block_sig: SevEcdsaSig = bincode::deserialize(&id_block_bytes).unwrap();
|
|
140
|
+
|
|
141
|
+
// Get author private test key from pem
|
|
142
|
+
let author_ec_priv_key = load_priv_key(auth_path).unwrap();
|
|
143
|
+
|
|
144
|
+
// Generate author public key, should always be the same
|
|
145
|
+
let author_pub_key = SevEcdsaPubKey::try_from(&author_ec_priv_key).unwrap();
|
|
146
|
+
|
|
147
|
+
// Get auth signature from file (can't regenerate, different each time)
|
|
148
|
+
let mut auth_sig_file = fs::File::open("./tests/measurement/test_auth_sig.bin").unwrap();
|
|
149
|
+
let mut auth_block_bytes = Vec::new();
|
|
150
|
+
auth_sig_file.read_to_end(&mut auth_block_bytes).unwrap();
|
|
151
|
+
let auth_block_sig: SevEcdsaSig = bincode::deserialize(&auth_block_bytes).unwrap();
|
|
152
|
+
|
|
153
|
+
let auth_block = IdAuth::new(
|
|
154
|
+
None,
|
|
155
|
+
None,
|
|
156
|
+
id_block_sig,
|
|
157
|
+
id_ec_pub_key,
|
|
158
|
+
auth_block_sig,
|
|
159
|
+
author_pub_key,
|
|
160
|
+
);
|
|
161
|
+
|
|
162
|
+
// Generate Generate auth_block string
|
|
163
|
+
let id_auth_bytes = bincode::serialize(&auth_block).unwrap();
|
|
164
|
+
let id_auth_str = general_purpose::STANDARD.encode(id_auth_bytes);
|
|
165
|
+
|
|
166
|
+
// Comparing auth_blocks
|
|
167
|
+
assert_eq!(id_auth_str, expected_auth_block);
|
|
168
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
|
2
|
+
MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDAyp3rzsOsAMVIVbtmS
|
|
3
|
+
QEU83YC5r0EOWZfSX3wwiBQytEjoVsXDBPTpvvyzM2aZ27ChZANiAARicMeL1pBM
|
|
4
|
+
0TNimaJbmHNqcc6S/vB0lNcssosHPIMPn1ZK96XBxv/Fo0lz1dpFhoyGPHkwosmE
|
|
5
|
+
SKd6EAiBAuKpX5MIzT5WtVm3/TrMiLPMKhl3Q0j+ovLJAxGR4HGHrPU=
|
|
6
|
+
-----END PRIVATE KEY-----
|
|
Binary file
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
|
2
|
+
MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDDPZQkU2FP1ii90R+e7
|
|
3
|
+
/ShQ/rzUzsS8X7kVJ0nJAxcrS1oMD8nKjfsKKfBWJ8nbCyqhZANiAAT2dj5NJgnP
|
|
4
|
+
GyzyLyzIuMpM9V1HDDwjVSyTsWiHQ5Ddlcs/3uhH3fef8p77uIA8bR/M16jQR7nN
|
|
5
|
+
wcdQsRkKvm0drTeo3ssUMnt2Zhn3EmB8/Q04hTxQ2pvNCAs1OJyTvj4=
|
|
6
|
+
-----END PRIVATE KEY-----
|
|
Binary file
|