1sequence! { procedure, context, 2 Upper Tester ->IUT: ReadLocalOobData {} 3 IUT -> Upper Tester: ReadLocalOobDataComplete { 4 status: ErrorCode::Success, 5 c: [0; 16], 6 r: [0; 16], 7 } 8 // ACL Connection Established 9 Lower Tester -> IUT: IoCapabilityReq { 10 transaction_id: 0, 11 io_capabilities: 0x01, 12 oob_authentication_data: 0x01, 13 authentication_requirement: 0x01, 14 } 15 IUT -> Upper Tester: IoCapabilityResponse { 16 bd_addr: context.peer_address(), 17 io_capability: IoCapability::DisplayYesNo, 18 oob_data_present: OobDataPresent::P192Present, 19 authentication_requirements: AuthenticationRequirements::NoBondingMitmProtection, 20 } 21 IUT -> Upper Tester: IoCapabilityRequest { 22 bd_addr: context.peer_address(), 23 } 24 Upper Tester -> IUT: IoCapabilityRequestReply { 25 bd_addr: context.peer_address(), 26 io_capability: IoCapability::DisplayYesNo, 27 oob_present: OobDataPresent::NotPresent, 28 authentication_requirements: AuthenticationRequirements::NoBondingMitmProtection, 29 } 30 IUT -> Upper Tester: IoCapabilityRequestReplyComplete { 31 num_hci_command_packets: 1, 32 status: ErrorCode::Success, 33 bd_addr: context.peer_address(), 34 } 35 IUT -> Lower Tester: IoCapabilityRes { 36 transaction_id: 0, 37 io_capabilities: 0x01, 38 oob_authentication_data: 0x00, 39 authentication_requirement: 0x01, 40 } 41 // Public Key Exchange 42 Lower Tester -> IUT: EncapsulatedHeader { 43 transaction_id: 0, 44 major_type: 1, 45 minor_type: 1, 46 payload_length: 48, 47 } 48 IUT -> Lower Tester: Accepted { 49 transaction_id: 0, 50 accepted_opcode: Opcode::EncapsulatedHeader, 51 } 52 repeat 3 times with (part in peer_p192_public_key()) { 53 Lower Tester -> IUT: EncapsulatedPayload { 54 transaction_id: 0, 55 data: part, 56 } 57 IUT -> Lower Tester: Accepted { 58 transaction_id: 0, 59 accepted_opcode: Opcode::EncapsulatedPayload, 60 } 61 } 62 IUT -> Lower Tester: EncapsulatedHeader { 63 transaction_id: 0, 64 major_type: 1, 65 minor_type: 1, 66 payload_length: 48, 67 } 68 Lower Tester -> IUT: Accepted { 69 transaction_id: 0, 70 accepted_opcode: Opcode::EncapsulatedHeader, 71 } 72 repeat 3 times with (part in local_p192_public_key(&context)) { 73 IUT -> Lower Tester: EncapsulatedPayload { 74 transaction_id: 0, 75 data: part, 76 } 77 Lower Tester -> IUT: Accepted { 78 transaction_id: 0, 79 accepted_opcode: Opcode::EncapsulatedPayload, 80 } 81 } 82 // Authentication Stage 1: OOB Protocol 83 Lower Tester -> IUT: SimplePairingNumber { 84 transaction_id: 0, 85 nonce: [0; 16], 86 } 87 IUT -> Lower Tester: Accepted { 88 transaction_id: 0, 89 accepted_opcode: Opcode::SimplePairingNumber, 90 } 91 IUT -> Lower Tester: SimplePairingNumber { 92 transaction_id: 0, 93 nonce: [0; 16], 94 } 95 Lower Tester -> IUT: NotAccepted { 96 transaction_id: 0, 97 not_accepted_opcode: Opcode::SimplePairingNumber, 98 error_code: 0x05, 99 } 100 IUT -> Upper Tester: SimplePairingComplete { 101 status: ErrorCode::AuthenticationFailure, 102 bd_addr: context.peer_address(), 103 } 104} 105