- AP - TODO VERIFY PIN DOCS
- AP calls
send_validate
to validate component's authenticity - Component calls
receive_validate
to respond to AP's validation request - AP sends attestation command to component
- Component calls
send_validate
to validate AP's authenticity - AP calls
receive_validate
to respond to component's validation request - Component responds with attestation data
- AP receives attestation data and prints it
- AP calls
validate_components
ensure authenticity of all components - AP calls
boot_components
to boot all components - AP prints boot message
- AP boots
For each component:
- AP call
send_validate
to validate components's authenticity - Component calls
receive_validate
to respond to AP's validation request
For each component:
- AP sends boot command to component
- Component calls
send_validate
to validate AP's authenticity - AP calls
receive_validate
to respond to component's validation request - Component sends AP it's boot message
- AP receives component's boot message and prints it
- Server creates a random 16 byte nonce using chips onboard TRNG chip
- Sever sends the nonce to the client
- Client calls
receive_validate
to respond to server - Server calls
verify_signature
with the recieved signature
- Client receives nonce from server
- Client calls
create_signature
with the received nonce - Client sends signature to server
int create_signature(uint8_t* data, size_t size, uint8_t* secret, uint8_t* dest)
- Initializes an MD5 hash
- Updates the hash with
data
- Updates the hash with the 16 byte
secret
- Writes MD5 hash to
dest
int verify_signature(uint8_t* data, size_t size, uint8_t* secret, uint8_t* signature)
- Calls
create_signature
withdata
andsecret
- Compares that result with
signature
usingmemcmp