• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1% Tests for oncrpc module
2############
3############
4+  Packet Creation Tests
5
6= Create subpackets
7Object_Name()
8Auth_Unix()
9Auth_RPCSEC_GSS()
10Verifier_RPCSEC_GSS()
11
12= Create ONC RPC Packets
13RM_Header()
14RPC()
15RPC_Call()
16RPC_Reply()
17
18+ Test Layer bindings
19
20= RPC Message type
21pkt = RPC()/RPC_Call()
22assert pkt.mtype==0
23pkt = RPC()/RPC_Reply()
24assert pkt.mtype==1
25
26+ Test Built Packets vs Raw Strings
27
28= Test Built Packets vs Raw Strings
29pkt = RM_Header(
30    rm=0x80000000
31)
32assert bytes(pkt) == b'\x80\x00\x00\x00'
33
34pkt = RPC(
35    xid=0xabcdef12,
36    mtype='CALL'
37)
38assert bytes(pkt) == b'\xab\xcd\xef\x12\x00\x00\x00\x00'
39
40pkt = RPC_Call(
41    version=2,
42    program=100005,
43    pversion=3,
44    procedure=1,
45    aflavor='AUTH_UNIX',
46    a_unix=Auth_Unix(
47        stamp=0xffffffff,
48        mname=Object_Name(
49            length=5,
50            _name='MNAME',
51            fill='\x00\x00\x00'
52        ),
53        uid=1,
54        gid=1,
55        num_auxgids=1,
56        auxgids=[0]
57    ),
58    vflavor=1,
59    v_unix=Auth_Unix(
60        stamp=0xffffffff,
61        mname=Object_Name(
62            length=5,
63            _name='MNAME',
64            fill='\x00\x00\x00'
65        ),
66        uid=1,
67        gid=1,
68        num_auxgids=1,
69        auxgids=[0]
70    )
71)
72assert bytes(pkt) == b'\x00\x00\x00\x02\x00\x01\x86\xa5\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00 \xff\xff\xff\xff\x00\x00\x00\x05MNAME\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x05MNAME\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00'
73
74pkt = RPC_Call(
75    version=2,
76    program=100021,
77    pversion=4,
78    procedure=20,
79    aflavor='RPCSEC_GSS',
80    a_rpcsec_gss=Auth_RPCSEC_GSS(
81        gss_version=1,
82        gss_procedure=0,
83        gss_seq_num=10,
84        gss_service=1,
85        gss_context=Object_Name(
86            length=4,
87            _name='AAAA',
88            fill=''
89        ),
90    ),
91    vflavor=6,
92    v_rpcsec_gss=Verifier_RPCSEC_GSS(b"\x00\x00\x00\x04\x41\x41\x41\x41")
93)
94assert bytes(pkt) == b'\x00\x00\x00\x02\x00\x01\x86\xb5\x00\x00\x00\x04\x00\x00\x00\x14\x00\x00\x00\x06\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x01\x00\x00\x00\x04\x41\x41\x41\x41\x00\x00\x00\x06\x00\x00\x00\x04\x41\x41\x41\x41'
95
96pkt = RPC_Reply(
97    reply_stat=1,
98    flavor=1,
99    a_unix=Auth_Unix(
100        stamp=0xffffffff,
101        mname=Object_Name(
102            length=5,
103            _name='MNAME',
104            fill='\x00\x00\x00'
105        ),
106        uid=1,
107        gid=1,
108        num_auxgids=1,
109        auxgids=[0]
110    ),
111    length=32,
112    accept_stat=1
113)
114assert bytes(pkt) == b'\x00\x00\x00\x01\x00\x00\x00\x01\xff\xff\xff\xff\x00\x00\x00\x05MNAME\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x01'
115