sequence! { procedure, context,
// ACL Connection Established
Lower Tester -> IUT: IoCapabilityReq {
transaction_id: 0 ,
io_capabilities: 0 x01,
oob_authentication_data: 0 x00,
authentication_requirement: 0 x01,
}
IUT -> Upper Tester: IoCapabilityResponse {
bd_addr: context.peer_address(),
io_capability: IoCapability::DisplayYesNo,
oob_data_present: OobDataPresent::NotPresent,
authentication_requirements: AuthenticationRequirements::NoBondingMitmProtection,
}
IUT -> Upper Tester: IoCapabilityRequest {
bd_addr: context.peer_address(),
}
Upper Tester -> IUT: IoCapabilityRequestReply {
bd_addr: context.peer_address(),
io_capability: IoCapability::DisplayYesNo,
oob_present: OobDataPresent::P192Present,
authentication_requirements: AuthenticationRequirements::NoBondingMitmProtection,
}
IUT -> Upper Tester: IoCapabilityRequestReplyComplete {
num_hci_command_packets: 1 ,
status: ErrorCode::Success,
bd_addr: context.peer_address(),
}
IUT -> Lower Tester: IoCapabilityRes {
transaction_id: 0 ,
io_capabilities: 0 x01,
oob_authentication_data: 0 x01,
authentication_requirement: 0 x01,
}
// Public Key Exchange
Lower Tester -> IUT: EncapsulatedHeader {
transaction_id: 0 ,
major_type: 1 ,
minor_type: 1 ,
payload_length: 48 ,
}
IUT -> Lower Tester: Accepted {
transaction_id: 0 ,
accepted_opcode: Opcode::EncapsulatedHeader,
}
repeat 3 times with (part in peer_p192_public_key()) {
Lower Tester -> IUT: EncapsulatedPayload {
transaction_id: 0 ,
data: part,
}
IUT -> Lower Tester: Accepted {
transaction_id: 0 ,
accepted_opcode: Opcode::EncapsulatedPayload,
}
}
IUT -> Lower Tester: EncapsulatedHeader {
transaction_id: 0 ,
major_type: 1 ,
minor_type: 1 ,
payload_length: 48 ,
}
Lower Tester -> IUT: Accepted {
transaction_id: 0 ,
accepted_opcode: Opcode::EncapsulatedHeader,
}
repeat 3 times with (part in local_p192_public_key(&context)) {
IUT -> Lower Tester: EncapsulatedPayload {
transaction_id: 0 ,
data: part,
}
Lower Tester -> IUT: Accepted {
transaction_id: 0 ,
accepted_opcode: Opcode::EncapsulatedPayload,
}
}
// Authentication Stage 1: OOB Protocol
IUT -> Upper Tester: RemoteOobDataRequest {
bd_addr: context.peer_address(),
}
Upper Tester -> IUT: RemoteOobDataRequestReply {
bd_addr: context.peer_address(),
c: [0 ; 16 ],
r: [0 ; 16 ],
}
IUT -> Upper Tester: RemoteOobDataRequestReplyComplete {
num_hci_command_packets: 1 ,
status: ErrorCode::Success,
bd_addr: context.peer_address(),
}
Lower Tester -> IUT: SimplePairingNumber {
transaction_id: 0 ,
nonce: [0 ; 16 ],
}
IUT -> Lower Tester: Accepted {
transaction_id: 0 ,
accepted_opcode: Opcode::SimplePairingNumber,
}
IUT -> Lower Tester: SimplePairingNumber {
transaction_id: 0 ,
nonce: [0 ; 16 ],
}
Lower Tester -> IUT: Accepted {
transaction_id: 0 ,
accepted_opcode: Opcode::SimplePairingNumber,
}
// Authentication Stage 2
Lower Tester -> IUT: DhkeyCheck {
transaction_id: 0 ,
confirmation_value: [0 ; 16 ],
}
IUT -> Lower Tester: Accepted { transaction_id: 0 , accepted_opcode: Opcode::DhkeyCheck }
IUT -> Lower Tester: DhkeyCheck {
transaction_id: 0 ,
confirmation_value: [0 ; 16 ],
}
Lower Tester -> IUT: Accepted { transaction_id: 0 , accepted_opcode: Opcode::DhkeyCheck }
IUT -> Upper Tester: SimplePairingComplete {
status: ErrorCode::Success,
bd_addr: context.peer_address(),
}
// Link Key Calculation
Lower Tester -> IUT: AuRand {
transaction_id: 0 ,
random_number: [0 ; 16 ],
}
IUT -> Lower Tester: Sres {
transaction_id: 0 ,
authentication_rsp: [0 ; 4 ],
}
IUT -> Lower Tester: AuRand {
transaction_id: 0 ,
random_number: [0 ; 16 ],
}
Lower Tester -> IUT: Sres {
transaction_id: 0 ,
authentication_rsp: [0 ; 4 ],
}
IUT -> Upper Tester: LinkKeyNotification {
bd_addr: context.peer_address(),
key_type: KeyType::AuthenticatedP192,
link_key: [1 ; 16 ],
}
}
Messung V0.5 in Prozent C=96 H=98 G=96
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet am 2026-06-27)
¤
*© Formatika GbR, Deutschland