Module sui::nitro_attestation
- Struct
PCREntry - Struct
NitroAttestationDocument - Constants
- Function
load_nitro_attestation - Function
module_id - Function
timestamp - Function
digest - Function
pcrs - Function
public_key - Function
user_data - Function
nonce - Function
index - Function
value - Function
load_nitro_attestation_internal
use std::ascii;
use std::bcs;
use std::option;
use std::string;
use std::vector;
use sui::address;
use sui::clock;
use sui::hex;
use sui::object;
use sui::party;
use sui::transfer;
use sui::tx_context;
use sui::vec_map;
Struct PCREntry
Represents a PCR entry with an index and value.
public struct PCREntry has drop
Struct NitroAttestationDocument
Nitro Attestation Document defined for AWS.
public struct NitroAttestationDocument has drop
Fields
-
module_id: vector<u8> - Issuing Nitro hypervisor module ID.
-
timestamp: u64 - UTC time when document was created, in milliseconds since UNIX epoch.
-
digest: vector<u8> - The digest function used for calculating the register values.
-
pcrs: vector<sui::nitro_attestation::PCREntry> - A list of PCREntry containing the index and the PCR bytes. https://docs.aws.amazon.com/enclaves/latest/user/set-up-attestation.html#where.
-
public_key: std::option::Option<vector<u8>> - An optional DER-encoded key the attestation, consumer can use to encrypt data with.
-
user_data: std::option::Option<vector<u8>> - Additional signed user data, defined by protocol.
-
nonce: std::option::Option<vector<u8>> - An optional cryptographic nonce provided by the attestation consumer as a proof of authenticity.
Constants
Error that the feature is not available on this network.
const ENotSupportedError: u64 = 0;
Error that the attestation input failed to be parsed.
const EParseError: u64 = 1;
Error that the attestation failed to be verified.
const EVerifyError: u64 = 2;
Error that the PCRs are invalid.
const EInvalidPCRsError: u64 = 3;
Function load_nitro_attestation
@param attestation: attesttaion documents bytes data. @param clock: the clock object.
Returns the parsed NitroAttestationDocument after verifying the attestation, may abort with errors described above.
entry fun load_nitro_attestation(attestation: vector<u8>, clock: &sui::clock::Clock): sui::nitro_attestation::NitroAttestationDocument
Implementation
entry fun load_nitro_attestation(attestation: vector<u8>, clock: &Clock): NitroAttestationDocument {
load_nitro_attestation_internal(&attestation, clock::timestamp_ms(clock))
}
Function module_id
public fun module_id(attestation: &sui::nitro_attestation::NitroAttestationDocument): &vector<u8>
Implementation
public fun module_id(attestation: &NitroAttestationDocument): &vector<u8> {
&attestation.module_id
}
Function timestamp
public fun timestamp(attestation: &sui::nitro_attestation::NitroAttestationDocument): &u64
Implementation
public fun timestamp(attestation: &NitroAttestationDocument): &u64 {
&attestation.timestamp
}
Function digest
public fun digest(attestation: &sui::nitro_attestation::NitroAttestationDocument): &vector<u8>
Implementation
public fun digest(attestation: &NitroAttestationDocument): &vector<u8> {
&attestation.digest
}
Function pcrs
Returns a list of mapping PCREntry containg the index and the PCR bytes. Currently AWS supports PCR0, PCR1, PCR2, PCR3, PCR4, PCR8.
public fun pcrs(attestation: &sui::nitro_attestation::NitroAttestationDocument): &vector<sui::nitro_attestation::PCREntry>
Implementation
public fun pcrs(attestation: &NitroAttestationDocument): &vector<PCREntry> {
&attestation.pcrs
}
Function public_key
public fun public_key(attestation: &sui::nitro_attestation::NitroAttestationDocument): &std::option::Option<vector<u8>>
Implementation
public fun public_key(attestation: &NitroAttestationDocument): &Option<vector<u8>> {
&attestation.public_key
}
Function user_data
public fun user_data(attestation: &sui::nitro_attestation::NitroAttestationDocument): &std::option::Option<vector<u8>>
Implementation
public fun user_data(attestation: &NitroAttestationDocument): &Option<vector<u8>> {
&attestation.user_data
}
Function nonce
public fun nonce(attestation: &sui::nitro_attestation::NitroAttestationDocument): &std::option::Option<vector<u8>>
Implementation
public fun nonce(attestation: &NitroAttestationDocument): &Option<vector<u8>> {
&attestation.nonce
}
Function index
public fun index(entry: &sui::nitro_attestation::PCREntry): u8
Function value
public fun value(entry: &sui::nitro_attestation::PCREntry): &vector<u8>
Function load_nitro_attestation_internal
Internal native function
fun load_nitro_attestation_internal(attestation: &vector<u8>, current_timestamp: u64): sui::nitro_attestation::NitroAttestationDocument
Implementation
native fun load_nitro_attestation_internal(
attestation: &vector<u8>,
current_timestamp: u64,
): NitroAttestationDocument;