1+ SEND (IPv6) tests 2 3= ICMPv6NDOptRsaSig build and dissection 4 5pkt = Ether()/IPv6()/ICMPv6ND_NS()/ICMPv6NDOptRsaSig(signature_pad = b"\x01" * 12) 6pkt = Ether(raw(pkt)) 7 8assert ICMPv6NDOptRsaSig in pkt 9assert pkt[ICMPv6NDOptRsaSig].signature_pad == b"\x01" * 12 10 11= ICMPv6NDOptCGA build and dissection 12 13pkt = Ether()/IPv6()/ICMPv6ND_NS()/ICMPv6NDOptCGA(CGA_PARAMS=CGA_Params()) 14pkt = Ether(raw(pkt)) 15 16assert ICMPv6NDOptCGA in pkt 17assert isinstance(pkt[ICMPv6NDOptCGA].CGA_PARAMS.pubkey, X509_SubjectPublicKeyInfo) 18assert len(pkt) == 142 19 20= ICMPv6NDOptTmstp build and dissection 21 22pkt = Ether()/IPv6()/ICMPv6ND_NS()/ICMPv6NDOptTmstp(timestamp=int(time.mktime(time.gmtime()))) 23pkt = Ether(raw(pkt)) 24pkt.show() 25 26assert ICMPv6NDOptTmstp in pkt 27assert pkt[ICMPv6NDOptTmstp].len == 2 28 29= ICMPv6NDOptNonce build and dissection 30 31pkt = Ether()/IPv6()/ICMPv6ND_NS()/ICMPv6NDOptNonce(nonce=b"\x31\x32\x33\x34\x35\x36") 32pkt = Ether(raw(pkt)) 33 34assert ICMPv6NDOptNonce in pkt 35assert raw(ICMPv6NDOptNonce(nonce=b"\x31\x32\x33\x34\x35\x36")) == b'\x0e\x01123456' 36